diff options
author | Nicolas Boichat <drinkcat@google.com> | 2017-05-22 17:50:55 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-05-23 21:59:45 -0700 |
commit | e58472daf82e86824471bbbc56b92de6ee048b3a (patch) | |
tree | b542052ab83bfb70095848f2299b812d5d2d3f82 | |
parent | e42da5ace4393868a610a51bba89730fafd11157 (diff) | |
download | chrome-ec-e58472daf82e86824471bbbc56b92de6ee048b3a.tar.gz |
hammer: Better RO/RB/RW split: 44/4/80 kB
Let's future proof hammer a bit: current flash usage, after
applying uncommmited patches, is about 36/50 kB for RO/RW respectively.
Let's change the RO/RB/RW layout from 64/4/60 kB to 44/4/80 kB.
BRANCH=none
BUG=b:38489464
TEST=Enable CONFIG_CMD_FLASH and force WP_L low.
TEST=flashwrite 0xa000 0x100 => ok
flashwp true; reboot
flashinfo => ro_at_boot ro_now
YYYYYYYY YYY..... ........ ........
flashread 0xa000 0x100 => Incrementing numbers 0->255
flasherase 0xa000 0x800 => error
flashread 0xa000 0x800 => Incrementing numbers 0->255
TEST=(rollback)
rollbackupdate 2 => works, rollbackinfo is correct
flashwp rb; reboot
flashread 0xb000 0x100 => Rollback info followed by 0xff
flasherase 0xb000 0x800 => error
flashread 0xb000 0x800 => Unchanged
rollbackupdate 3 => fails
TEST=(rw)
flashwp rw; reboot
flashinfo => all_at_boot all_now
flashread 0x0c000 0x100
flasherase 0x0c000 0x800 => Access denied
flashread 0x0c000 0x100
flashread 0x1f800 0x100 => 0xff
flashwrite 0x1f800 0x100 => Access denied
flashread 0x1f800 0x100
TEST=(norw)
flashwp norw; reboot
flasherase 0x0c000 0x800 => ok
flashread 0x0c000 0x100 => 0xff
flashwrite 0x0c000 0x100
flashread 0x0c000 0x100 => Incrementing numbers 0->255
reboot => RW does not verify anymore
TEST=(norb)
flashwp norb
flasherase 0xb000 0x800
flashwrite 0xb000 0x100
rollbackinfo => block 0 shows incorrect values.
Change-Id: I915ffe3032e6a70f761c5f7ea2940feaae58366b
Reviewed-on: https://chromium-review.googlesource.com/510413
Commit-Ready: Nicolas Boichat <drinkcat@chromium.org>
Tested-by: Nicolas Boichat <drinkcat@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
-rw-r--r-- | board/hammer/board.h | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/board/hammer/board.h b/board/hammer/board.h index 494bfeb58d..654a01a5d4 100644 --- a/board/hammer/board.h +++ b/board/hammer/board.h @@ -38,12 +38,6 @@ #undef CONFIG_WP_STORAGE_OFF #undef CONFIG_WP_STORAGE_SIZE -#define _IMAGE_SIZE (CONFIG_FLASH_SIZE / 2) - -/* EC rollback protection block */ -#define CONFIG_ROLLBACK_OFF _IMAGE_SIZE -#define CONFIG_ROLLBACK_SIZE CONFIG_FLASH_BANK_SIZE - #define CONFIG_FLASH_PSTATE /* Do not use a dedicated PSTATE bank */ #undef CONFIG_FLASH_PSTATE_BANK @@ -52,10 +46,16 @@ #define CONFIG_RO_MEM_OFF 0 #define CONFIG_RO_STORAGE_OFF 0 -#define CONFIG_RO_SIZE _IMAGE_SIZE -#define CONFIG_RW_MEM_OFF (_IMAGE_SIZE + CONFIG_ROLLBACK_SIZE) +#define CONFIG_RO_SIZE (44*1024) + +/* EC rollback protection block */ +#define CONFIG_ROLLBACK_OFF (CONFIG_RO_MEM_OFF + CONFIG_RO_SIZE) +#define CONFIG_ROLLBACK_SIZE CONFIG_FLASH_BANK_SIZE + +#define CONFIG_RW_MEM_OFF (CONFIG_ROLLBACK_OFF + CONFIG_ROLLBACK_SIZE) #define CONFIG_RW_STORAGE_OFF 0 -#define CONFIG_RW_SIZE (_IMAGE_SIZE - CONFIG_ROLLBACK_SIZE) +#define CONFIG_RW_SIZE (CONFIG_FLASH_SIZE - \ + (CONFIG_RW_MEM_OFF - CONFIG_RO_MEM_OFF)) #define CONFIG_EC_PROTECTED_STORAGE_OFF CONFIG_RO_MEM_OFF #define CONFIG_EC_PROTECTED_STORAGE_SIZE CONFIG_RO_SIZE |