Commit 99bcae5e authored by Sandrine Bailleux's avatar Sandrine Bailleux Committed by TrustedFirmware Code Review
Browse files

Merge changes from topic "fw_config_handoff" into integration

* changes:
  doc: Update memory layout for firmware configuration area
  plat/arm: Increase size of firmware configuration area
  plat/arm: Load and populate fw_config and tb_fw_config
  fconf: Handle error from fconf_load_config
  plat/arm: Update the fw_config load call and populate it's information
  fconf: Allow fconf to load additional firmware configuration
  fconf: Clean confused naming between TB_FW and FW_CONFIG
  tbbr/dualroot: Add fw_config image in chain of trust
  cert_tool: Update cert_tool for fw_config image support
  fiptool: Add fw_config in FIP
  plat/arm: Rentroduce tb_fw_config device tree
parents 24cdbb22 089fc624
...@@ -25,6 +25,7 @@ const io_block_spec_t fip_block_spec = { ...@@ -25,6 +25,7 @@ const io_block_spec_t fip_block_spec = {
const io_uuid_spec_t arm_uuid_spec[MAX_NUMBER_IDS] = { const io_uuid_spec_t arm_uuid_spec[MAX_NUMBER_IDS] = {
[BL2_IMAGE_ID] = {UUID_TRUSTED_BOOT_FIRMWARE_BL2}, [BL2_IMAGE_ID] = {UUID_TRUSTED_BOOT_FIRMWARE_BL2},
[TB_FW_CONFIG_ID] = {UUID_TB_FW_CONFIG}, [TB_FW_CONFIG_ID] = {UUID_TB_FW_CONFIG},
[FW_CONFIG_ID] = {UUID_FW_CONFIG},
#if !ARM_IO_IN_DTB #if !ARM_IO_IN_DTB
[SCP_BL2_IMAGE_ID] = {UUID_SCP_FIRMWARE_SCP_BL2}, [SCP_BL2_IMAGE_ID] = {UUID_SCP_FIRMWARE_SCP_BL2},
[BL31_IMAGE_ID] = {UUID_EL3_RUNTIME_FIRMWARE_BL31}, [BL31_IMAGE_ID] = {UUID_EL3_RUNTIME_FIRMWARE_BL31},
...@@ -73,6 +74,11 @@ struct plat_io_policy policies[MAX_NUMBER_IDS] = { ...@@ -73,6 +74,11 @@ struct plat_io_policy policies[MAX_NUMBER_IDS] = {
(uintptr_t)&arm_uuid_spec[TB_FW_CONFIG_ID], (uintptr_t)&arm_uuid_spec[TB_FW_CONFIG_ID],
open_fip open_fip
}, },
[FW_CONFIG_ID] = {
&fip_dev_handle,
(uintptr_t)&arm_uuid_spec[FW_CONFIG_ID],
open_fip
},
#if !ARM_IO_IN_DTB #if !ARM_IO_IN_DTB
[SCP_BL2_IMAGE_ID] = { [SCP_BL2_IMAGE_ID] = {
&fip_dev_handle, &fip_dev_handle,
......
...@@ -29,10 +29,10 @@ static entry_point_info_t bl33_image_ep_info; ...@@ -29,10 +29,10 @@ static entry_point_info_t bl33_image_ep_info;
MT_MEMORY | MT_RW | MT_SECURE) MT_MEMORY | MT_RW | MT_SECURE)
/* /*
* Check that BL32_BASE is above ARM_TB_FW_CONFIG_LIMIT. The reserved page * Check that BL32_BASE is above ARM_FW_CONFIG_LIMIT. The reserved page
* is required for SOC_FW_CONFIG/TOS_FW_CONFIG passed from BL2. * is required for SOC_FW_CONFIG/TOS_FW_CONFIG passed from BL2.
*/ */
CASSERT(BL32_BASE >= ARM_TB_FW_CONFIG_LIMIT, assert_bl32_base_overflows); CASSERT(BL32_BASE >= ARM_FW_CONFIG_LIMIT, assert_bl32_base_overflows);
/******************************************************************************* /*******************************************************************************
* Return a pointer to the 'entry_point_info' structure of the next image for the * Return a pointer to the 'entry_point_info' structure of the next image for the
......
/* /*
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2020, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
......
...@@ -138,7 +138,7 @@ ...@@ -138,7 +138,7 @@
* BL31 is loaded over the top. * BL31 is loaded over the top.
*/ */
#define PLAT_CSS_MAX_SCP_BL2_SIZE \ #define PLAT_CSS_MAX_SCP_BL2_SIZE \
((SCP_BL2_LIMIT - ARM_TB_FW_CONFIG_LIMIT) & ~PAGE_SIZE_MASK) ((SCP_BL2_LIMIT - ARM_FW_CONFIG_LIMIT) & ~PAGE_SIZE_MASK)
#define PLAT_CSS_MAX_SCP_BL2U_SIZE PLAT_CSS_MAX_SCP_BL2_SIZE #define PLAT_CSS_MAX_SCP_BL2U_SIZE PLAT_CSS_MAX_SCP_BL2_SIZE
......
...@@ -32,6 +32,7 @@ enum { ...@@ -32,6 +32,7 @@ enum {
TRUSTED_BOOT_FW_HASH_EXT, TRUSTED_BOOT_FW_HASH_EXT,
TRUSTED_BOOT_FW_CONFIG_HASH_EXT, TRUSTED_BOOT_FW_CONFIG_HASH_EXT,
HW_CONFIG_HASH_EXT, HW_CONFIG_HASH_EXT,
FW_CONFIG_HASH_EXT,
TRUSTED_WORLD_PK_EXT, TRUSTED_WORLD_PK_EXT,
SCP_FW_CONTENT_CERT_PK_EXT, SCP_FW_CONTENT_CERT_PK_EXT,
SCP_FW_HASH_EXT, SCP_FW_HASH_EXT,
......
/* /*
* Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2015-2020, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
...@@ -15,6 +15,7 @@ enum { ...@@ -15,6 +15,7 @@ enum {
TRUSTED_BOOT_FW_HASH_EXT, TRUSTED_BOOT_FW_HASH_EXT,
TRUSTED_BOOT_FW_CONFIG_HASH_EXT, TRUSTED_BOOT_FW_CONFIG_HASH_EXT,
HW_CONFIG_HASH_EXT, HW_CONFIG_HASH_EXT,
FW_CONFIG_HASH_EXT,
TRUSTED_WORLD_PK_EXT, TRUSTED_WORLD_PK_EXT,
NON_TRUSTED_WORLD_PK_EXT, NON_TRUSTED_WORLD_PK_EXT,
SCP_FW_CONTENT_CERT_PK_EXT, SCP_FW_CONTENT_CERT_PK_EXT,
......
...@@ -30,9 +30,10 @@ static cert_t cot_certs[] = { ...@@ -30,9 +30,10 @@ static cert_t cot_certs[] = {
TRUSTED_FW_NVCOUNTER_EXT, TRUSTED_FW_NVCOUNTER_EXT,
TRUSTED_BOOT_FW_HASH_EXT, TRUSTED_BOOT_FW_HASH_EXT,
TRUSTED_BOOT_FW_CONFIG_HASH_EXT, TRUSTED_BOOT_FW_CONFIG_HASH_EXT,
HW_CONFIG_HASH_EXT HW_CONFIG_HASH_EXT,
FW_CONFIG_HASH_EXT
}, },
.num_ext = 4 .num_ext = 5
}, },
[TRUSTED_KEY_CERT] = { [TRUSTED_KEY_CERT] = {
...@@ -239,6 +240,17 @@ static ext_t cot_ext[] = { ...@@ -239,6 +240,17 @@ static ext_t cot_ext[] = {
.optional = 1 .optional = 1
}, },
[FW_CONFIG_HASH_EXT] = {
.oid = FW_CONFIG_HASH_OID,
.opt = "fw-config",
.help_msg = "Firmware Config file",
.sn = "FirmwareConfigHash",
.ln = "Firmware Config hash",
.asn1_type = V_ASN1_OCTET_STRING,
.type = EXT_TYPE_HASH,
.optional = 1
},
[TRUSTED_WORLD_PK_EXT] = { [TRUSTED_WORLD_PK_EXT] = {
.oid = TRUSTED_WORLD_PK_OID, .oid = TRUSTED_WORLD_PK_OID,
.sn = "TrustedWorldPublicKey", .sn = "TrustedWorldPublicKey",
......
/* /*
* Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2015-2020, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
...@@ -28,9 +28,10 @@ static cert_t tbb_certs[] = { ...@@ -28,9 +28,10 @@ static cert_t tbb_certs[] = {
TRUSTED_FW_NVCOUNTER_EXT, TRUSTED_FW_NVCOUNTER_EXT,
TRUSTED_BOOT_FW_HASH_EXT, TRUSTED_BOOT_FW_HASH_EXT,
TRUSTED_BOOT_FW_CONFIG_HASH_EXT, TRUSTED_BOOT_FW_CONFIG_HASH_EXT,
HW_CONFIG_HASH_EXT HW_CONFIG_HASH_EXT,
FW_CONFIG_HASH_EXT
}, },
.num_ext = 4 .num_ext = 5
}, },
[TRUSTED_KEY_CERT] = { [TRUSTED_KEY_CERT] = {
.id = TRUSTED_KEY_CERT, .id = TRUSTED_KEY_CERT,
......
/* /*
* Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2015-2020, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
...@@ -69,6 +69,16 @@ static ext_t tbb_ext[] = { ...@@ -69,6 +69,16 @@ static ext_t tbb_ext[] = {
.type = EXT_TYPE_HASH, .type = EXT_TYPE_HASH,
.optional = 1 .optional = 1
}, },
[FW_CONFIG_HASH_EXT] = {
.oid = FW_CONFIG_HASH_OID,
.opt = "fw-config",
.help_msg = "Firmware Config file",
.sn = "FirmwareConfigHash",
.ln = "Firmware Config hash",
.asn1_type = V_ASN1_OCTET_STRING,
.type = EXT_TYPE_HASH,
.optional = 1
},
[TRUSTED_WORLD_PK_EXT] = { [TRUSTED_WORLD_PK_EXT] = {
.oid = TRUSTED_WORLD_PK_OID, .oid = TRUSTED_WORLD_PK_OID,
.sn = "TrustedWorldPublicKey", .sn = "TrustedWorldPublicKey",
......
/* /*
* Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2016-2020, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
...@@ -68,6 +68,11 @@ toc_entry_t toc_entries[] = { ...@@ -68,6 +68,11 @@ toc_entry_t toc_entries[] = {
.cmdline_name = "nt-fw" .cmdline_name = "nt-fw"
}, },
/* Dynamic Configs */ /* Dynamic Configs */
{
.name = "FW_CONFIG",
.uuid = UUID_FW_CONFIG,
.cmdline_name = "fw-config"
},
{ {
.name = "HW_CONFIG", .name = "HW_CONFIG",
.uuid = UUID_HW_CONFIG, .uuid = UUID_HW_CONFIG,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment