/* 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 */
