powerpc: Add a new platform for maple so a different link address can be set

Message ID 20100130001820.GA25629@minyard.local
State Accepted, archived
Delegated to: Benjamin Herrenschmidt
Headers show

Commit Message

Corey Minyard Jan. 30, 2010, 12:18 a.m.
From: Corey Minyard <cminyard@mvista.com>

The maple platform failed to load because it's firmware could not take a
link address of 0x4000000.  A new platform type with a link address of
0x400000 had to be created for the maple.

Signed-off-by: Corey Minyard <cminyard@mvista.com>
Without this patch the firmware loader says it is unable to parse the
ELF header and dies.  This patch lets 2.6.31 boot without issue.  At
the current head of k.org git, at least with an NFS mount, I'm getting:
  Kernel panic - not syncing: No init found
So I'm not sure what the deal is there, but this patch is still required
to get the firmware to load the kernel.


Index: linux-2.6.31/arch/powerpc/boot/wrapper
--- linux-2.6.31.orig/arch/powerpc/boot/wrapper
+++ linux-2.6.31/arch/powerpc/boot/wrapper
@@ -145,6 +145,10 @@  pseries)
+    platformo=$object/of.o
+    link_address='0x400000'
+    ;;
@@ -313,7 +319,7 @@  fi
 # post-processing needed for some platforms
 case "$platform" in
     $objbin/addnote "$ofile"
Index: linux-2.6.31/arch/powerpc/boot/Makefile
--- linux-2.6.31.orig/arch/powerpc/boot/Makefile
+++ linux-2.6.31/arch/powerpc/boot/Makefile
@@ -167,7 +167,7 @@  quiet_cmd_wrap	= WRAP    $@
 		$(if $3, -s $3)$(if $4, -d $4)$(if $5, -i $5) vmlinux
 image-$(CONFIG_PPC_PSERIES)		+= zImage.pseries
-image-$(CONFIG_PPC_MAPLE)		+= zImage.pseries
+image-$(CONFIG_PPC_MAPLE)		+= zImage.maple
 image-$(CONFIG_PPC_IBM_CELL_BLADE)	+= zImage.pseries
 image-$(CONFIG_PPC_PS3)			+= dtbImage.ps3
 image-$(CONFIG_PPC_CELLEB)		+= zImage.pseries
@@ -346,7 +346,7 @@  install: $(CONFIGURE) $(addprefix $(obj)
 clean-files += $(image-) $(initrd-) cuImage.* dtbImage.* treeImage.* \
 	zImage zImage.initrd zImage.chrp zImage.coff zImage.holly \
 	zImage.iseries zImage.miboot zImage.pmac zImage.pseries \
-	simpleImage.* otheros.bld *.dtb
+	zImage.maple simpleImage.* otheros.bld *.dtb
 # clean up files cached by wrapper
 clean-kernel := vmlinux.strip vmlinux.bin