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.

AWR1642BOOST: Secondary bootloader parse FW image failed

Part Number: AWR1642BOOST
Other Parts Discussed in Thread: AWR1642, MMWAVE-SDK

Hi team,

SDK: mmwave_sdk_02_00_00_04

HW: AWR 1642BOOST ES2.0

Application: Secondary bootloader (CAN Downloader and Flash downloader)

We got attached document and secondary bootloader example code.

But we met a problem when we boot-up from flash by secondary bootloader.

After debug the code, we found the problem is on parsing BSS_SUBSYSTEM.

We tested the Secondary bootloader with SDK 1.0(01_02_00_05)/SDK2.0 fw image.

With SDK 1.0 FW, we can see the "Parsing completed".

With SDK 2.0 FW, we got halt-down.

The section length seems doesn't match between SDK 1.0 and SDK 2.0.

Do you have any idea that we can solve this issue on SDK 2.0?

SDK 2.0 xwr16xx_mmw_demo.bin

BSS_SUBSYSTEM(calculateImageOffset())

s_ImageParams.sectionPrms.secLen: 40/0  (readRPRCSecContent())

size: 40 (readRPRCSecContent())  <= The last debug message and got system halt.

 

SDK 1.0 (xwr16xx_mmw_demo.bin)

BSS_SUBSYSTEM

s_ImageParams.sectionPrms.secLen: 72/0

size: 72

uint32_t readRPRCSecContent(uint32_t* bufferPtr,uint32_t bufferLenIp)
{
    uint32_t bufferLen =  bufferLenIp;
    uint32_t bytesRead = 0U;
    uint32_t *ptrLcl = bufferPtr;
    void *p_memAddRet;
    uint32_t size;
    uint32_t retVal;

    /*For downloading the section content*/
    System_printf("s_ImageParams.sectionPrms.secLen: %d/%d\n", s_ImageParams.sectionPrms.secLen, s_ImageParams.sectionPrms.writtenLen);
    if (s_ImageParams.sectionPrms.secLen > s_ImageParams.sectionPrms.writtenLen)
    {
        if ((bufferLen - bytesRead) >= (s_ImageParams.sectionPrms.secLen - \
                                                           s_ImageParams.sectionPrms.writtenLen))
        {
            size = (s_ImageParams.sectionPrms.secLen - s_ImageParams.sectionPrms.writtenLen);
        }
        else
        {
            size = (bufferLen - bytesRead);
        }

        if(s_ImageParams.sectionPrms.sectionPtr != 0)
        {
            System_printf("size: %d\n", size);
            p_memAddRet = memcpy((void*)s_ImageParams.sectionPrms.sectionPtr, \
                                                     (const void*)ptrLcl, size);
        }
        else
        {
            System_printf("app_int_vec_table\n");
            memcpy((void*)&app_int_vec_table[0], (const void*)ptrLcl, 64);
            p_memAddRet = 0;
        }

        s_ImageParams.sectionPrms.writtenLen += size;
        System_printf("s_ImageParams.sectionPrms.writtenLen: %d\n", s_ImageParams.sectionPrms.writtenLen);
        M_ASSERT(p_memAddRet == (void*)s_ImageParams.sectionPrms.sectionPtr);

        s_ImageParams.sectionPrms.sectionPtr += size/4U;
        ptrLcl += (size / 4U);
        bytesRead += size;

        s_ImageParams.imageSizeRead +=  bytesRead;
    }
    if (s_ImageParams.sectionPrms.secLen == s_ImageParams.sectionPrms.writtenLen)
    {
        retVal = handleSectionDwldComplete();
        if (retVal == 0U)
        {
            bytesRead = bufferLen;
        }
    }
    System_printf("bytesRead: %d\n", bytesRead);
    return(bytesRead);
}

AWR1642_Secondary_Bootloader.docx

  • Hello Weks Chen,

    I would highly recommend to migrate to the secondary bootloader that is included in the MMWAVE-SDK version 3.0 . Please refer to the SBL in the newer SDK .

    It is better to move to the newer SDK version for up-to-date support .

    We will try to check the issue that you are currently facing using our older version of the SBL.

    Thanks,
    Raghu
  • Hi Raghu,

    We know the latest SDK support SBL.
    But your application doesn't support SDK 3.0 yet.
    There are some compile error with SDK 3.0
    Application: mmwave_industrial_toolbox_2_4_0, SRR application

    Please help us to figure out the issue with SDK 2.0
    Thanks
  • Hi,
    We are requesting to use SBL from SDK 3.0 (mmwave_sdk_03_00_00_08\packages\ti\utils\sbl) , it is more or less same SBL application you have but ported with SDK infrastructure. What you have was kind of internal released version, but SDK 3.0 SBL is external released version for which we can support much more effective way.

    On top of this SBL you can use any application (MSS & DSS) whether it's built on SDK 2/3.0 version to download over CAN to sFlash.


    Regards,
    Jitendra