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.

AWR2944: uart_uniflash.py cannot get symbol from awr2944

Part Number: AWR2944
Other Parts Discussed in Thread: UNIFLASH

Tool/software:

Hello!
We have a custom board with an awr2944 chip.
And we use the following script to flash the chip:
1. Installed mmwave_mcuplus_sdk_04_06_01_02
2. From ../mcu_plus_sdk_awr294x_09_02_00_15/tools/boot/    run the script: sudo python3 uart_uniflash.py -p /dev/ttyTHS2 -cfg=sbl_prebuilt/awr294x-evm/default_sbl_qspi.cfg  
3. After running the script, we see on the screen:


In this state the program hangs and does not output anything else. If you press Ctrl+c it will terminate.

Our thoughts on the problem:
In the uart_uniflash.py code we see that before starting data transmission, a character is received from the awr2944.

After power is supplied to the awr2944, we see on the oscilloscope that it periodically sends individual characters via uart (on image). And the first stage of the flashing starts successfully.


After the first stage of the flashing is completed, the awr2944 chip does not send individual characters via uart. And the uart_uniflash.py script hangs while waiting for a character to be received via uart (getc).

What could be the problem?




  • I forgot to mention that when powering up the awr2944 we set the mode:
    1 0 1 [SOP0  SOP1  SOP2]
    and
    1  1 [SOP3  SOP4]  (We use 50MHz  XTAL)

  • Hi Pave,

    Do you have access to the Uniflash tool?  Is it possible to use that tool with your custom board?

    I am working on getting an answer to you on the python script issue.

    regards,

    Ali

  • Hi Ali Syed!
    Unfortunately, we can't connect to the AWR2944 via Uniflash.
    On our board, the AWR2944 connects to the NVIDIA Jetson processor, which doesn't have a monitor. We only have access via the SSH.

  • Hi Pavel,

    By default AWR2944 needs UART interface to flash image.

    However there are other ways to do it like via JTAG, SBL or Ethernet.

    In mmWave MCU Plus SDK pkg, you can find SBL with these interfaces. Please be noted, for these SBL you need UART at very first time to flash this SBL and after this SBL boots up, it can not listen new App image over SBL/Ethernet (based on type of SBL flashed).

    This first time flashing can be done either via UART while sFlash is connected onboard OR you can do the gang programming of sFlash externally and later connect to AWR2944 onboard.

    .

    For your Jetson processor, you need to create a custom flashing solution taking reference of these SBL.

    .

    .

    To your other observation: 

    What is your sFlash part connect on your custom board? Does that part follow the supported features required for AWR2944 flashing as instructed in this AppNote (https://www.ti.com/lit/an/sprach9e/sprach9e.pdf)

    Error shown in image can be due to sFlash is not supported by AWR294x or there is some issue while connecting to sFlash.

    .

    Regards,

    Jitendra

  • Hi Jitendra,

    We use GD25B64CSIG flash memory. We checked that this memory should be supported by awr2944.

    To exclude the problem with flash memory, we decided to try using avr2944 firmware without flash memory.

    We run the script:
    sudo python3 uart_bootloader.py -p /dev/ttyTHS2 --bootloader=sbl_prebuilt/awr294x-evm/sbl_uart.debug.tiimage --file=../../../mmwave_mcuplus_sdk_04_02_00_01/ti/demo/awr294x/mmw/awr2944_mmw_demoTDM.appimage

    from the directory: mmwave_mcuplus_sdk_04_02_00_03/mcu_plus_sdk_awr294x_08_02_00_25/tools/boot

    But we see the same thing (on picture), after loading the bootloader into the avr2944, nothing happens. We also decided to use the debug version of the bootloader to look at the logs and understand what the error is. But when listening to the uart channel, we see nothing. 



    We have the following question. The chip we use on our board is one of the first in production (in the picture). Can this affect the bootloader?
    What should we change in the bootloader to see its log in the UART channel?


  • Hello Pavel,

    What we use on the EVM is: GD25B64CWAG.
    Does the GD25B64CSIG have any different commands compared to the one which we use?
    Then you will have to modify the syscfg in the application of the uart_uniflash and qspi to support it.

    Also, from your log it looks like the bootloader was received and started executing. When you get the error, you can connect to the R5 core over CCS and load the symbol of the UART bootloader and check where it is stuck. Then it should be possible for you to debug where it is going wrong.

    Regards,
    Saswat Kumar