How image is validated during bootup?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi,

I hope to have more information regarding the boot sequence of BCM20736

  1. The board is getting  booted from the initial ROM boot loader. Is there any validation of the image (in DS1 or DS2 )during boot up?
  2. With OTA support, is it the ROM boot loader who validates the static segment of two images in DS1 and DS2?
  3. Is there any mechanism to boot DS2 first, other than invalidating the SS1 of DS1?

Thanks and regards

Rajesh Kumar V

0 Likes
1 Solution
MichaelF_56
Moderator
Moderator
Moderator
250 sign-ins 25 comments on blog 10 comments on blog

Once programmed, your App is stored in NVRAM by the minidriver and will be automatically loaded to internal RAM (bootloader not required) on boot up and initialized.

Specifically, the application runs in its own thread and the entire application framework is event driven. The main entry point of the application is APPLICATION_INIT() where it has to register its GATT database, configurations and the application create function (no other operations are allowed at this point).

Once this is done, the rest of the firmware and the BLE stack will be initialized - and once these are ready - the application create function will be invoked.

Once you return from this function, everything is event driven and callbacks for connection up/down/end of ADV interval/write to GATT handle, interrupts, timer expiry etc. are all events for the application to handle.

Also remember that When sampled on RESET only:

HCI UART Rx = High (Programming mode)
HCI UART Rx = Low (Application mode)

This is all controlled by the minidriver and cannot be reconfigured in any way by the developer.

View solution in original post

0 Likes
3 Replies
MichaelF_56
Moderator
Moderator
Moderator
250 sign-ins 25 comments on blog 10 comments on blog

Once programmed, your App is stored in NVRAM by the minidriver and will be automatically loaded to internal RAM (bootloader not required) on boot up and initialized.

Specifically, the application runs in its own thread and the entire application framework is event driven. The main entry point of the application is APPLICATION_INIT() where it has to register its GATT database, configurations and the application create function (no other operations are allowed at this point).

Once this is done, the rest of the firmware and the BLE stack will be initialized - and once these are ready - the application create function will be invoked.

Once you return from this function, everything is event driven and callbacks for connection up/down/end of ADV interval/write to GATT handle, interrupts, timer expiry etc. are all events for the application to handle.

Also remember that When sampled on RESET only:

HCI UART Rx = High (Programming mode)
HCI UART Rx = Low (Application mode)

This is all controlled by the minidriver and cannot be reconfigured in any way by the developer.

0 Likes
Anonymous
Not applicable

Hi mwf_mmfae,

Thanks for your response.

Is it the same minidriver who validates the Static segment in case of OTA update scheme?

Regards

Rajesh

0 Likes
Anonymous
Not applicable


Yes, it is the same minidriver.

-Lucy

0 Likes