Using our customized board that is similar to the eval board, I am trying to enter bootloader mode following the reference manual IMXRT1050RM 9.13.3. The following is the code:
typedef struct
{
void (*runBootloader)(void *arg); /*!< Function to start the bootloader executing */
const uint32_t version; /*!< Bootloader version number */
const uint8_t *copyright; /*!< Bootloader Copyright */
const uint32_t reserved0;
flexspi_nor_driver_interface_t *flexSpiNorDriver; /*!< FLEXSPI NOR flash api */
} bootloader_api_entry_t;
/*******************************************************************************
* Variables
******************************************************************************/
#define g_bootloaderTree ((bootloader_api_entry_t *)*(uint32_t *)0x0020001cU)
status_t ROM_RUNBOOTLOADER(){
uint32_t arg=0xeb100000;
g_bootloaderTree->runBootloader(&arg);
}
But after the function ROM_RUNBOOTLOADER is called, the board just reboot normally without entering bootloader mode.
The board is set to boot internally, and it will enter bootloader mode if the flash is erased clean. Is there anything else I should try?
Solved! Go to Solution.
Hi,
Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.
1) Is there anything else I should try?
-- The root cause of the above issue is the defect of the ROM API of RT1050, in another word, ROM API is not of full capability.
It doesn't support the runBootloader actually.
Hope this is clear.
Have a great day,
TIC
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Hi,
Thank you for your interest in NXP Semiconductor products and for the opportunity to serve you.
1) Is there anything else I should try?
-- The root cause of the above issue is the defect of the ROM API of RT1050, in another word, ROM API is not of full capability.
It doesn't support the runBootloader actually.
Hope this is clear.
Have a great day,
TIC
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
Hi,
I have the same problem on RT1171. I use the fsl_romapi and call related functions as below
///////
uint32_t arg = 0xEB100000;
ROM_API_Init();
ROM_RunBootloader((void *)&arg);
///////
But after executing the last function, the MCU reboot normally and runs the code from external flash from start point. I test the same code on RT1176 evaluation board and in that case, the code works correctly and MCU enters the bootloader.
Is the cause of that issue the same?