soc/amd/common/psp_smi_flash: factor out get_flash_device

Since the RPMC-related functions will only need the spi_flash struct,
but not the region_device struct of the store region corresponding to
the 'target_nv_id', factor out 'get_flash_device' from
'find_psp_spi_flash_device_region'.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ia99d3454df2c1c4182c193da7de1bbb4eef18313
Reviewed-on: https://review.coreboot.org/c/coreboot/+/84905
Reviewed-by: Matt DeVillier <matt.devillier@amd.corp-partner.google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Ana Carolina Cabral
This commit is contained in:
Felix Held 2024-10-28 17:43:56 +01:00
commit 7571044f9d

View file

@ -66,9 +66,7 @@ static int lookup_store(uint64_t target_nv_id, struct region_device *rstore)
return rdev_chain(rstore, rdev, 0, region_device_sz(rdev));
}
static enum mbox_p2c_status find_psp_spi_flash_device_region(uint64_t target_nv_id,
struct region_device *store,
const struct spi_flash **flash)
static enum mbox_p2c_status get_flash_device(const struct spi_flash **flash)
{
*flash = boot_device_spi_flash();
if (*flash == NULL) {
@ -76,6 +74,16 @@ static enum mbox_p2c_status find_psp_spi_flash_device_region(uint64_t target_nv_
return MBOX_PSP_COMMAND_PROCESS_ERROR;
}
return MBOX_PSP_SUCCESS;
}
static enum mbox_p2c_status find_psp_spi_flash_device_region(uint64_t target_nv_id,
struct region_device *store,
const struct spi_flash **flash)
{
if (get_flash_device(flash) != MBOX_PSP_SUCCESS)
return MBOX_PSP_COMMAND_PROCESS_ERROR;
if (lookup_store(target_nv_id, store) < 0) {
printk(BIOS_ERR, "PSP: Unable to find PSP SPI region\n");
return MBOX_PSP_COMMAND_PROCESS_ERROR;