Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4073723a authored by Russell King's avatar Russell King
Browse files

Merge branch 'misc' into devel

Conflicts:
	arch/arm/Kconfig
	arch/arm/common/Makefile
	arch/arm/kernel/Makefile
	arch/arm/kernel/smp.c
parents 58daf18c 4ec3eb13
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -34,3 +34,5 @@ memory.txt
	- description of the virtual memory layout
nwfpe/
	- NWFPE floating point emulator documentation
swp_emulation
	- SWP/SWPB emulation handler/logging description
+27 −0
Original line number Diff line number Diff line
Software emulation of deprecated SWP instruction (CONFIG_SWP_EMULATE)
---------------------------------------------------------------------

ARMv6 architecture deprecates use of the SWP/SWPB instructions, and recommeds
moving to the load-locked/store-conditional instructions LDREX and STREX.

ARMv7 multiprocessing extensions introduce the ability to disable these
instructions, triggering an undefined instruction exception when executed.
Trapped instructions are emulated using an LDREX/STREX or LDREXB/STREXB
sequence. If a memory access fault (an abort) occurs, a segmentation fault is
signalled to the triggering process.

/proc/cpu/swp_emulation holds some statistics/information, including the PID of
the last process to trigger the emulation to be invocated. For example:
---
Emulated SWP:		12
Emulated SWPB:		0
Aborted SWP{B}:		1
Last process:		314
---

NOTE: when accessing uncached shared regions, LDREX/STREX rely on an external
transaction monitoring block called a global monitor to maintain update
atomicity. If your system does not implement a global monitor, this option can
cause programs that perform SWP operations to uncached memory to deadlock, as
the STREX operation will always fail.
+39 −26
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ config ARM
	bool
	default y
	select HAVE_AOUT
	select HAVE_DMA_API_DEBUG
	select HAVE_IDE
	select HAVE_MEMBLOCK
	select RTC_LIB
@@ -36,6 +37,9 @@ config ARM
config HAVE_PWM
	bool

config MIGHT_HAVE_PCI
	bool

config SYS_SUPPORTS_APM_EMULATION
	bool

@@ -226,7 +230,7 @@ config ARCH_INTEGRATOR
	bool "ARM Ltd. Integrator family"
	select ARM_AMBA
	select ARCH_HAS_CPUFREQ
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select ICST
	select GENERIC_CLOCKEVENTS
	select PLAT_VERSATILE
@@ -236,7 +240,7 @@ config ARCH_INTEGRATOR
config ARCH_REALVIEW
	bool "ARM Ltd. RealView family"
	select ARM_AMBA
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select HAVE_SCHED_CLOCK
	select ICST
	select GENERIC_CLOCKEVENTS
@@ -251,7 +255,7 @@ config ARCH_VERSATILE
	bool "ARM Ltd. Versatile family"
	select ARM_AMBA
	select ARM_VIC
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select HAVE_SCHED_CLOCK
	select ICST
	select GENERIC_CLOCKEVENTS
@@ -266,7 +270,7 @@ config ARCH_VEXPRESS
	select ARCH_WANT_OPTIONAL_GPIOLIB
	select ARM_AMBA
	select ARM_TIMER_SP804
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select GENERIC_CLOCKEVENTS
	select HAVE_CLK
	select HAVE_SCHED_CLOCK
@@ -288,7 +292,7 @@ config ARCH_BCMRING
	depends on MMU
	select CPU_V6
	select ARM_AMBA
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select GENERIC_CLOCKEVENTS
	select ARCH_WANT_OPTIONAL_GPIOLIB
	help
@@ -306,6 +310,7 @@ config ARCH_CNS3XXX
	select CPU_V6
	select GENERIC_CLOCKEVENTS
	select ARM_GIC
	select MIGHT_HAVE_PCI
	select PCI_DOMAINS if PCI
	help
	  Support for Cavium Networks CNS3XXX platform.
@@ -335,7 +340,7 @@ config ARCH_EP93XX
	select CPU_ARM920T
	select ARM_AMBA
	select ARM_VIC
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select ARCH_REQUIRE_GPIOLIB
	select ARCH_HAS_HOLES_MEMORYMODEL
	select ARCH_USES_GETTIMEOFFSET
@@ -355,14 +360,14 @@ config ARCH_MXC
	bool "Freescale MXC/iMX-based"
	select GENERIC_CLOCKEVENTS
	select ARCH_REQUIRE_GPIOLIB
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	help
	  Support for Freescale MXC/iMX-based family of processors

config ARCH_STMP3XXX
	bool "Freescale STMP3xxx"
	select CPU_ARM926T
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select ARCH_REQUIRE_GPIOLIB
	select GENERIC_CLOCKEVENTS
	select USB_ARCH_HAS_EHCI
@@ -442,6 +447,7 @@ config ARCH_IXP4XX
	select GENERIC_GPIO
	select GENERIC_CLOCKEVENTS
	select HAVE_SCHED_CLOCK
	select MIGHT_HAVE_PCI
	select DMABOUNCE if PCI
	help
	  Support for Intel's IXP4XX (XScale) family of processors.
@@ -481,7 +487,7 @@ config ARCH_LPC32XX
	select HAVE_IDE
	select ARM_AMBA
	select USB_ARCH_HAS_OHCI
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select GENERIC_TIME
	select GENERIC_CLOCKEVENTS
	help
@@ -515,7 +521,7 @@ config ARCH_MMP
	bool "Marvell PXA168/910/MMP2"
	depends on MMU
	select ARCH_REQUIRE_GPIOLIB
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select GENERIC_CLOCKEVENTS
	select HAVE_SCHED_CLOCK
	select TICK_ONESHOT
@@ -549,7 +555,7 @@ config ARCH_W90X900
	bool "Nuvoton W90X900 CPU"
	select CPU_ARM926T
	select ARCH_REQUIRE_GPIOLIB
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select GENERIC_CLOCKEVENTS
	help
	  Support for Nuvoton (Winbond logic dept.) ARM9 processor,
@@ -563,19 +569,19 @@ config ARCH_W90X900
config ARCH_NUC93X
	bool "Nuvoton NUC93X CPU"
	select CPU_ARM926T
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	help
	  Support for Nuvoton (Winbond logic dept.) NUC93X MCU,The NUC93X is a
	  low-power and high performance MPEG-4/JPEG multimedia controller chip.

config ARCH_TEGRA
	bool "NVIDIA Tegra"
	select CLKDEV_LOOKUP
	select GENERIC_TIME
	select GENERIC_CLOCKEVENTS
	select GENERIC_GPIO
	select HAVE_CLK
	select HAVE_SCHED_CLOCK
	select COMMON_CLKDEV
	select ARCH_HAS_BARRIERS if CACHE_L2X0
	select ARCH_HAS_CPUFREQ
	help
@@ -585,7 +591,7 @@ config ARCH_TEGRA
config ARCH_PNX4008
	bool "Philips Nexperia PNX4008 Mobile"
	select CPU_ARM926T
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select ARCH_USES_GETTIMEOFFSET
	help
	  This enables support for Philips PNX4008 mobile platform.
@@ -595,7 +601,7 @@ config ARCH_PXA
	depends on MMU
	select ARCH_MTD_XIP
	select ARCH_HAS_CPUFREQ
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select ARCH_REQUIRE_GPIOLIB
	select GENERIC_CLOCKEVENTS
	select HAVE_SCHED_CLOCK
@@ -774,7 +780,7 @@ config ARCH_TCC_926
	bool "Telechips TCC ARM926-based systems"
	select CPU_ARM926T
	select HAVE_CLK
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select GENERIC_CLOCKEVENTS
	help
	  Support for Telechips TCC ARM926-based systems.
@@ -799,7 +805,7 @@ config ARCH_U300
	select ARM_AMBA
	select ARM_VIC
	select GENERIC_CLOCKEVENTS
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select GENERIC_GPIO
	help
	  Support for ST-Ericsson U300 series mobile platforms.
@@ -809,7 +815,7 @@ config ARCH_U8500
	select CPU_V7
	select ARM_AMBA
	select GENERIC_CLOCKEVENTS
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select ARCH_REQUIRE_GPIOLIB
	help
	  Support for ST-Ericsson's Ux500 architecture
@@ -819,7 +825,7 @@ config ARCH_NOMADIK
	select ARM_AMBA
	select ARM_VIC
	select CPU_ARM926T
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select GENERIC_CLOCKEVENTS
	select ARCH_REQUIRE_GPIOLIB
	help
@@ -831,7 +837,7 @@ config ARCH_DAVINCI
	select ARCH_REQUIRE_GPIOLIB
	select ZONE_DMA
	select HAVE_IDE
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select GENERIC_ALLOCATOR
	select ARCH_HAS_HOLES_MEMORYMODEL
	help
@@ -852,7 +858,7 @@ config PLAT_SPEAR
	bool "ST SPEAr"
	select ARM_AMBA
	select ARCH_REQUIRE_GPIOLIB
	select COMMON_CLKDEV
	select CLKDEV_LOOKUP
	select GENERIC_CLOCKEVENTS
	select HAVE_CLK
	help
@@ -1034,6 +1040,11 @@ config CPU_HAS_PMU
	default y
	bool

config MULTI_IRQ_HANDLER
	bool
	help
	  Allow each machine to specify it's own IRQ handler at run time.

if !MMU
source "arch/arm/Kconfig-nommu"
endif
@@ -1181,7 +1192,7 @@ config ISA_DMA_API
	bool

config PCI
	bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695 || MACH_ARMCORE || ARCH_CNS3XXX || SA1100_NANOENGINE
	bool "PCI support" if MIGHT_HAVE_PCI
	help
	  Find out whether you have a PCI motherboard. PCI is the name of a
	  bus system, i.e. the way the CPU talks to the other stuff inside
@@ -1253,7 +1264,7 @@ config SMP
config SMP_ON_UP
	bool "Allow booting SMP kernel on uniprocessor systems (EXPERIMENTAL)"
	depends on EXPERIMENTAL
	depends on SMP && !XIP && !THUMB2_KERNEL
	depends on SMP && !XIP
	default y
	help
	  SMP kernels contain instructions which fail on non-SMP processors.
@@ -1272,6 +1283,7 @@ config HAVE_ARM_SCU
config HAVE_ARM_TWD
	bool
	depends on SMP
	select TICK_ONESHOT
	help
	  This options enables support for the ARM timer and watchdog unit

@@ -1335,7 +1347,7 @@ config HZ
	default 100

config THUMB2_KERNEL
	bool "Compile the kernel in Thumb-2 mode"
	bool "Compile the kernel in Thumb-2 mode (EXPERIMENTAL)"
	depends on CPU_V7 && !CPU_V6 && EXPERIMENTAL
	select AEABI
	select ARM_ASM_UNIFIED
@@ -1549,6 +1561,7 @@ config SECCOMP

config CC_STACKPROTECTOR
	bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
	depends on EXPERIMENTAL
	help
	  This option turns on the -fstack-protector GCC feature. This
	  feature puts, at the beginning of functions, a canary value on
@@ -1745,7 +1758,7 @@ config CPU_FREQ_S3C
	  Internal configuration node for common cpufreq on Samsung SoC

config CPU_FREQ_S3C24XX
	bool "CPUfreq driver for Samsung S3C24XX series CPUs"
	bool "CPUfreq driver for Samsung S3C24XX series CPUs (EXPERIMENTAL)"
	depends on ARCH_S3C2410 && CPU_FREQ && EXPERIMENTAL
	select CPU_FREQ_S3C
	help
@@ -1757,7 +1770,7 @@ config CPU_FREQ_S3C24XX
	  If in doubt, say N.

config CPU_FREQ_S3C24XX_PLL
	bool "Support CPUfreq changing of PLL frequency"
	bool "Support CPUfreq changing of PLL frequency (EXPERIMENTAL)"
	depends on CPU_FREQ_S3C24XX && EXPERIMENTAL
	help
	  Compile in support for changing the PLL frequency from the
+1 −1
Original line number Diff line number Diff line
@@ -31,7 +31,7 @@ config FRAME_POINTER
	  reported is severely limited.

config ARM_UNWIND
	bool "Enable stack unwinding support"
	bool "Enable stack unwinding support (EXPERIMENTAL)"
	depends on AEABI && EXPERIMENTAL
	default y
	help
+0 −4
Original line number Diff line number Diff line
@@ -37,7 +37,3 @@ config SHARP_PARAM

config SHARP_SCOOP
	bool

config COMMON_CLKDEV
	bool
	select HAVE_CLK
Loading