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.

AM625: [ERROR] XMODEM send failed, no response OR incorrect response from EVM OR cancelled by user

Genius 13475 points
Part Number: AM625
Other Parts Discussed in Thread: SK-AM62, UNIFLASH

Hello Champs,

HW: SK-AM62

SW:mcu_plus_sdk_am62x_08_06_00_18

Customer can programming flash in Windows10. But it prompts "ERROR] XMODEM send failed, no response OR incorrect response from EVM OR cancelled by user,
Power cycle EVM and run this script again !!!" in ununtu. 

How to resolve it?

https://software-dl.ti.com/mcu-plus-sdk/esd/AM62X/latest/exports/docs/api_guide_am62x/GETTING_STARTED_FLASH.html

turing@ubuntu:~/ti/mcu_plus_sdk_am62x_08_06_00_18/tools/boot$ python3 uart_uniflash.py -p /dev/ttyUSB0 --cfg=sbl_prebuilt/am62x-sk/default_sbl_ospi_linux.cfg

Parsing config file ...
Parsing config file ... SUCCESS. Found 9 command(s) !!!

Executing command 1 of 9 ...
Found flash writer ... sending sbl_prebuilt/am62x-sk/sbl_uart_uniflash_stage1.release.tiimage
Sending sbl_prebuilt/am62x-sk/sbl_uart_uniflash_stage1.release.tiimage: 0%| | 0/244873 [00:00<?, ?bytes/s]
[ERROR] XMODEM send failed, no response OR incorrect response from EVM OR cancelled by user,
Power cycle EVM and run this script again !!!

Thanks
Regards
Shine

  • Hi Shine,

    Is the customer using Linux on a Virtual Machine or a dedicated PC. Additionally, is the customer seeing 'C' characters getting printed on UART serial console in Linux before trying the flashing procedure.

    Please refer to the following guide: Flash SOC Initialization Binary

    Regards,

    Prashant

  • Hi Prashant,

    Thank you very much for your support.

    Yes, customer has seen 'C' characters using Linux on a Virtual Machine, but it fails.

    Thanks
    Regards
    Shine

  • Hi Shine,

    This may be a problem of root access. Could you ask the customer to once try the flashing command with sudo like below

    sudo python3 uart_uniflash.py -p /dev/ttyUSB0 --cfg=sbl_prebuilt/am62x-sk/default_sbl_ospi_linux.cfg

    Regards,

    Prashant

  • Hi Prashant,

    Customer has tried the command you suggested. But it still failed. 

    Is there any other advice?

    Thanks
    Regards
    Shine

  • Hi Shine,

    I am also running Linux on a Virtual Machine and able to successfully perform the flashing procedure as shown below

    Is there any other advice?

    Could you please ask the customer to try sending only the first image "sbl_uart_uniflash_stage1.release.tiimage" from some other tools like Picocom, Minicom. If the image is sent successfully with any of these tools, we would know something is wrong with MCU+ SDK UART Uniflash.

    Regards,

    Prashant

  • To transfer a ROM bootable image (here sbl_uart_uniflash_stage1.release.tiimage) using Picocom, the customer can follow the below procedure:

    • Power off the board.
    • Run the below command from the <MCU+ SDK PATH>/tools/boot
      sudo picocom -b 115200 -s "sx -vv" /dev/ttyUSB0
    • Power on the board.
    • Make sure the UART string comes & character 'C' is getting printed every 2-3 seconds.
    • Press "Ctrl+A" then "Ctrl+S". Picocom would then ask for the file to be sent.
    • Enter the file path. The file transfer should start.
    • If the transfer is successful, Picocom logs "Transfer complete".

    A sample run of the above procedure is shown below

    Regards,

    Prashant

  • Hi Prashant,

    Thank you very much.

    Customer did the test, but it can‘t print character 'C' every 2-3 seconds.

    Thanks
    Regards
    Shine

  • Hi Shine,

    The customer confirmed in this response that the 'C' characters were seen. What tool the customer was using before which confirmed the 'C' characters are coming? 

    Since, we now see that the 'C' characters are not coming, the flashing procedure can't be perfomed. This explains why MCU+ SDK UART Uniflash is failing. Now, first we would want to confirm the UART string & 'C' characters are coming. The first step to that is to make sure we are connected to the right serial port.

    Could you please ask the customer to share the output of the command "ls /dev" which would show the devices enumerated by Linux.

    Regards,

    Prashant

  • Hi Prashant,

    Thank you very much.

    Below is the the output of the command "ls /dev" from customer.

    turing@ubuntu:~$ ls /dev | grep ttyUSB*
    ttyUSB0
    ttyUSB1
    ttyUSB2
    ttyUSB3
    turing@ubuntu:~$

    Thanks
    Regards
    Shine

  • Hi Shine,

    Thank you for the output!

    My intention here is to first make sure we are probing the correct serial port with Picocom or MCU+ SDK UART Uniflash. For that, could you please ask the customer to test each of the /dev/ttyUSB* port with Picocom to see if the UART string & 'C' characters are getting printed every 2-3 seconds on one of them. Please make sure for each test the board is powered off before probing the port with Picocom. Once Picocom is ready then power on the board.

    Additionally, please make sure only the board being tested is connected to PC.

    Regards,

    Prashant

  • Hi Prashant,

    Thank you very much for your quick reply.

    A good news is that customer has resolved the issue.

    Below is his reply. 

    I have solved it.

    Because I don't have Closed the UART terminal as shown below. This is important, else the UART script in next step wont be able to connect to the UART port.



    Thanks
    Regards
    Shine

  • Hi Shine,

    That's good to know.

    I did not think of this as when I attach the USB-to-Serial ports in VirtualBox, the VirtualBox automatically takes control of the ports & any corresponding ports opened in Windows gets disconnected.

    Anyways, a good point to add in my checklist. Thank you!

    Regards,

    Prashant