This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

UBoot in EZSDK 5.04.00.11 fails to make after it has been built once

If I "make u-boot_clean" at the top of the EZSDK and then "make u-boot", the build succeeds.  However, if I execute a second "make u-boot", the following error occurs:

make[2]: Leaving directory `/home/user/ti-ezsdk_dm814x-evm_5_04_00_11/board-support/u-boot-2010.06-psp04.04.00.01/board/ti/ti8148'
make -C board/ti/ti8148/ u-boot.lds
make[2]: Entering directory `/home/user/ti-ezsdk_dm814x-evm_5_04_00_11/board-support/u-boot-2010.06-psp04.04.00.01/board/ti/ti8148'
make[2]: Nothing to be done for `u-boot.lds'.
make[2]: Leaving directory `/home/user/ti-ezsdk_dm814x-evm_5_04_00_11/board-support/u-boot-2010.06-psp04.04.00.01/board/ti/ti8148'
UNDEF_SYM=`/home/user/CodeSourcery/Sourcery_G++_Lite//bin/arm-none-linux-gnueabi-objdump -x board/ti/ti8148/libti8148.a lib/libgeneric.a lib/lzma/liblzma.a lib/lzo/liblzo.a arch/arm/cpu/arm_cortexa8/libarm_cortexa8.a arch/arm/cpu/arm_cortexa8/ti81xx/libti81xx.a arch/arm/lib/libarm.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a fs/yaffs2/libyaffs2.a fs/ubifs/libubifs.a net/libnet.a disk/libdisk.a drivers/bios_emulator/libatibiosemu.a drivers/block/libblock.a drivers/dma/libdma.a drivers/fpga/libfpga.a drivers/gpio/libgpio.a drivers/hwmon/libhwmon.a drivers/i2c/libi2c.a drivers/input/libinput.a drivers/misc/libmisc.a drivers/mmc/libmmc.a drivers/mtd/libmtd.a drivers/mtd/nand/libnand.a drivers/mtd/onenand/libonenand.a drivers/mtd/ubi/libubi.a drivers/mtd/spi/libspi_flash.a drivers/net/libnet.a drivers/net/phy/libphy.a drivers/pci/libpci.a drivers/pcmcia/libpcmcia.a drivers/power/libpower.a drivers/spi/libspi.a drivers/rtc/librtc.a drivers/serial/libserial.a drivers/twserial/libtws.a drivers/usb/gadget/libusb_gadget.a drivers/usb/host/libusb_host.a drivers/usb/musb/libusb_musb.a drivers/usb/phy/libusb_phy.a drivers/video/libvideo.a drivers/watchdog/libwatchdog.a common/libcommon.a lib/libfdt/libfdt.a api/libapi.a post/libpost.a | sed  -n -e 's/.*\(__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`; cd /home/user/ti-ezsdk_dm814x-evm_5_04_00_11/board-support/u-boot-2010.06-psp04.04.00.01 && /home/user/CodeSourcery/Sourcery_G++_Lite//bin/arm-none-linux-gnueabi-ld -Bstatic -T u-boot.lds  -Ttext 0x80700000 $UNDEF_SYM arch/arm/cpu/arm_cortexa8/start.o --start-group lib/libgeneric.a lib/lzma/liblzma.a lib/lzo/liblzo.a arch/arm/cpu/arm_cortexa8/libarm_cortexa8.a arch/arm/cpu/arm_cortexa8/ti81xx/libti81xx.a arch/arm/lib/libarm.a fs/cramfs/libcramfs.a fs/fat/libfat.a fs/fdos/libfdos.a fs/jffs2/libjffs2.a fs/reiserfs/libreiserfs.a fs/ext2/libext2fs.a fs/yaffs2/libyaffs2.a fs/ubifs/libubifs.a net/libnet.a disk/libdisk.a drivers/bios_emulator/libatibiosemu.a drivers/block/libblock.a drivers/dma/libdma.a drivers/fpga/libfpga.a drivers/gpio/libgpio.a drivers/hwmon/libhwmon.a drivers/i2c/libi2c.a drivers/input/libinput.a drivers/misc/libmisc.a drivers/mmc/libmmc.a drivers/mtd/libmtd.a drivers/mtd/nand/libnand.a drivers/mtd/onenand/libonenand.a drivers/mtd/ubi/libubi.a drivers/mtd/spi/libspi_flash.a drivers/net/libnet.a drivers/net/phy/libphy.a drivers/pci/libpci.a drivers/pcmcia/libpcmcia.a drivers/power/libpower.a drivers/spi/libspi.a drivers/rtc/librtc.a drivers/serial/libserial.a drivers/twserial/libtws.a drivers/usb/gadget/libusb_gadget.a drivers/usb/host/libusb_host.a drivers/usb/musb/libusb_musb.a drivers/usb/phy/libusb_phy.a drivers/video/libvideo.a drivers/watchdog/libwatchdog.a common/libcommon.a lib/libfdt/libfdt.a api/libapi.a post/libpost.a board/ti/ti8148/libti8148.a --end-group /home/user/ti-ezsdk_dm814x-evm_5_04_00_11/board-support/u-boot-2010.06-psp04.04.00.01/arch/arm/lib/eabi_compat.o -L /home/user/CodeSourcery/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3 -lgcc -Map u-boot.map -o u-boot
common/libcommon.a(hush.o): In function `run_list_real':
hush.c:(.text+0x1dbc): undefined reference to `do_bootd'
make[1]: *** [u-boot] Error 1
make[1]: Leaving directory `/home/user/ti-ezsdk_dm814x-evm_5_04_00_11/board-support/u-boot-2010.06-psp04.04.00.01'
make: *** [u-boot-min] Error 2

Any ideas?

  • Hi

    Did you try source ./linux_devkit/enviroment_setup and then run it again?

    Regards,

    Jun 

  • hi Charles,

    You have to modify your $(EZSDK)/Makefile as:

    u-boot-min:
        $(MAKE) -C $(PSP_INSTALL_DIR)/u-boot-* $(UBOOT_BUILD_VARS) distclean

        $(MAKE) -C $(PSP_INSTALL_DIR)/u-boot-* $(UBOOT_BUILD_VARS) $(MIN_UBOOT_CONFIG)

        $(MAKE) -C $(PSP_INSTALL_DIR)/u-boot-* $(UBOOT_BUILD_VARS) u-boot.ti

        cd $(PSP_INSTALL_DIR)/u-boot-*; mv u-boot.min.sd MLO; cd -


    u-boot-min_clean:

        rm -f $(PSP_INSTALL_DIR)/u-boot-*/MLO


    u-boot: u-boot-min

        $(MAKE) -C $(PSP_INSTALL_DIR)/u-boot-* $(UBOOT_BUILD_VARS) distclean

        $(MAKE) -C $(PSP_INSTALL_DIR)/u-boot-* $(UBOOT_BUILD_VARS) $(DEFAULT_UBOOT_CONFIG)

        $(MAKE) -C $(PSP_INSTALL_DIR)/u-boot-* $(UBOOT_BUILD_VARS) u-boot.ti

    Thus MLO and u-boot.bin are build successfully more than once.

    Best regards,

    Pavel

  • Thanks Pavel. The changes suggested worked fine with my latest EZSDK release.

  • Hello

    I am using ti-ezsdk_dm814x-evm_5_05_02_00.

    I already configured PATH variable for using the GCC :

    export PATH=$PATH:/home/rajg/CodeSourcery/Sourcery_G++_Lite/bin

    I am compiling U-Boot-MIN for uart booting.

    I used the following command :

    make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm u-boot.ti

    Following errors are seen :

    board/ti/ti8148/libti8148.a --end-group /home/rajg/ti-ezsdk_dm814x-evm_5_05_02_00/board-support/u-boot-2010.06-psp04.04.00.01/arch/arm/lib/eabi_compat.o -L /home/rajg/CodeSourcery/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3 -lgcc -Map u-boot.map -o u-boot
    arch/arm/lib/libarm.a(board.o):(.data+0x8): undefined reference to `env_init'
    arch/arm/lib/libarm.a(board.o):(.data+0x10): undefined reference to `serial_init'
    common/libcommon.a(cmd_load.o): In function `do_load_serial_bin':
    cmd_load.c:(.text+0x5e8): undefined reference to `serial_setbrg'
    cmd_load.c:(.text+0x930): undefined reference to `serial_setbrg'
    common/libcommon.a(cmd_nvedit.o): In function `_do_setenv':
    cmd_nvedit.c:(.text+0x340): undefined reference to `serial_setbrg'
    common/libcommon.a(console.o): In function `puts':
    console.c:(.text+0x358): undefined reference to `serial_puts'
    common/libcommon.a(console.o): In function `serial_printf':
    console.c:(.text+0x3f4): undefined reference to `serial_puts'
    common/libcommon.a(console.o): In function `putc':
    console.c:(.text+0x420): undefined reference to `serial_putc'
    common/libcommon.a(console.o): In function `tstc':
    console.c:(.text+0x438): undefined reference to `serial_tstc'
    common/libcommon.a(console.o): In function `getc':
    console.c:(.text+0x450): undefined reference to `serial_getc'
    common/libcommon.a(env_common.o): In function `env_get_char':
    env_common.c:(.text+0x5c): undefined reference to `env_get_char_spec'
    common/libcommon.a(env_common.o): In function `env_crc_update':
    env_common.c:(.text+0x94): undefined reference to `env_ptr'
    common/libcommon.a(env_common.o): In function `set_default_env':
    env_common.c:(.text+0xd4): undefined reference to `env_ptr'
    common/libcommon.a(env_common.o): In function `env_relocate':
    env_common.c:(.text+0x10c): undefined reference to `env_relocate_spec'
    env_common.c:(.text+0x124): undefined reference to `env_ptr'
    common/libcommon.a(stdio.o): In function `stdio_init':
    stdio.c:(.text+0x110): undefined reference to `serial_putc'
    stdio.c:(.text+0x114): undefined reference to `serial_puts'
    stdio.c:(.text+0x118): undefined reference to `serial_getc'
    stdio.c:(.text+0x11c): undefined reference to `serial_tstc'
    make: *** [u-boot] Error 1

  • The fixes suggested by Pavel back in May 2012 (above) is still not in EZSDK 5.05.02.00.  So if you are saying, as the thread is named, that you compiled okay the first time but failed the second time, then you should apply Pavel's fix.  I.e, start each step with "distclean".

  • Hello Daniel

    Thanks for your response.I restarted with distclean step.

    Thereafter, I executed the 2 steps :

    make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm ti8148_evm_min_uart

    make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm u-boot.ti

    ===============================================================================

    With this, the compilation was successful .

    This means that the 3 steps as mentioned above dont succeed in the first go.

    Anyway, I m able to compile.

    Thanks