Re: [patch 6/6] Walnut zImage wrapper
From: Josh Boyer <hidden>
Date: 2007-09-24 12:03:17
Subsystem:
linux for powerpc (32-bit and 64-bit), the rest · Maintainers:
Madhavan Srinivasan, Michael Ellerman, Linus Torvalds
On Mon, 24 Sep 2007 09:49:33 +0200 Wolfgang Grandegger [off-list ref] wrote:
The addition of treeboot-walnut.c breaks compilation of Linux-2.6 for
the lite5200 using the ppc_6xx toolchain of the ELDK 4.1:
MODPOST vmlinux.o
WARNING: vmlinux.o(.text+0x14): Section mismatch: reference to
.init.text:prom_init (between '__start' and '__after_mmu_off')
WARNING: vmlinux.o(.text+0x28): Section mismatch: reference to
.init.text:early_init (between '__start' and '__after_mmu_off')
WARNING: vmlinux.o(.text+0x340c): Section mismatch: reference to
.init.text:machine_init (between 'start_here' and 'set_context')
WARNING: vmlinux.o(.text+0x3414): Section mismatch: reference to
.init.text:MMU_init (between 'start_here' and 'set_context')
WARNING: vmlinux.o(.text+0x343e): Section mismatch: reference to
.init.text:start_kernel (between 'start_here' and 'set_context')
WARNING: vmlinux.o(.text+0x3442): Section mismatch: reference to
.init.text:start_kernel (between 'start_here' and 'set_context')
GEN .version
CHK include/linux/compile.h
UPD include/linux/compile.h
CC init/version.o
LD init/built-in.o
LD vmlinux
SYSMAP System.map
BOOTAS arch/powerpc/boot/string.o
BOOTAS arch/powerpc/boot/crt0.o
BOOTCC arch/powerpc/boot/stdio.o
BOOTCC arch/powerpc/boot/main.o
BOOTCC arch/powerpc/boot/flatdevtree.o
BOOTCC arch/powerpc/boot/flatdevtree_misc.o
BOOTCC arch/powerpc/boot/ns16550.o
BOOTCC arch/powerpc/boot/serial.o
BOOTCC arch/powerpc/boot/simple_alloc.o
BOOTAS arch/powerpc/boot/div64.o
BOOTAS arch/powerpc/boot/util.o
BOOTCC arch/powerpc/boot/gunzip_util.o
BOOTCC arch/powerpc/boot/elf_util.o
BOOTCC arch/powerpc/boot/inffast.o
BOOTCC arch/powerpc/boot/inflate.o
BOOTCC arch/powerpc/boot/inftrees.o
BOOTCC arch/powerpc/boot/devtree.o
BOOTCC arch/powerpc/boot/oflib.o
BOOTCC arch/powerpc/boot/ofconsole.o
BOOTCC arch/powerpc/boot/4xx.o
BOOTCC arch/powerpc/boot/ebony.o
BOOTCC arch/powerpc/boot/mv64x60.o
BOOTCC arch/powerpc/boot/mpsc.o
BOOTCC arch/powerpc/boot/mv64x60_i2c.o
BOOTCC arch/powerpc/boot/cuboot.o
BOOTCC arch/powerpc/boot/bamboo.o
BOOTAR arch/powerpc/boot/wrapper.a
BOOTCC arch/powerpc/boot/of.o
BOOTCC arch/powerpc/boot/cuboot-83xx.o
BOOTCC arch/powerpc/boot/cuboot-85xx.o
BOOTCC arch/powerpc/boot/holly.o
BOOTCC arch/powerpc/boot/cuboot-ebony.o
BOOTCC arch/powerpc/boot/treeboot-ebony.o
BOOTCC arch/powerpc/boot/prpmc2800.o
BOOTAS arch/powerpc/boot/ps3-head.o
BOOTAS arch/powerpc/boot/ps3-hvcall.o
BOOTCC arch/powerpc/boot/ps3.o
BOOTCC arch/powerpc/boot/treeboot-bamboo.o
BOOTCC arch/powerpc/boot/cuboot-sequoia.o
BOOTCC arch/powerpc/boot/treeboot-walnut.o
{standard input}: Assembler messages:
{standard input}:184: Error: Unrecognized opcode: `mfdcr'
{standard input}:185: Error: Unrecognized opcode: `mfdcr'
{standard input}:186: Error: Unrecognized opcode: `mfdcr'
{standard input}:217: Error: Unrecognized opcode: `mtdcr'
make[1]: *** [arch/powerpc/boot/treeboot-walnut.o] Error 1
make: *** [uImage] Error 2
It looks like the ppc_6xx toolchain does not know the opcode above. I
wonder why files for other PowerPC sub-archs like 4xx are compiled with
the wrong compiler. Have I missed something?No, you haven't missed anything. I need a one line patch to fix it. Could you try the patch below to make sure it works for you?
And the WARNING above on "Section mismatch" looks strange as well (still present in 2.6.23-rc7).
Those warnings should be gone with Paul's latest tree. (They will remain for 2.6.23.) josh Pass the correct -mcpu option for treeboot-walnut.o to avoid unrecognized opcodes. Signed-off-by: Josh Boyer <redacted>
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index c1582b6..8e6d36b 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile@@ -33,6 +33,7 @@ BOOTCFLAGS += -I$(obj) -I$(srctree)/$(obj) $(obj)/4xx.o: BOOTCFLAGS += -mcpu=440 $(obj)/ebony.o: BOOTCFLAGS += -mcpu=440 +$(obj)/treeboot-walnut.o: BOOTFLAGS += -mcpu=405 zlib := inffast.c inflate.c inftrees.c zlibheader := inffast.h inffixed.h inflate.h inftrees.h infutil.h