soc/amd: Make espi_configure_decodes private
This is only ever called after espi_setup. 55861 - AMD System Peripheral Bus Overview also says that io ranges should be configured before enabling the BUS_MASTER bit. BUG=b:183524609 TEST=Boot guybrush to OS Signed-off-by: Raul E Rangel <rrangel@chromium.org> Change-Id: I074e487d8768a578ee889a125b9948e3aa6c7269 Reviewed-on: https://review.coreboot.org/c/coreboot/+/52059 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Furquan Shaikh <furquan@google.com>
This commit is contained in:
parent
c988d0516c
commit
61ac1bc530
|
@ -70,6 +70,5 @@ void fch_early_init(void)
|
|||
if (CONFIG(SOC_AMD_COMMON_BLOCK_USE_ESPI)) {
|
||||
espi_clear_decodes();
|
||||
espi_setup();
|
||||
espi_configure_decodes();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -100,12 +100,6 @@ int espi_open_io_window(uint16_t base, size_t size);
|
|||
*/
|
||||
int espi_open_mmio_window(uint32_t base, size_t size);
|
||||
|
||||
/*
|
||||
* Configure generic and standard I/O decode windows using the espi_config structure settings
|
||||
* provided by mainboard in device tree.
|
||||
*/
|
||||
void espi_configure_decodes(void);
|
||||
|
||||
/*
|
||||
* Clear all configured eSPI memory and I/O decode ranges. This is useful for changing
|
||||
* the decodes, or if something else has previously setup decode windows that conflict
|
||||
|
|
|
@ -298,19 +298,22 @@ static const struct espi_config *espi_get_config(void)
|
|||
return &soc_cfg->espi_config;
|
||||
}
|
||||
|
||||
void espi_configure_decodes(void)
|
||||
static int espi_configure_decodes(const struct espi_config *cfg)
|
||||
{
|
||||
int i;
|
||||
const struct espi_config *cfg = espi_get_config();
|
||||
int i, ret;
|
||||
|
||||
espi_enable_decode(cfg->std_io_decode_bitmap);
|
||||
|
||||
for (i = 0; i < ESPI_GENERIC_IO_WIN_COUNT; i++) {
|
||||
if (cfg->generic_io_range[i].size == 0)
|
||||
continue;
|
||||
espi_open_generic_io_window(cfg->generic_io_range[i].base,
|
||||
cfg->generic_io_range[i].size);
|
||||
ret = espi_open_generic_io_window(cfg->generic_io_range[i].base,
|
||||
cfg->generic_io_range[i].size);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define ESPI_DN_TX_HDR0 0x00
|
||||
|
@ -966,6 +969,11 @@ int espi_setup(void)
|
|||
return -1;
|
||||
}
|
||||
|
||||
if (espi_configure_decodes(cfg) == -1) {
|
||||
printk(BIOS_ERR, "Error: Configuring decodes failed!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Enable subtractive decode if configured */
|
||||
espi_setup_subtractive_decode(cfg);
|
||||
|
||||
|
|
|
@ -77,8 +77,6 @@ void fch_early_init(void)
|
|||
if (CONFIG(DISABLE_SPI_FLASH_ROM_SHARING))
|
||||
lpc_disable_spi_rom_sharing();
|
||||
|
||||
if (CONFIG(SOC_AMD_COMMON_BLOCK_USE_ESPI)) {
|
||||
if (CONFIG(SOC_AMD_COMMON_BLOCK_USE_ESPI))
|
||||
espi_setup();
|
||||
espi_configure_decodes();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -153,8 +153,6 @@ uint32_t verstage_soc_early_init(void)
|
|||
|
||||
void verstage_soc_init(void)
|
||||
{
|
||||
if (CONFIG(SOC_AMD_COMMON_BLOCK_USE_ESPI)) {
|
||||
if (CONFIG(SOC_AMD_COMMON_BLOCK_USE_ESPI))
|
||||
espi_setup();
|
||||
espi_configure_decodes();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue