PPC: e500: calculate initrd_base like dt_base
authorScott Wood <scottwood@freescale.com>
Wed, 22 Aug 2012 14:55:41 +0000 (14:55 +0000)
committerAlexander Graf <agraf@suse.de>
Fri, 5 Oct 2012 00:35:11 +0000 (02:35 +0200)
While investigating dtb pad issues, I noticed that initrd_base wasn't taking
loadaddr into account the way dt_base was.  This seems wrong.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
hw/ppc/e500.c

index fc3fde0..feb712e 100644 (file)
@@ -540,7 +540,8 @@ void ppce500_init(PPCE500Params *params)
 
     /* Load initrd. */
     if (params->initrd_filename) {
-        initrd_base = (kernel_size + INITRD_LOAD_PAD) & ~INITRD_PAD_MASK;
+        initrd_base = (loadaddr + kernel_size + INITRD_LOAD_PAD) &
+            ~INITRD_PAD_MASK;
         initrd_size = load_image_targphys(params->initrd_filename, initrd_base,
                                           ram_size - initrd_base);