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.

MSP432E411Y-BGAEVM: Ethernet Bootloader help

Part Number: MSP432E411Y-BGAEVM
Other Parts Discussed in Thread: UNIFLASH

I'm trying to get the ethernet bootloader to work on the MSP432E411Y-BGAEVM.  I'm working with the following components:

CCS 10.4.0.00006

TI Emulators 9.4.0.00129

MSP432E4 SDK 4.20.00.12

An XDS110 running 3.0.0.18. 

BSL-Scripter 3.4.0.1

UniFlash 7.0.0.

Currently I have a work flow that goes through the following steps:

Import boot_emac_flash_app_magicpacket_update_MSP_EXP432E401Y_nortos_ccs or boot_serial_emac_flash_MSP_EXP432E401Y_nortos_ccs project.

Modify project to put out the TI TXT hex output file.

Compile the project.

Program the board via JTAG

Connect to the board via Ethernet cable.

Set my computer to 192.168.0.1

Run BSL-Script.exe with one of the following command blocks:

MODE Ethernet E4xx MAC=70:FF:76:1D:47:49 IPClient=192.168.0.2 IPServer=192.168.0.1
RX_DATA_BLOCK_32 boot_serial_emac_flash_MSP_EXP432E401Y_nortos_ccs.txt

OR

MODE Ethernet E4xx MAC=70:FF:76:1D:47:49 IPClient=192.168.0.2 IPServer=192.168.0.1
RX_DATA_BLOCK_32 boot_emac_flash_app_magicpacket_update_MSP_EXP432E401Y_nortos_ccs.txt

This results in the following output, which seems to indicate that the programming was successful:

c:\ti\BSL-Scripter>BSL-Scripter.exe script_emac_app.txt
---------------------------------------------------------
BSL Scripter 3.4.0.1

PC software for BSL programming
2021-Nov-08 14:09:26
---------------------------------------------------------
Input file script is : c:/ti/BSL-Scripter/script_emac_app.txt

MODE Ethernet E4xx MAC=70:FF:76:1D:47:49 IPClient=192.168.0.2 IPServer=192.168.0.1
Local IP Address is given in the parameter
Local IP Address of Host: 192.168.0.1
Waiting for BOOTP request!
Waiting for BOOTP request!
BOOTP request received!
Send BOOTP reply!
Ready to receive the Tftp read request!
Client IP address: 192.168.0.2
TFTP read request received!
Get the port of TFTP request endpoint: 3541
RX_DATA_BLOCK_32 boot_emac_flash_app_magicpacket_update_MSP_EXP432E401Y_nortos_ccs.txt
Read Txt File : c:\ti\BSL-Scripter\boot_emac_flash_app_magicpacket_update_MSP_EXP432E401Y_nortos_ccs.txt
Time elapsed of writing 48008 bytes : 1.084 seconds
Speed of writing data :43.26(kB/s)

However, when I power cycle the board and try to run the BSL-Script again, it just times out waiting for the BOOTP request.   The only way for me to get it to respond again is to re-program it via JTAG.

All of this code is provided via the SDK, so I'm not sure what's going wrong.  I would expect that I should just be able to continually reprogram the chip with the same code via the bootloader over and over without having to resort back to the JTAG programmer.

I'm not sure how to make further progress at this point.  Any help would be appreciated.

Thanks,

Ian

  • Hi Lan,

    Can you tell me what happens to the MSP432E when you program it through Ethernet bootloader? Is its memory changed?

    Sorry, we only have limited support on MSP432E series.

    I think you can refer to this thread as MSP432E is almost same as TIVA: e2e.ti.com/.../ccs-tm4c1294ncpdt-loading-a-program-using-ethernet-bootloader

    This is the TIVA bootloader document: https://www.ti.com/lit/ug/spmu301e/spmu301e.pdf?ts=1636452097454&ref_url=https%253A%252F%252Fwww.google.com.hk%252F

    Eason

  • I can only assume the memory is changed, as the behavior changes after programming it through the ethernet bootloader.  I have not figured out a way to do a full inspection of the memory contents, as everything I've seen so far requires programming the MSP432 with a new code base to read out the memory, which defeats the point.

  • Finally figured out how to read out the memory.  It looks, as far as I can tell, as when the MSP432E is programmed via JTAG, it loads the instructions starting at address 4096.  0-4095 are filled with blocks of 0xFF.

    However, when I look at the memory after the bootloader, it looks like it's writing the instructions starting at address 0 instead of 4096.  Which would explain why the system doesn't run afterwards - it's trying to run code that's really in the middle of the program instruction set.

    I have no idea why, however, this is happening.  The BSL-Scripter.exe doesn't have an option to write the TI Hex file starting from a specific address, so I can't just tell it to write starting at 4096.  I could manually (or via script) modify the TI Hex file to add the 4096 bytes to the start of the file, but I'd rather understand why this isn't working as expected.

  • Hi,

    So it looks like the Bootloader update successfully. What about your programming code. It should be a "@4096" in this document to tell it program from this address.

    Eason

  • For one of my files (boot_emac_flash_app_magicpacket_update_MSP_EXP432E401Y_nortos_ccs.txt), there's a @4000 at the beginning of the file.  For the other file (boot_serial_emac_flash_MSP_EXP432E401Y_nortos_ccs.txt), it's @0000.  However, even with the @4000, it still seems to load the file starting at address 0.

    I've checked the files included with the BSL-Scripter (...BSL-Scripter/ScriptExampleWindows/E4xx_Ethernet/boot_emac_flash_magicpacket_MSP_EXP432E401Y.txt, /boot_emac_flash_MSP_EXP432E401Y.txt), and they show the same first lines (@4000/@0000 respectively.)  So this indicates to me that my files are being created in the same manner as the example files.  Given the example files are supplied by TI, I'd expect those to work, but they exhibit the same behavior as my generated files.

    Also, one clairification - the start address when writing via JTAG is 4096 using 32-bit words.  So it's actually a byte address of 16384, which would correspond to 0x4000, so the 4000 at the start of the file makes some sense, even if it doesn't actually seem to be being used as expected.

  • Hi Ian Cyr,

    Yes @4000 will tell the programmer the start address is 0x4000.

    I think the problem is that it seems the BSL scripter don't set the right start address.

    Can you send me the BSL scripter logging file to me to see if I can find anything.

    Eason

  • boot_emac_flash_app_magicpacket_update_MSP_EXP432E401Y_nortos_ccs.txt

    ---------------------------------------------------------
    BSL Scripter 3.4.0.1

    PC software for BSL programming
    2021-Nov-15 16:19:09
    ---------------------------------------------------------
    Input file script is : c:/ti/BSL-Scripter/script_emac_app.txt
    MODE Ethernet E4xx MAC=70:FF:76:1D:47:49 IPClient=192.168.0.2 IPServer=192.168.0.1
    RX_DATA_BLOCK_32 boot_emac_flash_app_magicpacket_update_MSP_EXP432E401Y_nortos_ccs.txt
    Read Txt File : c:\ti\BSL-Scripter\boot_emac_flash_app_magicpacket_update_MSP_EXP432E401Y_nortos_ccs.txt
    Time elapsed of writing 48008 bytes : 1.075 seconds
    Speed of writing data :43.61(kB/s)

    Above is the contents of the log file that was generated by the BSL-Scripter.  Attached is the file loaded by the scripter.  Hopefully this provides the information you're looking for.  Let me know if there's anything else I can provide.

  • Hi Ian,

    Sorry, I can't find any help information.

    My advice is that:

    1. Use UART to program the device through BSL scripter (It should work)

    2. Install Visio studio to look into the code to see where is the problem (Sorry, the software is out of maintain.)

    Eason

  • Thanks for your time and effort.  It's much appreciated.

    Ian

  • Hi Ian,

    Sorry, for MSP432, we only give limited support. I am not quite familiar with this device. If you choose to debug the BSLscripter code, I can give some help. I just do the same job, one month ago. I will close this thread. If you have any question, you can open it again.

    Eason