amdfwtool: Add SPL support

SPL: Security Patch Level
The data in SPL is used for FW anti-rollback, preventing rollback of
platform level firmware to older version that are deemed vulnerable
from a security point of view.

BUG=b:216096562

Change-Id: I4665f2372ccd599ab835c8784da08cde5558a795
Signed-off-by: Zheng Bao <fishbaozi@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/61426
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
This commit is contained in:
Zheng Bao 2022-01-27 22:38:27 +08:00 committed by Raul Rangel
parent 7cd8ba6eda
commit ab84fd7605
3 changed files with 5 additions and 0 deletions

View File

@ -256,6 +256,7 @@ amd_fw_entry amd_psp_fw_table[] = {
{ .type = AMD_FW_DRTM_TA, .level = PSP_LVL2 }, { .type = AMD_FW_DRTM_TA, .level = PSP_LVL2 },
{ .type = AMD_FW_KEYDB_BL, .level = PSP_BOTH }, { .type = AMD_FW_KEYDB_BL, .level = PSP_BOTH },
{ .type = AMD_FW_KEYDB_TOS, .level = PSP_LVL2 }, { .type = AMD_FW_KEYDB_TOS, .level = PSP_LVL2 },
{ .type = AMD_FW_SPL, .level = PSP_LVL2 },
{ .type = AMD_FW_DMCU_ERAM, .level = PSP_LVL2 }, { .type = AMD_FW_DMCU_ERAM, .level = PSP_LVL2 },
{ .type = AMD_FW_DMCU_ISR, .level = PSP_LVL2 }, { .type = AMD_FW_DMCU_ISR, .level = PSP_LVL2 },
{ .type = AMD_RPMC_NVRAM, .level = PSP_LVL2 }, { .type = AMD_RPMC_NVRAM, .level = PSP_LVL2 },

View File

@ -48,6 +48,7 @@ typedef enum _amd_fw_type {
AMD_FW_PSP_VERSTAGE = 0x52, AMD_FW_PSP_VERSTAGE = 0x52,
AMD_FW_VERSTAGE_SIG = 0x53, AMD_FW_VERSTAGE_SIG = 0x53,
AMD_RPMC_NVRAM = 0x54, AMD_RPMC_NVRAM = 0x54,
AMD_FW_SPL = 0x55,
AMD_FW_DMCU_ERAM = 0x58, AMD_FW_DMCU_ERAM = 0x58,
AMD_FW_DMCU_ISR = 0x59, AMD_FW_DMCU_ISR = 0x59,
AMD_FW_PSP_BOOTLOADER_AB = 0x73, AMD_FW_PSP_BOOTLOADER_AB = 0x73,

View File

@ -282,6 +282,9 @@ static uint8_t find_register_fw_filename_psp_dir(char *fw_name, char *filename,
} else if (strcmp(fw_name, "KEYDB_TOS_FILE") == 0) { } else if (strcmp(fw_name, "KEYDB_TOS_FILE") == 0) {
fw_type = AMD_FW_KEYDB_TOS; fw_type = AMD_FW_KEYDB_TOS;
subprog = 0; subprog = 0;
} else if (strcmp(fw_name, "SPL_TABLE_FILE") == 0) {
fw_type = AMD_FW_SPL;
subprog = 0;
} else if (strcmp(fw_name, "DMCUERAMDCN21_FILE") == 0) { } else if (strcmp(fw_name, "DMCUERAMDCN21_FILE") == 0) {
fw_type = AMD_FW_DMCU_ERAM; fw_type = AMD_FW_DMCU_ERAM;
subprog = 0; subprog = 0;