x86: Add Kconfig to disable early bootblock postcodes

The Intel cave creek chipset needs to have port 80 routing configured
before any post codes can be sent to port 80h.  Sending post codes out
before the routing is done will hang the system.

This patch allows us to disable the first couple of post codes that go
out before the routing can be configured.

The Kconfig symbol is selected by the cave creek chipset (fsp_i89xx).

Change-Id: I9bf41669ec32744f87a1ed2de011d31c72ea38da
Signed-off-by: Martin Roth <martinroth@google.com>
Reviewed-on: http://review.coreboot.org/12422
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Reviewed-by: York Yang <york.yang@intel.com>
This commit is contained in:
Martin Roth 2015-11-12 14:02:42 -07:00
parent ae16c4034c
commit 1455437c9e
4 changed files with 14 additions and 1 deletions

View File

@ -350,4 +350,13 @@ config POST_IO_PORT
depending on the presence of coprocessors/microcontrollers or if the depending on the presence of coprocessors/microcontrollers or if the
platform does not support IO in the conventional x86 manner. platform does not support IO in the conventional x86 manner.
config NO_EARLY_BOOTBLOCK_POSTCODES
def_bool n
help
Some chipsets require that the routing for the port 80h POST
code be configured before any POST codes are sent out.
This can be done in the boot block, but there are a couple of
POST codes that go out before the chipset's bootblock initialization
can happen. This option suppresses those POST codes.
endmenu endmenu

View File

@ -36,8 +36,9 @@ _start:
cli cli
/* Save the BIST result */ /* Save the BIST result */
movl %eax, %ebp movl %eax, %ebp
#if !IS_ENABLED(CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES)
post_code(POST_RESET_VECTOR_CORRECT) post_code(POST_RESET_VECTOR_CORRECT)
#endif
/* IMMEDIATELY invalidate the translation lookaside buffer (TLB) before /* IMMEDIATELY invalidate the translation lookaside buffer (TLB) before
* executing any further code. Even though paging is disabled we * executing any further code. Even though paging is disabled we

View File

@ -56,7 +56,9 @@ __protected_start:
/* Save the BIST value */ /* Save the BIST value */
movl %eax, %ebp movl %eax, %ebp
#if !IS_ENABLED(CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES)
post_code(POST_ENTER_PROTECTED_MODE) post_code(POST_ENTER_PROTECTED_MODE)
#endif
movw $ROM_DATA_SEG, %ax movw $ROM_DATA_SEG, %ax
movw %ax, %ds movw %ax, %ds

View File

@ -34,6 +34,7 @@ config SOUTH_BRIDGE_OPTIONS # dummy
select SPI_FLASH select SPI_FLASH
select COMMON_FADT select COMMON_FADT
select HAVE_INTEL_FIRMWARE select HAVE_INTEL_FIRMWARE
select NO_EARLY_BOOTBLOCK_POSTCODES
config EHCI_BAR config EHCI_BAR
hex hex