summaryrefslogtreecommitdiff
path: root/src/cpu/x86
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2019-01-09 20:30:52 +0200
committerKyösti Mälkki <kyosti.malkki@gmail.com>2019-01-13 08:37:01 +0000
commit34856579f8e9349104cfdd0245a2b966bc59a7ea (patch)
tree9f32c9ceb13c7e8ec3ab9563628a6dc49b03623d /src/cpu/x86
parent95b3ba526419ca4de04d200b00b267b50576c7c9 (diff)
arch/x86: Drop Kconfig AP_SIPI_VECTOR
This was used to check romcc-built bootblock and romstage agree about the location of 16-bit entrypoint. There was no need to customize it as bootblock size requirement did not grow. Just check for a fixed location at 4 GiB - 4 KiB. With C_ENVIRONMENT_BOOTBLOCK we can have a proper symbol for the purpose, since it appears in the same compilation unit. It will adjust if C_ENV_BOOTBLOCK_SIZE changes. Change-Id: I93f3c37e78ba587455c804de8c57e7e06832a81f Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/30854 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
Diffstat (limited to 'src/cpu/x86')
-rw-r--r--src/cpu/x86/16bit/entry16.inc7
-rw-r--r--src/cpu/x86/16bit/entry16.ld1
2 files changed, 8 insertions, 0 deletions
diff --git a/src/cpu/x86/16bit/entry16.inc b/src/cpu/x86/16bit/entry16.inc
index 5a9739c9b9..55d9bd97e2 100644
--- a/src/cpu/x86/16bit/entry16.inc
+++ b/src/cpu/x86/16bit/entry16.inc
@@ -28,6 +28,13 @@
*/
#include <arch/rom_segs.h>
+
+#if IS_ENABLED(CONFIG_SIPI_VECTOR_IN_ROM)
+/* Symbol _start16bit must be aligned to 4kB to start AP CPUs with
+ * Startup IPI message without RAM.
+ */
+.align 4096
+#endif
.code16
.globl _start16bit
.type _start16bit, @function
diff --git a/src/cpu/x86/16bit/entry16.ld b/src/cpu/x86/16bit/entry16.ld
index 112d429953..66bfbd58ca 100644
--- a/src/cpu/x86/16bit/entry16.ld
+++ b/src/cpu/x86/16bit/entry16.ld
@@ -1,2 +1,3 @@
gdtptr16_offset = gdtptr16 & 0xffff;
nullidt_offset = nullidt & 0xffff;
+ ap_sipi_vector_in_rom = (_start16bit >> 12) & 0xff;