soc/amd/common/psp: add and call PSP SMI SPI RPMC function stubs
In the case where the x86 owns the SPI controller and the RPMC feature is used, the PSP will send an SMI to the x86 side for it to send the RPMC increment monotonic counter and RPMC request monotonic counter commands to the SPI flash and return the result to the PSP. Add stubs as handlers for those two PSP SMI commands. Change-Id: If6091d2b0002f817922cac4cba373f0f981b646e Signed-off-by: Felix Held <felix-coreboot@felixheld.de> Reviewed-on: https://review.coreboot.org/c/coreboot/+/84702 Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Ana Cabral
This commit is contained in:
parent
a5f61e09a0
commit
d1e8873e08
3 changed files with 24 additions and 0 deletions
|
|
@ -14,6 +14,8 @@
|
|||
#define MBOX_PSP_CMD_SPI_READ 0x84
|
||||
#define MBOX_PSP_CMD_SPI_WRITE 0x85
|
||||
#define MBOX_PSP_CMD_SPI_ERASE 0x86
|
||||
#define MBOX_PSP_CMD_SPI_RPMC_INC_MC 0x88
|
||||
#define MBOX_PSP_CMD_SPI_RPMC_REQ_MC 0x89
|
||||
|
||||
extern struct {
|
||||
uint8_t buffer[P2C_BUFFER_MAXSIZE];
|
||||
|
|
@ -154,6 +156,12 @@ static void handle_psp_command(void)
|
|||
case MBOX_PSP_CMD_SPI_ERASE:
|
||||
status = psp_smi_spi_erase(buffer);
|
||||
break;
|
||||
case MBOX_PSP_CMD_SPI_RPMC_INC_MC:
|
||||
status = psp_smi_spi_rpmc_inc_mc(buffer);
|
||||
break;
|
||||
case MBOX_PSP_CMD_SPI_RPMC_REQ_MC:
|
||||
status = psp_smi_spi_rpmc_req_mc(buffer);
|
||||
break;
|
||||
default:
|
||||
printk(BIOS_ERR, "PSP: Unknown command %d\n", cmd);
|
||||
status = MBOX_PSP_UNSUPPORTED;
|
||||
|
|
|
|||
|
|
@ -269,3 +269,17 @@ enum mbox_p2c_status psp_smi_spi_erase(struct mbox_default_buffer *buffer)
|
|||
|
||||
return MBOX_PSP_SUCCESS;
|
||||
}
|
||||
|
||||
enum mbox_p2c_status psp_smi_spi_rpmc_inc_mc(struct mbox_default_buffer *buffer)
|
||||
{
|
||||
printk(BIOS_SPEW, "PSP: SPI RPMC increment monotonic counter request\n");
|
||||
|
||||
return MBOX_PSP_UNSUPPORTED;
|
||||
}
|
||||
|
||||
enum mbox_p2c_status psp_smi_spi_rpmc_req_mc(struct mbox_default_buffer *buffer)
|
||||
{
|
||||
printk(BIOS_SPEW, "PSP: SPI RPMC request monotonic counter request\n");
|
||||
|
||||
return MBOX_PSP_UNSUPPORTED;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -66,3 +66,5 @@ enum mbox_p2c_status psp_smi_spi_get_info(struct mbox_default_buffer *buffer);
|
|||
enum mbox_p2c_status psp_smi_spi_read(struct mbox_default_buffer *buffer);
|
||||
enum mbox_p2c_status psp_smi_spi_write(struct mbox_default_buffer *buffer);
|
||||
enum mbox_p2c_status psp_smi_spi_erase(struct mbox_default_buffer *buffer);
|
||||
enum mbox_p2c_status psp_smi_spi_rpmc_inc_mc(struct mbox_default_buffer *buffer);
|
||||
enum mbox_p2c_status psp_smi_spi_rpmc_req_mc(struct mbox_default_buffer *buffer);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue