summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorHeiko Schocher <hs@denx.de>2008-09-11 08:11:23 +0200
committerWolfgang Denk <wd@denx.de>2008-09-13 02:03:38 +0200
commit56844a22b76c719e600047e23b80465a44d76abd (patch)
tree1a2776838726eee8f4f1ac1f389a0f25a30f162e /common
parentfc9c1727b5b3483ce49c3cb668e8332fb001b8a7 (diff)
downloadu-boot-56844a22b76c719e600047e23b80465a44d76abd.tar.gz
u-boot-56844a22b76c719e600047e23b80465a44d76abd.tar.bz2
u-boot-56844a22b76c719e600047e23b80465a44d76abd.zip
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 'common')
-rw-r--r--common/cmd_fdt.c3
-rw-r--r--common/fdt_support.c4
2 files changed, 3 insertions, 4 deletions
diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c
index 0593bad024..288a5c4382 100644
--- a/common/cmd_fdt.c
+++ b/common/cmd_fdt.c
@@ -450,7 +450,8 @@ int do_fdt (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
initrd_end = simple_strtoul(argv[3], NULL, 16);
}
- fdt_chosen(working_fdt, initrd_start, initrd_end, 1);
+ fdt_chosen(working_fdt, 1);
+ fdt_initrd(working_fdt, initrd_start, initrd_end, 1);
}
/* resize the fdt */
else if (strncmp(argv[1], "re", 2) == 0) {
diff --git a/common/fdt_support.c b/common/fdt_support.c
index a7773aba07..8ceeb0faa9 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -165,7 +165,7 @@ int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end, int force)
return 0;
}
-int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)
+int fdt_chosen(void *fdt, int force)
{
int nodeoffset;
int err;
@@ -215,8 +215,6 @@ int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force)
}
}
- fdt_initrd(fdt, initrd_start, initrd_end, force);
-
#ifdef CONFIG_OF_STDOUT_VIA_ALIAS
path = fdt_getprop(fdt, nodeoffset, "linux,stdout-path", NULL);
if ((path == NULL) || force)