Rename section A to RW, to match other platforms

BUG=chrome-os-partner:11149
TEST=make link, snow, bds; on reboot,
  sysjump rw
  sysinfo   <- should indicate current image is rw
Then on root shell,
  ectool version  <- should indicate rw

Change-Id: I833fcb814165379dd044e4cb46ae338e5da81212
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/27660
This commit is contained in:
Randall Spangler
2012-07-17 10:47:17 -07:00
committed by Gerrit
parent fc7b64e186
commit eb93d200be
6 changed files with 43 additions and 43 deletions

View File

@@ -75,7 +75,7 @@ static const char * const reset_flag_descs[] = {
"hibernate", "rtc-alarm", "wake-pin", "low-battery", "sysjump",
"hard"};
static const char * const image_names[] = {"unknown", "RO", "A", "B"};
static const char * const image_names[] = {"unknown", "RO", "RW"};
static uint32_t reset_flags;
static int jumped_to_image;
static int disable_jump; /* Disable ALL jumps if system is locked */
@@ -223,7 +223,7 @@ enum system_image_copy_t system_get_image_copy(void)
if (my_addr >= CONFIG_SECTION_RW_OFF &&
my_addr < (CONFIG_SECTION_RW_OFF + CONFIG_SECTION_RW_SIZE))
return SYSTEM_IMAGE_RW_A;
return SYSTEM_IMAGE_RW;
return SYSTEM_IMAGE_UNKNOWN;
}
@@ -242,7 +242,7 @@ int system_unsafe_to_overwrite(uint32_t offset, uint32_t size) {
r_offset = CONFIG_FW_RO_OFF;
r_size = CONFIG_FW_RO_SIZE;
break;
case SYSTEM_IMAGE_RW_A:
case SYSTEM_IMAGE_RW:
r_offset = CONFIG_FW_RW_OFF;
r_size = CONFIG_FW_RW_SIZE;
break;
@@ -309,7 +309,7 @@ static uint32_t get_base(enum system_image_copy_t copy)
switch (copy) {
case SYSTEM_IMAGE_RO:
return CONFIG_FLASH_BASE + CONFIG_FW_RO_OFF;
case SYSTEM_IMAGE_RW_A:
case SYSTEM_IMAGE_RW:
return CONFIG_FLASH_BASE + CONFIG_FW_RW_OFF;
default:
return 0xffffffff;
@@ -322,7 +322,7 @@ static uint32_t get_size(enum system_image_copy_t copy)
switch (copy) {
case SYSTEM_IMAGE_RO:
return CONFIG_FW_RO_SIZE;
case SYSTEM_IMAGE_RW_A:
case SYSTEM_IMAGE_RW:
return CONFIG_FW_RW_SIZE;
default:
return 0;
@@ -348,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)
if (copy != SYSTEM_IMAGE_RW)
return EC_ERROR_ACCESS_DENIED;
/* Can't have already jumped between images */
@@ -498,8 +498,8 @@ static int handle_pending_reboot(enum ec_reboot_cmd cmd)
return EC_SUCCESS;
case EC_REBOOT_JUMP_RO:
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:
return system_run_image_copy(SYSTEM_IMAGE_RW);
case EC_REBOOT_COLD:
system_reset(SYSTEM_RESET_HARD);
/* That shouldn't return... */
@@ -605,7 +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: %s\n", system_get_version(SYSTEM_IMAGE_RW_A));
ccprintf("RW: %s\n", system_get_version(SYSTEM_IMAGE_RW));
ccprintf("Build: %s\n", system_get_build_info());
return EC_SUCCESS;
}
@@ -626,9 +626,10 @@ static int command_sysjump(int argc, char **argv)
/* Handle named images */
if (!strcasecmp(argv[1], "RO"))
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], "disable")) {
else if (!strcasecmp(argv[1], "RW") || !strcasecmp(argv[1], "A")) {
/* TODO: remove "A" once all scripts are updated to use "RW" */
return system_run_image_copy(SYSTEM_IMAGE_RW);
} else if (!strcasecmp(argv[1], "disable")) {
system_disable_jump();
return EC_SUCCESS;
}
@@ -648,7 +649,7 @@ static int command_sysjump(int argc, char **argv)
return EC_SUCCESS;
}
DECLARE_CONSOLE_COMMAND(sysjump, command_sysjump,
"[RO | A | B | addr | disable]",
"[RO | RW | addr | disable]",
"Jump to a system image or address",
NULL);
@@ -700,15 +701,15 @@ static int host_command_get_version(struct host_cmd_handler_args *args)
strzcpy(r->version_string_ro, system_get_version(SYSTEM_IMAGE_RO),
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, system_get_version(SYSTEM_IMAGE_RW),
sizeof(r->version_string_rw));
switch (system_get_image_copy()) {
case SYSTEM_IMAGE_RO:
r->current_image = EC_IMAGE_RO;
break;
case SYSTEM_IMAGE_RW_A:
r->current_image = EC_IMAGE_RW_A;
case SYSTEM_IMAGE_RW:
r->current_image = EC_IMAGE_RW;
break;
default:
r->current_image = EC_IMAGE_UNKNOWN;

View File

@@ -130,7 +130,7 @@ int vboot_check_signature(void)
if (!maybe_jump_to_other_image())
return EC_SUCCESS;
CPRINTF("[%T Vboot check image A...]\n");
CPRINTF("[%T Vboot check RW image...]\n");
ts1 = get_time();
r = good_image((uint8_t *)CONFIG_VBOOT_ROOTKEY_OFF,
@@ -143,16 +143,16 @@ int vboot_check_signature(void)
switch (r) {
case IMAGE_IS_GOOD:
CPRINTF("[Image A verified]\n");
system_run_image_copy(SYSTEM_IMAGE_RW_A);
CPRINTF("[ERROR: Unable to jump to image A]\n");
CPRINTF("[RW image verified]\n");
system_run_image_copy(SYSTEM_IMAGE_RW);
CPRINTF("[ERROR: Unable to jump to RW image]\n");
goto bad;
case IMAGE_IS_GOOD_BUT_USE_RO_ANYWAY:
CPRINTF("[Image A verified]\n");
CPRINTF("[RW image verified]\n");
CPRINTF("[Staying in RO mode]\n");
return EC_SUCCESS;
default:
CPRINTF("[Image A is invalid]\n");
CPRINTF("[RW image is invalid]\n");
}
bad:

View File

@@ -290,13 +290,13 @@ struct ec_response_hello {
enum ec_current_image {
EC_IMAGE_UNKNOWN = 0,
EC_IMAGE_RO,
EC_IMAGE_RW_A
EC_IMAGE_RW
};
struct ec_response_get_version {
/* Null-terminated version strings for RO, RW */
char version_string_ro[32];
char version_string_rw_a[32];
char version_string_rw[32];
char reserved[32]; /* Was previously RW-B string */
uint32_t current_image; /* One of ec_current_image */
} __packed;
@@ -871,7 +871,7 @@ struct ec_params_i2c_write {
enum ec_reboot_cmd {
EC_REBOOT_CANCEL = 0, /* Cancel a pending reboot */
EC_REBOOT_JUMP_RO, /* Jump to RO without rebooting */
EC_REBOOT_JUMP_RW_A, /* Jump to RW-A without rebooting */
EC_REBOOT_JUMP_RW, /* Jump to RW without rebooting */
/* (command 3 was jump to RW-B) */
EC_REBOOT_COLD = 4, /* Cold-reboot */
EC_REBOOT_DISABLE_JUMP, /* Disable jump until next reboot */

View File

@@ -28,7 +28,7 @@
enum system_image_copy_t {
SYSTEM_IMAGE_UNKNOWN = 0,
SYSTEM_IMAGE_RO,
SYSTEM_IMAGE_RW_A
SYSTEM_IMAGE_RW
};
/* Pre-initializes the module. This occurs before clocks or tasks are

View File

@@ -15,7 +15,7 @@
#define STR0(name) #name
#define STR(name) STR0(name)
static const char * const part_name[] = {"unknown", "RO", "A", "B"};
static const char * const part_name[] = {"unknown", "RO", "RW"};
enum ec_current_image get_version(enum ec_current_image *version_ptr)
{
@@ -33,12 +33,12 @@ enum ec_current_image get_version(enum ec_current_image *version_ptr)
/* Ensure versions are null-terminated before we print them */
r.version_string_ro[sizeof(r.version_string_ro) - 1] = '\0';
r.version_string_rw_a[sizeof(r.version_string_rw_a) - 1] = '\0';
r.version_string_rw[sizeof(r.version_string_rw) - 1] = '\0';
build_info[sizeof(build_info) - 1] = '\0';
/* Print versions */
printf("RO version: %s\n", r.version_string_ro);
printf("RW version: %s\n", r.version_string_rw_a);
printf("RW version: %s\n", r.version_string_rw);
printf("Firmware copy: %s\n",
(r.current_image < sizeof(part_name)/sizeof(part_name[0]) ?
part_name[r.current_image] : "?"));
@@ -70,7 +70,7 @@ int flash_partition(enum ec_current_image part, const uint8_t *payload,
if (current == part) {
rst_req.cmd = part == EC_IMAGE_RO ?
EC_REBOOT_JUMP_RW_A : EC_REBOOT_JUMP_RO;
EC_REBOOT_JUMP_RW : EC_REBOOT_JUMP_RO;
ec_command(EC_CMD_REBOOT_EC, 0, &rst_req, sizeof(rst_req),
NULL, 0);
/* wait EC reboot */
@@ -138,7 +138,7 @@ int main(int argc, char *argv[])
if (comm_init() < 0)
return -3;
flash_partition(EC_IMAGE_RW_A, data + CONFIG_FW_RW_OFF,
flash_partition(EC_IMAGE_RW, data + CONFIG_FW_RW_OFF,
CONFIG_FW_RW_OFF, CONFIG_FW_RW_SIZE);
flash_partition(EC_IMAGE_RO, data + CONFIG_FW_RO_OFF,
CONFIG_FW_RO_OFF, CONFIG_FW_RO_SIZE);

View File

@@ -129,6 +129,8 @@ const char help_str[] =
" pci_write16 0 0x1f 0 0x82 0x3d01\n"
"";
/* Note: depends on enum system_image_copy_t */
static const char * const image_names[] = {"unknown", "RO", "RW"};
/* Write a buffer to the file. Return non-zero if error. */
static int write_file(const char *filename, const char *buf, int size)
@@ -279,7 +281,6 @@ int cmd_cmdversions(int argc, char *argv[])
int cmd_version(int argc, char *argv[])
{
static const char * const fw_copies[] = {"unknown", "RO", "A", "B"};
struct ec_response_get_version r;
char build_string[EC_HOST_PARAM_SIZE];
int rv;
@@ -295,15 +296,15 @@ int cmd_version(int argc, char *argv[])
/* Ensure versions are null-terminated before we print them */
r.version_string_ro[sizeof(r.version_string_ro) - 1] = '\0';
r.version_string_rw_a[sizeof(r.version_string_rw_a) - 1] = '\0';
r.version_string_rw[sizeof(r.version_string_rw) - 1] = '\0';
build_string[sizeof(build_string) - 1] = '\0';
/* Print versions */
printf("RO version: %s\n", r.version_string_ro);
printf("RW version: %s\n", r.version_string_rw_a);
printf("RW version: %s\n", r.version_string_rw);
printf("Firmware copy: %s\n",
(r.current_image < ARRAY_SIZE(fw_copies) ?
fw_copies[r.current_image] : "?"));
(r.current_image < ARRAY_SIZE(image_names) ?
image_names[r.current_image] : "?"));
printf("Build info: %s\n", build_string);
return 0;
@@ -395,9 +396,10 @@ int cmd_reboot_ec(int argc, char *argv[])
p.cmd = EC_REBOOT_CANCEL;
else if (!strcmp(argv[1], "RO"))
p.cmd = EC_REBOOT_JUMP_RO;
else if (!strcmp(argv[1], "A"))
p.cmd = EC_REBOOT_JUMP_RW_A;
else if (!strcmp(argv[1], "cold"))
else if (!strcmp(argv[1], "RW") || !strcmp(argv[1], "A")) {
/* TODO: remove "A" once all scripts are updated to use "RW" */
p.cmd = EC_REBOOT_JUMP_RW;
} else if (!strcmp(argv[1], "cold"))
p.cmd = EC_REBOOT_COLD;
else if (!strcmp(argv[1], "disable-jump"))
p.cmd = EC_REBOOT_DISABLE_JUMP;
@@ -1045,9 +1047,6 @@ static const struct {
sizeof(((struct ec_params_vboot_cmd *)0)->out.set_flags) },
};
/* Note: depends on enum system_image_copy_t */
static const char * const image_names[] = {"unknown", "RO", "A", "B"};
static int cmd_vboot(int argc, char **argv)
{
int rv;