util/amdfwtool: Add PSP verstage signature entry
Add the field for the PSP verstage signature entry. This adds the public key signing token to the PSP Directory table to verify the signed PSP verstage binary BUG=b:166100797 TEST=Build in a file and verify that it's present with the correct ID. BRANCH=Zork Signed-off-by: Martin Roth <martinroth@chromium.org> Change-Id: I7525045d8746b6857979d07b02758ab4d4835026 Reviewed-on: https://review.coreboot.org/c/coreboot/+/44987 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Raul Rangel <rrangel@chromium.org> Reviewed-by: Furquan Shaikh <furquan@google.com> Reviewed-by: Eric Peers <epeers@google.com>
This commit is contained in:
parent
eca423b44f
commit
b1f648fc5c
|
@ -308,6 +308,7 @@ typedef enum _amd_fw_type {
|
||||||
AMD_FW_PSP_WHITELIST = 0x3a,
|
AMD_FW_PSP_WHITELIST = 0x3a,
|
||||||
AMD_FW_L2_PTR = 0x40,
|
AMD_FW_L2_PTR = 0x40,
|
||||||
AMD_FW_PSP_VERSTAGE = 0x52,
|
AMD_FW_PSP_VERSTAGE = 0x52,
|
||||||
|
AMD_FW_VERSTAGE_SIG = 0x53,
|
||||||
AMD_FW_IMC,
|
AMD_FW_IMC,
|
||||||
AMD_FW_GEC,
|
AMD_FW_GEC,
|
||||||
AMD_FW_XHCI,
|
AMD_FW_XHCI,
|
||||||
|
@ -364,6 +365,7 @@ static amd_fw_entry amd_psp_fw_table[] = {
|
||||||
{ .type = AMD_FW_PSP_SMU_FIRMWARE2, .subprog = 1, .level = PSP_BOTH },
|
{ .type = AMD_FW_PSP_SMU_FIRMWARE2, .subprog = 1, .level = PSP_BOTH },
|
||||||
{ .type = AMD_FW_PSP_WHITELIST, .level = PSP_LVL2 },
|
{ .type = AMD_FW_PSP_WHITELIST, .level = PSP_LVL2 },
|
||||||
{ .type = AMD_FW_PSP_VERSTAGE, .level = PSP_BOTH },
|
{ .type = AMD_FW_PSP_VERSTAGE, .level = PSP_BOTH },
|
||||||
|
{ .type = AMD_FW_VERSTAGE_SIG, .level = PSP_BOTH },
|
||||||
{ .type = AMD_FW_INVALID },
|
{ .type = AMD_FW_INVALID },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1085,8 +1087,8 @@ enum {
|
||||||
LONGOPT_SPI_MICRON_FLAG = 258,
|
LONGOPT_SPI_MICRON_FLAG = 258,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Unused values: DE
|
// Unused values: D
|
||||||
static const char *optstring = "x:i:g:AMS:p:b:s:r:k:c:n:d:t:u:w:m:T:z:J:B:K:L:Y:N:UW:I:a:Q:V:e:v:j:y:G:O:X:F:H:o:f:l:hZ:qR:P:C:";
|
static const char *optstring = "x:i:g:AMS:p:b:s:r:k:c:n:d:t:u:w:m:T:z:J:B:K:L:Y:N:UW:I:a:Q:V:e:v:j:y:G:O:X:F:H:o:f:l:hZ:qR:P:C:E:";
|
||||||
|
|
||||||
static struct option long_options[] = {
|
static struct option long_options[] = {
|
||||||
{"xhci", required_argument, 0, 'x' },
|
{"xhci", required_argument, 0, 'x' },
|
||||||
|
@ -1119,6 +1121,7 @@ static struct option long_options[] = {
|
||||||
{"token-unlock", no_argument, 0, 'U' },
|
{"token-unlock", no_argument, 0, 'U' },
|
||||||
{"whitelist", required_argument, 0, 'W' },
|
{"whitelist", required_argument, 0, 'W' },
|
||||||
{"verstage", required_argument, 0, 'Z' },
|
{"verstage", required_argument, 0, 'Z' },
|
||||||
|
{"verstage_sig", required_argument, 0, 'E' },
|
||||||
/* BIOS Directory Table items */
|
/* BIOS Directory Table items */
|
||||||
{"instance", required_argument, 0, 'I' },
|
{"instance", required_argument, 0, 'I' },
|
||||||
{"apcb", required_argument, 0, 'a' },
|
{"apcb", required_argument, 0, 'a' },
|
||||||
|
@ -1536,6 +1539,10 @@ int main(int argc, char **argv)
|
||||||
register_fw_filename(AMD_FW_PSP_VERSTAGE, sub, optarg);
|
register_fw_filename(AMD_FW_PSP_VERSTAGE, sub, optarg);
|
||||||
sub = instance = 0;
|
sub = instance = 0;
|
||||||
break;
|
break;
|
||||||
|
case 'E':
|
||||||
|
register_fw_filename(AMD_FW_VERSTAGE_SIG, sub, optarg);
|
||||||
|
sub = instance = 0;
|
||||||
|
break;
|
||||||
case 'C':
|
case 'C':
|
||||||
soc_id = identify_platform(optarg);
|
soc_id = identify_platform(optarg);
|
||||||
if (soc_id == PLATFORM_UNKNOWN) {
|
if (soc_id == PLATFORM_UNKNOWN) {
|
||||||
|
|
Loading…
Reference in New Issue