soc/intel: Configure P2SB before other PCH controllers

This change updates bootblock_pch_early_init() to perform P2SB
configuration before any other PCH controllers are initialized. This
is done because the other controllers might perform PCR settings which
requires the PCR base address to be configured. As the PCR base
address configuration happens during P2SB initialization, this change
moves the p2sb init calls before any other PCH controller
initialization.

BUG=b:171534504

Change-Id: I485556be003ff5338b4e2046768fe4f6d8a619a3
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/47885
Reviewed-by: Michael Niewöhner <foss@mniewoehner.de>
Reviewed-by: Subrata Banik <subrata.banik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Furquan Shaikh 2020-11-22 20:00:28 -08:00 committed by Michael Niewöhner
parent 95ee5996f7
commit d149bfa17f
7 changed files with 48 additions and 13 deletions

View File

@ -65,11 +65,16 @@ static void soc_config_pwrmbase(void)
void bootblock_pch_early_init(void) void bootblock_pch_early_init(void)
{ {
fast_spi_early_init(SPI_BASE_ADDRESS); /*
gspi_early_bar_init(); * Perform P2SB configuration before any another controller initialization as the
* controller might want to perform PCR settings.
*/
p2sb_enable_bar(); p2sb_enable_bar();
p2sb_configure_hpet(); p2sb_configure_hpet();
fast_spi_early_init(SPI_BASE_ADDRESS);
gspi_early_bar_init();
/* /*
* Enabling PWRM Base for accessing * Enabling PWRM Base for accessing
* Global Reset Cause Register. * Global Reset Cause Register.

View File

@ -77,11 +77,16 @@ static void soc_config_pwrmbase(void)
void bootblock_pch_early_init(void) void bootblock_pch_early_init(void)
{ {
fast_spi_early_init(SPI_BASE_ADDRESS); /*
gspi_early_bar_init(); * Perform P2SB configuration before any another controller initialization as the
* controller might want to perform PCR settings.
*/
p2sb_enable_bar(); p2sb_enable_bar();
p2sb_configure_hpet(); p2sb_configure_hpet();
fast_spi_early_init(SPI_BASE_ADDRESS);
gspi_early_bar_init();
/* /*
* Enabling PWRM Base for accessing * Enabling PWRM Base for accessing
* Global Reset Cause Register. * Global Reset Cause Register.

View File

@ -62,11 +62,16 @@ static void soc_config_pwrmbase(void)
void bootblock_pch_early_init(void) void bootblock_pch_early_init(void)
{ {
fast_spi_early_init(SPI_BASE_ADDRESS); /*
gspi_early_bar_init(); * Perform P2SB configuration before any another controller initialization as the
* controller might want to perform PCR settings.
*/
p2sb_enable_bar(); p2sb_enable_bar();
p2sb_configure_hpet(); p2sb_configure_hpet();
fast_spi_early_init(SPI_BASE_ADDRESS);
gspi_early_bar_init();
/* /*
* Enabling PWRM Base for accessing * Enabling PWRM Base for accessing
* Global Reset Cause Register. * Global Reset Cause Register.

View File

@ -58,11 +58,16 @@ static void soc_config_pwrmbase(void)
void bootblock_pch_early_init(void) void bootblock_pch_early_init(void)
{ {
fast_spi_early_init(SPI_BASE_ADDRESS); /*
gspi_early_bar_init(); * Perform P2SB configuration before any another controller initialization as the
* controller might want to perform PCR settings.
*/
p2sb_enable_bar(); p2sb_enable_bar();
p2sb_configure_hpet(); p2sb_configure_hpet();
fast_spi_early_init(SPI_BASE_ADDRESS);
gspi_early_bar_init();
/* /*
* Enabling PWRM Base for accessing * Enabling PWRM Base for accessing
* Global Reset Cause Register. * Global Reset Cause Register.

View File

@ -62,11 +62,16 @@ static void soc_config_pwrmbase(void)
void bootblock_pch_early_init(void) void bootblock_pch_early_init(void)
{ {
fast_spi_early_init(SPI_BASE_ADDRESS); /*
gspi_early_bar_init(); * Perform P2SB configuration before any another controller initialization as the
* controller might want to perform PCR settings.
*/
p2sb_enable_bar(); p2sb_enable_bar();
p2sb_configure_hpet(); p2sb_configure_hpet();
fast_spi_early_init(SPI_BASE_ADDRESS);
gspi_early_bar_init();
/* /*
* Enabling PWRM Base for accessing * Enabling PWRM Base for accessing
* Global Reset Cause Register. * Global Reset Cause Register.

View File

@ -29,9 +29,14 @@
void bootblock_pch_early_init(void) void bootblock_pch_early_init(void)
{ {
fast_spi_early_init(SPI_BASE_ADDRESS); /*
* Perform P2SB configuration before any another controller initialization as the
* controller might want to perform PCR settings.
*/
p2sb_enable_bar(); p2sb_enable_bar();
p2sb_configure_hpet(); p2sb_configure_hpet();
fast_spi_early_init(SPI_BASE_ADDRESS);
} }
static void soc_config_acpibase(void) static void soc_config_acpibase(void)

View File

@ -67,11 +67,16 @@ static void soc_config_pwrmbase(void)
void bootblock_pch_early_init(void) void bootblock_pch_early_init(void)
{ {
fast_spi_early_init(SPI_BASE_ADDRESS); /*
gspi_early_bar_init(); * Perform P2SB configuration before any another controller initialization as the
* controller might want to perform PCR settings.
*/
p2sb_enable_bar(); p2sb_enable_bar();
p2sb_configure_hpet(); p2sb_configure_hpet();
fast_spi_early_init(SPI_BASE_ADDRESS);
gspi_early_bar_init();
/* /*
* Enabling PWRM Base for accessing * Enabling PWRM Base for accessing
* Global Reset Cause Register. * Global Reset Cause Register.