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.

AM4379: QSPI boot

Part Number: AM4379
Other Parts Discussed in Thread: TMDXSK437X

Hi all,

My HW: TMDXSK437X
My SW: ti-processor-sdk-linux-rt-am437x-evm-03.03.00.04-Linux-x86-Install.bin

I'd like to know how to boot from SPI Flash.
Now, I run following instruction.

make am43xx_evm_qspiboot_config

make

Then the following error is output.

make am43xx_evm_qspiboot_config
#
# configuration written to .config
#
make

CHK include/config/uboot.release
CHK include/generated/version_autogenerated.h
CHK include/generated/timestamp_autogenerated.h
UPD include/generated/timestamp_autogenerated.h
CC lib/asm-offsets.s
lib/asm-offsets.c:1:0: error: bad value (armv5) for -march= switch
/*
^
make[1]: *** [lib/asm-offsets.s] Error 1
make: *** [prepare0] Error 2

Please tell me how to fix this error.

By the way, I am referring to the following link.

e2e.ti.com/.../1751934

Best regards,
Sasaki

  • The software team have been notified. They will respond here.
  • Hello Sasaki,

    You have to cross-compile it. To do so, go to Processor SDK's top directory, amend the line UBOOT_MACHINE=am43xx_evm_qspiboot_defconfig in Rules.make file, then issue a make u-boot command to recompile the U-Boot.

    Best regards,
    Kemal

  • Hi Kemal-san,

    Thank you for your support!

    Thankfully there was progress.

    Now, with reference to the link below, I executed "Writing to QSPI from U-Boot" and "Booting from QSPI"  .

    http://processors.wiki.ti.com/index.php/Linux_Core_U-Boot_User's_Guide#AM43xx_support

    Hit any key to stop autoboot: 0
    => mmc rescan
    => fatload mmc 0 ${loadaddr} u-boot.bin
    reading u-boot.bin
    438840 bytes read in 160 ms (2.6 MiB/s)
    => sf probe 0
    SF: Detected MX25L51235F with page size 256 Bytes, erase size 64 KiB, total 64 MiB, mapped at 30000000
    => sf erase 0x0 0x100000
    SF: 1048576 bytes @ 0x0 Erased: OK
    => sf write ${loadaddr} 0x0 ${filesize}
    device 0 offset 0x0, size 0x6b238
    SF: 438840 bytes @ 0x0 Written: OK
    => sf probe 0
    SF: Detected MX25L51235F with page size 256 Bytes, erase size 64 KiB, total 64 MiB, mapped at 30000000
    => sf read ${loadaddr} 0x1a0000 0x800000
    device 0 offset 0x1a0000, size 0x800000
    SF: 8388608 bytes @ 0x1a0000 Read: OK
    => sf read ${fdtaddr} 0x100000 0x80000
    device 0 offset 0x100000, size 0x80000
    SF: 524288 bytes @ 0x100000 Read: OK
    => setenv bootargs console=${console} spi-ti-qspi.enable_qspi=1 root=/dev/mtdblock6 rootfstype=jffs2
    => bootz ${loadaddr} - ${fdtaddr}
    Bad Linux ARM zImage magic!

    However, don't boot QSPI as described above.

    I copied the following three files to the SD card using create_sdcard.sh.

    • MLO-am437x-evm from prebuilt-image (renamed it to MLO)
    • u-boot-am437x-evm.img from prebuilt-image (renamed it to u-boot.img)
    • u-boot.bin generated by the instruction of "make u-boot"

    Is there something missing?

    Best regards,

    Sasaki

  • Hi Kemal-san,

    I solved the error by preparing zImage and dtb file.
    In addition, I was able to confirm that the Uboot starts in QSPI boot.
    Thank you very much for your support!

    Best regards,
    Sasaki