diff options
author | Randall Spangler <rspangler@chromium.org> | 2012-07-17 09:58:17 -0700 |
---|---|---|
committer | Gerrit <chrome-bot@google.com> | 2012-07-17 13:11:44 -0700 |
commit | fc7b64e186723f32a00663f51161a467af58c2f3 (patch) | |
tree | 7b7b3e0b65f4cca2ea91b0743b196dbd95926c9f /common | |
parent | c44c17890c2fbda1edc74361b0174fed405f9eee (diff) | |
download | chrome-ec-fc7b64e186723f32a00663f51161a467af58c2f3.tar.gz |
Remove firmware B
BUG=chrome-os-partner:11449
TEST=build link, snow, bds; ectool reboot_ec cold to make sure enums line up
Change-Id: Ie09db2080a00f1a7e2c05579b9b41ea5137c1af0
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/27658
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Diffstat (limited to 'common')
-rw-r--r-- | common/firmware_image.S | 8 | ||||
-rw-r--r-- | common/firmware_image.lds.S | 7 | ||||
-rw-r--r-- | common/fmap.c | 37 | ||||
-rw-r--r-- | common/system_common.c | 30 | ||||
-rw-r--r-- | common/vboot_sig.c | 29 |
5 files changed, 6 insertions, 105 deletions
diff --git a/common/firmware_image.S b/common/firmware_image.S index c3c00ab2f7..30f987d2fa 100644 --- a/common/firmware_image.S +++ b/common/firmware_image.S @@ -17,12 +17,6 @@ .section .image.RO, "ax" .incbin FW_IMAGE(RO) -/* Read Write firmware copy A */ +/* Read Write firmware */ .section .image.RW, "ax" .incbin FW_IMAGE(RW) - -#ifdef CONFIG_RW_B -/* Read Write firmware copy B */ -.section .image.RW_B, "ax" -.incbin FW_IMAGE(RW_B) -#endif diff --git a/common/firmware_image.lds.S b/common/firmware_image.lds.S index 15e784f45d..3cd806dce7 100644 --- a/common/firmware_image.lds.S +++ b/common/firmware_image.lds.S @@ -23,13 +23,6 @@ SECTIONS *(.image.RW) BYTE(0xEA) /* Mark end explicitly */ } > FLASH =0xff -#ifdef CONFIG_RW_B - . = ALIGN(CONFIG_FLASH_BANK_SIZE); - .image.RW_B : AT(CONFIG_FLASH_BASE + CONFIG_SECTION_RW_B_OFF) { - *(.image.RW_B) - BYTE(0xEB) /* Mark end explicitly */ - } > FLASH =0xff -#endif .padding : AT(CONFIG_FLASH_BASE + CONFIG_FLASH_SIZE - 1) { BYTE(0xff); } > FLASH =0xff diff --git a/common/fmap.c b/common/fmap.c index 685e872aa3..82a380f031 100644 --- a/common/fmap.c +++ b/common/fmap.c @@ -40,7 +40,7 @@ typedef struct _FmapAreaHeader { } __packed FmapAreaHeader; -#define NUM_EC_FMAP_AREAS 17 +#define NUM_EC_FMAP_AREAS 13 const struct _ec_fmap { FmapHeader header; FmapAreaHeader area[NUM_EC_FMAP_AREAS]; @@ -108,11 +108,10 @@ const struct _ec_fmap { .area_flags = FMAP_AREA_STATIC | FMAP_AREA_RO, }, { - /* The range for autoupdate to update A/B at once. */ + /* The range for autoupdate to update RW */ .area_name = "EC_RW", .area_offset = CONFIG_SECTION_RW_OFF, - .area_size = CONFIG_SECTION_RW_SIZE - + CONFIG_SECTION_RW_B_SIZE, + .area_size = CONFIG_SECTION_RW_SIZE, .area_flags = FMAP_AREA_STATIC | FMAP_AREA_RO, }, { @@ -151,35 +150,5 @@ const struct _ec_fmap { .area_size = CONFIG_VBLOCK_SIZE, .area_flags = FMAP_AREA_STATIC, }, - -#ifdef CONFIG_RW_B - /* Firmware B */ - { - .area_name = "RW_SECTION_B", - .area_offset = CONFIG_SECTION_RW_B_OFF, - .area_size = CONFIG_SECTION_RW_B_SIZE, - .area_flags = FMAP_AREA_STATIC, - }, - { - .area_name = "FW_MAIN_B", - .area_offset = CONFIG_FW_RW_B_OFF, - .area_size = CONFIG_FW_RW_B_SIZE, - .area_flags = FMAP_AREA_STATIC, - }, - { - .area_name = "RW_FWID_B", /* FIXME: Where is it? */ - .area_offset = CONFIG_FW_RW_B_OFF + - (uint32_t)__version_struct_offset + - offsetof(struct version_struct, version), - .area_size = sizeof(version_data.version), - .area_flags = FMAP_AREA_STATIC, - }, - { - .area_name = "VBLOCK_B", - .area_offset = CONFIG_VBLOCK_RW_B_OFF, - .area_size = CONFIG_VBLOCK_SIZE, - .area_flags = FMAP_AREA_STATIC, - }, -#endif /* CONFIG_RW_B */ } }; diff --git a/common/system_common.c b/common/system_common.c index cb909730cd..f13dc57609 100644 --- a/common/system_common.c +++ b/common/system_common.c @@ -225,10 +225,6 @@ enum system_image_copy_t system_get_image_copy(void) my_addr < (CONFIG_SECTION_RW_OFF + CONFIG_SECTION_RW_SIZE)) return SYSTEM_IMAGE_RW_A; - if (my_addr >= CONFIG_SECTION_RW_B_OFF && - my_addr < (CONFIG_SECTION_RW_B_OFF + CONFIG_SECTION_RW_B_SIZE)) - return SYSTEM_IMAGE_RW_B; - return SYSTEM_IMAGE_UNKNOWN; } @@ -250,10 +246,6 @@ int system_unsafe_to_overwrite(uint32_t offset, uint32_t size) { r_offset = CONFIG_FW_RW_OFF; r_size = CONFIG_FW_RW_SIZE; break; - case SYSTEM_IMAGE_RW_B: - r_offset = CONFIG_FW_RW_B_OFF; - r_size = CONFIG_FW_RW_B_SIZE; - break; default: return 0; } @@ -319,10 +311,6 @@ static uint32_t get_base(enum system_image_copy_t copy) return CONFIG_FLASH_BASE + CONFIG_FW_RO_OFF; case SYSTEM_IMAGE_RW_A: return CONFIG_FLASH_BASE + CONFIG_FW_RW_OFF; -#ifdef CONFIG_RW_B - case SYSTEM_IMAGE_RW_B: - return CONFIG_FLASH_BASE + CONFIG_FW_RW_B_OFF; -#endif default: return 0xffffffff; } @@ -336,10 +324,6 @@ static uint32_t get_size(enum system_image_copy_t copy) return CONFIG_FW_RO_SIZE; case SYSTEM_IMAGE_RW_A: return CONFIG_FW_RW_SIZE; -#ifdef CONFIG_RW_B - case SYSTEM_IMAGE_RW_B: - return CONFIG_FW_RW_B_SIZE; -#endif default: return 0; } @@ -364,7 +348,7 @@ int system_run_image_copy(enum system_image_copy_t copy) return EC_ERROR_ACCESS_DENIED; /* Target image must be RW image */ - if (copy != SYSTEM_IMAGE_RW_A && copy != SYSTEM_IMAGE_RW_B) + if (copy != SYSTEM_IMAGE_RW_A) return EC_ERROR_ACCESS_DENIED; /* Can't have already jumped between images */ @@ -516,8 +500,6 @@ static int handle_pending_reboot(enum ec_reboot_cmd cmd) return system_run_image_copy(SYSTEM_IMAGE_RO); case EC_REBOOT_JUMP_RW_A: return system_run_image_copy(SYSTEM_IMAGE_RW_A); - case EC_REBOOT_JUMP_RW_B: - return system_run_image_copy(SYSTEM_IMAGE_RW_B); case EC_REBOOT_COLD: system_reset(SYSTEM_RESET_HARD); /* That shouldn't return... */ @@ -623,8 +605,7 @@ static int command_version(int argc, char **argv) system_get_chip_name(), system_get_chip_revision()); ccprintf("Board: %d\n", system_get_board_version()); ccprintf("RO: %s\n", system_get_version(SYSTEM_IMAGE_RO)); - ccprintf("RW-A: %s\n", system_get_version(SYSTEM_IMAGE_RW_A)); - ccprintf("RW-B: %s\n", system_get_version(SYSTEM_IMAGE_RW_B)); + ccprintf("RW: %s\n", system_get_version(SYSTEM_IMAGE_RW_A)); ccprintf("Build: %s\n", system_get_build_info()); return EC_SUCCESS; } @@ -647,8 +628,6 @@ static int command_sysjump(int argc, char **argv) return system_run_image_copy(SYSTEM_IMAGE_RO); else if (!strcasecmp(argv[1], "A")) return system_run_image_copy(SYSTEM_IMAGE_RW_A); - else if (!strcasecmp(argv[1], "B")) - return system_run_image_copy(SYSTEM_IMAGE_RW_B); else if (!strcasecmp(argv[1], "disable")) { system_disable_jump(); return EC_SUCCESS; @@ -723,8 +702,6 @@ static int host_command_get_version(struct host_cmd_handler_args *args) sizeof(r->version_string_ro)); strzcpy(r->version_string_rw_a, system_get_version(SYSTEM_IMAGE_RW_A), sizeof(r->version_string_rw_a)); - strzcpy(r->version_string_rw_b, system_get_version(SYSTEM_IMAGE_RW_B), - sizeof(r->version_string_rw_b)); switch (system_get_image_copy()) { case SYSTEM_IMAGE_RO: @@ -733,9 +710,6 @@ static int host_command_get_version(struct host_cmd_handler_args *args) case SYSTEM_IMAGE_RW_A: r->current_image = EC_IMAGE_RW_A; break; - case SYSTEM_IMAGE_RW_B: - r->current_image = EC_IMAGE_RW_B; - break; default: r->current_image = EC_IMAGE_UNKNOWN; break; diff --git a/common/vboot_sig.c b/common/vboot_sig.c index c0e2f2ab79..5b8d7e6304 100644 --- a/common/vboot_sig.c +++ b/common/vboot_sig.c @@ -155,35 +155,6 @@ int vboot_check_signature(void) CPRINTF("[Image A is invalid]\n"); } -#ifdef CONFIG_RW_B - CPRINTF("[%T Vboot check image B...]\n"); - - ts1 = get_time(); - r = good_image((uint8_t *)CONFIG_VBOOT_ROOTKEY_OFF, - (uint8_t *)CONFIG_VBLOCK_RW_B_OFF, CONFIG_VBLOCK_SIZE, - (uint8_t *)CONFIG_FW_RW_B_OFF, CONFIG_FW_RW_B_SIZE); - ts2 = get_time(); - - CPRINTF("[%T Vboot result=%d, elapsed time=%ld us]\n", - r, ts2.val - ts1.val); - - switch (r) { - case IMAGE_IS_GOOD: - CPRINTF("[Image B verified]\n"); - system_run_image_copy(SYSTEM_IMAGE_RW_B); - CPRINTF("[ERROR: Unable to jump to image B]\n"); - goto bad; - case IMAGE_IS_GOOD_BUT_USE_RO_ANYWAY: - CPRINTF("[Image B verified]\n"); - CPRINTF("[Staying in RO mode]\n"); - return EC_SUCCESS; - default: - CPRINTF("[Image B is invalid]\n"); - } -#else /* CONFIG_RW_B */ - CPRINTF("[Vboot no image B to check]\n"); -#endif /* CONFIG_RW_B */ - bad: CPRINTF("[Staying in RO mode]\n"); CPRINTF("[FIXME: How to trigger recovery mode?]\n"); |