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.

AM263P4-Q1: Same Flash Address Mapped Using RAT

Part Number: AM263P4-Q1

Tool/software:

Hi Team,

My customer has the question below.

They want to flash two applications A & B. They want to store it in the respective flash locations below.
---------FLASH Location------------
0x60100000 "Application A"
0x60200000 "Application B"
(They want to set the execution address as 0x60100000 and XIP boot)

Depending on some condition that they configure, they want to boot Application A or Application B. They are thinking of using the RAT module to map 0x60200000 to 0x60100000. Is this possible? (Also, is it possible to directly call the application when initializing AddrTranslateP_init()?)
SDK ver is 9.2.00.56

Best regards,

Mari Tsunoda

  • Hi Aswin, 

    Could you also confirm whether this can be done without the Boot Seg IP (and use RAT instead) as per our discussion? Customer is ok with upgrading SBL to 10.2 since they are already proceeding with SBL 10.1, but if changes are necessary on the app side, then they will have to reconsider.

    Best regards,

    Mari Tsunoda

  • Hi Nilabh, Aswin,

    Please let me know by EOD today so I can update the customer tomorrow.

    Best regards,

    Mari Tsunoda

  • Hi Mari,

    There are several approaches to this.

    1. Using the bootseg IP feature

    Imagine you have two firmware images at different flash offsets. This image A can be in FSS region A and image B can be at FSS region B. FSS region A and B are two addresses offsets in flash. Suppose image A is at 0x100000 offset and image B is at offset 0x200000. Using bootseg IP, it is possible to access image at offset 0x200000 by accessing the offset 0x100000.

    Refer this  example in the SDK to know more: https://software-dl.ti.com/mcu-plus-sdk/esd/AM263PX/10_02_00_15/exports/docs/api_guide_am263px/EXAMPLES_DRIVERS_SWAP_TO_B.html

    However the driver support is available in the latest SDK only.

    2. Changing the boot address in the SBL.

    The SBL can be configured to be loaded from the address 0x60100 0000. Provided the application is also at the address 0x6020 0000, the load address can be changed in the SBL to load from this address. Depending on any external actions, a book keeping setting can be kept in flash. On reading this from the SBL the load address can be changed. This is an application specific approach and no examples are in the SDK, however this is an approach that can be considered.

    3. Regarding RAT mapping.

    Can you please let me know how the client has validated this, I tried to test this approach from my side. I tested by writing into the flash offset 0x200000 and reading from 0x300000. I was able to read the content that was written in 0x200000 offset by reading via 0x300000 by enabling RAT. However this was possible only on DAC read and not via Flash_Read API

    Regards,

    Aswin

  • Hi Mari,

    Also, is it possible to directly call the application when initializing AddrTranslateP_init()?

    Can you elaborate on this. I suppose this is about the RAT module. The RAT driver basically calls this function on its intialization.

    Normally, AddrTranslateP_init() is just for setting up the address translation system.

    It does not call or start your main application code.

    Regards,

    Aswin