From 4c87224818898d0562ba7b07ee1187301ccd92cf Mon Sep 17 00:00:00 2001 From: Andrew Boie Date: Mon, 26 Oct 2020 10:38:44 -0700 Subject: [PATCH] x86: add qemu_x86_tiny This build target has all the low-memory options enabled for memory management: a 4MB address space, 32-bit paging mode, no KPTI, an empty page pool, and common page tables for memory domains. Signed-off-by: Andrew Boie --- boards/x86/qemu_x86/qemu_x86.dts | 2 ++ boards/x86/qemu_x86/qemu_x86_tiny.dts | 8 +++++++ boards/x86/qemu_x86/qemu_x86_tiny.yaml | 13 +++++++++++ boards/x86/qemu_x86/qemu_x86_tiny_defconfig | 25 +++++++++++++++++++++ 4 files changed, 48 insertions(+) create mode 100644 boards/x86/qemu_x86/qemu_x86_tiny.dts create mode 100644 boards/x86/qemu_x86/qemu_x86_tiny.yaml create mode 100644 boards/x86/qemu_x86/qemu_x86_tiny_defconfig diff --git a/boards/x86/qemu_x86/qemu_x86.dts b/boards/x86/qemu_x86/qemu_x86.dts index 8f9ee291ff3..03cfdab115b 100644 --- a/boards/x86/qemu_x86/qemu_x86.dts +++ b/boards/x86/qemu_x86/qemu_x86.dts @@ -4,7 +4,9 @@ #include +#ifndef DT_DRAM_SIZE #define DT_DRAM_SIZE DT_SIZE_K(4096) +#endif #define DT_FLASH_SIZE DT_SIZE_K(4096) #include diff --git a/boards/x86/qemu_x86/qemu_x86_tiny.dts b/boards/x86/qemu_x86/qemu_x86_tiny.dts new file mode 100644 index 00000000000..a32afaa5b86 --- /dev/null +++ b/boards/x86/qemu_x86/qemu_x86_tiny.dts @@ -0,0 +1,8 @@ +/* + * Copyright (c) 2020 Intel Corporation. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#define DT_DRAM_SIZE DT_SIZE_K(2048) +#include "qemu_x86.dts" diff --git a/boards/x86/qemu_x86/qemu_x86_tiny.yaml b/boards/x86/qemu_x86/qemu_x86_tiny.yaml new file mode 100644 index 00000000000..79035592996 --- /dev/null +++ b/boards/x86/qemu_x86/qemu_x86_tiny.yaml @@ -0,0 +1,13 @@ +identifier: qemu_x86_tiny +name: QEMU Emulation for X86 (small VM) +type: qemu +arch: x86 +simulation: qemu +toolchain: + - zephyr + - xtools +testing: + default: true + only_tags: + - kernel + - userspace diff --git a/boards/x86/qemu_x86/qemu_x86_tiny_defconfig b/boards/x86/qemu_x86/qemu_x86_tiny_defconfig new file mode 100644 index 00000000000..bd2d264b25f --- /dev/null +++ b/boards/x86/qemu_x86/qemu_x86_tiny_defconfig @@ -0,0 +1,25 @@ +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_SOC_IA32=y +CONFIG_BOARD_QEMU_X86=y +CONFIG_HPET_TIMER=y +CONFIG_PIC_DISABLE=y +CONFIG_LOAPIC=y +CONFIG_CONSOLE=y +CONFIG_SERIAL=y +CONFIG_UART_NS16550=y +CONFIG_UART_CONSOLE=y +CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC=25000000 +CONFIG_TEST_RANDOM_GENERATOR=y +CONFIG_X86_MMU=y +CONFIG_DEBUG_INFO=y +CONFIG_SCHED_SCALABLE=y +CONFIG_WAITQ_SCALABLE=y +CONFIG_X86_VERY_EARLY_CONSOLE=y +CONFIG_QEMU_ICOUNT_SHIFT=5 + +CONFIG_X86_PAE=n +CONFIG_X86_COMMON_PAGE_TABLE=y +CONFIG_X86_KPTI=n +CONFIG_KERNEL_VM_SIZE=0x400000 +CONFIG_X86_MMU_PAGE_POOL_PAGES=0