diff options
Diffstat (limited to 'meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0008-Platform-corstone1000-BL1-changes-to-adapt-to-new-fl.patch')
-rw-r--r-- | meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0008-Platform-corstone1000-BL1-changes-to-adapt-to-new-fl.patch | 337 |
1 files changed, 0 insertions, 337 deletions
diff --git a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0008-Platform-corstone1000-BL1-changes-to-adapt-to-new-fl.patch b/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0008-Platform-corstone1000-BL1-changes-to-adapt-to-new-fl.patch deleted file mode 100644 index d9143a0eb6..0000000000 --- a/meta-arm/meta-arm-bsp/recipes-bsp/trusted-firmware-m/files/corstone1000/0008-Platform-corstone1000-BL1-changes-to-adapt-to-new-fl.patch +++ /dev/null @@ -1,337 +0,0 @@ -From f70bbd0d8efefcc69916fc0393bc413fb39924af Mon Sep 17 00:00:00 2001 -From: Mohamed Omar Asaker <mohamed.omarasaker@arm.com> -Date: Tue, 10 Jan 2023 22:33:26 +0000 -Subject: [PATCH 8/10] Platform: corstone1000: BL1 changes to adapt to new flash - layout - -The commit prepares BL1 to adapt to new GPT-based flash layout. - -BL1 does not incorporate a GPT parser and still uses a static -configuration to understand the flash. - -The flash_layout.h is also modified/marked in a way to start -the process of its simplification. - -Signed-off-by: Satish Kumar <satish.kumar01@arm.com> -Upstream-Status: Pending [Not submitted to upstream yet] -Signed-off-by: Mohamed Omar Asaker <mohamed.omarasaker@arm.com> -Upstream-Status: Pending [Not submitted to upstream yet] ---- - .../arm/corstone1000/bl1/bl1_boot_hal.c | 10 +-- - .../arm/corstone1000/bl1/bl1_flash_map.c | 17 ++-- - .../target/arm/corstone1000/bl2_flash_map.c | 8 +- - .../corstone1000/fw_update_agent/fwu_agent.c | 16 ++-- - .../corstone1000/fw_update_agent/fwu_agent.h | 4 +- - .../arm/corstone1000/partition/flash_layout.h | 84 +++++++++---------- - 6 files changed, 66 insertions(+), 73 deletions(-) - -diff --git a/platform/ext/target/arm/corstone1000/bl1/bl1_boot_hal.c b/platform/ext/target/arm/corstone1000/bl1/bl1_boot_hal.c -index 9caa26b26c..a5fe0f7da1 100644 ---- a/platform/ext/target/arm/corstone1000/bl1/bl1_boot_hal.c -+++ b/platform/ext/target/arm/corstone1000/bl1/bl1_boot_hal.c -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2019-2022, Arm Limited. All rights reserved. -+ * Copyright (c) 2019-2023, Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: BSD-3-Clause - * -@@ -601,12 +601,12 @@ __attribute__((naked)) void boot_clear_bl2_ram_area(void) - ); - } - --extern void add_bank_offset_to_image_offset(uint32_t bank_offset); -+extern void set_flash_area_image_offset(uint32_t offset); - - int32_t boot_platform_init(void) - { - int32_t result; -- uint32_t bank_offset; -+ uint32_t image_offset; - - result = corstone1000_watchdog_init(); - if (result != ARM_DRIVER_OK) { -@@ -653,8 +653,8 @@ int32_t boot_platform_init(void) - } - } - -- bl1_get_boot_bank(&bank_offset); -- add_bank_offset_to_image_offset(bank_offset); -+ bl1_get_active_bl2_image(&image_offset); -+ set_flash_area_image_offset(image_offset); - - return 0; - } -diff --git a/platform/ext/target/arm/corstone1000/bl1/bl1_flash_map.c b/platform/ext/target/arm/corstone1000/bl1/bl1_flash_map.c -index c8a1f13319..0e615da254 100644 ---- a/platform/ext/target/arm/corstone1000/bl1/bl1_flash_map.c -+++ b/platform/ext/target/arm/corstone1000/bl1/bl1_flash_map.c -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2019-2021, Arm Limited. All rights reserved. -+ * Copyright (c) 2019-2021, 2023 Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: BSD-3-Clause - * -@@ -22,23 +22,22 @@ struct flash_area flash_map[] = { - .fa_id = FLASH_AREA_8_ID, - .fa_device_id = FLASH_DEVICE_ID, - .fa_driver = &FLASH_DEV_NAME, -- .fa_off = FLASH_AREA_8_OFFSET, -+ .fa_off = FLASH_INVALID_OFFSET, - .fa_size = FLASH_AREA_8_SIZE, - }, -+ /* Secondary slot is not supported */ - { -- .fa_id = FLASH_AREA_9_ID, -+ .fa_id = FLASH_INVALID_ID, - .fa_device_id = FLASH_DEVICE_ID, - .fa_driver = &FLASH_DEV_NAME, -- .fa_off = FLASH_AREA_9_OFFSET, -- .fa_size = FLASH_AREA_9_SIZE, -+ .fa_off = FLASH_INVALID_OFFSET, -+ .fa_size = FLASH_INVALID_SIZE, - }, - }; - - const int flash_map_entry_num = ARRAY_SIZE(flash_map); - --void add_bank_offset_to_image_offset(uint32_t bank_offset) -+void set_flash_area_image_offset(uint32_t offset) - { -- for (int i = 0; i < flash_map_entry_num; i++) { -- flash_map[i].fa_off += bank_offset; -- } -+ flash_map[0].fa_off = offset; - } -diff --git a/platform/ext/target/arm/corstone1000/bl2_flash_map.c b/platform/ext/target/arm/corstone1000/bl2_flash_map.c -index 0a6a592d94..f512045a44 100644 ---- a/platform/ext/target/arm/corstone1000/bl2_flash_map.c -+++ b/platform/ext/target/arm/corstone1000/bl2_flash_map.c -@@ -28,15 +28,15 @@ struct flash_area flash_map[] = { - .fa_id = FLASH_AREA_0_ID, - .fa_device_id = FLASH_DEVICE_ID, - .fa_driver = &FLASH_DEV_NAME, -- .fa_off = FLASH_AREA_0_OFFSET, -- .fa_size = FLASH_AREA_0_SIZE, -+ .fa_off = FLASH_INVALID_OFFSET, -+ .fa_size = FLASH_INVALID_SIZE, - }, - { - .fa_id = FLASH_AREA_1_ID, - .fa_device_id = FLASH_DEVICE_ID, - .fa_driver = &FLASH_DEV_NAME, -- .fa_off = FLASH_AREA_1_OFFSET, -- .fa_size = FLASH_AREA_1_SIZE, -+ .fa_off = FLASH_INVALID_OFFSET, -+ .fa_size = FLASH_INVALID_SIZE, - }, - #ifndef TFM_S_REG_TEST - { -diff --git a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c -index eb17c3a377..e4f9da1ec3 100644 ---- a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c -+++ b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.c -@@ -154,7 +154,7 @@ static enum fwu_agent_error_t private_metadata_read( - return FWU_AGENT_ERROR; - } - -- ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_PRIVATE_AREA_OFFSET, p_metadata, -+ ret = FWU_METADATA_FLASH_DEV.ReadData(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET, p_metadata, - sizeof(struct fwu_private_metadata)); - if (ret < 0 || ret != sizeof(struct fwu_private_metadata)) { - return FWU_AGENT_ERROR; -@@ -178,12 +178,12 @@ static enum fwu_agent_error_t private_metadata_write( - return FWU_AGENT_ERROR; - } - -- ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_PRIVATE_AREA_OFFSET); -+ ret = FWU_METADATA_FLASH_DEV.EraseSector(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET); - if (ret != ARM_DRIVER_OK) { - return FWU_AGENT_ERROR; - } - -- ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_PRIVATE_AREA_OFFSET, -+ ret = FWU_METADATA_FLASH_DEV.ProgramData(FWU_PRIVATE_METADATA_REPLICA_1_OFFSET, - p_metadata, sizeof(struct fwu_private_metadata)); - if (ret < 0 || ret != sizeof(struct fwu_private_metadata)) { - return FWU_AGENT_ERROR; -@@ -769,7 +769,7 @@ static enum fwu_agent_error_t fwu_select_previous( - - } - --void bl1_get_boot_bank(uint32_t *bank_offset) -+void bl1_get_active_bl2_image(uint32_t *offset) - { - struct fwu_private_metadata priv_metadata; - enum fwu_agent_state_t current_state; -@@ -823,15 +823,15 @@ void bl1_get_boot_bank(uint32_t *bank_offset) - } - - if (boot_index == BANK_0) { -- *bank_offset = BANK_0_PARTITION_OFFSET; -+ *offset = SE_BL2_BANK_0_OFFSET; - } else if (boot_index == BANK_1) { -- *bank_offset = BANK_1_PARTITION_OFFSET; -+ *offset = SE_BL2_BANK_1_OFFSET; - } else { - FWU_ASSERT(0); - } - -- FWU_LOG_MSG("%s: exit: booting from bank = %u, offset = %x\n\r", __func__, -- boot_index, *bank_offset); -+ FWU_LOG_MSG("%s: exit: booting from bank = %u, offset = 0x%x\n\r", __func__, -+ boot_index, *offset); - - return; - } -diff --git a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.h b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.h -index 00a08354be..eb8320ed8a 100644 ---- a/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.h -+++ b/platform/ext/target/arm/corstone1000/fw_update_agent/fwu_agent.h -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2021, Arm Limited. All rights reserved. -+ * Copyright (c) 2021-2023, Arm Limited. All rights reserved. - * - * SPDX-License-Identifier: BSD-3-Clause - * -@@ -44,7 +44,7 @@ enum fwu_agent_error_t corstone1000_fwu_flash_image(void); - */ - enum fwu_agent_error_t corstone1000_fwu_host_ack(void); - --void bl1_get_boot_bank(uint32_t *bank_offset); -+void bl1_get_active_bl2_image(uint32_t *bank_offset); - void bl2_get_boot_bank(uint32_t *bank_offset); - - /* When in trial state, start the timer for host to respond. -diff --git a/platform/ext/target/arm/corstone1000/partition/flash_layout.h b/platform/ext/target/arm/corstone1000/partition/flash_layout.h -index 5970a13c12..347c91acbb 100644 ---- a/platform/ext/target/arm/corstone1000/partition/flash_layout.h -+++ b/platform/ext/target/arm/corstone1000/partition/flash_layout.h -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2017-2022 Arm Limited. All rights reserved. -+ * Copyright (c) 2017-2023 Arm Limited. All rights reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. -@@ -98,56 +98,56 @@ - - #endif - --/* Flash layout (32MB) :- -- * -- * 1 MB : FWU_METADATA_PARTITION_SIZE -- * 15.5 MB : BANK 1 PARTITION SIZE -- * 15.5 MB : BANK 2 PARTITION SIZE -- * -- */ --#define FWU_METADATA_PARTITION_SIZE (0x100000) /* 1MB */ --#define BANK_PARTITION_SIZE (0xF80000) /* 15.5 MB */ -+/* Static Configurations of the Flash */ -+#define SE_BL2_PARTITION_SIZE (0x18800) /* 98 KB */ -+#define SE_BL2_BANK_0_OFFSET (0x9000) /* 72nd LBA */ -+#define SE_BL2_BANK_1_OFFSET (0x1002000) /* 32784th LBA */ - --#define FLASH_BASE_OFFSET (0x0) -+/* Space in flash to store metadata and uefi variables */ -+#define FWU_METADATA_FLASH_DEV (FLASH_DEV_NAME) -+#define FWU_METADATA_FLASH_SECTOR_SIZE (FLASH_SECTOR_SIZE) - --/* BANK layout (15MB: BANK_PARTITION_SIZE) :- -- * -- * 200 KB : SE_BL2_PARTITION_SIZE + SE_BL2_PARTITION_SIZE -- * 752 KB : TFM_PARTITION_SIZE + TFM_PARTITION_SIZE -- * 2 MB : FIP_PARTITION_SIZE -- * 12+ MB : KERNEL_PARTITION_SIZE -- * -- */ --#define SE_BL2_PARTITION_SIZE (0x19000) /* 100 KB */ --#define TFM_PARTITION_SIZE (0x5E000) /* 376 KB */ --#define FIP_PARTITION_SIZE (0x200000) /* 2 MB */ --#define KERNEL_PARTITION_SIZE (0xC00000) /* 12 MB */ -+#define FWU_METADATA_REPLICA_1_OFFSET (0x5000) /* 40th LBA */ -+#define FWU_METADATA_REPLICA_2_OFFSET (FWU_METADATA_REPLICA_1_OFFSET + \ -+ FWU_METADATA_FLASH_SECTOR_SIZE) - -+#define FWU_PRIVATE_METADATA_REPLICA_1_OFFSET (FWU_METADATA_REPLICA_2_OFFSET + \ -+ FWU_METADATA_FLASH_SECTOR_SIZE) -+#define FWU_PRIVATE_METADATA_REPLICA_2_OFFSET (FWU_PRIVATE_METADATA_REPLICA_1_OFFSET + \ -+ FWU_METADATA_FLASH_SECTOR_SIZE) - -+#define BANK_0_PARTITION_OFFSET (SE_BL2_BANK_0_OFFSET + \ -+ SE_BL2_PARTITION_SIZE) -+#define BANK_1_PARTITION_OFFSET (SE_BL2_BANK_1_OFFSET + \ -+ SE_BL2_PARTITION_SIZE) - -+/* BL1: mcuboot flashmap configurations */ -+#define FLASH_AREA_8_ID (1) -+#define FLASH_AREA_8_SIZE (SE_BL2_PARTITION_SIZE) - --/* 1MB: space in flash to store metadata and uefi variables */ --#define FWU_METADATA_FLASH_DEV (FLASH_DEV_NAME) --#define FWU_METADATA_FLASH_SECTOR_SIZE (FLASH_SECTOR_SIZE) -+#define FLASH_INVALID_ID (0xFF) -+#define FLASH_INVALID_OFFSET (0xFFFFFFFF) -+#define FLASH_INVALID_SIZE (0xFFFFFFFF) - --#define FWU_METADATA_PARTITION_OFFSET (FLASH_BASE_OFFSET) --#define FWU_METADATA_AREA_SIZE (FWU_METADATA_FLASH_SECTOR_SIZE) --#define FWU_METADATA_REPLICA_1_OFFSET (FLASH_BASE_OFFSET) --#define FWU_METADATA_REPLICA_2_OFFSET (FWU_METADATA_REPLICA_1_OFFSET + \ -- FWU_METADATA_AREA_SIZE) --#define FWU_PRIVATE_AREA_SIZE (FLASH_SECTOR_SIZE) --#define FWU_PRIVATE_AREA_OFFSET (FWU_METADATA_REPLICA_2_OFFSET + \ -- FWU_METADATA_AREA_SIZE) -+#define BL1_FLASH_AREA_IMAGE_PRIMARY(x) (((x) == 0) ? FLASH_AREA_8_ID : \ -+ 255 ) -+#define BL1_FLASH_AREA_IMAGE_SECONDARY(x) (((x) == 0) ? FLASH_INVALID_ID : \ -+ 255 ) -+ -+#define BL1_FLASH_AREA_IMAGE_SCRATCH 255 - -+/* FWU Configurations */ - #define NR_OF_FW_BANKS (2) - #define NR_OF_IMAGES_IN_FW_BANK (4) /* Secure Enclave: BL2 and TF-M \ - * Host: FIP and Kernel image - */ - --#define BANK_0_PARTITION_OFFSET (FWU_METADATA_PARTITION_OFFSET + \ -- FWU_METADATA_PARTITION_SIZE) --#define BANK_1_PARTITION_OFFSET (BANK_0_PARTITION_OFFSET + \ -- BANK_PARTITION_SIZE) -+/****** TODO: START : NEED SIMPLIFICATION BASED ON GPT *******************/ -+/* Bank configurations */ -+#define BANK_PARTITION_SIZE (0xFE0000) /* 15.875 MB */ -+#define TFM_PARTITION_SIZE (0x5E000) /* 376 KB */ -+#define FIP_PARTITION_SIZE (0x200000) /* 2 MB */ -+#define KERNEL_PARTITION_SIZE (0xC00000) /* 12 MB */ - - /************************************************************/ - /* Bank : Images flash offsets are with respect to the bank */ -@@ -170,13 +170,6 @@ - #define BL2_IMAGE_OFFSET (0x0) - #define BL2_IMAGE_MAX_SIZE (SE_BL2_PARTITION_SIZE) - --#define BL1_FLASH_AREA_IMAGE_PRIMARY(x) (((x) == 0) ? FLASH_AREA_8_ID : \ -- 255 ) --#define BL1_FLASH_AREA_IMAGE_SECONDARY(x) (((x) == 0) ? FLASH_AREA_9_ID : \ -- 255 ) -- --#define BL1_FLASH_AREA_IMAGE_SCRATCH 255 -- - /* Image 1: TF-M primary and secondary images */ - #define FLASH_AREA_0_ID (1) - #define FLASH_AREA_0_OFFSET (FLASH_AREA_9_OFFSET + \ -@@ -229,6 +222,7 @@ - #define FWU_METADATA_IMAGE_3_OFFSET (KERNEL_PARTITION_OFFSET) - #define FWU_METADATA_IMAGE_3_SIZE_LIMIT (KERNEL_PARTITION_SIZE) - -+/****** TODO: END : NEED SIMPLIFICATION BASED ON GPT *******************/ - - /*******************************/ - /*** ITS, PS and NV Counters ***/ --- -2.25.1 - |