Index: common/cmd_cros.c |
diff --git a/common/cmd_cros.c b/common/cmd_cros.c |
index 7f8809e569b15d32397735979be5d1b4d3a76f26..02d02a980777de9fefd169b638e98c9a97c7cb96 100644 |
--- a/common/cmd_cros.c |
+++ b/common/cmd_cros.c |
@@ -73,12 +73,13 @@ cmd_tbl_t cmd_cros_sub[] = { |
U_BOOT_CMD_MKENT(load_fw, 3, 1, do_load_fw, |
"Load firmware from memory " |
"(you have to download the image before running this)", |
- "addr len kkey\n - Wrapper of LoadFirmware." |
+ "addr len shdata\n - Wrapper of LoadFirmware." |
"Load firmware from [addr, addr+len] and " |
- "store loaded kernel key at kkey\n"), |
+ "store shared data at shdata\n"), |
U_BOOT_CMD_MKENT(load_k, 3, 1, do_load_k, |
"Load kernel from the boot device", |
- "addr len kkey\n - Load kernel to [addr, addr+len]\n"), |
+ "addr len shdata\n - Load kernel to [addr, addr+len] and\n" |
+ "modify shared data at shdata\n"), |
U_BOOT_CMD_MKENT(help, 1, 1, do_cros_help, |
"show this message", |
"[action]") |
@@ -385,8 +386,7 @@ int do_load_fw(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) |
LoadFirmwareParams params; |
VbNvContext vnc; |
struct context_t context; |
- void *gbb, *block[2]; |
- GoogleBinaryBlockHeader *gbbh; |
+ void *block[2]; |
uint64_t *psize[2]; |
VbKeyBlockHeader *kbh; |
VbFirmwarePreambleHeader *fph; |
@@ -407,9 +407,8 @@ int do_load_fw(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) |
GetFirmwareBody_setup(&f, CONFIG_OFFSET_FW_A_DATA, |
CONFIG_OFFSET_FW_B_DATA); |
- gbb = context.begin + CONFIG_OFFSET_GBB; |
- gbbh = (GoogleBinaryBlockHeader *) gbb; |
- params.firmware_root_key_blob = gbb + gbbh->rootkey_offset; |
+ params.gbb_data = context.begin + CONFIG_OFFSET_GBB; |
+ params.gbb_size = CONFIG_LENGTH_GBB; |
debug("do_load_fw: params.firmware_root_key_blob:\t%p\n", |
params.firmware_root_key_blob); |
@@ -434,14 +433,14 @@ int do_load_fw(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) |
i, *psize[i]); |
} |
- params.kernel_sign_key_blob = |
+ params.shared_data_blob = |
(uint8_t *) simple_strtoul(argv[3], NULL, 16); |
- params.kernel_sign_key_size = LOAD_FIRMWARE_KEY_BLOB_REC_SIZE; |
+ params.shared_data_size = VB_SHARED_DATA_REC_SIZE; |
- debug("do_load_fw: params.kernel_sign_key_blob:\t%p\n", |
- params.kernel_sign_key_blob); |
- debug("do_load_fw: params.kernel_sign_key_size:\t%08llx\n", |
- params.kernel_sign_key_size); |
+ debug("do_load_fw: params.shared_data_blob:\t%p\n", |
+ params.shared_data_blob); |
+ debug("do_load_fw: params.shared_data_size:\t%08llx\n", |
+ params.shared_data_size); |
params.caller_internal = &f; |
@@ -492,14 +491,20 @@ int do_load_k(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) |
if ((dev_desc = get_bootdev()) == NULL) |
USAGE(1, cmdtp, "No boot device set yet\n"); |
- par.header_sign_key_blob = |
+ par.shared_data_blob = |
(uint8_t *) simple_strtoul(argv[3], NULL, 16); |
+ par.shared_data_size = VB_SHARED_DATA_REC_SIZE; |
+ |
par.bytes_per_lba = (uint64_t) dev_desc->blksz; |
par.ending_lba = (uint64_t) get_limit() - 1; |
par.kernel_buffer = (void *) simple_strtoul(argv[1], NULL, 16); |
par.kernel_buffer_size = (uint64_t) simple_strtoul(argv[2], NULL, 16); |
par.boot_flags = BOOT_FLAG_DEVELOPER | BOOT_FLAG_SKIP_ADDR_CHECK; |
+ /* TODO: load GBB; see do_load_fw() */ |
+ par.gbb_data = NULL; |
+ par.gbb_size = 0; |
+ |
/* TODO: load vnc.raw from NV storage */ |
par.nv_context = &vnc; |