mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-15 17:14:21 +00:00
Merge changes from topic "upstream_sp_num" into integration
* changes: fix(tc): enable certificate on the last secure partition feat(sptool): populate secure partition number in makefile
This commit is contained in:
commit
c2f05915bd
2 changed files with 33 additions and 1 deletions
|
@ -120,7 +120,7 @@ struct dpe_metadata tc_dpe_metadata[] = {
|
|||
.sw_type = MBOOT_SP1_STRING,
|
||||
.allow_new_context_to_derive = false,
|
||||
.retain_parent_context = true,
|
||||
.create_certificate = true, /* With Trusty only one SP is loaded */
|
||||
.create_certificate = false,
|
||||
.target_locality = LOCALITY_NONE, /* won't derive don't care */
|
||||
.pk_oid = NULL },
|
||||
{
|
||||
|
@ -230,10 +230,33 @@ void plat_dpe_get_context_handle(int *ctx_handle)
|
|||
|
||||
void bl2_plat_mboot_init(void)
|
||||
{
|
||||
size_t i;
|
||||
const size_t array_size = ARRAY_SIZE(tc_dpe_metadata);
|
||||
|
||||
/* Initialize the communication channel between AP and RSE */
|
||||
(void)rse_comms_init(PLAT_RSE_AP_SND_MHU_BASE,
|
||||
PLAT_RSE_AP_RCV_MHU_BASE);
|
||||
|
||||
#if defined(SPD_spmd)
|
||||
for (i = 0U; i < array_size; i++) {
|
||||
if (tc_dpe_metadata[i].id != SP_PKG1_ID) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((i + NUM_SP > array_size) || (i - 1 + NUM_SP < 0)) {
|
||||
ERROR("Secure partition number is out-of-range\n");
|
||||
ERROR(" Non-Secure partition number: %ld\n", i);
|
||||
ERROR(" Secure partition number: %d\n", NUM_SP);
|
||||
ERROR(" Metadata array size: %ld\n", array_size);
|
||||
panic();
|
||||
}
|
||||
|
||||
/* Finalize the certificate on the last secure partition */
|
||||
tc_dpe_metadata[i - 1 + NUM_SP].create_certificate = true;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
dpe_init(tc_dpe_metadata);
|
||||
}
|
||||
|
||||
|
|
|
@ -30,6 +30,9 @@ Secure Partition entry
|
|||
FIP_ARGS += --blob uuid=XXXXX-XXX...,file=sp1.pkg
|
||||
CRT_ARGS += --sp-pkg1 sp1.pkg
|
||||
|
||||
It populates the number of SP in the defined macro 'NUM_SP'
|
||||
$(eval $(call add_define_val,NUM_SP,{len(sp_layout.keys())}))
|
||||
|
||||
A typical SP_LAYOUT_FILE file will look like
|
||||
{
|
||||
"SP1" : {
|
||||
|
@ -151,6 +154,12 @@ def check_max_sps(sp_layout, _, args :dict):
|
|||
raise Exception(f"Too many SPs in SP layout file. Max: {MAX_SP}")
|
||||
return args
|
||||
|
||||
@SpSetupActions.sp_action(global_action=True)
|
||||
def count_sps(sp_layout, _, args :dict):
|
||||
''' Count number of SP and put in NUM_SP '''
|
||||
write_to_sp_mk_gen(f"$(eval $(call add_define_val,NUM_SP,{len(sp_layout.keys())}))", args)
|
||||
return args
|
||||
|
||||
@SpSetupActions.sp_action
|
||||
def gen_fdt_sources(sp_layout, sp, args :dict):
|
||||
''' Generate FDT_SOURCES values for a given SP. '''
|
||||
|
|
Loading…
Add table
Reference in a new issue