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.

DM8148EVM - nand u-boot problems...including build....

I have a Mistral DM8148EVM. I am using EZSDK 5_05_01_04, on a Ubuntu 12.04LTS (with modified check_host script).

U-boot works just fine for booting from SD card, and I can rebuild and use mksdboot.sh and create an image that boots - GREAT! This means something is working right!

But, I want to run out of nand flash - that is where the problems start.

As a preface, I am using the instructions in the u-boot.pdf (in SDK) as well as the following link (which seem similar).

    http://processors.wiki.ti.com/index.php/DM814x_AM387x_PSP_U-Boot#Flashing_1st_stage_to_NAND_from_2nd_stage_in_SD_boot

--------

So first, I try to flash pre-built images into NAND:

   a) from the prebuilt images directly, I tried to flash u-boot.min.nand and u-boot.bin into nand - set the boot to nand - NOTHING from UART

   b) from another post - I saw that there was some ECC problem fixed with u-boot-xxxpsp-04.04.00.02. I took the pre-built images there - again NOTHING from UART

   c/) doing complete make of EZSDK, there was u-boot.min.nand (and u-boot.bin) in the targetfs/boot directory. I flashed those, and I got something out:

U-Boot 2010.06 (Oct 10 2012 - 14:08:25)

TI8148-GP rev 2.1

ARM clk: 600MHz
DDR clk: 400MHz

DRAM:  2 GiB
NAND:  HW ECC BCH8 Selected
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xca (Micron NAND 256MiB 3,3V 16-bit)
NAND bus width 8 instead 16 bit
No NAND device found!!!
0 MiB
Using default environment

The 2nd stage U-Boot will now be auto-loaded
Please do not interrupt the countdown till TI8148_EVM prompt if 2nd stage is already flashed
Hit any key to stop autoboot:  0 

no devices available
## Starting application at 0x81000000 ...

So, the first stage seems to boot, but it looks like it does NOT see (or have support for) the NAND device to read from? WTH?

------

...so being optimistic I tried to compile...thinking it was just a  small error

   1) I try to build the ezsdk 5.5 - u-boot directly - and I get the following:

make[1]: Entering directory `/home/tom/dm8148_ez5.5/board-support/u-boot-2010.06-psp04.04.00.01/board/ti/ti8148'
arm-none-linux-gnueabi-gcc   -Os  -fno-common -ffixed-r8 -msoft-float   -D__KERNEL__ -DTEXT_BASE=0x80700000 -I/home/tom/dm8148_ez5.5/board-support/u-boot-2010.06-psp04.04.00.01/include -fno-builtin -ffreestanding -nostdinc -isystem /opt/arm2009q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/include -pipe  -DCONFIG_ARM -D__ARM__ -marm  -mabi=aapcs-linux -mno-thumb-interwork -march=armv7-a -Wall -Wstrict-prototypes -fno-stack-protector   \
		-o evm.o evm.c -c
arm-none-linux-gnueabi-ar crv libti8148.a evm.o
r - evm.o
make[1]: Leaving directory `/home/tom/dm8148_ez5.5/board-support/u-boot-2010.06-psp04.04.00.01/board/ti/ti8148'
make -C board/ti/ti8148/ u-boot.lds
make[1]: Entering directory `/home/tom/dm8148_ez5.5/board-support/u-boot-2010.06-psp04.04.00.01/board/ti/ti8148'
make[1]: Nothing to be done for `u-boot.lds'.
make[1]: Leaving directory `/home/tom/dm8148_ez5.5/board-support/u-boot-2010.06-psp04.04.00.01/board/ti/ti8148'
UNDEF_SYM=`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/tom/dm8148_ez5.5/board-support/u-boot-2010.06-psp04.04.00.01 && 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 -L /opt/arm2009q1/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'
fs/fat/libfat.a(fat.o): In function `file_fat_detectfs':
fat.c:(.text+0x7a8): undefined reference to `dev_print'
fs/fat/libfat.a(fat.o): In function `fat_register_device':
fat.c:(.text+0x1258): undefined reference to `get_partition_info'
drivers/mmc/libmmc.a(mmc.o): In function `mmc_startup':
mmc.c:(.text+0xcfc): undefined reference to `init_part'
/opt/arm2009q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/libgcc.a(_dvmd_lnx.o): In function `__aeabi_ldiv0':
(.text+0x8): undefined reference to `raise'

  2) I try the new u-boot (psp-04.04.00.2) and get the following:

make[1]: Leaving directory `/home/tom/Downloads/t3/TI81XX-LINUX-PSP-04.04.00.02/src/u-boot/u-boot-04.04.00.02/board/ti/ti8148'
make -C board/ti/ti8148/ u-boot.lds
make[1]: Entering directory `/home/tom/Downloads/t3/TI81XX-LINUX-PSP-04.04.00.02/src/u-boot/u-boot-04.04.00.02/board/ti/ti8148'
make[1]: Nothing to be done for `u-boot.lds'.
make[1]: Leaving directory `/home/tom/Downloads/t3/TI81XX-LINUX-PSP-04.04.00.02/src/u-boot/u-boot-04.04.00.02/board/ti/ti8148'
UNDEF_SYM=`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/tom/Downloads/t3/TI81XX-LINUX-PSP-04.04.00.02/src/u-boot/u-boot-04.04.00.02 && 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 -L /opt/arm2009q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3 -lgcc -Map u-boot.map -o u-boot
/opt/arm2009q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/libgcc.a(_dvmd_lnx.o): In function `__aeabi_ldiv0':
(.text+0x8): undefined reference to `raise'

Any advice...please!

tom

  • Hello Tom,

    I think you have to strictly follow what is written in the EZSDK_HOME/board_support/docs/U-Boot NAND Support.pdf at section U-Boot NAND Support. The u-boot commands how to flash the images are at "DM814x and DM813x 1st Stage: and 2nd Stage:"

    Please, also ensure that your first stage is compiled with the "ti8148_evm_min_nand" configuration. This is not available among the pre-builts; you have to compile it.

    Double check that the EVM switch settings are for NAND boot.

    Alternatively, if you think that you are doing everything, how it is described in the guides and it is still not working, you could replace the busybox on the SD card with other much richer busybox(this is very helpful in other situations as well) that has mtd utils and to flash the NAND from booted Linux. This way you avoid the u-boot flashing step, which is the most problematic one I think.

    BR

    Vladimir