diff options
author | Louis Yung-Chieh Lo <yjlou@chromium.org> | 2012-05-08 12:02:44 +0800 |
---|---|---|
committer | Louis Yung-Chieh Lo <yjlou@chromium.org> | 2012-05-08 14:51:34 +0800 |
commit | 468e34d51df1ab4cc934267c80d7a1e18406c845 (patch) | |
tree | e9bb775fc7386032f67ba14aedd8a8fd12a6f71e | |
parent | 07e199e23464d9440aab862d90cf7ea3ff5f11a7 (diff) | |
download | chrome-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.c | 25 |
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 */ { |