summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Yung-Chieh Lo <yjlou@chromium.org>2012-05-08 12:02:44 +0800
committerLouis Yung-Chieh Lo <yjlou@chromium.org>2012-05-08 14:51:34 +0800
commit468e34d51df1ab4cc934267c80d7a1e18406c845 (patch)
treee9bb775fc7386032f67ba14aedd8a8fd12a6f71e
parent07e199e23464d9440aab862d90cf7ea3ff5f11a7 (diff)
downloadchrome-ec-468e34d51df1ab4cc934267c80d7a1e18406c845.tar.gz
Add EC_RO/EC_RW and WP_RO FMAP area for fw_updater and factory.
EC_RO and WP_RO area are identical and should cover whole range needed to be write-protected. While EC_RO is for legacy firmware updater, the WP_RO is for future factory finalize test. EC_RW is for fw_updater to update both A/B at once. Signed-off-by: Louis Yung-Chieh Lo <yjlou@chromium.org> BUG=chrome-os-partner:9536 TEST=build in chroot and dump_fmap build/link/ec.bin opened build/link/ec.bin hit at 0x00013800 fmap_signature __FMAP__ fmap_version: 1.0 fmap_base: 0x0 fmap_size: 0x0003f800 (260096) fmap_name: EC_FMAP fmap_nareas: 16 area: 1 area_offset: 0x00000000 area_size: 0x00014000 (81920) area_name: RO_SECTION area: 2 area_offset: 0x00000000 area_size: 0x00013000 (77824) area_name: BOOT_STUB area: 5 area_offset: 0x00013800 area_size: 0x00000302 (770) area_name: FMAP area: 7 <---- area_offset: 0x00000000 <---- area_size: 0x00014000 (81920) <---- area_name: EC_RO <---- area: 8 <---- area_offset: 0x00014000 <---- area_size: 0x00028000 (163840) <---- area_name: EC_RW <---- area: 9 <---- area_offset: 0x00000000 <---- area_size: 0x00014000 (81920) <---- area_name: WP_RO <---- area: 10 area_offset: 0x00014000 area_size: 0x00014000 (81920) area_name: RW_SECTION_A area: 14 area_offset: 0x00028000 area_size: 0x00014000 (81920) area_name: RW_SECTION_B Change-Id: I11b9450f87e26ef1cd0ac65ecd059e13d8489e26
-rw-r--r--common/fmap.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/common/fmap.c b/common/fmap.c
index 438a45d1c1..3f7baceb93 100644
--- a/common/fmap.c
+++ b/common/fmap.c
@@ -37,7 +37,7 @@ typedef struct _FmapAreaHeader {
} __attribute__((packed)) FmapAreaHeader;
-#define NUM_EC_FMAP_AREAS 14
+#define NUM_EC_FMAP_AREAS 17
const struct _ec_fmap {
FmapHeader header;
FmapAreaHeader area[NUM_EC_FMAP_AREAS];
@@ -96,6 +96,29 @@ const struct _ec_fmap {
.area_size = 0, /* Always zero */
.area_flags = FMAP_AREA_STATIC | FMAP_AREA_RO,
},
+ {
+ /* The range for write protect, for lagecy firmware
+ * updater. Should be identical to 'WP_RO'. */
+ .area_name = "EC_RO",
+ .area_offset = CONFIG_FW_RO_OFF,
+ .area_size = CONFIG_FW_IMAGE_SIZE,
+ .area_flags = FMAP_AREA_STATIC | FMAP_AREA_RO,
+ },
+ {
+ /* The range for autoupdate to update A/B at once. */
+ .area_name = "EC_RW",
+ .area_offset = CONFIG_FW_A_OFF,
+ .area_size = CONFIG_FW_IMAGE_SIZE * 2,
+ .area_flags = FMAP_AREA_STATIC | FMAP_AREA_RO,
+ },
+ {
+ /* The range for write protect, for factory finalize
+ * test case. Should be identical to 'EC_RO'. */
+ .area_name = "WP_RO",
+ .area_offset = CONFIG_FW_RO_OFF,
+ .area_size = CONFIG_FW_IMAGE_SIZE,
+ .area_flags = FMAP_AREA_STATIC | FMAP_AREA_RO,
+ },
/* Firmware A */
{