util/amdfwtool: add support for Strix Halo SoC
For amdfwtool, the Strix Halo SoC is similar to the Glinda SoC. Main difference is the ISH PSP ID which was taken from the ISH table from the UEFI reference implementation. Change-Id: I6262dc8d72144ccdcd814586ef72684c15d3561d Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/91638 Reviewed-by: Ritul Guru <rguru@amd.com> Reviewed-by: Alicja Michalska <ahplka19@gmail.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
391d5f3cb4
commit
5d6061d0ba
4 changed files with 14 additions and 1 deletions
|
|
@ -675,6 +675,7 @@ static void fill_psp_directory_to_efs(embedded_firmware *amd_romsig, void *pspdi
|
||||||
case PLATFORM_RENOIR:
|
case PLATFORM_RENOIR:
|
||||||
case PLATFORM_GENOA:
|
case PLATFORM_GENOA:
|
||||||
case PLATFORM_FAEGAN:
|
case PLATFORM_FAEGAN:
|
||||||
|
case PLATFORM_STRIXHALO:
|
||||||
default:
|
default:
|
||||||
/* for combo, it is also combo_psp_directory */
|
/* for combo, it is also combo_psp_directory */
|
||||||
amd_romsig->new_psp_directory =
|
amd_romsig->new_psp_directory =
|
||||||
|
|
@ -707,6 +708,7 @@ static void fill_bios_directory_to_efs(embedded_firmware *amd_romsig, void *bios
|
||||||
case PLATFORM_PHOENIX:
|
case PLATFORM_PHOENIX:
|
||||||
case PLATFORM_GLINDA:
|
case PLATFORM_GLINDA:
|
||||||
case PLATFORM_FAEGAN:
|
case PLATFORM_FAEGAN:
|
||||||
|
case PLATFORM_STRIXHALO:
|
||||||
break;
|
break;
|
||||||
case PLATFORM_CARRIZO:
|
case PLATFORM_CARRIZO:
|
||||||
case PLATFORM_STONEYRIDGE:
|
case PLATFORM_STONEYRIDGE:
|
||||||
|
|
@ -752,6 +754,9 @@ static uint32_t get_psp_id(enum platform soc_id)
|
||||||
case PLATFORM_FAEGAN:
|
case PLATFORM_FAEGAN:
|
||||||
psp_id = 0xbc0e1000;
|
psp_id = 0xbc0e1000;
|
||||||
break;
|
break;
|
||||||
|
case PLATFORM_STRIXHALO:
|
||||||
|
psp_id = 0xbc0e0900;
|
||||||
|
break;
|
||||||
case PLATFORM_CARRIZO:
|
case PLATFORM_CARRIZO:
|
||||||
default:
|
default:
|
||||||
psp_id = 0;
|
psp_id = 0;
|
||||||
|
|
@ -1620,6 +1625,7 @@ static int set_efs_table(uint8_t soc_id, amd_cb_config *cb_config,
|
||||||
case PLATFORM_GLINDA:
|
case PLATFORM_GLINDA:
|
||||||
case PLATFORM_GENOA:
|
case PLATFORM_GENOA:
|
||||||
case PLATFORM_FAEGAN:
|
case PLATFORM_FAEGAN:
|
||||||
|
case PLATFORM_STRIXHALO:
|
||||||
amd_romsig->spi_readmode_f17_mod_30_3f = cb_config->efs_spi_readmode;
|
amd_romsig->spi_readmode_f17_mod_30_3f = cb_config->efs_spi_readmode;
|
||||||
amd_romsig->spi_fastspeed_f17_mod_30_3f = cb_config->efs_spi_speed;
|
amd_romsig->spi_fastspeed_f17_mod_30_3f = cb_config->efs_spi_speed;
|
||||||
switch (cb_config->efs_spi_micron_flag) {
|
switch (cb_config->efs_spi_micron_flag) {
|
||||||
|
|
@ -1679,6 +1685,7 @@ static bool is_initial_alignment_required(enum platform soc_id)
|
||||||
case PLATFORM_PHOENIX:
|
case PLATFORM_PHOENIX:
|
||||||
case PLATFORM_GLINDA:
|
case PLATFORM_GLINDA:
|
||||||
case PLATFORM_FAEGAN:
|
case PLATFORM_FAEGAN:
|
||||||
|
case PLATFORM_STRIXHALO:
|
||||||
return false;
|
return false;
|
||||||
default:
|
default:
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ enum platform {
|
||||||
PLATFORM_GLINDA,
|
PLATFORM_GLINDA,
|
||||||
PLATFORM_GENOA,
|
PLATFORM_GENOA,
|
||||||
PLATFORM_FAEGAN,
|
PLATFORM_FAEGAN,
|
||||||
|
PLATFORM_STRIXHALO,
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef enum _amd_fw_type {
|
typedef enum _amd_fw_type {
|
||||||
|
|
|
||||||
|
|
@ -119,6 +119,8 @@ static enum platform identify_platform(char *soc_name)
|
||||||
return PLATFORM_GENOA;
|
return PLATFORM_GENOA;
|
||||||
else if (!strcasecmp(soc_name, "Faegan"))
|
else if (!strcasecmp(soc_name, "Faegan"))
|
||||||
return PLATFORM_FAEGAN;
|
return PLATFORM_FAEGAN;
|
||||||
|
else if (!strcasecmp(soc_name, "Strixhalo"))
|
||||||
|
return PLATFORM_STRIXHALO;
|
||||||
else
|
else
|
||||||
return PLATFORM_UNKNOWN;
|
return PLATFORM_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
@ -791,7 +793,8 @@ static uint8_t process_one_line(char *oneline, regmatch_t *match, char *dir,
|
||||||
static bool needs_ish(enum platform platform_type)
|
static bool needs_ish(enum platform platform_type)
|
||||||
{
|
{
|
||||||
if (platform_type == PLATFORM_MENDOCINO || platform_type == PLATFORM_PHOENIX ||
|
if (platform_type == PLATFORM_MENDOCINO || platform_type == PLATFORM_PHOENIX ||
|
||||||
platform_type == PLATFORM_GLINDA || platform_type == PLATFORM_FAEGAN)
|
platform_type == PLATFORM_GLINDA || platform_type == PLATFORM_FAEGAN ||
|
||||||
|
platform_type == PLATFORM_STRIXHALO)
|
||||||
return true;
|
return true;
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
|
|
@ -818,6 +821,7 @@ static bool is_second_gen(enum platform platform_type)
|
||||||
case PLATFORM_GLINDA:
|
case PLATFORM_GLINDA:
|
||||||
case PLATFORM_GENOA:
|
case PLATFORM_GENOA:
|
||||||
case PLATFORM_FAEGAN:
|
case PLATFORM_FAEGAN:
|
||||||
|
case PLATFORM_STRIXHALO:
|
||||||
return true;
|
return true;
|
||||||
case PLATFORM_UNKNOWN:
|
case PLATFORM_UNKNOWN:
|
||||||
default:
|
default:
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@ static uint16_t get_psp_fw_type(enum platform soc_id, struct amd_fw_header *head
|
||||||
case PLATFORM_PHOENIX:
|
case PLATFORM_PHOENIX:
|
||||||
case PLATFORM_GLINDA:
|
case PLATFORM_GLINDA:
|
||||||
case PLATFORM_FAEGAN:
|
case PLATFORM_FAEGAN:
|
||||||
|
case PLATFORM_STRIXHALO:
|
||||||
/* Fallback to fw_type if fw_id is not populated, which serves the same
|
/* Fallback to fw_type if fw_id is not populated, which serves the same
|
||||||
purpose on older SoCs. */
|
purpose on older SoCs. */
|
||||||
return header->fw_id ? header->fw_id : header->fw_type;
|
return header->fw_id ? header->fw_id : header->fw_type;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue