mirror of
https://github.com/polhenarejos/pico-keys-sdk
synced 2026-06-11 04:48:15 +02:00
Make trust region board invariant.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
32
config/rp2350/ld/trusted_region.ld
Normal file
32
config/rp2350/ld/trusted_region.ld
Normal file
@@ -0,0 +1,32 @@
|
||||
SECTIONS
|
||||
{
|
||||
__trusted_region_min_flash_base = ALIGN(LOADADDR(.flash_end) + SIZEOF(.flash_end), 16);
|
||||
__trusted_region_flash_base = DEFINED(__trusted_region_fixed_base) ?
|
||||
__trusted_region_fixed_base :
|
||||
__trusted_region_min_flash_base;
|
||||
|
||||
.trusted_region __trusted_region_flash_base :
|
||||
{
|
||||
. = ALIGN(16);
|
||||
__trusted_start = .;
|
||||
|
||||
libtrusted_mbedtls.a:(.trusted.text .trusted.text.* .trusted.gnu.linkonce.t.*)
|
||||
|
||||
. = ALIGN(16);
|
||||
libtrusted_mbedtls.a:(.trusted.rodata .trusted.rodata.* .trusted.srodata .trusted.srodata.* .trusted.gnu.linkonce.r.*)
|
||||
|
||||
. = ALIGN(16);
|
||||
__trusted_end = .;
|
||||
}
|
||||
|
||||
__trusted_load_start = LOADADDR(.trusted_region);
|
||||
__trusted_load_end = LOADADDR(.trusted_region) + SIZEOF(.trusted_region);
|
||||
__flash_binary_end = __trusted_end;
|
||||
}
|
||||
|
||||
ASSERT(__trusted_end >= __trusted_start, "trusted region symbols are invalid")
|
||||
ASSERT(!DEFINED(__trusted_region_fixed_base) ||
|
||||
(__trusted_region_fixed_base >= __trusted_region_min_flash_base),
|
||||
"PICOKEYS_TRUSTED_REGION_FLASH_BASE is below the end of the regular flash image")
|
||||
|
||||
INSERT AFTER .flash_end;
|
||||
29
config/rp2350/ld/trusted_state.ld
Normal file
29
config/rp2350/ld/trusted_state.ld
Normal file
@@ -0,0 +1,29 @@
|
||||
SECTIONS
|
||||
{
|
||||
__trusted_state_ram_base = DEFINED(__trusted_state_fixed_base) ?
|
||||
__trusted_state_fixed_base :
|
||||
0x20070000;
|
||||
.trusted_data __trusted_state_ram_base : AT (ALIGN(__trusted_load_end, 16))
|
||||
{
|
||||
. = ALIGN(16);
|
||||
__trusted_data_start = .;
|
||||
libtrusted_mbedtls.a:(.trusted.data .trusted.data.*)
|
||||
. = ALIGN(16);
|
||||
__trusted_data_end = .;
|
||||
}
|
||||
__trusted_data_load_start = LOADADDR(.trusted_data);
|
||||
__trusted_data_load_end = LOADADDR(.trusted_data) + SIZEOF(.trusted_data);
|
||||
.trusted_bss ALIGN(__trusted_data_end, 16) (NOLOAD) :
|
||||
{
|
||||
. = ALIGN(16);
|
||||
__trusted_bss_start = .;
|
||||
libtrusted_mbedtls.a:(.trusted.bss .trusted.bss.*)
|
||||
. = ALIGN(16);
|
||||
__trusted_bss_end = .;
|
||||
}
|
||||
}
|
||||
ASSERT(__trusted_bss_end >= __trusted_data_start, "trusted state symbols are invalid")
|
||||
ASSERT(__trusted_state_ram_base >= 0x20000000, "trusted state RAM base is below RP2350 SRAM")
|
||||
ASSERT(__trusted_bss_end <= 0x20080000, "trusted state exceeds RP2350 main SRAM window")
|
||||
INSERT AFTER .trusted_region;
|
||||
|
||||
Reference in New Issue
Block a user