SK-AM62B-P1: No UART Output in OSPI Boot Mode (SK AM62x)

Part Number: SK-AM62B-P1
Other Parts Discussed in Thread: UNIFLASH, SK-AM62, SYSCONFIG

Tool/software:

Hi team,

I’m working with the SK AM62x on Ubuntu 22.04 and have downloaded the correct package (mcu_sdk-am62x) for my board. Here’s what I’ve done so far:

  1. I successfully read UART characters.
  2. I transferred the image from the Linux machine to the SoC using UART boot mode, and it was successful.
  3. I configured the bootloader to use OSPI mode for the image.

However, I’m not seeing any output when the board boots in OSPI mode. I suspect the issue lies with the bootloader, since there’s no output from it. Could you please guide me on how to troubleshoot or resolve this?

Thank you!

Expected output



Output in my linux machine


  • Hi,

    So first up you would need to check if the UART COM Port you are expecting the logs has been opened correctly.

    Please refer this for the above:  [FAQ] SK-AM62: Purpose Of Different UARTs 

    Moreover, since you are using SK-AM62B-P1 I am assuming the flash on it is S28HS512T, hence can you confirm if the bootmode pins are set to the following configuration?

    If yes, you are on the right track.

    Next up, if you see that you have the correct UART Com port opened, check the settings of the same, for example, parity, baudrate and so on.

    Next, once set in the bootmode as mentioned above, please open CCS, and connect to the R5 core. After connecting to the R5 core, please let me know the address where it is stuck at.

    NOTE: It is recommended to use the Latest MCU PLUS SDK for AM62x.

    Thanks,

    Vaibhav

  • Hi Vaibhav,

    I have a doubt. Do you mean I should stick with OSPI boot mode and run an example like “Hello World” on the R5 core? If I run the program in debug mode on that core under OSPI mode, I should see the correct address. However, I’ve already built and loaded the Hello World example and set the debugger to the R5F core, but the debugger won’t start. If I switch to Cortex-A53 core 0, the debugger works once but then fails on subsequent attempts. What can I do?

  • Hi Vaibhav,

    I’ve connected to the R5 core using the Hello World example. Do I need to run the program to see the address, or is there another method to obtain it? When I connect to the R5 core, I only see DDR initialization messages could that be why I’m not seeing the bootloader output?

    Also, when I connect to the M4F core, the Hello World message doesn’t appear on the serial console; it only shows up in the CIO console.

    Thank you.

  • Hi Raj,

    Thanks for your patience.

    Okay, so lets start with few things.

    • Please tell me if your board is GP or HSFS, check it here:  [FAQ] [AM6XX]: How to check if device type is HS-SE, HS-FS or GP? 
    • Also check the exact board which you have is it AM62X-SK or AM62X-SK-LP or AM62X-SIP-SK.
    • If your device type is HS FS then you would need to flash the HS FS images while doing UART Uniflash step(The python script which you run "python uart_uniflash.py -p ......")

    Looking forward to your response.

    Thanks,

    Vaibhav

  • Hi Vaibhav,

    • Please tell me if your board is GP or HSFS, check it here:  [FAQ] [AM6XX]: How to check if device type is HS-SE, HS-FS or GP? 
      Ans: I have followed the link you posted, run the Python script, and confirmed that my board is GP.
    • Also check the exact board which you have is it AM62X-SK or AM62X-SK-LP or AM62X-SIP-SK.
      Ans:   board is  SK-AM62x

    • If your device type is HS FS then you would need to flash the HS FS images while doing UART Uniflash step(The python script which you run "python uart_uniflash.py -p ......")
      Ans:It is not HS FS 
             Script I have run for this board
             For SK-AM62
         cd ${SDK_INSTALL_PATH}/tools/boot
         python uart_uniflash.py -p COM<x> --cfg=sbl_prebuilt/am62x-sk/default_sbl_null.cfg
      




  • Hi Vaibhav,

    I have a question about the OSPI NOR bootloader issue on the SK-AM62x. I followed the link where you mentioned that booting doesn’t work in OSPI NOR mode. Since I’m currently flashing via OSPI NOR, is there an alternative method I can use? By the way, the flash on my AM62 board is a Cypress 28HS512T.

    Link where the OSPI BootMode doesn't work:
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1551867/faq-am62x-am62px-am62d-q1-am64x-am275x-s28hs512t-does-not-boot-in-ospi-bootmode

    Flash present on my board (SK AM62x)



  • Hi Vaibhav,

    I have a question: Do I need to enable the OSPI NOR flash component in the SK AM62x device tree? 

    Thanks,

    Raj

  • Hi Vaibhav,

    As I was going through the forums, I suspected that I might need to enable the sysconfig. I have also enabled the OSPI NOR flash using the sysconfig, along with your suggested OSPI boot mode. However, the "Hello World" program is still not executing.

  • Hi Vaibhav,

    After further exploration, I have found the following issue. It seems to be related to a DDR problem. I'm not sure what the menu script . Is this something I need to enable via sysconfig, or will I need to run a script?



  • Hi Raj,

    The FAQ which you saw was on why S28HS512T does not boots in OSPI bootmode.

    The bootmode which you must have set is as follows:

    This although labeled currently as OSPI, it is actually xSPI bootmode. This is a documentation bug which will be addressed. So xSPI bootmode is fine.

    Also you need not add anything extra to the hello world application via SysConfig changes.

    For the default SBL Null, my assumption is that you have not changes any of the files, and you flashed the files in its default form:

    Once flashed, go to CCS and when you connect to the core R500, please head to Call Stack to see what address it is showing/stuck at? I need this to be able to move forward.

    The following is just a sample screenshot, but you would need to connect to R5 core and tell me the address.

    Best,

    Vaibhav

  • Hi Vaibhav,

    I'm observing the following in my call stack:

    I'm following the steps from the "Hello World" example for the R5F core.

    Step 1:-
    When I connect, it shows the GEL script "DDR not initialized." At this initial step, I'm seeing the call stack with some addresses.

    Step 1 Pic


    Step 2:-
    After that, I reset the CPU target, which is necessary to load the program.

    Step 2 Pic:-


    Step 3:-
    However, when I load the program, I'm not seeing the call stack.

    Step 3 Pic:-

    I will be posting pictures for your clarity. To initiate the DDR, which seems to be the root cause of the issue, what can I do to resolve this?

    Question about DDR

    What is the way to run this DDR GEL script? As I go through the menu layout and DDR options, the only thing I see is "Disable." I don't see any option to "Enable DDR." What should I do here?

    DDR Disable Pic



    Thank you!

  • Hi Vaibhav,

    Link:-

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1026825/tmds64gpevm-r5_0_0-ddr-initialization-stuck/3797277?tisearch=e2e-sitesearch&keymatch=DDR%2525252525252520not%2525252525252520initialized%2525252525252520with%2525252525252520R5%2525252525252520connect



    As of now, the board is in xSPI mode. As you mentioned, it is not in OSPI mode. Every time I reset my board under xSPI Mode, do I need to see these logs in the UART terminal everytime?

    When I'm disconnecting and reconnecting the UART and power cable, I see these logs every time. Does this mean the DDR is already initialized? If my DDR is already initialized, why am I not able to halt at the main() function?

    Logs




    Thank you!

  • Hi,

    If you see the above logs on the UART terminal everytime you do a power cycle, then the SoC is initialized properly.

    To load examples onto the R5 core like the hello world example, it cannot be done directly via CCS, and has to be flashed via UART Uniflash.

    Please refer the following: https://software-dl.ti.com/mcu-plus-sdk/esd/AM62X/latest/exports/docs/api_guide_am62x/DEVELOP_AND_DEBUG_DMR5.html

    Let me know if it helps.

    Thanks,

    Vaibhav