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

Commit 42cd71bf authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm

* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (137 commits)
  ARM: bcmring: convert to use sp804 clockevents
  ARM: bcmring: convert to sp804 clocksource
  ARM: 6912/1: bcmring: Add clkdev table in init_early
  clockevents: ARM sp804: obtain sp804 timer rate via clks
  clockevents: ARM sp804: allow clockevent name to be specified
  clocksource: ARM sp804: obtain sp804 timer rate via clks
  clocksource: ARM sp804: allow clocksource name to be specified
  clocksource: convert OMAP1 to 32-bit down counting clocksource
  clocksource: convert MXS timrotv2 to 32-bit down counting clocksource
  clocksource: convert SPEAr platforms 16-bit up counting clocksource
  clocksource: convert Integrator/AP 16-bit down counting clocksource
  clocksource: convert W90x900 24-bit down counting clocksource
  clocksource: convert ARM 32-bit down counting clocksources
  clocksource: convert ARM 32-bit up counting clocksources
  clocksource: add common mmio clocksource
  ARM: update sa1100 to reflect PXA updates
  ARM: omap1: convert to using readl/writel instead of volatile struct
  ARM: omap1: delete useless interrupt handler
  ARM: s5p: consolidate selection of timer register
  ARM: 6939/1: fix missing 'cpu_relax()' declaration
  ...
parents f5039935 9a55d975
Loading
Loading
Loading
Loading
+50 −39
Original line number Diff line number Diff line
@@ -197,15 +197,21 @@ config ARM_PATCH_PHYS_VIRT
	depends on !XIP_KERNEL && MMU
	depends on !ARCH_REALVIEW || !SPARSEMEM
	help
	  Patch phys-to-virt translation functions at runtime according to
	  the position of the kernel in system memory.
	  Patch phys-to-virt and virt-to-phys translation functions at
	  boot and module load time according to the position of the
	  kernel in system memory.

	  This can only be used with non-XIP with MMU kernels where
	  the base of physical memory is at a 16MB boundary.
	  This can only be used with non-XIP MMU kernels where the base
	  of physical memory is at a 16MB boundary, or theoretically 64K
	  for the MSM machine class.

config ARM_PATCH_PHYS_VIRT_16BIT
	def_bool y
	depends on ARM_PATCH_PHYS_VIRT && ARCH_MSM
	help
	  This option extends the physical to virtual translation patching
	  to allow physical memory down to a theoretical minimum of 64K
	  boundaries.

source "init/Kconfig"

@@ -297,6 +303,7 @@ config ARCH_BCMRING
	depends on MMU
	select CPU_V6
	select ARM_AMBA
	select ARM_TIMER_SP804
	select CLKDEV_LOOKUP
	select GENERIC_CLOCKEVENTS
	select ARCH_WANT_OPTIONAL_GPIOLIB
@@ -366,6 +373,7 @@ config ARCH_MXC
	select GENERIC_CLOCKEVENTS
	select ARCH_REQUIRE_GPIOLIB
	select CLKDEV_LOOKUP
	select CLKSRC_MMIO
	select HAVE_SCHED_CLOCK
	help
	  Support for Freescale MXC/iMX-based family of processors
@@ -375,21 +383,13 @@ config ARCH_MXS
	select GENERIC_CLOCKEVENTS
	select ARCH_REQUIRE_GPIOLIB
	select CLKDEV_LOOKUP
	select CLKSRC_MMIO
	help
	  Support for Freescale MXS-based family of processors

config ARCH_STMP3XXX
	bool "Freescale STMP3xxx"
	select CPU_ARM926T
	select CLKDEV_LOOKUP
	select ARCH_REQUIRE_GPIOLIB
	select GENERIC_CLOCKEVENTS
	select USB_ARCH_HAS_EHCI
	help
	  Support for systems based on the Freescale 3xxx CPUs.

config ARCH_NETX
	bool "Hilscher NetX based"
	select CLKSRC_MMIO
	select CPU_ARM926T
	select ARM_VIC
	select GENERIC_CLOCKEVENTS
@@ -457,6 +457,7 @@ config ARCH_IXP2000
config ARCH_IXP4XX
	bool "IXP4xx-based"
	depends on MMU
	select CLKSRC_MMIO
	select CPU_XSCALE
	select GENERIC_GPIO
	select GENERIC_CLOCKEVENTS
@@ -468,7 +469,7 @@ config ARCH_IXP4XX

config ARCH_DOVE
	bool "Marvell Dove"
	select CPU_V6K
	select CPU_V7
	select PCI
	select ARCH_REQUIRE_GPIOLIB
	select GENERIC_CLOCKEVENTS
@@ -497,6 +498,7 @@ config ARCH_LOKI

config ARCH_LPC32XX
	bool "NXP LPC32XX"
	select CLKSRC_MMIO
	select CPU_ARM926T
	select ARCH_REQUIRE_GPIOLIB
	select HAVE_IDE
@@ -554,23 +556,12 @@ config ARCH_KS8695
	  Support for Micrel/Kendin KS8695 "Centaur" (ARM922T) based
	  System-on-Chip devices.

config ARCH_NS9XXX
	bool "NetSilicon NS9xxx"
	select CPU_ARM926T
	select GENERIC_GPIO
	select GENERIC_CLOCKEVENTS
	select HAVE_CLK
	help
	  Say Y here if you intend to run this kernel on a NetSilicon NS9xxx
	  System.

	  <http://www.digi.com/products/microprocessors/index.jsp>

config ARCH_W90X900
	bool "Nuvoton W90X900 CPU"
	select CPU_ARM926T
	select ARCH_REQUIRE_GPIOLIB
	select CLKDEV_LOOKUP
	select CLKSRC_MMIO
	select GENERIC_CLOCKEVENTS
	help
	  Support for Nuvoton (Winbond logic dept.) ARM9 processor,
@@ -592,6 +583,7 @@ config ARCH_NUC93X
config ARCH_TEGRA
	bool "NVIDIA Tegra"
	select CLKDEV_LOOKUP
	select CLKSRC_MMIO
	select GENERIC_TIME
	select GENERIC_CLOCKEVENTS
	select GENERIC_GPIO
@@ -617,6 +609,7 @@ config ARCH_PXA
	select ARCH_MTD_XIP
	select ARCH_HAS_CPUFREQ
	select CLKDEV_LOOKUP
	select CLKSRC_MMIO
	select ARCH_REQUIRE_GPIOLIB
	select GENERIC_CLOCKEVENTS
	select HAVE_SCHED_CLOCK
@@ -667,6 +660,7 @@ config ARCH_RPC

config ARCH_SA1100
	bool "SA1100-based"
	select CLKSRC_MMIO
	select CPU_SA1100
	select ISA
	select ARCH_SPARSEMEM_ENABLE
@@ -803,6 +797,7 @@ config ARCH_SHARK

config ARCH_TCC_926
	bool "Telechips TCC ARM926-based systems"
	select CLKSRC_MMIO
	select CPU_ARM926T
	select HAVE_CLK
	select CLKDEV_LOOKUP
@@ -813,6 +808,7 @@ config ARCH_TCC_926
config ARCH_U300
	bool "ST-Ericsson U300 Series"
	depends on MMU
	select CLKSRC_MMIO
	select CPU_ARM926T
	select HAVE_SCHED_CLOCK
	select HAVE_TCM
@@ -854,6 +850,7 @@ config ARCH_DAVINCI
	select HAVE_IDE
	select CLKDEV_LOOKUP
	select GENERIC_ALLOCATOR
	select GENERIC_IRQ_CHIP
	select ARCH_HAS_HOLES_MEMORYMODEL
	help
	  Support for TI's DaVinci platform.
@@ -874,6 +871,7 @@ config PLAT_SPEAR
	select ARM_AMBA
	select ARCH_REQUIRE_GPIOLIB
	select CLKDEV_LOOKUP
	select CLKSRC_MMIO
	select GENERIC_CLOCKEVENTS
	select HAVE_CLK
	help
@@ -951,8 +949,6 @@ source "arch/arm/mach-netx/Kconfig"
source "arch/arm/mach-nomadik/Kconfig"
source "arch/arm/plat-nomadik/Kconfig"

source "arch/arm/mach-ns9xxx/Kconfig"

source "arch/arm/mach-nuc93x/Kconfig"

source "arch/arm/plat-omap/Kconfig"
@@ -1005,8 +1001,6 @@ source "arch/arm/mach-exynos4/Kconfig"

source "arch/arm/mach-shmobile/Kconfig"

source "arch/arm/plat-stmp3xxx/Kconfig"

source "arch/arm/mach-tegra/Kconfig"

source "arch/arm/mach-u300/Kconfig"
@@ -1033,6 +1027,8 @@ config PLAT_IOP

config PLAT_ORION
	bool
	select CLKSRC_MMIO
	select GENERIC_IRQ_CHIP
	select HAVE_SCHED_CLOCK

config PLAT_PXA
@@ -1043,6 +1039,7 @@ config PLAT_VERSATILE

config ARM_TIMER_SP804
	bool
	select CLKSRC_MMIO

source arch/arm/mm/Kconfig

@@ -1318,8 +1315,7 @@ menu "Kernel Features"
source "kernel/time/Kconfig"

config SMP
	bool "Symmetric Multi-Processing (EXPERIMENTAL)"
	depends on EXPERIMENTAL
	bool "Symmetric Multi-Processing"
	depends on CPU_V6K || CPU_V7
	depends on GENERIC_CLOCKEVENTS
	depends on REALVIEW_EB_ARM11MP || REALVIEW_EB_A9MP || \
@@ -1521,8 +1517,8 @@ config ARCH_SELECT_MEMORY_MODEL
	def_bool ARCH_SPARSEMEM_ENABLE

config HIGHMEM
	bool "High Memory Support (EXPERIMENTAL)"
	depends on MMU && EXPERIMENTAL
	bool "High Memory Support"
	depends on MMU
	help
	  The address space of ARM processors is only 4 Gigabytes large
	  and it has to accommodate user address space, kernel address
@@ -1742,16 +1738,31 @@ config CMDLINE
	  time by entering them here. As a minimum, you should specify the
	  memory size and the root device (e.g., mem=64M root=/dev/nfs).

choice
	prompt "Kernel command line type" if CMDLINE != ""
	default CMDLINE_FROM_BOOTLOADER

config CMDLINE_FROM_BOOTLOADER
	bool "Use bootloader kernel arguments if available"
	help
	  Uses the command-line options passed by the boot loader. If
	  the boot loader doesn't provide any, the default kernel command
	  string provided in CMDLINE will be used.

config CMDLINE_EXTEND
	bool "Extend bootloader kernel arguments"
	help
	  The command-line arguments provided by the boot loader will be
	  appended to the default kernel command string.

config CMDLINE_FORCE
	bool "Always use the default kernel command string"
	depends on CMDLINE != ""
	help
	  Always use the default kernel command string, even if the boot
	  loader passes other arguments to the kernel.
	  This is useful if you cannot or don't want to change the
	  command-line options your boot loader passes to the kernel.

	  If unsure, say N.
endchoice

config XIP_KERNEL
	bool "Kernel Execute-In-Place from ROM"
@@ -2010,7 +2021,7 @@ menu "Power management options"
source "kernel/power/Kconfig"

config ARCH_SUSPEND_POSSIBLE
	depends on !ARCH_S5P64X0 && !ARCH_S5P6442
	depends on !ARCH_S5P64X0 && !ARCH_S5P6442 && !ARCH_S5PC100
	depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \
		CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE
	def_bool y
+1 −6
Original line number Diff line number Diff line
@@ -158,13 +158,11 @@ machine-$(CONFIG_ARCH_MV78XX0) := mv78xx0
machine-$(CONFIG_ARCH_MX1)		:= imx
machine-$(CONFIG_ARCH_MX2)		:= imx
machine-$(CONFIG_ARCH_MX25)		:= imx
machine-$(CONFIG_ARCH_MX3)		:= mx3
machine-$(CONFIG_ARCH_MX3)		:= imx
machine-$(CONFIG_ARCH_MX5)		:= mx5
machine-$(CONFIG_ARCH_MXC91231)		:= mxc91231
machine-$(CONFIG_ARCH_MXS)		:= mxs
machine-$(CONFIG_ARCH_NETX)		:= netx
machine-$(CONFIG_ARCH_NOMADIK)		:= nomadik
machine-$(CONFIG_ARCH_NS9XXX)		:= ns9xxx
machine-$(CONFIG_ARCH_OMAP1)		:= omap1
machine-$(CONFIG_ARCH_OMAP2)		:= omap2
machine-$(CONFIG_ARCH_OMAP3)		:= omap2
@@ -185,8 +183,6 @@ machine-$(CONFIG_ARCH_EXYNOS4) := exynos4
machine-$(CONFIG_ARCH_SA1100)		:= sa1100
machine-$(CONFIG_ARCH_SHARK)		:= shark
machine-$(CONFIG_ARCH_SHMOBILE) 	:= shmobile
machine-$(CONFIG_ARCH_STMP378X)		:= stmp378x
machine-$(CONFIG_ARCH_STMP37XX)		:= stmp37xx
machine-$(CONFIG_ARCH_TCC8K)		:= tcc8k
machine-$(CONFIG_ARCH_TEGRA)		:= tegra
machine-$(CONFIG_ARCH_U300)		:= u300
@@ -207,7 +203,6 @@ machine-$(CONFIG_MACH_SPEAR600) := spear6xx
plat-$(CONFIG_ARCH_MXC)		:= mxc
plat-$(CONFIG_ARCH_OMAP)	:= omap
plat-$(CONFIG_ARCH_S3C64XX)	:= samsung
plat-$(CONFIG_ARCH_STMP3XXX)	:= stmp3xxx
plat-$(CONFIG_ARCH_TCC_926)	:= tcc
plat-$(CONFIG_PLAT_IOP)		:= iop
plat-$(CONFIG_PLAT_NOMADIK)	:= nomadik
+14 −3
Original line number Diff line number Diff line
@@ -98,8 +98,6 @@ endif
ccflags-y := -fpic -fno-builtin
asflags-y := -Wa,-march=all

# Provide size of uncompressed kernel to the decompressor via a linker symbol.
LDFLAGS_vmlinux = --defsym _image_size=$(shell stat -c "%s" $(obj)/../Image)
# Supply ZRELADDR to the decompressor via a linker symbol.
ifneq ($(CONFIG_AUTO_ZRELADDR),y)
LDFLAGS_vmlinux += --defsym zreladdr=$(ZRELADDR)
@@ -122,10 +120,23 @@ lib1funcs = $(obj)/lib1funcs.o
$(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S FORCE
	$(call cmd,shipped)

# We need to prevent any GOTOFF relocs being used with references
# to symbols in the .bss section since we cannot relocate them
# independently from the rest at run time.  This can be achieved by
# ensuring that no private .bss symbols exist, as global symbols
# always have a GOT entry which is what we need.
# The .data section is already discarded by the linker script so no need
# to bother about it here.
check_for_bad_syms = \
bad_syms=$$($(CROSS_COMPILE)nm $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \
[ -z "$$bad_syms" ] || \
  ( echo "following symbols must have non local/private scope:" >&2; \
    echo "$$bad_syms" >&2; rm -f $@; false )

$(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.$(suffix_y).o \
	 	$(addprefix $(obj)/, $(OBJS)) $(lib1funcs) FORCE
	$(call if_changed,ld)
	@:
	@$(check_for_bad_syms)

$(obj)/piggy.$(suffix_y): $(obj)/../Image FORCE
	$(call if_changed,$(suffix_y))
+2 −2
Original line number Diff line number Diff line
@@ -44,7 +44,7 @@ extern void error(char *);
#include "../../../../lib/decompress_unlzma.c"
#endif

void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x))
int do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x))
{
	decompress(input, len, NULL, NULL, output, NULL, error);
	return decompress(input, len, NULL, NULL, output, NULL, error);
}
+35 −11
Original line number Diff line number Diff line
@@ -179,7 +179,7 @@ not_angel:
		bl	cache_on

restart:	adr	r0, LC0
		ldmia	r0, {r1, r2, r3, r6, r9, r11, r12}
		ldmia	r0, {r1, r2, r3, r6, r10, r11, r12}
		ldr	sp, [r0, #28]

		/*
@@ -188,6 +188,20 @@ restart: adr r0, LC0
		 */
		sub	r0, r0, r1		@ calculate the delta offset
		add	r6, r6, r0		@ _edata
		add	r10, r10, r0		@ inflated kernel size location

		/*
		 * The kernel build system appends the size of the
		 * decompressed kernel at the end of the compressed data
		 * in little-endian form.
		 */
		ldrb	r9, [r10, #0]
		ldrb	lr, [r10, #1]
		orr	r9, r9, lr, lsl #8
		ldrb	lr, [r10, #2]
		ldrb	r10, [r10, #3]
		orr	r9, r9, lr, lsl #16
		orr	r9, r9, r10, lsl #24

#ifndef CONFIG_ZBOOT_ROM
		/* malloc space is above the relocated stack (64k max) */
@@ -347,10 +361,10 @@ LC0: .word LC0 @ r1
		.word	__bss_start		@ r2
		.word	_end			@ r3
		.word	_edata			@ r6
		.word	_image_size		@ r9
		.word	input_data_end - 4	@ r10 (inflated size location)
		.word	_got_start		@ r11
		.word	_got_end		@ ip
		.word	user_stack_end		@ sp
		.word	.L_user_stack_end	@ sp
		.size	LC0, . - LC0

#ifdef CONFIG_ARCH_RPC
@@ -459,7 +473,11 @@ __setup_mmu: sub r3, r4, #16384 @ Page directory size
		orr	r1, r1, #3 << 10
		add	r2, r3, #16384
1:		cmp	r1, r9			@ if virt > start of RAM
#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
		orrhs	r1, r1, #0x08		@ set cacheable
#else
		orrhs	r1, r1, #0x0c		@ set cacheable, bufferable
#endif
		cmp	r1, r10			@ if virt > end of RAM
		bichs	r1, r1, #0x0c		@ clear cacheable, bufferable
		str	r1, [r0], #4		@ 1:1 mapping
@@ -484,6 +502,12 @@ __setup_mmu: sub r3, r4, #16384 @ Page directory size
		mov	pc, lr
ENDPROC(__setup_mmu)

__arm926ejs_mmu_cache_on:
#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
		mov	r0, #4			@ put dcache in WT mode
		mcr	p15, 7, r0, c15, c0, 0
#endif

__armv4_mmu_cache_on:
		mov	r12, lr
#ifdef CONFIG_MMU
@@ -665,6 +689,12 @@ proc_types:
		W(b)	__armv4_mpu_cache_off
		W(b)	__armv4_mpu_cache_flush

		.word	0x41069260		@ ARM926EJ-S (v5TEJ)
		.word	0xff0ffff0
		b	__arm926ejs_mmu_cache_on
		b	__armv4_mmu_cache_off
		b	__armv5tej_mmu_cache_flush

		.word	0x00007000		@ ARM7 IDs
		.word	0x0000f000
		mov	pc, lr
@@ -747,12 +777,6 @@ proc_types:
		W(b)	__armv4_mmu_cache_off
		W(b)	__armv6_mmu_cache_flush

		.word	0x560f5810		@ Marvell PJ4 ARMv6
		.word	0xff0ffff0
		W(b)	__armv4_mmu_cache_on
		W(b)	__armv4_mmu_cache_off
		W(b)	__armv6_mmu_cache_flush

		.word	0x000f0000		@ new CPU Id
		.word	0x000f0000
		W(b)	__armv7_mmu_cache_on
@@ -1078,5 +1102,5 @@ reloc_code_end:

		.align
		.section ".stack", "aw", %nobits
user_stack:	.space	4096
user_stack_end:
.L_user_stack:	.space	4096
.L_user_stack_end:
Loading