Clean up architecture-specific Kconfigs

It's an unfortunate side effect of our different-archs-per-stage
mechanism that all src/arch/*/Kconfig files are always parsed with no
if blocks to exclude them if they're not relevant. This makes it very
easy to accidentally rely on a Kconfig default set by a totally
different and not applying architecture.

This patch moves a few Kconfigs from ARM and X86 that leaked out like
this into a common Kconfig file for clarity. It also gives ARM64 its
own BOOTBLOCK_CUSTOM mechanism so that it doesn't leech off the ARM one
(currently not used by any board).

In the future, we should maybe prefix all options in the arch/*/Kconfig
files with the architecture name (such as X86_BOOTBLOCK_NORMAL and
ARM_LPAE are already doing), to make it more apparent when they are used
in the wrong place.

TEST=None (tested together with dependent changes)

Change-Id: I3e8bb3dfbb2c4edada621ce16d130bd7387d4eb8
Signed-off-by: Patrick Georgi <>
Original-Commit-Id: 5528aa9252cdf711af3c160da387c6a7bebe9e76
Original-Change-Id: Ieb2d79bae6c6800be0f93ca3489b658008b1dfae
Original-Signed-off-by: Julius Werner <>
Original-Reviewed-by: Aaron Durbin <>
Reviewed-by: Aaron Durbin <>
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <>
diff --git a/src/Kconfig b/src/Kconfig
index 7aee478..aa4d6ee 100644
--- a/src/Kconfig
+++ b/src/Kconfig
@@ -311,6 +311,14 @@
+	bool
+	default n
+	bool
+	default n
 source src/device/Kconfig
 menu "Generic Drivers"
@@ -337,6 +345,10 @@
 	default 0x4000
+config STACK_SIZE
+	hex
+	default 0x1000
 config MAX_CPUS
 	default 1