Bootloader will load bootloadable only if they are "compatible"

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

cross mob
D_Sd_3235936
Level 4
Level 4
25 sign-ins 50 questions asked 25 replies posted

hello,

My device holds a Bootloader that loads first and then loads the Bootloadable.

My goal is to create a Bootloader that can determine if the BootLoadable is "compatible" without the need to load it.

In case the Bootloader detects the BootLoadable is "incompatible" it will not load the BootLoadable and will wait for a correct BootLoadable to be sent.

For that, I would like to know :

How can I place some parameter in the Bootloadable, and indicate the Bootloader to read that specific parameter/location?

0 Likes
1 Solution
GeonaP_26
Moderator
Moderator
Moderator
250 solutions authored 100 solutions authored 50 solutions authored

There is a 64-byte block of flash called metadata section which is the shared area for both bootloader and bootloadable applications. It contains various fields such as Bootloadable Application Custom ID, Bootloadable Application ID etc., If compatibility is checked via application version or ID, the user can use these medadata fields straight away. These fields contain the application details specified in the bootloadable Component customizer.

Bootloader supports uint32 Bootloader_GetMetadata (uint8 field, uint8 appId) API that returns the value of the specified metadata field. This can be checked for compatibility and launch/bootload appropriate bootloadable firmware from bootloader.

imm.png

View solution in original post

1 Reply
GeonaP_26
Moderator
Moderator
Moderator
250 solutions authored 100 solutions authored 50 solutions authored

There is a 64-byte block of flash called metadata section which is the shared area for both bootloader and bootloadable applications. It contains various fields such as Bootloadable Application Custom ID, Bootloadable Application ID etc., If compatibility is checked via application version or ID, the user can use these medadata fields straight away. These fields contain the application details specified in the bootloadable Component customizer.

Bootloader supports uint32 Bootloader_GetMetadata (uint8 field, uint8 appId) API that returns the value of the specified metadata field. This can be checked for compatibility and launch/bootload appropriate bootloadable firmware from bootloader.

imm.png