--- linux-2.6.26.5/arch/powerpc/kernel/prom.c 2008-09-08 13:40:20.000000000 -0400 +++ linux-2.6.26.5-rb600/arch/powerpc/kernel/prom.c 2008-09-20 23:51:04.795452491 -0400 @@ -797,6 +797,14 @@ static int __init early_init_dt_scan_cho (strcmp(uname, "chosen") != 0 && strcmp(uname, "chosen@0") != 0)) return 0; +#ifdef CONFIG_BLK_DEV_INITRD + lprop = of_get_flat_dt_prop(node, "linux,initrd", NULL); + if (lprop) { + initrd_start = (unsigned) __va(lprop[0]); + initrd_end = initrd_start + lprop[1]; + } +#endif + #ifdef CONFIG_PPC64 /* check if iommu is forced on or off */ if (of_get_flat_dt_prop(node, "linux,iommu-off", NULL) != NULL) @@ -1154,6 +1162,11 @@ void __init early_init_devtree(void *par of_scan_flat_dt(early_init_dt_scan_root, NULL); of_scan_flat_dt(early_init_dt_scan_memory, NULL); +#ifdef CONFIG_BLK_DEV_INITRD + if (initrd_start) + lmb_reserve(__pa(initrd_start), initrd_end - initrd_start); +#endif + /* Save command line for /proc/cmdline and then parse parameters */ strlcpy(boot_command_line, cmd_line, COMMAND_LINE_SIZE); parse_early_param();