[U-Boot] sbc8548 build broken?

Hello Mr. Denk,
You wrote:
you wrote:
I downloaded the ELDK 4.2 and installed it. I got the u-boot source from git://git.denx.de/u-boot-mpc85xx.git.
When I try to build u-boot for sbc8548 I get the following error:
"arch/powerpc/cpu/mpc8xxx/ddr/libddr.o: In function `fsl_ddr_compute':" "/home/rhurdle/proj/u-boot/arch/powerpc/cpu/mpc8xxx/ddr/main.c:375: undefined reference to `fsl_ddr_get_dimm_params'" "make: *** [u-boot] Error 1"
I cannot confirm this - using current top of tree I get:
- MAKEALL_LOGDIR=/work/wd/tmp-ppc-LOG
- BUILD_DIR=/work/wd/tmp-ppc
- ./MAKEALL sbc8548
Configuring for sbc8548 board... text data bss dec hex filename 199928 8956 24576 233460 38ff4 /work/wd/tmp-ppc/u-boot
--------------------- SUMMARY ---------------------------- Boards compiled: 1
I have obtained the source from the current top of the tree.
When I make using the following:
make CROSS_COMPILE=ppc_85xx- sbc8548_PCI_33_PCIE_config make CROSS_COMPILE=ppc_85xx- OPTFLAGS=-O2 all
I am still having the same undefined reference above.
Should I be building with ppc_8xx instead? If yes, why?
Thanks,
Robert Hurdle

Hello Mr. Denk,
You wrote:
you wrote:
I downloaded the ELDK 4.2 and installed it. I got the u-boot source from git://git.denx.de/u-boot-mpc85xx.git.
When I try to build u-boot for sbc8548 I get the following error:
"arch/powerpc/cpu/mpc8xxx/ddr/libddr.o: In function `fsl_ddr_compute':" "/home/rhurdle/proj/u-boot/arch/powerpc/cpu/mpc8xxx/ddr/main.c:375: undefined reference to `fsl_ddr_get_dimm_params'" "make: *** [u-boot] Error 1"
I cannot confirm this - using current top of tree I get:
- MAKEALL_LOGDIR=/work/wd/tmp-ppc-LOG
- BUILD_DIR=/work/wd/tmp-ppc
- ./MAKEALL sbc8548
Configuring for sbc8548 board...
text data bss dec hex filename
199928 8956 24576 233460 38ff4 /work/wd/tmp-ppc/u-boot
--------------------- SUMMARY ---------------------------- Boards compiled: 1 ----------------------------------------------------------
I have obtained the source from the current top of the tree.
When I make using the following:
make CROSS_COMPILE=ppc_85xx- sbc8548_PCI_33_PCIE_config make CROSS_COMPILE=ppc_85xx- OPTFLAGS=-O2 all I am still having the same undefined reference above. Should I be building with ppc_8xx instead? If yes, why?
Thanks,
Robert Hurdle
U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
$ CROSS_COMPILE=powerpc-linux- ARCH=powerpc ./MAKEALL sbc8548_PCI_33_PCIE Configuring for sbc8548_PCI_33_PCIE - Board: sbc8548, Options: PCI,33,PCIE text data bss dec hex filename 224622 19288 25000 268910 41a6e ./u-boot
--------------------- SUMMARY ---------------------------- Boards compiled: 1 ----------------------------------------------------------
So can you try MAKEALL ?
M

On Nov 17, 2011, at 5:33 PM, Robert Hurdle wrote:
Hello Mr. Denk,
You wrote:
you wrote:
I downloaded the ELDK 4.2 and installed it. I got the u-boot source from git://git.denx.de/u-boot-mpc85xx.git.
When I try to build u-boot for sbc8548 I get the following error:
"arch/powerpc/cpu/mpc8xxx/ddr/libddr.o: In function `fsl_ddr_compute':" "/home/rhurdle/proj/u-boot/arch/powerpc/cpu/mpc8xxx/ddr/main.c:375: undefined reference to `fsl_ddr_get_dimm_params'" "make: *** [u-boot] Error 1"
I cannot confirm this - using current top of tree I get:
- MAKEALL_LOGDIR=/work/wd/tmp-ppc-LOG
- BUILD_DIR=/work/wd/tmp-ppc
- ./MAKEALL sbc8548
Configuring for sbc8548 board... text data bss dec hex filename 199928 8956 24576 233460 38ff4 /work/wd/tmp-ppc/u-boot
--------------------- SUMMARY ---------------------------- Boards compiled: 1
I have obtained the source from the current top of the tree.
When I make using the following:
make CROSS_COMPILE=ppc_85xx- sbc8548_PCI_33_PCIE_config make CROSS_COMPILE=ppc_85xx- OPTFLAGS=-O2 all I am still having the same undefined reference above. Should I be building with ppc_8xx instead? If yes, why?
Thanks,
This appears to be due to you trying to build with OPTFLAGS=-O2. Remove that and see what happens.
- k

On Nov 17, 2011, at 5:33 PM, Robert Hurdle wrote:
Hello Mr. Denk,
You wrote:
you wrote:
I downloaded the ELDK 4.2 and installed it. I got the u-boot source from git://git.denx.de/u-boot-mpc85xx.git.
When I try to build u-boot for sbc8548 I get the following error:
"arch/powerpc/cpu/mpc8xxx/ddr/libddr.o: In function `fsl_ddr_compute':" "/home/rhurdle/proj/u-boot/arch/powerpc/cpu/mpc8xxx/ddr/main.c:375: undefined reference to `fsl_ddr_get_dimm_params'" "make: *** [u-boot] Error 1"
I cannot confirm this - using current top of tree I get:
- MAKEALL_LOGDIR=/work/wd/tmp-ppc-LOG
- BUILD_DIR=/work/wd/tmp-ppc
- ./MAKEALL sbc8548
Configuring for sbc8548 board...
text data bss dec hex filename
199928 8956 24576 233460 38ff4 /work/wd/tmp-ppc/u-boot
--------------------- SUMMARY ---------------------------- Boards compiled: 1 ----------------------------------------------------------
I have obtained the source from the current top of the tree.
When I make using the following: make CROSS_COMPILE=ppc_85xx- sbc8548_PCI_33_PCIE_config make CROSS_COMPILE=ppc_85xx- OPTFLAGS=-O2 all
I am still having the same undefined reference above. Should I be building with ppc_8xx instead? If yes, why?
Thanks,
This appears to be due to you trying to build with OPTFLAGS=-O2. Remove that and see what happens.
That seems to be a bug in the compiler, if you want -O2, try ELDK5.1 (which has newer compiler).
M

Dear Marek Vasut,
In message 201111180601.20086.marek.vasut@gmail.com you wrote:
When I make using the following: make CROSS_COMPILE=ppc_85xx- sbc8548_PCI_33_PCIE_config make CROSS_COMPILE=ppc_85xx- OPTFLAGS=-O2 all
I am still having the same undefined reference above. Should I be building with ppc_8xx instead? If yes, why?
Thanks,
This appears to be due to you trying to build with OPTFLAGS=-O2. Remove that and see what happens.
That seems to be a bug in the compiler, if you want -O2, try ELDK5.1 (which has newer compiler).
No. He is using CROSS_COMPILE=ppc_85xx- which means ELDK 4.2 or similar. And there is no such compiler problem with any of these. The "-O2" is just inappropriate here.
Best regards,
Wolfgang Denk

On Fri, Nov 18, 2011 at 07:19:52AM +0100, Wolfgang Denk wrote:
Dear Marek Vasut,
In message 201111180601.20086.marek.vasut@gmail.com you wrote:
When I make using the following: make CROSS_COMPILE=ppc_85xx- sbc8548_PCI_33_PCIE_config make CROSS_COMPILE=ppc_85xx- OPTFLAGS=-O2 all
I am still having the same undefined reference above. Should I be building with ppc_8xx instead? If yes, why?
Thanks,
This appears to be due to you trying to build with OPTFLAGS=-O2. Remove that and see what happens.
That seems to be a bug in the compiler, if you want -O2, try ELDK5.1 (which has newer compiler).
No. He is using CROSS_COMPILE=ppc_85xx- which means ELDK 4.2 or similar. And there is no such compiler problem with any of these. The "-O2" is just inappropriate here.
Regardless of "appropriateness", it shouldn't break with -O2 other than possibly not meeting space constraints.
arch/powerpc/cpu/mpc8xxx/ddr/main.c references fsl_ddr_get_dimm_params() when CONFIG_DDR_SPD and CONFIG_SPD_EEPROM are unset (both are unset on sbc8548). sbc8548 board code does not supply this function. The code is broken. It builds with some toolchains because it seems that nothing in arch/powerpc/cpu/mpc8xxx/ddr/main.c is ever referenced on this board, so it all gets gc-sectioned away. Apparently for some reason that isn't happening properly with -O2 on some toolchains -- but it's not something we should be relying on for anything other than size optimization.
-Scott
participants (5)
-
Kumar Gala
-
Marek Vasut
-
Robert Hurdle
-
Scott Wood
-
Wolfgang Denk