AnsweredAssumed Answered

Bootloader Configuration Area (BCA)

Question asked by Daniele Pagani on Sep 16, 2019
Latest reply on Sep 17, 2019 by jeremyzhou

    Dear sirs,

according to Chapter 2.3 of MCU Bootloader v2.5.0 Reference Manual:

The MCU bootloader reads data from the Bootloader Configuration Area (BCA) to configure various features of the bootloader. The BCA resides in flash memory at offset 0x3C0 from the beginning of the user application, and provides all of the parameters needed to configure the MCU bootloader operation. For uninitialized flash, the MCU bootloader uses a predefined default configuration..."

 

However, the evkmimxrt1060_flashloader project from SDK bootloader_examples->flashloader has a function (property_imx.c) :

// See property.h for documentation on this function.

status_t bootloader_property_load_user_config(void)

{

    bootloader_configuration_data_t *config = &g_bootloaderContext.propertyInterface->store->configurationData;

    memset(config, 0xff, sizeof(bootloader_configuration_data_t));

    // copy from User Application's BootloaderConfigurationData at 0x3c0 to Sram

    memcpy(config,(void*)kBootloaderConfigAreaAddress,sizeof(bootloader_configuration_data_t)); // <-- new code

    // Update available peripherals based on specific chips

    update_available_peripherals();

    return kStatus_Success;

}

We guess adding "new code" line is correct in order to copy data from User Application's BCA to local structure.

Otherwise the structure remains always initialized to all 0xFF.

We're wondering if this solution is correct or if there are other solutions.

BR

Daniele

Outcomes