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.

AM5728:Issues with Booting MLO and u-boot using UART Boot Mode

Part Number: AM5728

Hello,

I am trying to boot MLO and u-boot on a custom board with AM5728 using UART boot mode.

I followed the instructions provided in the following document during the process: /cfs-file/__key/communityserver-discussions-components-files/791/8546.AM57_5F00_UART_5F00_Boot_5F00_SOP_5F00_By_5F00_TI_5F00_Rio_5F00_Final.pdf

Here are the steps I followed:

  1. Open Teraterm on a Windows machine and set the serial port to 115.2 Kbps, 8 bits, even parity, 1 stop-bit, with no flow control.
  2. Confirm that "VA!" is continuously being printed in Teraterm.
  3. Close the Teraterm window.
  4. Prepare the serial-boot.pl script from the following link: /cfs-file/__key/communityserver-discussions-components-files/791/5861.Serial_2D00_boot.zip
  5. Install ActivePerl from https://www.activestate.com/products/perl/
    1. My computer environment is Windows 10 / 64bit
  6. Confirm the ActivePerl version with the following command:
  1. Execute the serial-boot.pl script with the following command:

However, when I run the Perl script, I encounter an issue as it appears to be missing the Win32::SerialPort module. Even after attempting to install the module with cpan install Win32::SerialPort, I continue to experience various dependency errors.

Is there a more recent version of the serial-boot.pl script available? Or could there be compatibility issues with the program version or the OS environment?

I would appreciate your assistance in resolving this matter.

Thank you.

  • After installing ActivePerl, the serial-boot.pl script did not run, so I installed Strawberry Perl and followed the procedure mentioned above.

    I used Strawberry Perl version v5.32.1, as shown below:


    C:\Users\KSO>perl -v

    This is perl 5, version 32, subversion 1 (v5.32.1) built for MSWin32-x64-multi-thread

    Copyright 1987-2021, Larry Wall

    Perl may be copied only under the terms of either the Artistic License or the
    GNU General Public License, which may be found in the Perl 5 source kit.

    Complete documentation for Perl, including FAQ lists, should be found on
    this system using "man perl" or "perldoc perl". If you have access to the
    Internet, point your browser at http://www.perl.org/, the Perl Home Page.

    When I run the serial-boot.pl script with Strawberry Perl, no errors related to module installation occur, but the following problems arise:

    C:\Users\KSO>perl c:\Users\KSO\Desktop\serial-boot.pl -p com14 -s c:\Users\KSO\Desktop\MLO -d 1
    BYTES=186227 file_bytes=73d70200 prefix_bytes=020003f0 string bytes=020003f073d70200
    ----Please reset the Board NOW (timeout=30 sec)----
    Second Read attempted before First is done at c:\Users\KSO\Desktop\serial-boot.pl line 171.
    Use of uninitialized value $got in numeric ne (!=) at C:/Strawberry/perl/vendor/lib/Win32/SerialPort.pm line 1216.
    Second Read attempted before First is done at c:\Users\KSO\Desktop\serial-boot.pl line 171.
    Use of uninitialized value $got in numeric ne (!=) at C:/Strawberry/perl/vendor/lib/Win32/SerialPort.pm line 1216.

    (skip...)

    Use of uninitialized value $got in numeric ne (!=) at C:/Strawberry/perl/vendor/lib/Win32/SerialPort.pm line 1216.
    Second Read attempted before First is done at c:\Users\KSO\Desktop\serial-boot.pl line 171.
    Use of uninitialized value $got in numeric ne (!=) at C:/Strawberry/perl/vendor/lib/Win32/SerialPort.pm line 1216.
    Timedout while waiting for read asic id (30 sec). at c:\Users\KSO\Desktop\serial-boot.pl line 126.

    I would like to inquire about any additional information that needs to be checked or possible solutions.

    Thank you.

  • Hello Sangoh,

    I will take a look into your query this week.

    In general all of our software is validated using a Linux machine with Ubuntu 18.04, and the fact that this presentation is from 2016 leads me to believe that the script is possibly quite outdated. Could you share what SDK version you are using?

    -Josue

  • Hello, thank you for your response.

    I'm currently using the following SDK version:

    1. SDK Version: ProcSDK_linux_06.03.00.106
    2. u-Boot:
      1. U-Boot 2019.01-ge408e6ef (Mar 23, 2023 - 09:03:20 +0900)
      2. arm-linux-gnueabihf-gcc (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36)) 8.3.0
      3. GNU ld (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36)) 2.32.0.20190321
    1. Linux Version (Target):
      1. Linux 4.19.94 #3 SMP PREEMPT Wed Jul 5 11:44:02 KST 2023 armv7l GNU/Linux

    I would like to proceed with these steps in a Windows environment, and my setup is Windows 10/64-bit.

    If my Perl script is not the latest version, could I possibly obtain the most recent version of the Perl script?

    If I understand correctly, it seems that the issue arises in the read_asicID() function of the Perl script I am using. Specifically, the problem appears to be in the line my ( $count_in, $string_in ) = $handler->read(1);.

    Thank you.

  • Hello Sangoh,

    I have confirmed that these instructions are now obsolete and no longer work with newer SDKs including 06.03.00.106.

    I apologize but there is no newer versions of this script. The supported boot modes are  summarized in the following FAQ:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/959283/faq-ccs-am5728-am57xx-boot-modes-supported

    In conclusion, even though this supported by the SoC, UART boot mode has not been validated by our SDK.

    Related post: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1096094/am5728-am572x-serial-boot-pl

    -Josue