summaryrefslogtreecommitdiff
path: root/common/firmware_image.lds.S
diff options
context:
space:
mode:
Diffstat (limited to 'common/firmware_image.lds.S')
-rw-r--r--common/firmware_image.lds.S13
1 files changed, 12 insertions, 1 deletions
diff --git a/common/firmware_image.lds.S b/common/firmware_image.lds.S
index a956683aa6..8e82dcf1de 100644
--- a/common/firmware_image.lds.S
+++ b/common/firmware_image.lds.S
@@ -15,6 +15,9 @@
#define IMAGE_RW_AT (CONFIG_PROGRAM_MEMORY_BASE + \
CONFIG_EC_WRITABLE_STORAGE_OFF + \
CONFIG_RW_STORAGE_OFF)
+#define IMAGE_RW_B_AT (CONFIG_PROGRAM_MEMORY_BASE + \
+ CONFIG_EC_WRITABLE_STORAGE_OFF + \
+ CONFIG_RW_B_STORAGE_OFF)
#elif (CONFIG_RO_MEM_OFF == CONFIG_RW_MEM_OFF)
#define IMAGE_RO_AT (CONFIG_PROGRAM_MEMORY_BASE + CONFIG_RO_MEM_OFF)
@@ -23,10 +26,13 @@ mapped to the same location but we still have to generate an ec.bin with RO
and RW images at different Flash offset */
#define IMAGE_RW_AT (CONFIG_PROGRAM_MEMORY_BASE + \
CONFIG_RO_MEM_OFF + CONFIG_RO_SIZE)
+#define IMAGE_RW_B_AT (CONFIG_PROGRAM_MEMORY_BASE + \
+ CONFIG_RO_MEM_OFF + CONFIG_RO_SIZE + CONFIG_RW_SIZE)
#else
#define IMAGE_RO_AT (CONFIG_PROGRAM_MEMORY_BASE + CONFIG_RO_MEM_OFF)
#define IMAGE_RW_AT (CONFIG_PROGRAM_MEMORY_BASE + CONFIG_RW_MEM_OFF)
+#define IMAGE_RW_B_AT (CONFIG_PROGRAM_MEMORY_BASE + CONFIG_RW_B_MEM_OFF)
#endif
OUTPUT_FORMAT(BFD_FORMAT, BFD_FORMAT, BFD_FORMAT)
@@ -69,9 +75,14 @@ SECTIONS
} > FLASH =0xff
#endif
#ifdef CONFIG_RW_B_MEM_OFF
- .image.RW_B : AT(CONFIG_PROGRAM_MEMORY_BASE + CONFIG_RW_B_MEM_OFF) {
+ .image.RW_B : AT(IMAGE_RW_B_AT) {
*(.image.RW_B)
} > FLASH =0xff
+#ifdef CONFIG_RWSIG_TYPE_RWSIG
+ .image.RW_B.sign : AT(CONFIG_RW_B_SIG_ADDR) {
+ *(.image.RW_B.sign)
+ } > FLASH =0xff
+#endif
#endif
.padding : AT(CONFIG_PROGRAM_MEMORY_BASE + CONFIG_FLASH_SIZE - 1) {
BYTE(0xff);