diff --git a/sys/include/riotboot/slot.h b/sys/include/riotboot/slot.h index f1cbbba7b4..93a38b16f0 100644 --- a/sys/include/riotboot/slot.h +++ b/sys/include/riotboot/slot.h @@ -93,6 +93,11 @@ static inline void riotboot_slot_print_hdr(unsigned slot) riotboot_hdr_print(riotboot_slot_get_hdr(slot)); } +/** + * @brief Get the offset (in flash, in bytes) for a given slot. + */ +size_t riotboot_slot_offset(unsigned slot); + /** * @brief Dump the addresses of all configured slots * diff --git a/sys/riotboot/slot.c b/sys/riotboot/slot.c index fa4b79738c..472b02fc5b 100644 --- a/sys/riotboot/slot.c +++ b/sys/riotboot/slot.c @@ -93,3 +93,8 @@ const riotboot_hdr_t *riotboot_slot_get_hdr(unsigned slot) return riotboot_slots[slot]; } + +size_t riotboot_slot_offset(unsigned slot) +{ + return (size_t)riotboot_slot_get_hdr(slot) - CPU_FLASH_BASE; +}