| /* SPDX-License-Identifier: GPL-2.0-only */ |
| |
| |
| #ifndef AMD_COMMON_PSP_EFS_H |
| #define AMD_COMMON_PSP_EFS_H |
| |
| #include <types.h> |
| |
| #define EFS_OFFSET CONFIG_AMD_FWM_POSITION |
| |
| #define EMBEDDED_FW_SIGNATURE 0x55aa55aa |
| |
| #if CONFIG(SOC_AMD_STONEYRIDGE) |
| #define SPI_MODE_FIELD spi_readmode_f15_mod_60_6f |
| #define SPI_SPEED_FIELD fast_speed_new_f15_mod_60_6f |
| #elif CONFIG(SOC_AMD_PICASSO) |
| #define SPI_MODE_FIELD spi_readmode_f17_mod_00_2f |
| #define SPI_SPEED_FIELD spi_fastspeed_f17_mod_00_2f |
| #elif CONFIG(SOC_AMD_CEZANNE) | CONFIG(SOC_AMD_MENDOCINO) |
| #define SPI_MODE_FIELD spi_readmode_f17_mod_30_3f |
| #define SPI_SPEED_FIELD spi_fastspeed_f17_mod_30_3f |
| #endif |
| |
| struct second_gen_efs { /* todo: expand for Server products */ |
| uint32_t gen:1; /* Client products only use bit 0 */ |
| uint32_t reserved:31; |
| } __packed; |
| |
| #define EFS_SECOND_GEN 0 |
| |
| /* Copied from coreboot/util/amdfwtool.h */ |
| struct embedded_firmware { |
| uint32_t signature; /* 0x55aa55aa */ |
| uint32_t imc_entry; |
| uint32_t gec_entry; |
| uint32_t xhci_entry; |
| uint32_t psp_directory; |
| uint32_t new_psp_directory; |
| uint32_t bios0_entry; |
| uint32_t bios1_entry; |
| uint32_t bios2_entry; |
| struct second_gen_efs efs_gen; |
| uint32_t bios3_entry; |
| uint32_t reserved_2Ch; |
| uint32_t promontory_fw_ptr; |
| uint32_t lp_promontory_fw_ptr; |
| uint32_t reserved_38h; |
| uint32_t reserved_3Ch; |
| uint8_t spi_readmode_f15_mod_60_6f; |
| uint8_t fast_speed_new_f15_mod_60_6f; |
| uint8_t reserved_42h; |
| uint8_t spi_readmode_f17_mod_00_2f; |
| uint8_t spi_fastspeed_f17_mod_00_2f; |
| uint8_t qpr_dummy_cycle_f17_mod_00_2f; |
| uint8_t reserved_46h; |
| uint8_t spi_readmode_f17_mod_30_3f; |
| uint8_t spi_fastspeed_f17_mod_30_3f; |
| uint8_t micron_detect_f17_mod_30_3f; |
| uint8_t reserved_4Ah; |
| uint8_t reserved_4Bh; |
| uint32_t reserved_4Ch; |
| } __packed __aligned(16); |
| |
| bool read_efs_spi_settings(uint8_t *mode, uint8_t *speed); |
| |
| #endif /* AMD_COMMON_PSP_EFS_H */ |