Attention is currently required from: Zheng Bao.
Hello Zheng Bao,
I'd like you to do a code review. Please visit
https://review.coreboot.org/c/coreboot/+/69044
to review the following change.
Change subject: amdfwtool: Add definition of instance for PSP entry ......................................................................
amdfwtool: Add definition of instance for PSP entry
Change-Id: I9f6250fd0e26cfae2cc2128ca9413a5621d2df0c Signed-off-by: Zheng Bao fishbaozi@gmail.com --- M util/amdfwtool/amdfwtool.h M util/amdfwtool/data_parse.c 2 files changed, 24 insertions(+), 2 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/44/69044/1
diff --git a/util/amdfwtool/amdfwtool.h b/util/amdfwtool/amdfwtool.h index 81f0bfb..07e3cd3 100644 --- a/util/amdfwtool/amdfwtool.h +++ b/util/amdfwtool/amdfwtool.h @@ -155,7 +155,16 @@ typedef struct _psp_directory_entry { uint8_t type; uint8_t subprog; - uint16_t rsvd; + union { + uint16_t rsvd; + struct { + uint8_t rom_id:2; + uint8_t writable:1; + uint8_t inst:4; + uint8_t rsvd_1:1; + uint8_t rsvd_2:8; + } __attribute__((packed)); + }; uint32_t size; uint64_t addr:62; /* or a value in some cases */ uint64_t address_mode:2; @@ -289,6 +298,7 @@ uint16_t fw_id; char *filename; uint8_t subprog; + uint8_t inst; uint64_t dest; size_t size; int level; diff --git a/util/amdfwtool/data_parse.c b/util/amdfwtool/data_parse.c index 424a68a..0609be8 100644 --- a/util/amdfwtool/data_parse.c +++ b/util/amdfwtool/data_parse.c @@ -106,6 +106,7 @@ amd_fw_type fw_type = AMD_FW_INVALID; amd_fw_entry *psp_tableptr; uint8_t subprog; + uint8_t instance = 0;
if (strcmp(fw_name, "PSPBTLDR_WL_FILE") == 0) { if (cb_config->have_whitelist) { @@ -341,7 +342,8 @@ if (fw_type != AMD_FW_SKIP && fw_type != AMD_FW_INVALID) { while (psp_tableptr->type != AMD_FW_INVALID) { /* instance are not used in PSP table */ - if (psp_tableptr->type == fw_type && psp_tableptr->subprog == subprog) { + if (psp_tableptr->type == fw_type && psp_tableptr->subprog == subprog + && psp_tableptr->inst == instance) { psp_tableptr->filename = filename; SET_LEVEL(psp_tableptr, level_to_set, PSP, cb_config->recovery_ab);