# # Linux 6.6 LTS minimal config for UTSM dual-kernel guest # # Build: make utsm_x86_64_defconfig && make -j$(nproc) bzImage # # Key design choices: # - 64-bit only (CONFIG_64BIT=y) # - Serial console (8250/16550 at 0x3F8) # - virtio: console, block, net, fs (for UTSM host backends) # - EFI stub disabled (UTSM uses custom VMX boot, not EFI) # - Built-in drivers (no module loading needed for Phase 1) # - No SMP (single CPU for Phase 1 simplicity) # - printk to serial for debugging CONFIG_64BIT=y CONFIG_X86_64=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf64-x86-64" CONFIG_ARCH_MMAP_RND_BITS_MIN=28 CONFIG_ARCH_MMAP_RND_BITS_MAX=32 CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MMAP_RND_BITS=28 CONFIG_SMP=y CONFIG_NR_CPUS=4 CONFIG_X86_64_SMP=y CONFIG_SCHED_MC=y CONFIG_SCHED_SMT=y # Processor type CONFIG_MK8=y CONFIG_X86_CPU=y CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_TSC=y CONFIG_X86_CMPXCHG64=y CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=64 CONFIG_PROCESSOR_SELECT=y CONFIG_CPU_SUP_INTEL=y CONFIG_CPU_SUP_AMD=y CONFIG_CPU_SUP_CENTAUR=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y # Memory CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_ARCH_PHYS_ADDR_T_64BIT=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_DIRECT_GBPAGES=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 CONFIG_X86_PMEM_LEGACY_DEVICE=y CONFIG_X86_PMEM_LEGACY=y CONFIG_X86_CHECK_BIOS_CORRUPTION=y CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y CONFIG_X86_RESERVE_LOW=64 CONFIG_MTRR=y CONFIG_MTRR_SANITIZER=y CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y CONFIG_X86_SMAP=y CONFIG_X86_INTEL_UMIP=y CONFIG_X86_UMIP=y # Power management (minimal) CONFIG_PM=y CONFIG_PM_CLK=y # Bus options CONFIG_PCI=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_DOMAINS=y CONFIG_PCI_MSI=y CONFIG_PCI_MSI_IRQ_DOMAIN=y CONFIG_PCI_LABEL=y CONFIG_ISA_DMA_API=y CONFIG_AMD_NB=y #Executable file formats CONFIG_BINFMT_ELF=y CONFIG_BINFMT_SCRIPT=y CONFIG_BINFMT_MISC=y # Networking CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y CONFIG_SYN_COOKIES=y CONFIG_TCP_CONG_CUBIC=y # Device Drivers # Serial console (critical: UTSM captures serial output) CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_NR_UARTS=4 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_EARLY_PRINTK=y CONFIG_EARLY_PRINTK_SERIAL=y # PCI host bridge CONFIG_PCI_HOST_GENERIC=y # virtio (critical: UTSM provides virtio backends) CONFIG_VIRTIO=y CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_PCI_LEGACY=y CONFIG_VIRTIO_BALLOON=y CONFIG_VIRTIO_INPUT=y CONFIG_VIRTIO_MMIO=y CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y # virtio console (Phase 1.4: UTSM↔Linux console) CONFIG_VIRTIO_CONSOLE=y CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_VIRTIO=y # UTSM dual-kernel hypercall and IPC driver (Phase 1.3) CONFIG_UTSM_HCALL=y # virtio block (Phase 2: block device) CONFIG_VIRTIO_BLK=y CONFIG_VIRTIO_BLK_SCSI=y # virtio net (Phase 2: network) CONFIG_VIRTIO_NET=y # virtio-fs (Phase 1.5: shared filesystem) CONFIG_VIRTIO_FS=y CONFIG_FUSE_FS=y # Filesystems CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_FAT_FS=y CONFIG_VFAT_FS=y CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_TMPFS=y CONFIG_PROC_FS=y CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y # Block devices CONFIG_BLK_DEV=y CONFIG_BLK_DEV_LOOP=y # Input (minimal) CONFIG_INPUT=y CONFIG_INPUT_KEYBOARD=y # RTC CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" # PNP/ACPI (minimal for QEMU) CONFIG_ACPI=y CONFIG_ACPI_AC=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_FAN=y CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_THERMAL=y # File systems CONFIG_FHANDLE=y # Kernel hacking CONFIG_PRINTK=y CONFIG_PRINTK_TIME=y CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 CONFIG_DEBUG_INFO=y CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_FRAME_WARN=2048 CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_RODATA=y CONFIG_DEBUG_SET_MODULE_RONX=y CONFIG_DEBUG_WX=y # Security (minimal) CONFIG_SECURITY=y CONFIG_SECURITYFS=y # Crypto (minimal) CONFIG_CRYPTO=y CONFIG_CRYPTO_CRC32C=y CONFIG_CRYPTO_SHA256=y # Library routines CONFIG_CRC16=y CONFIG_CRC32=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_XZ_DEC=y CONFIG_XZ_DEC_X86=y # Initramfs CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" # No module support (build everything in for Phase 1) # CONFIG_MODULES is not set # No EFI stub (UTSM uses custom VMX boot) # CONFIG_EFI_STUB is not set # CONFIG_EFI is not set # Boot protocol CONFIG_EARLY_PRINTK_SERIAL=y