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.

QSPI Bootloader project getting stuck while trying to write to QSPI Registers

Other Parts Discussed in Thread: SYSBIOS

Hi,

We are working on industrial based project based on AM4379BZDNA100 chip.We used sysbios_ind_sdk_2.1.0.1.By following design similar to AM437x IDK board we manufactured  Revision 1 custom boards  on September 2015 using the available bootloader with sysbios_ind_sdk_2.1.0.1 the boards were booting perfectly in QSPI boot mode. But same boot loader code not working on Rev B boards manufactured on MAY 2016. The boards are booting from QSPI flash but it is getting stuck whenever code tries to write to QSPI register which lies in memory map region 0x3000000 .We haven't changed anything related to QSPI booting on our board. Also cross checked the functionalities of QSPI,DDR etc saparetly using test codes and all are working fine.

What could be the reason behind this? Is there anything changed on Boot Rom code on this chips we received on may 2016 and September 2015?

Regards,

Jinu Jacob Andrews 

  • Hi,

    We crosschecked QSPI register’s default values in Rev A and Rev B boards before the board initialization in bootloader.

    We observe that there are difference in the registers 0x47900048 & 0x47900054 .

    On Rev A boards,

    Defaults values are

    0x47900048  Register = 0xff0002

    0x47900054  Register = 0x2366b

     

    On Rev B boards,

    Defaults values are

    0x47900048  Register = 0xf90002

    0x47900054  Register = 0x20203

     

    It looks, the default values are different.

    Also note that Processor is hanging while setting the QSPI quad read command (0x6B) on register 0x47900054 in QSPI boot mode.

    Please help to resolve this QSPI boot issue.

     

    Regards,

    Jinu

  • Jinu,

    Q1, For your Rev A and Rev B board, can you confirm if the SOC chip silicon revision and ROM code revision are the same or not? Please check http://www.ti.com/lit/er/sprz408b/sprz408b.pdf section 1.2.

    Q2, Then with QSPI boot, what is your steps to boot, is it something like:

    • Copied bootloaders\AM437X_IDK\mmcsd_release\MLO to SD card

    • Copied starterware\binary\qspi_app_flash_writer\bin\am43xx-evm\gcc\qspi_app_flash_writer_a9host_release_ti.bin and renamed as app

    • Copied bootloaders\AM437X_IDK\qspi_release\bootloader_boot_qspi_a9host_release.bin and renamed as boot

    • Copied your app and renamed as image

    • Created a text file with name config (without file extension) and added contents

      • boot 0x0

      • image 0x80000

     Q3. Do you mean the flash writer can't write anything to 0x3000_0000 and 0x3008_0000? Are you able to see your code in disassmbly window?

    Q4. "before the board initialization in bootloader" ====> do you mean bootloader_boot_qspi_a9host_release.bin? or ROM boot loader? Let's say if you connect to A9 core via JTAG then set a break point at 0x3000_0000 and do a system reset in CCS, the breakpoint should be hit (if you remove any SD card), what you see at 0x4790_0054?

    Regards, Eric