Make trust region board invariant.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
Pol Henarejos
2026-06-10 17:30:00 +02:00
parent 0ed308087a
commit 3a142cb575
10 changed files with 685 additions and 101 deletions

View 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;

View 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;