diff options
author | Heiko Schocher <hs@denx.de> | 2008-09-11 08:11:23 +0200 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2008-09-13 02:03:38 +0200 |
commit | 56844a22b76c719e600047e23b80465a44d76abd (patch) | |
tree | 1a2776838726eee8f4f1ac1f389a0f25a30f162e /lib_ppc/bootm.c | |
parent | fc9c1727b5b3483ce49c3cb668e8332fb001b8a7 (diff) | |
download | bootable_bootloader_goldelico_gta04-56844a22b76c719e600047e23b80465a44d76abd.zip bootable_bootloader_goldelico_gta04-56844a22b76c719e600047e23b80465a44d76abd.tar.gz bootable_bootloader_goldelico_gta04-56844a22b76c719e600047e23b80465a44d76abd.tar.bz2 |
powerpc: Fix bootm to boot up again with a Ramdisk
Commit 2a1a2cb6 didnt remove the dummy mem reservation in fdt_chosen,
and this stopped Linux from booting with a Ramdisk. This patch fixes
this, by deleting the useless dummy mem reservation.
When booting with a Ramdisk, a fix offset FDT_RAMDISK_OVERHEAD is now
added to of_size, so we dont need anymore a dummy mem reservation.
I measured the value of FDT_RAMDISK_OVERHEAD on a MPC8270 based
system (=0x44 bytes) and rounded it up to 0x80).
Signed-off-by: Heiko Schocher <hs@denx.de>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Diffstat (limited to 'lib_ppc/bootm.c')
-rw-r--r-- | lib_ppc/bootm.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib_ppc/bootm.c b/lib_ppc/bootm.c index 348421f..38266e1 100644 --- a/lib_ppc/bootm.c +++ b/lib_ppc/bootm.c @@ -145,8 +145,7 @@ int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images) * if the user wants it (the logic is in the subroutines). */ if (of_size) { - /* pass in dummy initrd info, we'll fix up later */ - if (fdt_chosen(of_flat_tree, images->rd_start, images->rd_end, 0) < 0) { + if (fdt_chosen(of_flat_tree, 0) < 0) { puts ("ERROR: "); puts ("/chosen node create failed"); puts (" - must RESET the board to recover.\n"); @@ -169,6 +168,8 @@ int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images) goto error; of_size = ret; + if ((of_flat_tree) && (initrd_start && initrd_end)) + of_size += FDT_RAMDISK_OVERHEAD; /* Create a new LMB reservation */ lmb_reserve(lmb, (ulong)of_flat_tree, of_size); } |