summaryrefslogtreecommitdiff
path: root/packages/linux/linux-2.6.23+2.6.24-rc5/cm-x270/0002-ramdisk_load.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/linux/linux-2.6.23+2.6.24-rc5/cm-x270/0002-ramdisk_load.patch')
-rw-r--r--packages/linux/linux-2.6.23+2.6.24-rc5/cm-x270/0002-ramdisk_load.patch81
1 files changed, 81 insertions, 0 deletions
diff --git a/packages/linux/linux-2.6.23+2.6.24-rc5/cm-x270/0002-ramdisk_load.patch b/packages/linux/linux-2.6.23+2.6.24-rc5/cm-x270/0002-ramdisk_load.patch
new file mode 100644
index 0000000000..74451c4454
--- /dev/null
+++ b/packages/linux/linux-2.6.23+2.6.24-rc5/cm-x270/0002-ramdisk_load.patch
@@ -0,0 +1,81 @@
+From 7d874d6bb1c1210402938a21ab51a4b64e2d68e5 Mon Sep 17 00:00:00 2001
+From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
+Date: Fri, 20 Jul 2007 19:01:50 -0400
+Subject: [PATCH] ramdisk_load
+
+---
+ arch/arm/mach-pxa/cm-x270.c | 6 ++++++
+ include/asm-arm/arch-pxa/cm-x270.h | 4 ++++
+ init/initramfs.c | 16 ++++++++++++++++
+ 3 files changed, 26 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/mach-pxa/cm-x270.c b/arch/arm/mach-pxa/cm-x270.c
+index 177664c..fb607e9 100644
+--- a/arch/arm/mach-pxa/cm-x270.c
++++ b/arch/arm/mach-pxa/cm-x270.c
+@@ -239,6 +239,12 @@ static struct map_desc cmx270_io_desc[] __initdata = {
+ .length = SZ_64M,
+ .type = MT_DEVICE
+ },
++ [2] = { /* NOR flash */
++ .virtual = CMX270_FLASH_VIRT,
++ .pfn = __phys_to_pfn(PXA_CS0_PHYS),
++ .length = (8<<20), /* up to 8 MByte flash */
++ .type = MT_DEVICE
++ },
+ };
+
+ /*
+diff --git a/include/asm-arm/arch-pxa/cm-x270.h b/include/asm-arm/arch-pxa/cm-x270.h
+index f8fac9e..70e0dce 100644
+--- a/include/asm-arm/arch-pxa/cm-x270.h
++++ b/include/asm-arm/arch-pxa/cm-x270.h
+@@ -20,6 +20,10 @@
+ #define CMX270_VIRT_BASE (0xe8000000)
+ #define CMX270_IT8152_VIRT (CMX270_VIRT_BASE)
+ #define CMX270_IDE104_VIRT (CMX270_IT8152_VIRT + SZ_64M)
++#define CMX270_FLASH_VIRT (CMX270_IDE104_VIRT + SZ_64M)
++
++#define CMX270_FLASH_RAMDISK_VIRT (CMX270_FLASH_VIRT + 0x1c0000)
++
+
+ /* GPIO related definitions */
+ #define GPIO_IT8152_IRQ (22)
+diff --git a/init/initramfs.c b/init/initramfs.c
+index 1db02a0..d875fbc 100644
+--- a/init/initramfs.c
++++ b/init/initramfs.c
+@@ -7,6 +7,9 @@
+ #include <linux/string.h>
+ #include <linux/syscalls.h>
+
++// HACK for compulab cm-x270
++#include <asm/arch/cm-x270.h>
++
+ static __initdata char *message;
+ static void __init error(char *x)
+ {
+@@ -550,7 +553,20 @@ static int __init populate_rootfs(void)
+ #ifdef CONFIG_BLK_DEV_INITRD
+ if (initrd_start) {
+ #ifdef CONFIG_BLK_DEV_RAM
++
++ /* hack to make initramfs work because the
++ * compulab BL does not zero out the
++ * initrd memory. This only seems to affect loading
++ * initramfs (cpio.gz) archives. Does not seem to
++ * affect ramdisks.
++ */
++ int initrd_size = *(int *)(CMX270_FLASH_RAMDISK_VIRT);
+ int fd;
++
++ initrd_end = initrd_start + initrd_size;
++ //printk("CLIFF: initrd_start = 0x%x\n", initrd_start);
++ //printk("CLIFF: initrd_end = 0x%x\n", initrd_end);
++
+ printk(KERN_INFO "checking if image is initramfs...");
+ err = unpack_to_rootfs((char *)initrd_start,
+ initrd_end - initrd_start, 1);
+--
+1.5.2.5
+