With this new config option, we can boot a allmodconfig kernel in qemu.
Config options SERIAL_AMBA_PL011, SERIAL_AMBA_PL011_CONSOLE, UNIX needs
to be enabled in order to get a console. Options like CPU_BIG_ENDIAN,
CMDLINE_FORCE, CMDLINE_OVERRIDE and HVC_DCC needs to be disabled.

Co-developed-by: Arnd Bergmann <[email protected]>
Signed-off-by: Arnd Bergmann <[email protected]>
Signed-off-by: Anders Roxell <[email protected]>
---
 arch/arm64/Kconfig      | 8 ++++++++
 drivers/tty/hvc/Kconfig | 1 +
 init/Kconfig            | 1 +
 3 files changed, 10 insertions(+)

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 1f52362f8d99..bb17ccb7bab2 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -292,6 +292,12 @@ config ARCH_SUPPORTS_UPROBES
 config ARCH_PROC_KCORE_TEXT
        def_bool y
 
+config KTEST_RUNNABLE
+       bool "Test build kernels that run in qemu for ktest"
+       select SERIAL_AMBA_PL011
+       select SERIAL_AMBA_PL011_CONSOLE
+       select UNIX
+
 source "arch/arm64/Kconfig.platforms"
 
 menu "Kernel Features"
@@ -773,6 +779,7 @@ config ARM64_PA_BITS
 
 config CPU_BIG_ENDIAN
        bool "Build big-endian kernel"
+       depends on !KTEST_RUNNABLE
        help
          Say Y if you plan on running a kernel in big-endian mode.
 
@@ -1381,6 +1388,7 @@ config CMDLINE
 
 config CMDLINE_FORCE
        bool "Always use the default kernel command string"
+       depends on !KTEST_RUNNABLE
        help
          Always use the default kernel command string, even if the boot
          loader passes other arguments to the kernel.
diff --git a/drivers/tty/hvc/Kconfig b/drivers/tty/hvc/Kconfig
index 4293c172e120..44e23c2388bd 100644
--- a/drivers/tty/hvc/Kconfig
+++ b/drivers/tty/hvc/Kconfig
@@ -82,6 +82,7 @@ config HVC_UDBG
 config HVC_DCC
        bool "ARM JTAG DCC console"
        depends on ARM || ARM64
+       depends on !KTEST_RUNNABLE
        select HVC_DRIVER
        help
          This console uses the JTAG DCC on ARM to create a console under the 
HVC
diff --git a/init/Kconfig b/init/Kconfig
index b633716e48f5..3ea5297b7305 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1844,6 +1844,7 @@ config CMDLINE_PREPEND
 config CMDLINE_OVERRIDE
        bool "Built-in command line overrides boot loader arguments"
        depends on CMDLINE_BOOL
+       depends on !KTEST_RUNNABLE
        help
          Set this option to 'Y' to have the kernel ignore the boot loader
          command line, and use ONLY the built-in command line. In this case
-- 
2.19.2

Reply via email to