kernel-ark/arch/arm
Mike Westerhof 033b8ffe3f [ARM] 4599/1: Preserve ATAG list for use with kexec (2.6.23)
This patch resolves a kexec boot failure that can occur because
no ATAGs are passed in to the kexec'd kernel. Currently the
newly-kexec'd kernel may fail if it requires specific ATAGs, or
it may fail because the fixed memory location at which it expects
to find the ATAGs may contain random data instead of ATAGs.

The patch ensures that any ATAGs passed to the current kernel
at boot time are copied to a static buffer, and are copied back
when kexec copies the new kernel into place. Thus the new
kernel sees the same ATAGs from kexec and the boot loader.

The boot parameters are copied without regard to type, content,
or length -- this patch's scope is limited soley to saving and
restoring a fixed-size block of memory containing the kernel's
boot parameters. Additional functionality to examine, alter, or
replace the ATAGs (using kexec, for example) can be implemented
by manipulating the static buffer containing the preserved ATAGs.

Note: the size of the buffer (1.5KB) is selected to comfortably
hold one of each ATAG type, including a maximum-length command
line and the maximum number of ATAG_MEM structures currently
supported by the kernel. Should an ATAG list exceed that limit,
the list will be silently truncated to that limit (to do other-
wise at that point in the boot process would make a simple
problem exceedingly complicated).

[Note: this is the same patch as 4579, modified to accomodate
the ATAG changes introduced in 2.6.23]

Signed-off-by: Mike Westerhof <mwester at dls.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2007-10-12 23:43:48 +01:00
..
boot Merge branches 'at91', 'imx', 'iop', 'ixp', 'ks8695', 'misc', 'ns9xxx', 'pxa' and 's3c' into devel 2007-07-22 17:09:17 +01:00
common [ARM] Rename consistent_sync() as dma_cache_maint() 2007-10-12 23:43:45 +01:00
configs [ARM] rpc: update defconfig 2007-08-06 16:48:49 +01:00
kernel [ARM] 4599/1: Preserve ATAG list for use with kexec (2.6.23) 2007-10-12 23:43:48 +01:00
lib [ARM] spelling fixes 2007-05-20 20:10:32 +01:00
mach-aaec2000 Add IRQF_IRQPOLL flag on arm 2007-05-08 11:15:22 -07:00
mach-at91 [ARM] 4539/1: clocksource and clockevents for at91rm9200 2007-10-12 23:43:15 +01:00
mach-clps711x Add IRQF_IRQPOLL flag on arm 2007-05-08 11:15:22 -07:00
mach-clps7500 [ARM] cleanup struct irqaction initializers 2007-10-12 23:43:20 +01:00
mach-davinci clockevents: fix resume logic 2007-07-21 17:49:15 -07:00
mach-ebsa110 [ARM] EBSA110: fix build errors caused by missing "const" 2007-05-11 17:20:02 +01:00
mach-ep93xx [ARM] 4572/1: ep93xx: add cirrus logic edb9307 support 2007-10-12 23:43:44 +01:00
mach-footbridge [ARM] Add rtc-cmos driver for ISA-based footbridge platforms 2007-10-12 23:43:32 +01:00
mach-h720x [ARM] spelling fixes 2007-05-20 20:10:32 +01:00
mach-imx arm: i.MX/MX1 SDHC implements SD cards read-only switch read-back 2007-09-24 19:33:14 +02:00
mach-integrator [ARM] integrator: fix pci_v3 compile error with DEBUG_LL 2007-05-17 10:16:55 +01:00
mach-iop13xx some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
mach-iop32x [ARM] 4491/1: em7210 rtc clock 2007-07-20 17:29:35 +01:00
mach-iop33x iop3xx: surface the iop3xx DMA and AAU units to the iop-adma driver 2007-07-13 08:06:19 -07:00
mach-ixp4xx Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2007-07-22 11:22:59 -07:00
mach-ixp23xx [ARM] Fix some section mismatch warnings 2007-05-30 17:48:45 +01:00
mach-ixp2000 [ARM] Fix some section mismatch warnings 2007-05-30 17:48:45 +01:00
mach-ks8695 [ARM] 4549/1: KS8695: Fix build errors 2007-08-14 17:23:55 +01:00
mach-l7200
mach-lh7a40x [ARM] spelling fixes 2007-05-20 20:10:32 +01:00
mach-mx3 [ARM] 4461/1: MXC platform and i.MX31ADS core support 2007-07-22 15:44:46 +01:00
mach-netx Add IRQF_IRQPOLL flag on arm 2007-05-08 11:15:22 -07:00
mach-ns9xxx [ARM] 4595/1: ns9xxx: define registers as void __iomem * instead of volatile u32 2007-10-12 23:43:41 +01:00
mach-omap1 [ARM] omap1/leds-innovator.c: remove dead code 2007-10-12 23:43:20 +01:00
mach-omap2 ARM: OMAP: Enable serial idling and wakeup features 2007-08-22 00:42:52 -07:00
mach-pnx4008 [ARM] Spinlock initializer cleanup 2007-05-11 17:38:04 +01:00
mach-pxa backlight: Convert corgi backlight driver into a more generic driver 2007-10-11 22:24:13 +01:00
mach-realview [ARM] realview: disable second GIC on RevB MPCore platforms 2007-09-13 15:10:25 +01:00
mach-rpc [ARM] rpc: convert an outb() to writeb() 2007-07-20 21:29:39 +01:00
mach-s3c2400
mach-s3c2410 [ARM] 4566/1: s3c24xx: fix dma functions section mismatch 2007-10-12 23:43:15 +01:00
mach-s3c2412 [ARM] 4596/1: S3C2412: Correct IRQs for SDI+CF and add decoding support 2007-10-12 23:43:42 +01:00
mach-s3c2440 [ARM] 4566/1: s3c24xx: fix dma functions section mismatch 2007-10-12 23:43:15 +01:00
mach-s3c2442 [ARM] 4546/1: s3c2410: fix architecture typo for s3c2442 2007-08-14 17:23:49 +01:00
mach-s3c2443 [ARM] 4566/1: s3c24xx: fix dma functions section mismatch 2007-10-12 23:43:15 +01:00
mach-sa1100 [ARM] 4529/1: [HP Jornada 7XX] - Fix jornada720.c to use SSP driver 2007-07-28 20:52:45 +01:00
mach-shark Add IRQF_IRQPOLL flag on arm 2007-05-08 11:15:22 -07:00
mach-versatile [ARM] 4454/1: Use word accesses in Versatile PCI config reads 2007-07-02 13:39:35 +01:00
mm [ARM] Rename consistent_sync() as dma_cache_maint() 2007-10-12 23:43:45 +01:00
nwfpe [ARM] 4581/1: Fix the conditional execution of the NWFPE instructions 2007-10-12 23:43:22 +01:00
oprofile [ARM] Solve buggy smp_processor_id() usage 2007-06-02 21:31:49 +01:00
plat-iop [ARM] 4495/1: iop: combined watchdog timer driver for iop3xx and iop13xx 2007-07-20 09:35:42 +01:00
plat-mxc [ARM] 4461/1: MXC platform and i.MX31ADS core support 2007-07-22 15:44:46 +01:00
plat-omap ARM: OMAP: fix OMAP1 dmtimer build warning 2007-08-22 00:42:50 -07:00
plat-s3c [ARM] 4518/1: S3C: Rename watchdog configuration options 2007-07-22 16:44:38 +01:00
plat-s3c24xx [ARM] 4587/1: S3C24XX: Add magic number before resume code 2007-10-12 23:43:30 +01:00
tools [ARM] Update mach-types 2007-05-11 19:54:39 +01:00
vfp [ARM] 4567/1: Fix 'Oops - undefined instruction' when CONFIG_VFP=y on non VFP device 2007-09-13 15:10:27 +01:00
Kconfig [ARM] 4593/1: ns9xxx: implement generic clockevents 2007-10-12 23:43:37 +01:00
Kconfig-nommu [ARM] 4532/1: allow configuration of processor ID 2007-10-12 23:43:02 +01:00
Kconfig.debug [ARM] 4514/1: S3C: Rename DEBUG_S3C2410_PORT and DEBUG_S3C_UART 2007-07-22 16:44:33 +01:00
Makefile [ARM] 4461/1: MXC platform and i.MX31ADS core support 2007-07-22 15:44:46 +01:00