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.

U-boot failed on AM437x QSPI boot

Guru 15510 points
Other Parts Discussed in Thread: TPS65218
Hi,

I have question about AM437x QSPI boot.
The board is customer board and using Linux SDK v1.00.00.00.

My customer are using QSPI boot but the u-boot won't boot.
No message are displayed on serial console.

They searched the reason and found out that "Global Data(gd)" of u-boot wasn't initialized.
And they refered to "flags"of gd which was not initialized by using serial driver 
and found out that the data abort exception was occuring.

They took the following workaround and confirmed that it became able to boot from QSPI.
<Workaround>
They add the process which clears gd area to zero at the top of s_init() in u-boot.

I can't find this issue in the following release note of U-boot
but is this known issue in SDK v1.00.00.00?
processors.wiki.ti.com/.../

If yes, is this issue been fixed in the Newest SDK v2.00.00.00?

By the way, when the customer was using SDK v7.01.00.00
this issued didn't occured and QSPI boot was running fine.

best regards,
g.f.

  • Hi,
    I have additional question.

    In U-boot Release note of SDK v1.00.00.00 and v2.00.00.00, it said "QSPI boot is not working".
    But as I mentioned above, QSPI boot was working at SDK v7.01.00.00.

    Why QSPI Boot became not working from SDK v1?
    I need to know the details to answer to my customer.

    best regards,
    g.f.
  • g.f.,

    g.f. said:
    In U-boot Release note of SDK v1.00.00.00 and v2.00.00.00, it said "QSPI boot is not working".
    But as I mentioned above, QSPI boot was working at SDK v7.01.00.00.

    Yes, this is a known issue with both releases.

    g.f. said:
    Why QSPI Boot became not working from SDK v1?
    I need to know the details to answer to my customer.

    That correlates with what we have seen. Unfortunately, U-Boot changed releases and something in the change caused the issue. We have seen the issue similar to what your customer has with improperly initialized data. However, we have been able to determine why.

  • Hi RonB,

    Thank you for the reply.

    I have questions about your following answer.
    >However, we have been able to determine why.
    What do you mean? Was the cause of this problem revealed?
    If yes, please share the details.

    Are TI planning to fix this issue in the next SDK release?

    best regards,
    g.f.
  • g.f.,

    I'm sorry, I should have said "we have NOT been able to determine why".

    At this time, it is NOT planned to be fixed in the next release (December). But, we do plan to fix it and I would expect 1Q16 should have a fix.

  • Hi RonB,

    Thank you for the reply and sorry for the delay.

    I understood about the schedule of the SDK which will fix the QSPI boot.

    But sorry, let me ask to make me sure.
    So, you are searching for why "Global Data(gd)" of u-boot
    isn't initialized in SDKv1.00/2.00, is it correct?

    As I mentioned in the first post, right now my customer are clearing "Global Data(gd)"area to zero as workaround
    and it boots from QSPI flash successfully.
    If possible, can you please give us an opinion of whether this workaround is correct or not?

    best regards,
    g.f.
  • g.f.

    We've found a fix for the qspi problem on AM437x and it will be in our next release at the beginning of the year.

    We found that this and this fixed the problem in limited bench testing. These patches are now undergoing full system test and will be available in the next release. 

    The GD workaround was not needed using these changes. I would recommend trying the two patches and seeing if that solves the problem.

  • Hi Ron,

    Thank you for the reply.
    I'm grad to hear that QSPI problem is fixed in bench test.

    I told my customer to try the two paches.

    When system test are done, can you please inform me that QSPI problem are
    either fixed or not fixed at the systems test?

    best regards,
    g.f.
  • Hi RonB,

    Have the QSPI booting issue been fixed in the latest release?

    I checked the each U-Boot Release Notes for the latest release and the older release.

     For the older release: http://processors.wiki.ti.com/index.php?title=Processor_SDK_Linux_U-Boot_Release_Notes&direction=prev&oldid=211585

     For the latest release: http://processors.wiki.ti.com/index.php/Processor_SDK_Linux_U-Boot_Release_Notes

    Known Issue ID LCPD-791 seems to have been removed in the latest release.

    Best regards,

    Daisuke

  • Hi Ron,

    It seem that new Linux SDK v02_00_01_07 for AM437x was release at January 8th, 2016.
    software-dl.ti.com/.../index_FDS.html
    I checked the release note and there are no information about QSPI boot issue.

    Is QSPI boot issues fixed in this new released Linux SDK?

    best regards,
    g.f.
  • I just booted from QSPI using SDK 02.00.01.07.

    Steve K.

  • Hi Steve,

    Thank you for the reply.
    I understood.

    best regards,
    g.f.
  • Hi Steve,
    i'am using AM437x SK and SDK 02.00.01.07,but i can not boot from QSPI , any idea?

    best regards,
    sam
  • Hi Steve
    I'am using AM437x SK and SDK 02.00.01.07, but i can not boot from QSPI , any idea?

    best regards,
  • Did you:
    make am43xx_evm_qspiboot_config
    make

    And then flash u-boot.bin to the QSPI.

    Steve K.
  • Hi Steve,
    Thank you for your reply.
    I'v do what you say. I can even boot for QSPI. but it halt on "Starting kernel ..." .

    Use same zImage and DTB and u-boot env config ,it can boot from sd card and work well.


    here is log for QSPI boot


    U-Boot 2015.07-g84d3097-dirty (Feb 29 2016 - 10:35:53 +0800)

    I2C: ready
    DRAM: 1 GiB
    PMIC: TPS65218
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    SF: Detected N25Q256 with page size 256 Bytes, erase size 4 KiB, total 32 MiB, mapped at 30000000
    SF: Warning - Only lower 16MiB accessible, Full access #define CONFIG_SPI_FLASH_BAR
    *** Warning - bad CRC, using default environment

    Net: <ethaddr> not set. Validating first E-fuse MAC
    cpsw, usb_ether
    Hit any key to stop autoboot: 0
    U-Boot#
    U-Boot# boot
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading boot.scr
    ** Unable to read file boot.scr **
    reading uEnv.txt
    740 bytes read in 7 ms (102.5 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc0 ...
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading uEnv.txt
    740 bytes read in 7 ms (102.5 KiB/s)
    Loaded environment from
    Importing environment from mmc0 ...
    reading zImage
    3524104 bytes read in 251 ms (13.4 MiB/s)
    reading embest-SOM_PH8800-BB_EPH1800-4.3inch_LCD.dtb
    40794 bytes read in 16 ms (2.4 MiB/s)
    Booting from mmc0 ...
    Kernel image @ 0x82000000 [ 0x000000 - 0x35c608 ]
    ## Flattened Device Tree blob at 88000000
    Booting using the fdt blob at 0x88000000
    Loading Device Tree to 8fff3000, end 8fffff59 ... OK

    Starting kernel ...


    here is log for SD boot
    U-Boot SPL 2015.07-g84d3097-dirty (Feb 29 2016 - 10:36:58)
    SPL: Please implement spl_start_uboot() for your board
    SPL: Direct Linux boot not active!
    reading u-boot.img
    reading u-boot.img


    U-Boot 2015.07-g84d3097-dirty (Feb 29 2016 - 10:36:58 +0800)

    I2C: ready
    DRAM: 1 GiB
    PMIC: TPS65218
    NAND: 0 MiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
    reading uboot.env
    Net: <ethaddr> not set. Validating first E-fuse MAC
    cpsw, usb_ether
    Hit any key to stop autoboot: 0
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading boot.scr
    ** Unable to read file boot.scr **
    reading uEnv.txt
    740 bytes read in 7 ms (102.5 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc0 ...
    switch to partitions #0, OK
    mmc0 is current device
    SD/MMC found on device 0
    reading zImage
    3524104 bytes read in 251 ms (13.4 MiB/s)
    reading embest-SOM_PH8800-BB_EPH1800-4.3inch_LCD.dtb
    40794 bytes read in 16 ms (2.4 MiB/s)
    Booting from mmc0 ...
    Kernel image @ 0x82000000 [ 0x000000 - 0x35c608 ]
    ## Flattened Device Tree blob at 88000000
    Booting using the fdt blob at 0x88000000
    Loading Device Tree to 8fff3000, end 8fffff59 ... OK

    Starting kernel ...

    [ 0.000000] Booting Linux on physical CPU 0x0
    [ 0.000000] Initializing cgroup subsys cpuset
    [ 0.000000] Initializing cgroup subsys cpu
    [ 0.000000] Initializing cgroup subsys cpuacct
    .......................


    best regards,
    sam