summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Roth <martinroth@chromium.org>2021-06-21 09:18:46 -0600
committerPatrick Georgi <pgeorgi@google.com>2021-06-25 15:51:20 +0000
commit8a85a84fac7157927612cd638cf67c061d959bd8 (patch)
treefec6ab28b277215fdbbe90df8b1a982870d0bc9d
parentb8bba6519ee0411010eaadc0589144d4fea4c67b (diff)
Asm code: Use NO_EARLY_BOOTBLOCK_POSTCODES to remove Asm port80s
Expand NO_EARLY_BOOTBLOCK_POSTCODES to all of the early assembly code in bootblock. BUG=b:191370340 TEST: Build with & without the option enabled Signed-off-by: Martin Roth <martinroth@chromium.org> Change-Id: Idb4a96820d5c391fc17a0f0dcccd519d4881b78c Reviewed-on: https://review.coreboot.org/c/coreboot/+/55731 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Raul Rangel <rrangel@chromium.org> Reviewed-by: Karthik Ramasubramanian <kramasub@google.com> Reviewed-by: Nico Huber <nico.h@gmx.de> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
-rw-r--r--src/console/Kconfig10
-rw-r--r--src/cpu/x86/entry16.S2
-rw-r--r--src/cpu/x86/entry32.S2
-rw-r--r--src/include/cpu/x86/post_code.h2
4 files changed, 7 insertions, 9 deletions
diff --git a/src/console/Kconfig b/src/console/Kconfig
index 548b701d9f..4125e18dd9 100644
--- a/src/console/Kconfig
+++ b/src/console/Kconfig
@@ -464,10 +464,12 @@ 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.
+ code be configured before any POST codes are sent out. If this is
+ not done, the system can hang on the first POST code. This
+ initialization can be done in the boot block, but there are a couple
+ of POST codes that go out before the chipset's C bootblock
+ initialization can happen. This option suppresses all postcodes in
+ the early assembly code.
config HWBASE_DEBUG_CB
bool
diff --git a/src/cpu/x86/entry16.S b/src/cpu/x86/entry16.S
index 147906fe4d..d045c54937 100644
--- a/src/cpu/x86/entry16.S
+++ b/src/cpu/x86/entry16.S
@@ -43,9 +43,7 @@ _start16bit:
cli
/* Save the BIST result */
movl %eax, %ebp
-#if !CONFIG(NO_EARLY_BOOTBLOCK_POSTCODES)
post_code(POST_RESET_VECTOR_CORRECT)
-#endif
/* IMMEDIATELY invalidate the translation lookaside buffer (TLB) before
* executing any further code. Even though paging is disabled we
diff --git a/src/cpu/x86/entry32.S b/src/cpu/x86/entry32.S
index 639ab36a57..ad4a7d032b 100644
--- a/src/cpu/x86/entry32.S
+++ b/src/cpu/x86/entry32.S
@@ -31,9 +31,7 @@ bootblock_protected_mode_entry:
/* Save the BIST value */
movl %eax, %ebp
-#if !CONFIG(NO_EARLY_BOOTBLOCK_POSTCODES)
post_code(POST_ENTER_PROTECTED_MODE)
-#endif
movw $ROM_DATA_SEG, %ax
movw %ax, %ds
diff --git a/src/include/cpu/x86/post_code.h b/src/include/cpu/x86/post_code.h
index 077f964335..de1100607a 100644
--- a/src/include/cpu/x86/post_code.h
+++ b/src/include/cpu/x86/post_code.h
@@ -3,7 +3,7 @@
#include <console/post_codes.h>
-#if CONFIG(POST_IO)
+#if CONFIG(POST_IO) && !(ENV_BOOTBLOCK && CONFIG(NO_EARLY_BOOTBLOCK_POSTCODES))
#define post_code(value) \
movb $value, %al; \
outb %al, $CONFIG_POST_IO_PORT