Platform: Add new NV counter due to multiple image boot
Add new NV counter to the NV counter flash area to be used
by the bootloader as a separate second security counter
for another firmware image to enable multiple image boot.
Change-Id: I6cd3bf675317240e40cd0bc31a714070885791aa
Signed-off-by: David Vincze <david.vincze@arm.com>
diff --git a/platform/ext/target/mps2/an519/partition/flash_layout.h b/platform/ext/target/mps2/an519/partition/flash_layout.h
index 37938b4..c37188a 100644
--- a/platform/ext/target/mps2/an519/partition/flash_layout.h
+++ b/platform/ext/target/mps2/an519/partition/flash_layout.h
@@ -40,8 +40,8 @@
* 0x0020_0000 Non-secure image secondary
* 0x0028_0000 Scratch area (1 MB)
* 0x0038_0000 Secure Storage Area (0.02 MB)
- * 0x0038_5000 NV counters area (20 Bytes)
- * 0x0038_5014 Unused (0.480 MB)
+ * 0x0038_5000 NV counters area (24 Bytes)
+ * 0x0038_5018 Unused (0.480 MB)
*
* Flash layout on MPS2 AN519, if BL2 not defined:
*
@@ -156,7 +156,7 @@
/* NV Counters definitions */
#define FLASH_NV_COUNTERS_AREA_OFFSET (FLASH_SST_AREA_OFFSET + \
FLASH_SST_AREA_SIZE)
-#define FLASH_NV_COUNTERS_AREA_SIZE (0x14) /* 20 Bytes */
+#define FLASH_NV_COUNTERS_AREA_SIZE (0x18) /* 24 Bytes */
/* Offset and size definition in flash area used by assemble.py */
#define SECURE_IMAGE_OFFSET (0x0)
diff --git a/platform/ext/target/mps2/an521/partition/flash_layout.h b/platform/ext/target/mps2/an521/partition/flash_layout.h
index d09ef07..a1f414f 100644
--- a/platform/ext/target/mps2/an521/partition/flash_layout.h
+++ b/platform/ext/target/mps2/an521/partition/flash_layout.h
@@ -40,8 +40,8 @@
* 0x0020_0000 Non-secure image secondary
* 0x0028_0000 Scratch area (1 MB)
* 0x0038_0000 Secure Storage Area (0.02 MB)
- * 0x0038_5000 NV counters area (20 Bytes)
- * 0x0038_5014 Unused (0.480 MB)
+ * 0x0038_5000 NV counters area (24 Bytes)
+ * 0x0038_5018 Unused (0.480 MB)
*
* Flash layout on MPS2 AN521, if BL2 not defined:
*
@@ -156,7 +156,7 @@
/* NV Counters definitions */
#define FLASH_NV_COUNTERS_AREA_OFFSET (FLASH_SST_AREA_OFFSET + \
FLASH_SST_AREA_SIZE)
-#define FLASH_NV_COUNTERS_AREA_SIZE (0x14) /* 20 Bytes */
+#define FLASH_NV_COUNTERS_AREA_SIZE (0x18) /* 24 Bytes */
/* Offset and size definition in flash area used by assemble.py */
#define SECURE_IMAGE_OFFSET (0x0)
diff --git a/platform/ext/target/mps3/an524/partition/flash_layout.h b/platform/ext/target/mps3/an524/partition/flash_layout.h
index 35d472a..c2441ac 100644
--- a/platform/ext/target/mps3/an524/partition/flash_layout.h
+++ b/platform/ext/target/mps3/an524/partition/flash_layout.h
@@ -35,16 +35,16 @@
* 0x0010_0000 Non-secure image (256 KB)
* 0x0014_0000 Scratch area (512 KB)
* 0x001C_0000 SST area (20 KB)
- * 0x001C_5000 NV counters (20 B)
- * 0x001C_5014 Unused
+ * 0x001C_5000 NV counters (24 B)
+ * 0x001C_5018 Unused
*
* Flash layout without BL2
*
* 0x0000_0000 Secure image (256 KB)
* 0x0008_0000 Non-secure image (256 KB)
* 0x001C_0000 SST area (20 KB)
- * 0x001C_5000 NV counter (20 B)
- * 0x001C_5014 Unused
+ * 0x001C_5000 NV counter (24 B)
+ * 0x001C_5018 Unused
*/
/* Size of a Secure and of a Non-secure image */
@@ -132,7 +132,7 @@
/* NV Counters definitions */
#define FLASH_NV_COUNTERS_AREA_OFFSET (FLASH_SST_AREA_OFFSET + \
FLASH_SST_AREA_SIZE)
-#define FLASH_NV_COUNTERS_AREA_SIZE (0x14) /* 20 Bytes */
+#define FLASH_NV_COUNTERS_AREA_SIZE (0x18) /* 24 Bytes */
/* Offset and size definition in flash area used by assemble.py */
#define SECURE_IMAGE_OFFSET (0x0)
diff --git a/platform/ext/target/musca_a/partition/flash_layout.h b/platform/ext/target/musca_a/partition/flash_layout.h
index 89d8083..5348e28 100644
--- a/platform/ext/target/musca_a/partition/flash_layout.h
+++ b/platform/ext/target/musca_a/partition/flash_layout.h
@@ -27,8 +27,8 @@
* 0x0032_0000 Secure image secondary
* 0x003A_0000 Non-secure image secondary
* 0x0042_0000 Secure Storage Area (0.02 MB)
- * 0x0042_5000 NV counters area (20 Bytes)
- * 0x0042_5014 Unused
+ * 0x0042_5000 NV counters area (24 Bytes)
+ * 0x0042_5018 Unused
*/
/* Code SRAM layout on Musca (with BL2, which is mandatory) after the newest
@@ -136,7 +136,7 @@
/* NV Counters definitions */
#define FLASH_NV_COUNTERS_AREA_OFFSET (FLASH_SST_AREA_OFFSET + \
FLASH_SST_AREA_SIZE)
-#define FLASH_NV_COUNTERS_AREA_SIZE (0x14) /* 20 Bytes */
+#define FLASH_NV_COUNTERS_AREA_SIZE (0x18) /* 24 Bytes */
/* Offset and size definition in flash area used by assemble.py */
#define SECURE_IMAGE_OFFSET (0x0)
diff --git a/platform/ext/target/musca_b1/partition/flash_layout.h b/platform/ext/target/musca_b1/partition/flash_layout.h
index 10108d9..717f8b2 100644
--- a/platform/ext/target/musca_b1/partition/flash_layout.h
+++ b/platform/ext/target/musca_b1/partition/flash_layout.h
@@ -27,8 +27,8 @@
* 0x0A0E_0000 Secure image secondary (256 KB)
* 0x0A12_0000 Non-secure image secondary (512 KB)
* 0x0A1E_0000 Secure Storage Area (0.02 MB)
- * 0x0A1E_5000 NV counters area (20 Bytes)
- * 0x0A1E_5014 Unused
+ * 0x0A1E_5000 NV counters area (24 Bytes)
+ * 0x0A1E_5018 Unused
*
* Flash layout on Musca-B1 without BL2:
* 0x0A00_0000 Secure image
@@ -134,7 +134,7 @@
/* NV Counters definitions */
#define FLASH_NV_COUNTERS_AREA_OFFSET (FLASH_SST_AREA_OFFSET + \
FLASH_SST_AREA_SIZE)
-#define FLASH_NV_COUNTERS_AREA_SIZE (0x14) /* 20 Bytes */
+#define FLASH_NV_COUNTERS_AREA_SIZE (0x18) /* 24 Bytes */
/* Offset and size definition in flash area used by assemble.py */
#define SECURE_IMAGE_OFFSET (0x0)
diff --git a/platform/include/tfm_plat_nv_counters.h b/platform/include/tfm_plat_nv_counters.h
index 9b86112..ff34a91 100644
--- a/platform/include/tfm_plat_nv_counters.h
+++ b/platform/include/tfm_plat_nv_counters.h
@@ -31,6 +31,7 @@
PLAT_NV_COUNTER_1, /* Used by SST service */
PLAT_NV_COUNTER_2, /* Used by SST service */
PLAT_NV_COUNTER_3, /* Used by bootloader */
+ PLAT_NV_COUNTER_4, /* Used by bootloader */
PLAT_NV_COUNTER_MAX
};