diff --git a/CHANGELOG.md b/CHANGELOG.md index bfa903e715a..bca8729ab48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,14 @@ and this project adheres to ### Added +- [#4428](https://github.com/firecracker-microvm/firecracker/pull/4428): Added + ACPI support to Firecracker for x86_64 microVMs. Currently, we pass ACPI + tables with information about the available vCPUs, interrupt controllers, + VirtIO and legacy x86 devices to the guest. This allows booting kernels + without MPTable support. Please see our + [kernel policy documentation](docs/kernel-policy.md) for more information + regarding relevant kernel configurations. + ### Changed - [#4492](https://github.com/firecracker-microvm/firecracker/pull/4492): Changed @@ -25,6 +33,11 @@ and this project adheres to the `start_time_us` and `start_time_cpu_us` metrics. These parameters were never meant to be used by end customers, and we recommend doing any such time adjustments outside Firecracker. +- Booting with microVM kernels that rely on MPTable on x86_64 is deprecated and + support will be removed in v2.0 or later. We suggest to users of Firecracker + to use guest kernels with ACPI support. For x86_64 microVMs, ACPI will be the + only way Firecracker passes hardware information to the guest once MPTable + support is removed. ### Fixed diff --git a/Cargo.lock b/Cargo.lock index b1c57f0fc39..9610912de94 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,16 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "acpi_tables" +version = "0.1.0" +dependencies = [ + "displaydoc", + "thiserror", + "vm-memory", + "zerocopy", +] + [[package]] name = "aead" version = "0.5.2" @@ -218,6 +228,12 @@ version = "2.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + [[package]] name = "cargo_toml" version = "0.19.2" @@ -1525,6 +1541,7 @@ checksum = "6de3dc0146d78558327419fac388850fc6cbf197e924c4659a4863db20b5af64" name = "vmm" version = "0.1.0" dependencies = [ + "acpi_tables", "aes-gcm", "aws-lc-rs", "base64", @@ -1562,6 +1579,7 @@ dependencies = [ "vm-fdt", "vm-memory", "vm-superio", + "zerocopy", ] [[package]] @@ -1776,6 +1794,27 @@ dependencies = [ "memchr", ] +[[package]] +name = "zerocopy" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.53", +] + [[package]] name = "zeroize" version = "1.7.0" diff --git a/Cargo.toml b/Cargo.toml index 89cbf19c2c0..74bba9a5da1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [workspace] -members = ["src/clippy-tracing", "src/cpu-template-helper", "src/firecracker", "src/jailer", "src/log-instrument", "src/log-instrument-macros", "src/rebase-snap", "src/seccompiler", "src/snapshot-editor"] -default-members = ["src/clippy-tracing", "src/cpu-template-helper", "src/firecracker", "src/rebase-snap", "src/seccompiler", "src/snapshot-editor"] +members = ["src/acpi-tables", "src/clippy-tracing", "src/cpu-template-helper", "src/firecracker", "src/jailer", "src/log-instrument", "src/log-instrument-macros", "src/rebase-snap", "src/seccompiler", "src/snapshot-editor"] +default-members = ["src/clippy-tracing", "src/cpu-template-helper", "src/firecracker", "src/rebase-snap", "src/seccompiler", "src/snapshot-editor", "src/acpi-tables"] resolver = "2" [workspace.lints.rust] diff --git a/DEPRECATED.md b/DEPRECATED.md index 8264aed9bb4..ca9068d773d 100644 --- a/DEPRECATED.md +++ b/DEPRECATED.md @@ -16,3 +16,6 @@ a future major Firecracker release, in accordance with our `rebase-snap` tool - \[[#4500](https://github.com/firecracker-microvm/firecracker/pull/4500)\] The `--start-time-cpu-us` and `--start-time-us` CLI arguments +- \[[#4428](https://github.com/firecracker-microvm/firecracker/pull/4428)\] + Booting microVMs using MPTable and command line parameters for VirtIO devices. + The functionality is substituted with ACPI. diff --git a/docs/kernel-policy.md b/docs/kernel-policy.md index 26d48bb8280..f2df6828ca6 100644 --- a/docs/kernel-policy.md +++ b/docs/kernel-policy.md @@ -47,6 +47,7 @@ The configuration items that may be relevant for Firecracker are: - guest RNG - `CONFIG_RANDOM_TRUST_CPU` - use CPU RNG instructions (if present) to initialize RNG. Available for >= 5.10 +- ACPI support - `CONFIG_ACPI` and `CONFIG_PCI` There are also guest config options which are dependant on the platform on which Firecracker is run: @@ -81,12 +82,43 @@ the minimal configuration for a guest kernel for a successful microVM boot is: - `CONFIG_VIRTIO_BLK=y` - x86_64 - `CONFIG_VIRTIO_BLK=y` - - `CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y` + - `CONFIG_ACPI=y` + - `CONFIG_PCI=y` - `CONFIG_KVM_GUEST=y`. *Optional*: To enable boot logs set `CONFIG_SERIAL_8250_CONSOLE=y` and `CONFIG_PRINTK=y` in the guest kernel config. +##### Booting with ACPI (x86_64 only): + +Firecracker supports booting kernels with ACPI support. The relevant +configurations for the guest kernel are: + +- `CONFIG_ACPI=y` +- `CONFIG_PCI=y` + +Please note that Firecracker does not support PCI devices. The `CONFIG_PCI` +option is needed for ACPI initialization inside the guest. + +ACPI supersedes the legacy way of booting a microVM, i.e. via MPTable and +command line parameters for VirtIO devices. + +We suggest that users disable MPTable and passing VirtIO devices via kernel +command line parameters. These boot mechanisms are now deprecated. Users can +disable these features by disabling the corresponding guest kernel configuration +parameters: + +- `CONFIG_X86_MPPARSE=n` +- `CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=n` + +During the deprecation period Firecracker will continue to support the legacy +way of booting a microVM. Firecracker will be able to boot kernels with the +following configurations: + +- Only ACPI +- Only legacy mechanisms +- Both ACPI and legacy mechanisms + ## Caveats - When using a 4.14 host and a 5.10 guest, we disable the SVE extension in the @@ -94,3 +126,9 @@ the minimal configuration for a guest kernel for a successful microVM boot is: which causes the default 5.10 guest (with SVE support enabled), to crash if run with a 4.14 host which does not support SVE. - [Snapshot compatibility across kernel versions](snapshotting/snapshot-support.md#snapshot-compatibility-across-kernel-versions) +- When booting with kernels that support both ACPI and legacy boot mechanisms + Firecracker passes VirtIO devices to the guest twice, once through ACPI and a + second time via kernel command line parameters. In these cases, the guest + tries to initialize devices twice. The second time, initialization fails and + the guest will emit warning messages in `dmesg`, however the devices will work + correctly. diff --git a/resources/guest_configs/microvm-kernel-ci-x86_64-4.14.config b/resources/guest_configs/microvm-kernel-ci-x86_64-4.14.config index 1c7d903de7f..4b69f04fb33 100644 --- a/resources/guest_configs/microvm-kernel-ci-x86_64-4.14.config +++ b/resources/guest_configs/microvm-kernel-ci-x86_64-4.14.config @@ -1,10 +1,10 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.14.174 Kernel Configuration +# Linux/x86 4.14.336 Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y -CONFIG_X86=n +CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf64-x86-64" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" @@ -34,7 +34,7 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ZONE_DMA32=y -CONFIG_AUDIT_ARCH=n +CONFIG_AUDIT_ARCH=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_X86_64_SMP=y @@ -55,7 +55,7 @@ CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_HAVE_KERNEL_GZIP=y -CONFIG_HAVE_KERNEL_BZIP2=n +CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y @@ -75,11 +75,8 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_CROSS_MEMORY_ATTACH=y CONFIG_FHANDLE=y # CONFIG_USELIB is not set -CONFIG_AUDIT=n -CONFIG_HAVE_ARCH_AUDITSYSCALL=n -CONFIG_AUDITSYSCALL=n -CONFIG_AUDIT_WATCH=n -CONFIG_AUDIT_TREE=n +# CONFIG_AUDIT is not set +CONFIG_HAVE_ARCH_AUDITSYSCALL=y # # IRQ subsystem @@ -91,10 +88,8 @@ CONFIG_GENERIC_PENDING_IRQ=y CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y -# CONFIG_IRQ_DOMAIN_DEBUG is not set CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y -# CONFIG_GENERIC_IRQ_DEBUGFS is not set CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_ARCH_CLOCKSOURCE_DATA=y CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y @@ -172,7 +167,6 @@ CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y CONFIG_CGROUP_BPF=y -# CONFIG_CGROUP_DEBUG is not set CONFIG_SOCK_CGROUP_DATA=y # CONFIG_CHECKPOINT_RESTORE is not set CONFIG_NAMESPACES=y @@ -187,7 +181,7 @@ CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y -CONFIG_RD_BZIP2=n +# CONFIG_RD_BZIP2 is not set CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y @@ -208,7 +202,6 @@ CONFIG_SYSFS_SYSCALL=y # CONFIG_SYSCTL_SYSCALL is not set CONFIG_POSIX_TIMERS=y CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_PRINTK=y @@ -224,11 +217,12 @@ CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_BPF_SYSCALL=y -CONFIG_BPF_JIT_ALWAYS_ON=y CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_ADVISE_SYSCALLS=y -CONFIG_USERFAULTFD=n +# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set +# CONFIG_USERFAULTFD is not set +CONFIG_PCI_QUIRKS=y CONFIG_MEMBARRIER=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y @@ -238,7 +232,6 @@ CONFIG_HAVE_PERF_EVENTS=y # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLUB_DEBUG=y # CONFIG_SLUB_MEMCG_SYSFS_ON is not set @@ -249,23 +242,18 @@ CONFIG_SLAB_MERGE_DEFAULT=y # CONFIG_SLAB_FREELIST_RANDOM is not set CONFIG_SLAB_FREELIST_HARDENED=y CONFIG_SLUB_CPU_PARTIAL=y -CONFIG_SYSTEM_DATA_VERIFICATION=y +# CONFIG_SYSTEM_DATA_VERIFICATION is not set CONFIG_PROFILING=y -CONFIG_CRASH_CORE=y -CONFIG_KEXEC_CORE=y CONFIG_HOTPLUG_SMT=y # CONFIG_OPROFILE is not set CONFIG_HAVE_OPROFILE=y CONFIG_OPROFILE_NMI_TIMER=y -CONFIG_KPROBES=y CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set -CONFIG_OPTPROBES=y # CONFIG_UPROBES is not set # CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y -CONFIG_KRETPROBES=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y @@ -277,8 +265,10 @@ CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y @@ -297,7 +287,6 @@ CONFIG_HAVE_CMPXCHG_DOUBLE=y CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y -CONFIG_SECCOMP_FILTER=n CONFIG_HAVE_GCC_PLUGINS=y # CONFIG_GCC_PLUGINS is not set CONFIG_HAVE_CC_STACKPROTECTOR=y @@ -315,7 +304,7 @@ CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y CONFIG_HAVE_ARCH_HUGE_VMAP=y CONFIG_HAVE_ARCH_SOFT_DIRTY=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y -CONFIG_MODULES_USE_ELF_RELA=n +CONFIG_MODULES_USE_ELF_RELA=y CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_ARCH_MMAP_RND_BITS=y @@ -339,41 +328,23 @@ CONFIG_VMAP_STACK=y CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y -CONFIG_STRICT_MODULE_RWX=y CONFIG_ARCH_HAS_REFCOUNT=y # CONFIG_REFCOUNT_FULL is not set # # GCOV-based kernel profiling # -# CONFIG_GCOV_KERNEL is not set CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 -CONFIG_MODULES=n -CONFIG_MODULE_FORCE_LOAD=n -CONFIG_MODULE_UNLOAD=n -# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_MODVERSIONS=n -CONFIG_MODULE_SRCVERSION_ALL=n -CONFIG_MODULE_SIG=n -# CONFIG_MODULE_SIG_FORCE is not set -CONFIG_MODULE_SIG_ALL=n -# CONFIG_MODULE_SIG_SHA1 is not set -# CONFIG_MODULE_SIG_SHA224 is not set -# CONFIG_MODULE_SIG_SHA256 is not set -# CONFIG_MODULE_SIG_SHA384 is not set -CONFIG_MODULE_SIG_SHA512=n -CONFIG_MODULE_SIG_HASH="sha512" -# CONFIG_MODULE_COMPRESS is not set -CONFIG_MODULES_TREE_LOOKUP=n +# CONFIG_MODULES is not set +CONFIG_MODULES_TREE_LOOKUP=y CONFIG_BLOCK=y -CONFIG_BLK_SCSI_REQUEST=n -CONFIG_BLK_DEV_BSG=n -CONFIG_BLK_DEV_BSGLIB=n -CONFIG_BLK_DEV_INTEGRITY=n +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_INTEGRITY is not set # CONFIG_BLK_DEV_ZONED is not set CONFIG_BLK_DEV_THROTTLING=y # CONFIG_BLK_DEV_THROTTLING_LOW is not set @@ -381,7 +352,6 @@ CONFIG_BLK_CMDLINE_PARSER=y CONFIG_BLK_WBT=y # CONFIG_BLK_WBT_SQ is not set CONFIG_BLK_WBT_MQ=y -CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_SED_OPAL is not set # @@ -408,6 +378,7 @@ CONFIG_MSDOS_PARTITION=y # CONFIG_SYSV68_PARTITION is not set # CONFIG_CMDLINE_PARTITION is not set CONFIG_BLOCK_COMPAT=y +CONFIG_BLK_MQ_PCI=y CONFIG_BLK_MQ_VIRTIO=y # @@ -423,7 +394,6 @@ CONFIG_DEFAULT_IOSCHED="noop" # CONFIG_MQ_IOSCHED_DEADLINE is not set # CONFIG_MQ_IOSCHED_KYBER is not set # CONFIG_IOSCHED_BFQ is not set -CONFIG_ASN1=n CONFIG_INLINE_SPIN_UNLOCK_IRQ=y CONFIG_INLINE_READ_UNLOCK=y CONFIG_INLINE_READ_UNLOCK_IRQ=y @@ -447,20 +417,20 @@ CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_FAST_FEATURE_TESTS=y CONFIG_X86_X2APIC=y -CONFIG_X86_MPPARSE=y +# CONFIG_X86_MPPARSE is not set # CONFIG_GOLDFISH is not set CONFIG_RETPOLINE=y # CONFIG_INTEL_RDT is not set # CONFIG_X86_EXTENDED_PLATFORM is not set +# CONFIG_X86_INTEL_LPSS is not set +# CONFIG_X86_AMD_PLATFORM_DEVICE is not set +# CONFIG_IOSF_MBI is not set CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_HYPERVISOR_GUEST=y CONFIG_PARAVIRT=y -# CONFIG_PARAVIRT_DEBUG is not set CONFIG_PARAVIRT_SPINLOCKS=y -# CONFIG_QUEUED_LOCK_STAT is not set # CONFIG_XEN is not set CONFIG_KVM_GUEST=y -CONFIG_KVM_DEBUG_FS=y CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT_CLOCK=y CONFIG_NO_BOOTMEM=y @@ -481,9 +451,10 @@ CONFIG_CPU_SUP_AMD=y CONFIG_CPU_SUP_CENTAUR=y CONFIG_HPET_TIMER=y CONFIG_DMI=y +# CONFIG_GART_IOMMU is not set +# CONFIG_CALGARY_IOMMU is not set CONFIG_SWIOTLB=y CONFIG_IOMMU_HELPER=y -# CONFIG_MAXSMP is not set CONFIG_NR_CPUS=128 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y @@ -499,6 +470,9 @@ CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y # # Performance monitoring # +CONFIG_PERF_EVENTS_INTEL_UNCORE=y +CONFIG_PERF_EVENTS_INTEL_RAPL=y +CONFIG_PERF_EVENTS_INTEL_CSTATE=y # CONFIG_PERF_EVENTS_AMD_POWER is not set # CONFIG_VM86 is not set CONFIG_X86_16BIT=y @@ -513,10 +487,11 @@ CONFIG_ARCH_PHYS_ADDR_T_64BIT=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_X86_DIRECT_GBPAGES=y CONFIG_ARCH_HAS_MEM_ENCRYPT=y -CONFIG_AMD_MEM_ENCRYPT=n -# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set -CONFIG_ARCH_USE_MEMREMAP_PROT=y +# CONFIG_AMD_MEM_ENCRYPT is not set CONFIG_NUMA=y +CONFIG_AMD_NUMA=y +CONFIG_X86_64_ACPI_NUMA=y +CONFIG_NODES_SPAN_OTHER_NODES=y # CONFIG_NUMA_EMU is not set CONFIG_NODES_SHIFT=10 CONFIG_ARCH_SPARSEMEM_ENABLE=y @@ -567,9 +542,8 @@ CONFIG_CLEANCACHE=y CONFIG_FRONTSWAP=y # CONFIG_CMA is not set # CONFIG_ZSWAP is not set -CONFIG_ZPOOL=n +# CONFIG_ZPOOL is not set # CONFIG_ZBUD is not set -# CONFIG_Z3FOLD is not set # CONFIG_ZSMALLOC is not set CONFIG_GENERIC_EARLY_IOREMAP=y CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y @@ -577,8 +551,6 @@ CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_ZONE_DEVICE=y # CONFIG_ZONE_DEVICE is not set -CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y -CONFIG_ARCH_HAS_PKEYS=n CONFIG_PERCPU_STATS=y # CONFIG_X86_PMEM_LEGACY is not set CONFIG_X86_CHECK_BIOS_CORRUPTION=y @@ -593,11 +565,12 @@ CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y CONFIG_X86_SMAP=y # CONFIG_X86_INTEL_MPX is not set -CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=n +# CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS is not set CONFIG_X86_INTEL_TSX_MODE_OFF=y # CONFIG_X86_INTEL_TSX_MODE_ON is not set # CONFIG_X86_INTEL_TSX_MODE_AUTO is not set -CONFIG_SECCOMP=n +# CONFIG_EFI is not set +# CONFIG_SECCOMP is not set # CONFIG_HZ_100 is not set CONFIG_HZ_250=y # CONFIG_HZ_300 is not set @@ -605,9 +578,6 @@ CONFIG_HZ_250=y CONFIG_HZ=250 CONFIG_SCHED_HRTICK=y # CONFIG_KEXEC is not set -CONFIG_KEXEC_FILE=y -CONFIG_KEXEC_VERIFY_SIG=n -CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=n # CONFIG_CRASH_DUMP is not set CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y @@ -627,22 +597,55 @@ CONFIG_ARCH_HAS_ADD_PAGES=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y CONFIG_USE_PERCPU_NUMA_NODE_ID=y +# CONFIG_GDS_FORCE_MITIGATION is not set # # Power management and ACPI options # -CONFIG_ARCH_HIBERNATION_HEADER=y # CONFIG_SUSPEND is not set -CONFIG_HIBERNATE_CALLBACKS=n -CONFIG_HIBERNATION=n -CONFIG_PM_STD_PARTITION="" -CONFIG_PM_SLEEP=n -CONFIG_PM_SLEEP_SMP=n -# CONFIG_PM_AUTOSLEEP is not set -# CONFIG_PM_WAKELOCKS is not set -CONFIG_PM=n -# CONFIG_PM_DEBUG is not set -# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_HIBERNATION is not set +# CONFIG_PM is not set +CONFIG_ACPI=y +CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y +CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y +CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y +# CONFIG_ACPI_DEBUGGER is not set +# CONFIG_ACPI_PROCFS_POWER is not set +CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y +# CONFIG_ACPI_EC_DEBUGFS is not set +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_FAN=y +# CONFIG_ACPI_DOCK is not set +CONFIG_ACPI_CPU_FREQ_PSS=y +CONFIG_ACPI_PROCESSOR_CSTATE=y +CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y +# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set +CONFIG_ACPI_THERMAL=y +CONFIG_ACPI_NUMA=y +# CONFIG_ACPI_CUSTOM_DSDT is not set +CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y +CONFIG_ACPI_TABLE_UPGRADE=y +# CONFIG_ACPI_DEBUG is not set +# CONFIG_ACPI_PCI_SLOT is not set +CONFIG_X86_PM_TIMER=y +CONFIG_ACPI_CONTAINER=y +# CONFIG_ACPI_HOTPLUG_MEMORY is not set +CONFIG_ACPI_HOTPLUG_IOAPIC=y +# CONFIG_ACPI_SBS is not set +# CONFIG_ACPI_HED is not set +# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set +# CONFIG_ACPI_NFIT is not set +CONFIG_HAVE_ACPI_APEI=y +CONFIG_HAVE_ACPI_APEI_NMI=y +# CONFIG_ACPI_APEI is not set +# CONFIG_DPTF_POWER is not set +# CONFIG_PMIC_OPREGION is not set +# CONFIG_ACPI_CONFIGFS is not set # CONFIG_SFI is not set # @@ -667,6 +670,9 @@ CONFIG_CPU_FREQ_GOV_PERFORMANCE=y # CPU frequency scaling drivers # CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set # CONFIG_X86_P4_CLOCKMOD is not set # @@ -686,20 +692,44 @@ CONFIG_INTEL_IDLE=y # # Bus options (PCI etc.) # -# CONFIG_PCI is not set -CONFIG_PCI_LOCKLESS_CONFIG=n -CONFIG_PCI_LABEL=n +CONFIG_PCI=y +CONFIG_PCI_DIRECT=y +# CONFIG_PCI_MMCONFIG is not set +CONFIG_PCI_DOMAINS=y +# CONFIG_PCIEPORTBUS is not set +CONFIG_PCI_BUS_ADDR_T_64BIT=y +# CONFIG_PCI_MSI is not set +# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set +# CONFIG_PCI_STUB is not set +CONFIG_HT_IRQ=y +CONFIG_PCI_LOCKLESS_CONFIG=y +# CONFIG_PCI_IOV is not set +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set +CONFIG_PCI_LABEL=y +# CONFIG_HOTPLUG_PCI is not set # # DesignWare PCI Core Support # +# +# PCI host controller drivers +# + # # PCI Endpoint # # CONFIG_PCI_ENDPOINT is not set + +# +# PCI switch controller drivers +# +# CONFIG_PCI_SW_SWITCHTEC is not set CONFIG_ISA_DMA_API=y +CONFIG_AMD_NB=y # CONFIG_PCCARD is not set +# CONFIG_RAPIDIO is not set # CONFIG_X86_SYSFB is not set # @@ -722,7 +752,6 @@ CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_SYSVIPC_COMPAT=y CONFIG_X86_DEV_DMA_OPS=y CONFIG_NET=y -CONFIG_NET_INGRESS=y # # Networking options @@ -730,14 +759,10 @@ CONFIG_NET_INGRESS=y CONFIG_PACKET=y # CONFIG_PACKET_DIAG is not set CONFIG_UNIX=y +CONFIG_UNIX_SCM=y # CONFIG_UNIX_DIAG is not set # CONFIG_TLS is not set -CONFIG_XFRM=n -CONFIG_XFRM_ALGO=n -CONFIG_XFRM_USER=n -CONFIG_XFRM_SUB_POLICY=n -CONFIG_XFRM_MIGRATE=n -CONFIG_XFRM_STATISTICS=n +# CONFIG_XFRM_USER is not set # CONFIG_NET_KEY is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y @@ -763,6 +788,7 @@ CONFIG_SYN_COOKIES=y # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set +CONFIG_INET_TABLE_PERTURB_ORDER=16 # CONFIG_INET_XFRM_TUNNEL is not set # CONFIG_INET_TUNNEL is not set # CONFIG_INET_XFRM_MODE_TRANSPORT is not set @@ -790,212 +816,11 @@ CONFIG_DEFAULT_CUBIC=y # CONFIG_DEFAULT_RENO is not set CONFIG_DEFAULT_TCP_CONG="cubic" CONFIG_TCP_MD5SIG=y -CONFIG_IPV6=n -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_ROUTE_INFO is not set -# CONFIG_IPV6_OPTIMISTIC_DAD is not set -# CONFIG_INET6_AH is not set -# CONFIG_INET6_ESP is not set -# CONFIG_INET6_IPCOMP is not set -# CONFIG_IPV6_MIP6 is not set -# CONFIG_IPV6_ILA is not set -# CONFIG_INET6_XFRM_TUNNEL is not set -# CONFIG_INET6_TUNNEL is not set -# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set -# CONFIG_INET6_XFRM_MODE_TUNNEL is not set -# CONFIG_INET6_XFRM_MODE_BEET is not set -# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set -# CONFIG_IPV6_SIT is not set -# CONFIG_IPV6_TUNNEL is not set -# CONFIG_IPV6_FOU is not set -# CONFIG_IPV6_FOU_TUNNEL is not set -# CONFIG_IPV6_MULTIPLE_TABLES is not set -# CONFIG_IPV6_SUBTREES is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_IPV6_MROUTE_MULTIPLE_TABLES is not set -# CONFIG_IPV6_PIMSM_V2 is not set -# CONFIG_IPV6_SEG6_LWTUNNEL is not set -# CONFIG_IPV6_SEG6_HMAC is not set -CONFIG_NETLABEL=n +# CONFIG_IPV6 is not set CONFIG_NETWORK_SECMARK=y CONFIG_NET_PTP_CLASSIFY=y CONFIG_NETWORK_PHY_TIMESTAMPING=y -CONFIG_NETFILTER=n -CONFIG_NETFILTER_ADVANCED=n -CONFIG_BRIDGE_NETFILTER=y - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_INGRESS=n -# CONFIG_NETFILTER_NETLINK_ACCT is not set -# CONFIG_NETFILTER_NETLINK_QUEUE is not set -# CONFIG_NETFILTER_NETLINK_LOG is not set -CONFIG_NF_CONNTRACK=n -CONFIG_NF_LOG_COMMON=n -# CONFIG_NF_LOG_NETDEV is not set -CONFIG_NF_CONNTRACK_MARK=n -CONFIG_NF_CONNTRACK_SECMARK=n -CONFIG_NF_CONNTRACK_PROCFS=n -CONFIG_NF_CONNTRACK_EVENTS=n -CONFIG_NF_CONNTRACK_TIMEOUT=n -CONFIG_NF_CONNTRACK_TIMESTAMP=n -CONFIG_NF_CT_PROTO_DCCP=n -CONFIG_NF_CT_PROTO_SCTP=n -CONFIG_NF_CT_PROTO_UDPLITE=n -# CONFIG_NF_CONNTRACK_AMANDA is not set -# CONFIG_NF_CONNTRACK_FTP is not set -# CONFIG_NF_CONNTRACK_H323 is not set -# CONFIG_NF_CONNTRACK_IRC is not set -# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set -# CONFIG_NF_CONNTRACK_SNMP is not set -# CONFIG_NF_CONNTRACK_PPTP is not set -# CONFIG_NF_CONNTRACK_SANE is not set -# CONFIG_NF_CONNTRACK_SIP is not set -# CONFIG_NF_CONNTRACK_TFTP is not set -# CONFIG_NF_CT_NETLINK is not set -# CONFIG_NF_CT_NETLINK_TIMEOUT is not set -CONFIG_NF_NAT=n -CONFIG_NF_NAT_NEEDED=n -CONFIG_NF_NAT_PROTO_DCCP=n -CONFIG_NF_NAT_PROTO_UDPLITE=n -CONFIG_NF_NAT_PROTO_SCTP=n -# CONFIG_NF_NAT_AMANDA is not set -# CONFIG_NF_NAT_FTP is not set -# CONFIG_NF_NAT_IRC is not set -# CONFIG_NF_NAT_SIP is not set -# CONFIG_NF_NAT_TFTP is not set -CONFIG_NF_NAT_REDIRECT=n -CONFIG_NETFILTER_SYNPROXY=n -# CONFIG_NF_TABLES is not set -CONFIG_NETFILTER_XTABLES=n - -# -# Xtables combined modules -# -# CONFIG_NETFILTER_XT_MARK is not set -# CONFIG_NETFILTER_XT_CONNMARK is not set - -# -# Xtables targets -# -# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set -# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set -# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set -# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set -# CONFIG_NETFILTER_XT_TARGET_CONNSECMARK is not set -# CONFIG_NETFILTER_XT_TARGET_DSCP is not set -# CONFIG_NETFILTER_XT_TARGET_HL is not set -# CONFIG_NETFILTER_XT_TARGET_HMARK is not set -# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set -# CONFIG_NETFILTER_XT_TARGET_LOG is not set -# CONFIG_NETFILTER_XT_TARGET_MARK is not set -CONFIG_NETFILTER_XT_NAT=n -CONFIG_NETFILTER_XT_TARGET_NETMAP=n -# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set -# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set -# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set -CONFIG_NETFILTER_XT_TARGET_REDIRECT=n -# CONFIG_NETFILTER_XT_TARGET_TEE is not set -# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set -# CONFIG_NETFILTER_XT_TARGET_SECMARK is not set -# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set -# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set - -# -# Xtables matches -# -CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=n -# CONFIG_NETFILTER_XT_MATCH_BPF is not set -# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set -# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set -# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set -# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set -# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set -# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=n -# CONFIG_NETFILTER_XT_MATCH_CPU is not set -# CONFIG_NETFILTER_XT_MATCH_DCCP is not set -# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set -# CONFIG_NETFILTER_XT_MATCH_DSCP is not set -# CONFIG_NETFILTER_XT_MATCH_ECN is not set -# CONFIG_NETFILTER_XT_MATCH_ESP is not set -# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_HELPER is not set -# CONFIG_NETFILTER_XT_MATCH_HL is not set -# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set -# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set -# CONFIG_NETFILTER_XT_MATCH_L2TP is not set -# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set -# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_MAC is not set -# CONFIG_NETFILTER_XT_MATCH_MARK is not set -# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set -# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set -# CONFIG_NETFILTER_XT_MATCH_OWNER is not set -# CONFIG_NETFILTER_XT_MATCH_POLICY is not set -# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set -# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set -# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set -# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set -# CONFIG_NETFILTER_XT_MATCH_REALM is not set -# CONFIG_NETFILTER_XT_MATCH_RECENT is not set -# CONFIG_NETFILTER_XT_MATCH_SCTP is not set -# CONFIG_NETFILTER_XT_MATCH_STATE is not set -# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set -# CONFIG_NETFILTER_XT_MATCH_STRING is not set -# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set -# CONFIG_NETFILTER_XT_MATCH_TIME is not set -# CONFIG_NETFILTER_XT_MATCH_U32 is not set -# CONFIG_IP_SET is not set -# CONFIG_IP_VS is not set - -# -# IP: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV4=n -CONFIG_NF_CONNTRACK_IPV4=n -# CONFIG_NF_SOCKET_IPV4 is not set -# CONFIG_NF_DUP_IPV4 is not set -CONFIG_NF_LOG_ARP=n -CONFIG_NF_LOG_IPV4=n -CONFIG_NF_REJECT_IPV4=n -CONFIG_NF_NAT_IPV4=n -CONFIG_NF_NAT_MASQUERADE_IPV4=n -# CONFIG_NF_NAT_PPTP is not set -# CONFIG_NF_NAT_H323 is not set -CONFIG_IP_NF_IPTABLES=y -# CONFIG_IP_NF_MATCH_AH is not set -# CONFIG_IP_NF_MATCH_ECN is not set -# CONFIG_IP_NF_MATCH_RPFILTER is not set -# CONFIG_IP_NF_MATCH_TTL is not set -CONFIG_IP_NF_FILTER=y -CONFIG_IP_NF_TARGET_REJECT=y -CONFIG_IP_NF_TARGET_SYNPROXY=y -CONFIG_IP_NF_NAT=y -CONFIG_IP_NF_TARGET_MASQUERADE=y -CONFIG_IP_NF_TARGET_NETMAP=y -CONFIG_IP_NF_TARGET_REDIRECT=y -CONFIG_IP_NF_MANGLE=y -# CONFIG_IP_NF_TARGET_CLUSTERIP is not set -# CONFIG_IP_NF_TARGET_ECN is not set -# CONFIG_IP_NF_TARGET_TTL is not set -# CONFIG_IP_NF_RAW is not set -# CONFIG_IP_NF_SECURITY is not set -# CONFIG_IP_NF_ARPTABLES is not set - -# -# IPv6: Netfilter Configuration -# -# CONFIG_NF_DEFRAG_IPV6 is not set -# CONFIG_NF_CONNTRACK_IPV6 is not set -# CONFIG_NF_SOCKET_IPV6 is not set -# CONFIG_NF_DUP_IPV6 is not set -# CONFIG_NF_REJECT_IPV6 is not set -# CONFIG_NF_LOG_IPV6 is not set -# CONFIG_IP6_NF_IPTABLES is not set -# CONFIG_BRIDGE_NF_EBTABLES is not set +# CONFIG_NETFILTER is not set # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set # CONFIG_RDS is not set @@ -1008,7 +833,6 @@ CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_HAVE_NET_DSA=y # CONFIG_NET_DSA is not set # CONFIG_VLAN_8021Q is not set -# CONFIG_DECNET is not set CONFIG_LLC=y # CONFIG_LLC2 is not set # CONFIG_IPX is not set @@ -1016,7 +840,6 @@ CONFIG_LLC=y # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_PHONET is not set -# CONFIG_6LOWPAN is not set # CONFIG_IEEE802154 is not set CONFIG_NET_SCHED=y @@ -1054,12 +877,9 @@ CONFIG_NET_SCHED=y # CONFIG_NET_CLS=y # CONFIG_NET_CLS_BASIC is not set -# CONFIG_NET_CLS_TCINDEX is not set # CONFIG_NET_CLS_ROUTE4 is not set # CONFIG_NET_CLS_FW is not set # CONFIG_NET_CLS_U32 is not set -# CONFIG_NET_CLS_RSVP is not set -# CONFIG_NET_CLS_RSVP6 is not set # CONFIG_NET_CLS_FLOW is not set # CONFIG_NET_CLS_CGROUP is not set # CONFIG_NET_CLS_BPF is not set @@ -1077,7 +897,6 @@ CONFIG_NET_CLS_ACT=y # CONFIG_NET_ACT_GACT is not set # CONFIG_NET_ACT_MIRRED is not set # CONFIG_NET_ACT_SAMPLE is not set -# CONFIG_NET_ACT_IPT is not set # CONFIG_NET_ACT_NAT is not set # CONFIG_NET_ACT_PEDIT is not set # CONFIG_NET_ACT_SIMP is not set @@ -1085,22 +904,18 @@ CONFIG_NET_CLS_ACT=y # CONFIG_NET_ACT_CSUM is not set # CONFIG_NET_ACT_VLAN is not set # CONFIG_NET_ACT_BPF is not set -# CONFIG_NET_ACT_CONNMARK is not set # CONFIG_NET_ACT_SKBMOD is not set # CONFIG_NET_ACT_IFE is not set # CONFIG_NET_ACT_TUNNEL_KEY is not set CONFIG_NET_SCH_FIFO=y -CONFIG_DCB=n -# CONFIG_DNS_RESOLVER is not set +# CONFIG_DCB is not set # CONFIG_BATMAN_ADV is not set # CONFIG_OPENVSWITCH is not set CONFIG_VSOCKETS=y CONFIG_VIRTIO_VSOCKETS=y CONFIG_VIRTIO_VSOCKETS_COMMON=y # CONFIG_NETLINK_DIAG is not set -CONFIG_MPLS=n -# CONFIG_NET_MPLS_GSO is not set -# CONFIG_MPLS_ROUTING is not set +# CONFIG_MPLS is not set # CONFIG_NET_NSH is not set # CONFIG_HSR is not set # CONFIG_NET_SWITCHDEV is not set @@ -1113,7 +928,6 @@ CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y -CONFIG_BPF_JIT=y CONFIG_BPF_STREAM_PARSER=y CONFIG_NET_FLOW_LIMIT=y @@ -1121,7 +935,6 @@ CONFIG_NET_FLOW_LIMIT=y # Network testing # # CONFIG_NET_PKTGEN is not set -# CONFIG_NET_TCPPROBE is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set # CONFIG_BT is not set @@ -1140,8 +953,8 @@ CONFIG_FIB_RULES=y # CONFIG_NET_IFE is not set CONFIG_LWTUNNEL=y CONFIG_LWTUNNEL_BPF=y -CONFIG_DST_CACHE=y -CONFIG_GRO_CELLS=y +# CONFIG_DST_CACHE is not set +# CONFIG_GRO_CELLS is not set # CONFIG_NET_DEVLINK is not set CONFIG_MAY_USE_DEVLINK=y CONFIG_HAVE_EBPF_JIT=y @@ -1159,15 +972,11 @@ CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=n +CONFIG_FW_LOADER=y # CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE="" # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set CONFIG_ALLOW_DEV_COREDUMP=y -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set -# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set # CONFIG_SYS_HYPERVISOR is not set # CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_GENERIC_CPU_AUTOPROBE=y @@ -1184,21 +993,34 @@ CONFIG_PROC_EVENTS=y # CONFIG_OF is not set CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y # CONFIG_PARPORT is not set +CONFIG_PNP=y +CONFIG_PNP_DEBUG_MESSAGES=y + +# +# Protocols +# +CONFIG_PNPACPI=y CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_NULL_BLK is not set # CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_DRBD is not set # CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_SKD is not set # CONFIG_BLK_DEV_RAM is not set # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set CONFIG_VIRTIO_BLK=y # CONFIG_VIRTIO_BLK_SCSI is not set # CONFIG_BLK_DEV_RBD is not set +# CONFIG_BLK_DEV_RSXX is not set +# CONFIG_BLK_DEV_NVME is not set # CONFIG_NVME_FC is not set # @@ -1206,14 +1028,21 @@ CONFIG_VIRTIO_BLK=y # # CONFIG_SENSORS_LIS3LV02D is not set # CONFIG_DUMMY_IRQ is not set +# CONFIG_IBM_ASM is not set +# CONFIG_PHANTOM is not set +# CONFIG_SGI_IOC4 is not set +# CONFIG_TIFM_CORE is not set # CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_HP_ILO is not set # CONFIG_SRAM is not set +# CONFIG_PCI_ENDPOINT_TEST is not set # CONFIG_C2PORT is not set # # EEPROM support # # CONFIG_EEPROM_93CX6 is not set +# CONFIG_CB710_CORE is not set # # Texas Instruments shared transport line discipline @@ -1222,18 +1051,25 @@ CONFIG_VIRTIO_BLK=y # # Altera FPGA firmware download module # +# CONFIG_INTEL_MEI is not set +# CONFIG_INTEL_MEI_ME is not set +# CONFIG_INTEL_MEI_TXE is not set +# CONFIG_VMWARE_VMCI is not set # # Intel MIC Bus Driver # +# CONFIG_INTEL_MIC_BUS is not set # # SCIF Bus Driver # +# CONFIG_SCIF_BUS is not set # # VOP Bus Driver # +# CONFIG_VOP_BUS is not set # # Intel MIC Host Driver @@ -1254,57 +1090,31 @@ CONFIG_VIRTIO_BLK=y # # VOP Driver # +# CONFIG_GENWQE is not set # CONFIG_ECHO is not set # CONFIG_CXL_BASE is not set # CONFIG_CXL_AFU_DRIVER_OPS is not set # CONFIG_CXL_LIB is not set -CONFIG_HAVE_IDE=n +CONFIG_HAVE_IDE=y # CONFIG_IDE is not set # # SCSI device support # -CONFIG_SCSI_MOD=n +CONFIG_SCSI_MOD=y # CONFIG_RAID_ATTRS is not set -CONFIG_SCSI=n -CONFIG_SCSI_DMA=n +# CONFIG_SCSI is not set +# CONFIG_SCSI_DMA is not set # CONFIG_SCSI_NETLINK is not set -CONFIG_SCSI_MQ_DEFAULT=n -CONFIG_SCSI_PROC_FS=n - -# -# SCSI support type (disk, tape, CD-ROM) -# -# CONFIG_BLK_DEV_SD is not set -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set -# CONFIG_BLK_DEV_SR is not set -# CONFIG_CHR_DEV_SG is not set -# CONFIG_CHR_DEV_SCH is not set -CONFIG_SCSI_CONSTANTS=n -CONFIG_SCSI_LOGGING=n -CONFIG_SCSI_SCAN_ASYNC=n - -# -# SCSI Transports -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set -CONFIG_SCSI_ISCSI_ATTRS=n -# CONFIG_SCSI_SAS_ATTRS is not set -# CONFIG_SCSI_SAS_LIBSAS is not set -# CONFIG_SCSI_SRP_ATTRS is not set -CONFIG_SCSI_LOWLEVEL=n -CONFIG_ISCSI_TCP=n -# CONFIG_ISCSI_BOOT_SYSFS is not set -# CONFIG_SCSI_UFSHCD is not set -# CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_VIRTIO is not set -# CONFIG_SCSI_DH is not set -# CONFIG_SCSI_OSD_INITIATOR is not set # CONFIG_ATA is not set # CONFIG_MD is not set -# CONFIG_TARGET_CORE is not set +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +# CONFIG_FIREWIRE_NOSY is not set # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y CONFIG_NET_CORE=y @@ -1325,6 +1135,7 @@ CONFIG_TUN=y CONFIG_VETH=y CONFIG_VIRTIO_NET=y # CONFIG_NLMON is not set +# CONFIG_ARCNET is not set # # CAIF transport drivers @@ -1334,6 +1145,9 @@ CONFIG_VIRTIO_NET=y # Distributed Switch Architecture drivers # # CONFIG_ETHERNET is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_NET_SB1000 is not set # CONFIG_MDIO_DEVICE is not set # CONFIG_MDIO_BUS is not set # CONFIG_PHYLIB is not set @@ -1349,14 +1163,15 @@ CONFIG_VIRTIO_NET=y # Enable WiMAX (Networking options) to see the WiMAX drivers # # CONFIG_WAN is not set +# CONFIG_VMXNET3 is not set +# CONFIG_FUJITSU_ES is not set # CONFIG_ISDN is not set -# CONFIG_NVM is not set # # Input device support # CONFIG_INPUT=y -CONFIG_INPUT_FF_MEMLESS=n +# CONFIG_INPUT_FF_MEMLESS is not set # CONFIG_INPUT_POLLDEV is not set # CONFIG_INPUT_SPARSEKMAP is not set # CONFIG_INPUT_MATRIXKMAP is not set @@ -1377,6 +1192,7 @@ CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_LKKBD is not set # CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_STOWAWAY is not set # CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_XTKBD is not set @@ -1388,6 +1204,7 @@ CONFIG_INPUT_MISC=y # CONFIG_INPUT_AD714X is not set # CONFIG_INPUT_E3X0_BUTTON is not set # CONFIG_INPUT_PCSPKR is not set +# CONFIG_INPUT_ATLAS_BTNS is not set # CONFIG_INPUT_UINPUT is not set # CONFIG_INPUT_ADXL34X is not set # CONFIG_INPUT_CMA3000 is not set @@ -1402,6 +1219,7 @@ CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set # CONFIG_SERIO_ALTERA_PS2 is not set @@ -1417,12 +1235,12 @@ CONFIG_TTY=y CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y -CONFIG_VT_CONSOLE_SLEEP=y CONFIG_HW_CONSOLE=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y # CONFIG_LEGACY_PTYS is not set # CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_NOZOMI is not set # CONFIG_N_GSM is not set # CONFIG_TRACE_SINK is not set CONFIG_LDISC_AUTOLOAD=y @@ -1435,15 +1253,21 @@ CONFIG_DEVMEM=y CONFIG_SERIAL_EARLYCON=y CONFIG_SERIAL_8250=y # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_PNP=y # CONFIG_SERIAL_8250_FINTEK is not set CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_EXAR=y CONFIG_SERIAL_8250_NR_UARTS=1 CONFIG_SERIAL_8250_RUNTIME_UARTS=1 # CONFIG_SERIAL_8250_EXTENDED is not set # CONFIG_SERIAL_8250_FSL is not set # CONFIG_SERIAL_8250_DW is not set # CONFIG_SERIAL_8250_RT288X is not set +CONFIG_SERIAL_8250_LPSS=y +CONFIG_SERIAL_8250_MID=y +# CONFIG_SERIAL_8250_MOXA is not set # # Non-8250 serial port support @@ -1451,10 +1275,12 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=1 # CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_ALTERA_JTAGUART is not set # CONFIG_SERIAL_ALTERA_UART is not set # CONFIG_SERIAL_ARC is not set +# CONFIG_SERIAL_RP2 is not set # CONFIG_SERIAL_FSL_LPUART is not set CONFIG_SERIAL_DEV_BUS=y CONFIG_SERIAL_DEV_CTRL_TTYPORT=y @@ -1462,13 +1288,23 @@ CONFIG_HVC_DRIVER=y CONFIG_VIRTIO_CONSOLE=y # CONFIG_IPMI_HANDLER is not set CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +CONFIG_HW_RANDOM_INTEL=y +CONFIG_HW_RANDOM_AMD=y +CONFIG_HW_RANDOM_VIA=y CONFIG_HW_RANDOM_VIRTIO=y # CONFIG_NVRAM is not set +# CONFIG_APPLICOM is not set # CONFIG_MWAVE is not set # CONFIG_RAW_DRIVER is not set +# CONFIG_HPET is not set # CONFIG_HANGCHECK_TIMER is not set # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set +CONFIG_DEVPORT=y +# CONFIG_XILLYBUS is not set +CONFIG_RANDOM_TRUST_CPU=y +CONFIG_RANDOM_TRUST_BOOTLOADER=y # # I2C support @@ -1514,24 +1350,27 @@ CONFIG_POWER_SUPPLY=y # CONFIG_BATTERY_BQ27XXX is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_HWMON is not set -CONFIG_THERMAL=n +CONFIG_THERMAL=y CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_WRITABLE_TRIPS=n -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=n +# CONFIG_THERMAL_WRITABLE_TRIPS is not set +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y # CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set # CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set # CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set -CONFIG_THERMAL_GOV_FAIR_SHARE=n -CONFIG_THERMAL_GOV_STEP_WISE=n +# CONFIG_THERMAL_GOV_FAIR_SHARE is not set +CONFIG_THERMAL_GOV_STEP_WISE=y # CONFIG_THERMAL_GOV_BANG_BANG is not set -CONFIG_THERMAL_GOV_USER_SPACE=n +# CONFIG_THERMAL_GOV_USER_SPACE is not set # CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set # CONFIG_THERMAL_EMULATION is not set # CONFIG_INTEL_POWERCLAMP is not set +# CONFIG_INTEL_SOC_DTS_THERMAL is not set # # ACPI INT340X thermal drivers # +# CONFIG_INT340X_THERMAL is not set +# CONFIG_INTEL_PCH_THERMAL is not set # CONFIG_WATCHDOG is not set CONFIG_SSB_POSSIBLE=y @@ -1548,13 +1387,22 @@ CONFIG_BCMA_POSSIBLE=y # CONFIG_MFD_CORE is not set # CONFIG_MFD_CROS_EC is not set # CONFIG_HTC_PASIC3 is not set +# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set +# CONFIG_LPC_ICH is not set +# CONFIG_LPC_SCH is not set +# CONFIG_MFD_INTEL_LPSS_ACPI is not set +# CONFIG_MFD_INTEL_LPSS_PCI is not set +# CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_RDC321X is not set +# CONFIG_MFD_RTSX_PCI is not set # CONFIG_MFD_SM501 is not set # CONFIG_ABX500_CORE is not set # CONFIG_MFD_SYSCON is not set # CONFIG_MFD_TI_AM335X_TSCADC is not set # CONFIG_MFD_TMIO is not set +# CONFIG_MFD_VX855 is not set # CONFIG_REGULATOR is not set # CONFIG_RC_CORE is not set # CONFIG_MEDIA_SUPPORT is not set @@ -1562,6 +1410,10 @@ CONFIG_BCMA_POSSIBLE=y # # Graphics support # +# CONFIG_AGP is not set +CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +# CONFIG_VGA_SWITCHEROO is not set # CONFIG_DRM is not set # @@ -1582,7 +1434,6 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y # Console display driver support # CONFIG_VGA_CONSOLE=y -# CONFIG_VGACON_SOFT_SCROLLBACK is not set CONFIG_DUMMY_CONSOLE=y CONFIG_DUMMY_CONSOLE_COLUMNS=80 CONFIG_DUMMY_CONSOLE_ROWS=25 @@ -1591,70 +1442,12 @@ CONFIG_DUMMY_CONSOLE_ROWS=25 # # HID support # -CONFIG_HID=n -# CONFIG_HID_BATTERY_STRENGTH is not set -CONFIG_HIDRAW=n -# CONFIG_UHID is not set -# CONFIG_HID_GENERIC is not set - -# -# Special HID drivers -# -# CONFIG_HID_A4TECH is not set -# CONFIG_HID_ACRUX is not set -# CONFIG_HID_APPLE is not set -# CONFIG_HID_AUREAL is not set -# CONFIG_HID_BELKIN is not set -# CONFIG_HID_CHERRY is not set -# CONFIG_HID_CHICONY is not set -# CONFIG_HID_CMEDIA is not set -# CONFIG_HID_CYPRESS is not set -# CONFIG_HID_DRAGONRISE is not set -# CONFIG_HID_EMS_FF is not set -# CONFIG_HID_ELECOM is not set -# CONFIG_HID_EZKEY is not set -# CONFIG_HID_GEMBIRD is not set -# CONFIG_HID_GFRM is not set -# CONFIG_HID_KEYTOUCH is not set -# CONFIG_HID_KYE is not set -# CONFIG_HID_WALTOP is not set -# CONFIG_HID_GYRATION is not set -# CONFIG_HID_ICADE is not set -# CONFIG_HID_ITE is not set -# CONFIG_HID_TWINHAN is not set -# CONFIG_HID_KENSINGTON is not set -# CONFIG_HID_LCPOWER is not set -# CONFIG_HID_LENOVO is not set -# CONFIG_HID_LOGITECH is not set -# CONFIG_HID_MAGICMOUSE is not set -# CONFIG_HID_MAYFLASH is not set -# CONFIG_HID_MICROSOFT is not set -# CONFIG_HID_MONTEREY is not set -# CONFIG_HID_MULTITOUCH is not set -# CONFIG_HID_NTI is not set -# CONFIG_HID_ORTEK is not set -# CONFIG_HID_PANTHERLORD is not set -# CONFIG_HID_PETALYNX is not set -# CONFIG_HID_PICOLCD is not set -# CONFIG_HID_PLANTRONICS is not set -# CONFIG_HID_PRIMAX is not set -# CONFIG_HID_SAITEK is not set -# CONFIG_HID_SAMSUNG is not set -# CONFIG_HID_SPEEDLINK is not set -# CONFIG_HID_STEELSERIES is not set -# CONFIG_HID_SUNPLUS is not set -# CONFIG_HID_RMI is not set -# CONFIG_HID_GREENASIA is not set -# CONFIG_HID_SMARTJOYPLUS is not set -# CONFIG_HID_TIVO is not set -# CONFIG_HID_TOPSEED is not set -# CONFIG_HID_THRUSTMASTER is not set -# CONFIG_HID_UDRAW_PS3 is not set -# CONFIG_HID_XINMO is not set -# CONFIG_HID_ZEROPLUS is not set -# CONFIG_HID_ZYDACRON is not set -# CONFIG_HID_SENSOR_HUB is not set -# CONFIG_HID_ALPS is not set +# CONFIG_HID is not set + +# +# Intel ISH HID support +# +# CONFIG_INTEL_ISH_HID is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y # CONFIG_USB_SUPPORT is not set # CONFIG_UWB is not set @@ -1662,9 +1455,9 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y # CONFIG_MEMSTICK is not set # CONFIG_NEW_LEDS is not set # CONFIG_ACCESSIBILITY is not set +# CONFIG_INFINIBAND is not set CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y -# CONFIG_EDAC is not set CONFIG_RTC_LIB=y CONFIG_RTC_MC146818_LIB=y # CONFIG_RTC_CLASS is not set @@ -1674,17 +1467,29 @@ CONFIG_DMADEVICES=y # # DMA Devices # +CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DMA_ACPI=y # CONFIG_ALTERA_MSGDMA is not set # CONFIG_INTEL_IDMA64 is not set +# CONFIG_INTEL_IOATDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set # CONFIG_QCOM_HIDMA is not set +CONFIG_DW_DMAC_CORE=y # CONFIG_DW_DMAC is not set +# CONFIG_DW_DMAC_PCI is not set +CONFIG_HSU_DMA=y + +# +# DMA Clients +# +# CONFIG_ASYNC_TX_DMA is not set +# CONFIG_DMATEST is not set # # DMABUF options # CONFIG_SYNC_FILE=y -# CONFIG_SW_SYNC is not set CONFIG_AUXDISPLAY=y # CONFIG_IMG_ASCII_LCD is not set # CONFIG_UIO is not set @@ -1694,6 +1499,7 @@ CONFIG_VIRTIO=y # # Virtio drivers # +# CONFIG_VIRTIO_PCI is not set CONFIG_VIRTIO_BALLOON=y # CONFIG_VIRTIO_INPUT is not set CONFIG_VIRTIO_MMIO=y @@ -1702,6 +1508,7 @@ CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y # # Microsoft Hyper-V guest support # +# CONFIG_HYPERV is not set # CONFIG_HYPERV_TSCPAGE is not set CONFIG_STAGING=y # CONFIG_IRDA is not set @@ -1716,7 +1523,7 @@ CONFIG_STAGING=y # # Android # -# CONFIG_LNET is not set +# CONFIG_DGNC is not set # CONFIG_GS_FPGABOOT is not set # CONFIG_CRYPTO_SKEIN is not set # CONFIG_UNISYSSPAR is not set @@ -1727,12 +1534,46 @@ CONFIG_STAGING=y # USB Power Delivery and Type-C drivers # CONFIG_X86_PLATFORM_DEVICES=y +# CONFIG_ACERHDF is not set +# CONFIG_DELL_SMO8800 is not set +# CONFIG_FUJITSU_TABLET is not set +# CONFIG_HP_ACCEL is not set +# CONFIG_HP_WIRELESS is not set # CONFIG_SENSORS_HDAPS is not set +# CONFIG_INTEL_MENLOW is not set +# CONFIG_ASUS_WIRELESS is not set +# CONFIG_ACPI_WMI is not set +# CONFIG_TOPSTAR_LAPTOP is not set +# CONFIG_TOSHIBA_BT_RFKILL is not set +# CONFIG_TOSHIBA_HAPS is not set +# CONFIG_ACPI_CMPC is not set +# CONFIG_INTEL_HID_EVENT is not set +# CONFIG_INTEL_VBTN is not set +# CONFIG_INTEL_IPS is not set +# CONFIG_INTEL_PMC_CORE is not set +# CONFIG_IBM_RTL is not set +# CONFIG_SAMSUNG_Q10 is not set +# CONFIG_INTEL_RST is not set +# CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_PVPANIC is not set +# CONFIG_INTEL_PMC_IPC is not set +# CONFIG_SURFACE_PRO3_BUTTON is not set # CONFIG_INTEL_PUNIT_IPC is not set # CONFIG_MLX_PLATFORM is not set # CONFIG_MLX_CPLD_PLATFORM is not set CONFIG_INTEL_TURBO_MAX_3=y +CONFIG_PMC_ATOM=y # CONFIG_CHROME_PLATFORMS is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Common Clock Framework +# +# CONFIG_COMMON_CLK_NXP is not set +# CONFIG_COMMON_CLK_PXA is not set +# CONFIG_COMMON_CLK_PIC32 is not set # CONFIG_HWSPINLOCK is not set # @@ -1746,13 +1587,15 @@ CONFIG_CLKBLD_I8253=y # CONFIG_SH_TIMER_MTU2 is not set # CONFIG_SH_TIMER_TMU is not set # CONFIG_EM_TIMER_STI is not set -CONFIG_MAILBOX=n +CONFIG_MAILBOX=y +CONFIG_PCC=y # CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_SUPPORT=y # # Generic IOMMU Pagetable Support # +# CONFIG_AMD_IOMMU is not set # # Remoteproc drivers @@ -1789,6 +1632,8 @@ CONFIG_IOMMU_SUPPORT=y # CONFIG_EXTCON is not set # CONFIG_MEMORY is not set # CONFIG_IIO is not set +# CONFIG_NTB is not set +# CONFIG_VME_BUS is not set # CONFIG_PWM is not set CONFIG_ARM_GIC_MAX_NR=1 # CONFIG_IPACK_BUS is not set @@ -1808,7 +1653,8 @@ CONFIG_ARM_GIC_MAX_NR=1 # # Performance monitor support # -CONFIG_RAS=n +# CONFIG_RAS is not set +# CONFIG_THUNDERBOLT is not set # # Android @@ -1838,6 +1684,7 @@ CONFIG_DMIID=y CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y # CONFIG_FW_CFG_SYSFS is not set # CONFIG_GOOGLE_FIRMWARE is not set +# CONFIG_EFI_DEV_PATH_PARSER is not set # # Tegra firmware driver @@ -1853,11 +1700,10 @@ CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y -CONFIG_EXT4_ENCRYPTION=n -CONFIG_EXT4_FS_ENCRYPTION=n -CONFIG_EXT4_DEBUG=n +# CONFIG_EXT4_ENCRYPTION is not set +# CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y -CONFIG_JBD2_DEBUG=n +# CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set @@ -1868,16 +1714,15 @@ CONFIG_FS_MBCACHE=y # CONFIG_F2FS_FS is not set # CONFIG_FS_DAX is not set CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=n +CONFIG_EXPORTFS=y # CONFIG_EXPORTFS_BLOCK_OPS is not set CONFIG_FILE_LOCKING=y CONFIG_MANDATORY_FILE_LOCKING=y -CONFIG_FS_ENCRYPTION=n +# CONFIG_FS_ENCRYPTION is not set CONFIG_FSNOTIFY=y -CONFIG_DNOTIFY=n +# CONFIG_DNOTIFY is not set CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y -CONFIG_FANOTIFY_ACCESS_PERMISSIONS=n CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y # CONFIG_PRINT_QUOTA_WARNING is not set @@ -1931,7 +1776,6 @@ CONFIG_MISC_FILESYSTEMS=y # CONFIG_ORANGEFS_FS is not set # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set -# CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set @@ -1960,24 +1804,11 @@ CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_QNX4FS_FS is not set # CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set -CONFIG_PSTORE=n -CONFIG_PSTORE_ZLIB_COMPRESS=n -# CONFIG_PSTORE_LZO_COMPRESS is not set -# CONFIG_PSTORE_LZ4_COMPRESS is not set -# CONFIG_PSTORE_CONSOLE is not set -# CONFIG_PSTORE_PMSG is not set -# CONFIG_PSTORE_RAM is not set +# CONFIG_PSTORE is not set # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set -CONFIG_NETWORK_FILESYSTEMS=n -# CONFIG_NFS_FS is not set -# CONFIG_NFSD is not set -# CONFIG_CEPH_FS is not set -# CONFIG_CIFS is not set -# CONFIG_NCP_FS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set -CONFIG_NLS=n +# CONFIG_NETWORK_FILESYSTEMS is not set +CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" # CONFIG_NLS_CODEPAGE_437 is not set # CONFIG_NLS_CODEPAGE_737 is not set @@ -2040,115 +1871,68 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_PRINTK_TIME=y CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 -# CONFIG_BOOT_PRINTK_DELAY is not set -CONFIG_DYNAMIC_DEBUG=n # # Compile-time checks and compiler options # -# CONFIG_DEBUG_INFO is not set CONFIG_ENABLE_WARN_DEPRECATED=y # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_FRAME_WARN=2048 CONFIG_STRIP_ASM_SYMS=y -# CONFIG_READABLE_ASM is not set CONFIG_UNUSED_SYMBOLS=y -# CONFIG_PAGE_OWNER is not set -CONFIG_DEBUG_FS=n +# CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set -CONFIG_DEBUG_SECTION_MISMATCH=n +# CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_FRAME_POINTER=y CONFIG_STACK_VALIDATION=y -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 CONFIG_MAGIC_SYSRQ_SERIAL=y -CONFIG_DEBUG_KERNEL=n +# CONFIG_DEBUG_KERNEL is not set # # Memory Debugging # # CONFIG_PAGE_EXTENSION is not set -# CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_RODATA_TEST is not set -# CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y -# CONFIG_DEBUG_KMEMLEAK is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_VM is not set CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y -# CONFIG_DEBUG_VIRTUAL is not set -CONFIG_DEBUG_MEMORY_INIT=n -# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_DEBUG_MEMORY_INIT=y CONFIG_HAVE_DEBUG_STACKOVERFLOW=y -CONFIG_DEBUG_STACKOVERFLOW=n CONFIG_HAVE_ARCH_KASAN=y # CONFIG_KASAN is not set CONFIG_ARCH_HAS_KCOV=y # CONFIG_KCOV is not set -# CONFIG_DEBUG_SHIRQ is not set # # Debug Lockups and Hangs # -# CONFIG_SOFTLOCKUP_DETECTOR is not set CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y -# CONFIG_HARDLOCKUP_DETECTOR is not set -# CONFIG_DETECT_HUNG_TASK is not set -# CONFIG_WQ_WATCHDOG is not set # CONFIG_PANIC_ON_OOPS is not set CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 -# CONFIG_SCHED_DEBUG is not set CONFIG_SCHED_INFO=y -# CONFIG_SCHEDSTATS is not set -# CONFIG_SCHED_STACK_END_CHECK is not set # CONFIG_DEBUG_TIMEKEEPING is not set # # Lock Debugging (spinlocks, mutexes, etc...) # -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_ATOMIC_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_LOCK_TORTURE_TEST is not set # CONFIG_WW_MUTEX_SELFTEST is not set CONFIG_STACKTRACE=y # CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set -# CONFIG_DEBUG_KOBJECT is not set -CONFIG_DEBUG_BUGVERBOSE=n -CONFIG_DEBUG_LIST=n -# CONFIG_DEBUG_PI_LIST is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_NOTIFIERS is not set -# CONFIG_DEBUG_CREDENTIALS is not set +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_LIST=y # # RCU Debugging # # CONFIG_PROVE_RCU is not set # CONFIG_TORTURE_TEST is not set -# CONFIG_RCU_PERF_TEST is not set -# CONFIG_RCU_TORTURE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=59 -# CONFIG_RCU_TRACE is not set -# CONFIG_RCU_EQS_DEBUG is not set -# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set -# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set -# CONFIG_NOTIFIER_ERROR_INJECTION is not set -# CONFIG_FAULT_INJECTION is not set -# CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y @@ -2160,19 +1944,12 @@ CONFIG_HAVE_FENTRY=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_DMA_API_DEBUG is not set # # Runtime Testing # -# CONFIG_LKDTM is not set -# CONFIG_TEST_LIST_SORT is not set -# CONFIG_TEST_SORT is not set -# CONFIG_KPROBES_SANITY_TEST is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_RBTREE_TEST is not set -# CONFIG_INTERVAL_TREE_TEST is not set -# CONFIG_PERCPU_TEST is not set # CONFIG_ATOMIC64_SELFTEST is not set # CONFIG_TEST_HEXDUMP is not set # CONFIG_TEST_STRING_HELPERS is not set @@ -2182,19 +1959,13 @@ CONFIG_TRACING_SUPPORT=y # CONFIG_TEST_UUID is not set # CONFIG_TEST_RHASHTABLE is not set # CONFIG_TEST_HASH is not set -# CONFIG_TEST_LKM is not set -# CONFIG_TEST_USER_COPY is not set -# CONFIG_TEST_BPF is not set # CONFIG_TEST_FIRMWARE is not set # CONFIG_TEST_SYSCTL is not set # CONFIG_TEST_UDELAY is not set -# CONFIG_TEST_STATIC_KEYS is not set -# CONFIG_TEST_KMOD is not set # CONFIG_MEMTEST is not set CONFIG_BUG_ON_DATA_CORRUPTION=y # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y # CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set # CONFIG_UBSAN is not set @@ -2203,14 +1974,13 @@ CONFIG_STRICT_DEVMEM=y # CONFIG_IO_STRICT_DEVMEM is not set CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PRINTK_DBGP is not set +# CONFIG_EARLY_PRINTK_USB_XDBC is not set # CONFIG_X86_PTDUMP_CORE is not set -# CONFIG_X86_PTDUMP is not set # CONFIG_DEBUG_WX is not set CONFIG_DOUBLEFAULT=y -# CONFIG_DEBUG_TLBFLUSH is not set # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y -# CONFIG_X86_DECODER_SELFTEST is not set CONFIG_IO_DELAY_TYPE_0X80=0 CONFIG_IO_DELAY_TYPE_0XED=1 CONFIG_IO_DELAY_TYPE_UDELAY=2 @@ -2220,94 +1990,46 @@ CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 -# CONFIG_DEBUG_BOOT_PARAMS is not set -# CONFIG_CPA_DEBUG is not set CONFIG_OPTIMIZE_INLINING=y -# CONFIG_DEBUG_ENTRY is not set -# CONFIG_DEBUG_NMI_SELFTEST is not set -# CONFIG_X86_DEBUG_FPU is not set +# CONFIG_PUNIT_ATOM_DEBUG is not set # CONFIG_UNWINDER_ORC is not set CONFIG_UNWINDER_FRAME_POINTER=y # # Security options # -CONFIG_KEYS=n -CONFIG_KEYS_COMPAT=n -CONFIG_PERSISTENT_KEYRINGS=y -# CONFIG_BIG_KEYS is not set -CONFIG_ENCRYPTED_KEYS=n -# CONFIG_KEY_DH_OPERATIONS is not set +# CONFIG_KEYS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set -CONFIG_SECURITY=n -CONFIG_SECURITY_WRITABLE_HOOKS=n -CONFIG_SECURITYFS=n -CONFIG_SECURITY_NETWORK=n +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set CONFIG_PAGE_TABLE_ISOLATION=y -CONFIG_SECURITY_NETWORK_XFRM=n -# CONFIG_SECURITY_PATH is not set -CONFIG_LSM_MMAP_MIN_ADDR=65536 CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y # CONFIG_HARDENED_USERCOPY is not set CONFIG_FORTIFY_SOURCE=y # CONFIG_STATIC_USERMODEHELPER is not set -CONFIG_SECURITY_SELINUX=n -CONFIG_SECURITY_SELINUX_BOOTPARAM=n -CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 -CONFIG_SECURITY_SELINUX_DISABLE=n -CONFIG_SECURITY_SELINUX_DEVELOP=n -CONFIG_SECURITY_SELINUX_AVC_STATS=n -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 -# CONFIG_SECURITY_SMACK is not set -# CONFIG_SECURITY_TOMOYO is not set -# CONFIG_SECURITY_APPARMOR is not set -# CONFIG_SECURITY_LOADPIN is not set -# CONFIG_SECURITY_YAMA is not set -CONFIG_INTEGRITY=n -# CONFIG_INTEGRITY_SIGNATURE is not set -CONFIG_INTEGRITY_AUDIT=n -# CONFIG_IMA is not set -# CONFIG_EVM is not set -CONFIG_DEFAULT_SECURITY_SELINUX=n -# CONFIG_DEFAULT_SECURITY_DAC is not set -CONFIG_DEFAULT_SECURITY="selinux" -CONFIG_CRYPTO=n +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" +CONFIG_CRYPTO=y # # Crypto core or helper # -CONFIG_CRYPTO_ALGAPI=n -CONFIG_CRYPTO_ALGAPI2=n -CONFIG_CRYPTO_AEAD=n -CONFIG_CRYPTO_AEAD2=n -CONFIG_CRYPTO_BLKCIPHER=n -CONFIG_CRYPTO_BLKCIPHER2=n -CONFIG_CRYPTO_HASH=n -CONFIG_CRYPTO_HASH2=n -CONFIG_CRYPTO_RNG=n -CONFIG_CRYPTO_RNG2=n -CONFIG_CRYPTO_RNG_DEFAULT=n -CONFIG_CRYPTO_AKCIPHER2=n -CONFIG_CRYPTO_AKCIPHER=n -CONFIG_CRYPTO_KPP2=n -CONFIG_CRYPTO_KPP=n -CONFIG_CRYPTO_ACOMP2=n -CONFIG_CRYPTO_RSA=n -CONFIG_CRYPTO_DH=n -CONFIG_CRYPTO_ECDH=n -CONFIG_CRYPTO_MANAGER=n -CONFIG_CRYPTO_MANAGER2=n +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +# CONFIG_CRYPTO_RSA is not set +# CONFIG_CRYPTO_DH is not set +# CONFIG_CRYPTO_ECDH is not set +# CONFIG_CRYPTO_MANAGER is not set +# CONFIG_CRYPTO_MANAGER2 is not set # CONFIG_CRYPTO_USER is not set -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=n # CONFIG_CRYPTO_GF128MUL is not set -CONFIG_CRYPTO_NULL=n -CONFIG_CRYPTO_NULL2=n +# CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_PCRYPT is not set -CONFIG_CRYPTO_WORKQUEUE=n # CONFIG_CRYPTO_CRYPTD is not set # CONFIG_CRYPTO_MCRYPTD is not set # CONFIG_CRYPTO_AUTHENC is not set -# CONFIG_CRYPTO_TEST is not set # # Authenticated Encryption with Associated Data @@ -2315,57 +2037,57 @@ CONFIG_CRYPTO_WORKQUEUE=n # CONFIG_CRYPTO_CCM is not set # CONFIG_CRYPTO_GCM is not set # CONFIG_CRYPTO_CHACHA20POLY1305 is not set -CONFIG_CRYPTO_SEQIV=n +# CONFIG_CRYPTO_SEQIV is not set # CONFIG_CRYPTO_ECHAINIV is not set # # Block modes # -CONFIG_CRYPTO_CBC=n -CONFIG_CRYPTO_CTR=n -CONFIG_CRYPTO_CTS=n -CONFIG_CRYPTO_ECB=n +# CONFIG_CRYPTO_CBC is not set +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_CTS is not set +# CONFIG_CRYPTO_ECB is not set # CONFIG_CRYPTO_LRW is not set # CONFIG_CRYPTO_PCBC is not set -CONFIG_CRYPTO_XTS=n +# CONFIG_CRYPTO_XTS is not set # CONFIG_CRYPTO_KEYWRAP is not set # # Hash modes # # CONFIG_CRYPTO_CMAC is not set -CONFIG_CRYPTO_HMAC=n +# CONFIG_CRYPTO_HMAC is not set # CONFIG_CRYPTO_XCBC is not set # CONFIG_CRYPTO_VMAC is not set # # Digest # -CONFIG_CRYPTO_CRC32C=n +CONFIG_CRYPTO_CRC32C=y # CONFIG_CRYPTO_CRC32C_INTEL is not set # CONFIG_CRYPTO_CRC32 is not set # CONFIG_CRYPTO_CRC32_PCLMUL is not set -CONFIG_CRYPTO_CRCT10DIF=n -CONFIG_CRYPTO_CRCT10DIF_PCLMUL=n +CONFIG_CRYPTO_CRCT10DIF=y +# CONFIG_CRYPTO_CRCT10DIF_PCLMUL is not set # CONFIG_CRYPTO_GHASH is not set # CONFIG_CRYPTO_POLY1305 is not set # CONFIG_CRYPTO_POLY1305_X86_64 is not set # CONFIG_CRYPTO_MD4 is not set -CONFIG_CRYPTO_MD5=n +CONFIG_CRYPTO_MD5=y # CONFIG_CRYPTO_MICHAEL_MIC is not set # CONFIG_CRYPTO_RMD128 is not set # CONFIG_CRYPTO_RMD160 is not set # CONFIG_CRYPTO_RMD256 is not set # CONFIG_CRYPTO_RMD320 is not set -CONFIG_CRYPTO_SHA1=n +# CONFIG_CRYPTO_SHA1 is not set # CONFIG_CRYPTO_SHA1_SSSE3 is not set # CONFIG_CRYPTO_SHA256_SSSE3 is not set # CONFIG_CRYPTO_SHA512_SSSE3 is not set # CONFIG_CRYPTO_SHA1_MB is not set # CONFIG_CRYPTO_SHA256_MB is not set # CONFIG_CRYPTO_SHA512_MB is not set -CONFIG_CRYPTO_SHA256=n -CONFIG_CRYPTO_SHA512=n +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_SHA3 is not set # CONFIG_CRYPTO_TGR192 is not set # CONFIG_CRYPTO_WP512 is not set @@ -2374,8 +2096,8 @@ CONFIG_CRYPTO_SHA512=n # # Ciphers # -CONFIG_CRYPTO_AES=n -CONFIG_CRYPTO_AES_TI=n +CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_AES_TI is not set # CONFIG_CRYPTO_AES_X86_64 is not set # CONFIG_CRYPTO_AES_NI_INTEL is not set # CONFIG_CRYPTO_ANUBIS is not set @@ -2412,7 +2134,7 @@ CONFIG_CRYPTO_AES_TI=n # Compression # # CONFIG_CRYPTO_DEFLATE is not set -CONFIG_CRYPTO_LZO=n +# CONFIG_CRYPTO_LZO is not set # CONFIG_CRYPTO_842 is not set # CONFIG_CRYPTO_LZ4 is not set # CONFIG_CRYPTO_LZ4HC is not set @@ -2421,35 +2143,17 @@ CONFIG_CRYPTO_LZO=n # Random Number Generation # # CONFIG_CRYPTO_ANSI_CPRNG is not set -CONFIG_CRYPTO_DRBG_MENU=n -CONFIG_CRYPTO_DRBG_HMAC=n -CONFIG_CRYPTO_DRBG_HASH=n -CONFIG_CRYPTO_DRBG_CTR=n -CONFIG_CRYPTO_DRBG=n -CONFIG_CRYPTO_JITTERENTROPY=n +# CONFIG_CRYPTO_DRBG_MENU is not set +# CONFIG_CRYPTO_JITTERENTROPY is not set # CONFIG_CRYPTO_USER_API_HASH is not set # CONFIG_CRYPTO_USER_API_SKCIPHER is not set # CONFIG_CRYPTO_USER_API_RNG is not set # CONFIG_CRYPTO_USER_API_AEAD is not set -CONFIG_CRYPTO_HASH_INFO=n # CONFIG_CRYPTO_HW is not set -CONFIG_ASYMMETRIC_KEY_TYPE=y -CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y -CONFIG_X509_CERTIFICATE_PARSER=y -CONFIG_PKCS7_MESSAGE_PARSER=y -# CONFIG_PKCS7_TEST_KEY is not set -CONFIG_SIGNED_PE_FILE_VERIFICATION=y # # Certificates for signature checking # -CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" -CONFIG_SYSTEM_TRUSTED_KEYRING=y -CONFIG_SYSTEM_TRUSTED_KEYS="" -# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set -# CONFIG_SECONDARY_TRUSTED_KEYRING is not set -CONFIG_SYSTEM_BLACKLIST_KEYRING=y -CONFIG_SYSTEM_BLACKLIST_HASH_LIST="" CONFIG_HAVE_KVM=y # CONFIG_VIRTUALIZATION is not set # CONFIG_BINARY_PRINTF is not set @@ -2459,6 +2163,7 @@ CONFIG_HAVE_KVM=y # CONFIG_BITREVERSE=y # CONFIG_HAVE_ARCH_BITREVERSE is not set +CONFIG_RATIONAL=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y @@ -2486,8 +2191,6 @@ CONFIG_XXHASH=y # CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set # CONFIG_RANDOM32_SELFTEST is not set CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_LZ4_DECOMPRESS=y CONFIG_ZSTD_DECOMPRESS=y @@ -2501,13 +2204,11 @@ CONFIG_XZ_DEC_SPARC=y CONFIG_XZ_DEC_BCJ=y # CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y -CONFIG_DECOMPRESS_BZIP2=n CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y CONFIG_DECOMPRESS_LZ4=y CONFIG_RADIX_TREE_MULTIORDER=y -CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y @@ -2517,14 +2218,11 @@ CONFIG_HAS_DMA=y CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y -CONFIG_CLZ_TAB=y # CONFIG_CORDIC is not set # CONFIG_DDR is not set CONFIG_IRQ_POLL=y -CONFIG_MPILIB=n -CONFIG_OID_REGISTRY=y # CONFIG_SG_SPLIT is not set -CONFIG_SG_POOL=y +# CONFIG_SG_POOL is not set CONFIG_ARCH_HAS_SG_CHAIN=y CONFIG_ARCH_HAS_PMEM_API=y CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y diff --git a/resources/guest_configs/microvm-kernel-ci-x86_64-5.10-no-acpi.config b/resources/guest_configs/microvm-kernel-ci-x86_64-5.10-no-acpi.config new file mode 100644 index 00000000000..7c9357bced8 --- /dev/null +++ b/resources/guest_configs/microvm-kernel-ci-x86_64-5.10-no-acpi.config @@ -0,0 +1,2940 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/x86 5.10.0 Kernel Configuration +# +CONFIG_CC_VERSION_TEXT="gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-13)" +CONFIG_CC_IS_GCC=y +CONFIG_GCC_VERSION=70301 +CONFIG_LD_VERSION=229010000 +CONFIG_CLANG_VERSION=0 +CONFIG_LLD_VERSION=0 +CONFIG_CC_CAN_LINK=y +CONFIG_CC_HAS_ASM_GOTO=y +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_TABLE_SORT=y +CONFIG_THREAD_INFO_IN_TASK=y + +# +# General setup +# +CONFIG_INIT_ENV_ARG_LIMIT=32 +# CONFIG_COMPILE_TEST is not set +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_BUILD_SALT="" +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_BZIP2=n +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_HAVE_KERNEL_LZ4=y +CONFIG_HAVE_KERNEL_ZSTD=y +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_BZIP2 is not set +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZO is not set +# CONFIG_KERNEL_LZ4 is not set +# CONFIG_KERNEL_ZSTD is not set +CONFIG_DEFAULT_INIT="" +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +# CONFIG_WATCH_QUEUE is not set +CONFIG_CROSS_MEMORY_ATTACH=y +# CONFIG_USELIB is not set +CONFIG_AUDIT=n +CONFIG_HAVE_ARCH_AUDITSYSCALL=n +CONFIG_AUDITSYSCALL=n + +# +# IRQ subsystem +# +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y +CONFIG_GENERIC_IRQ_RESERVATION_MODE=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set +# end of IRQ subsystem + +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_ARCH_CLOCKSOURCE_INIT=y +CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y +CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +# end of Timers subsystem + +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_HAVE_SCHED_AVG_IRQ=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +# CONFIG_PSI is not set +# end of CPU/Task time and stats accounting + +CONFIG_CPU_ISOLATION=y + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +# CONFIG_RCU_EXPERT is not set +CONFIG_SRCU=y +CONFIG_TREE_SRCU=y +CONFIG_TASKS_RCU_GENERIC=y +CONFIG_TASKS_TRACE_RCU=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_RCU_NEED_SEGCBLIST=y +# end of RCU Subsystem + +CONFIG_BUILD_BIN2C=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +# CONFIG_IKHEADERS is not set +CONFIG_LOG_BUF_SHIFT=21 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y + +# +# Scheduler features +# +# CONFIG_UCLAMP_TASK is not set +# end of Scheduler features + +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y +CONFIG_CC_HAS_INT128=y +CONFIG_ARCH_SUPPORTS_INT128=y +CONFIG_NUMA_BALANCING=y +# CONFIG_NUMA_BALANCING_DEFAULT_ENABLED is not set +CONFIG_CGROUPS=y +CONFIG_PAGE_COUNTER=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_MEMCG_KMEM=y +CONFIG_BLK_CGROUP=y +CONFIG_CGROUP_WRITEBACK=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_RT_GROUP_SCHED=y +CONFIG_CGROUP_PIDS=y +# CONFIG_CGROUP_RDMA is not set +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_BPF=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_SOCK_CGROUP_DATA=y +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_TIME_NS=y +CONFIG_IPC_NS=y +CONFIG_USER_NS=y +CONFIG_PID_NS=y +CONFIG_NET_NS=y +# CONFIG_CHECKPOINT_RESTORE is not set +CONFIG_SCHED_AUTOGROUP=y +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=n +CONFIG_RD_LZMA=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +CONFIG_RD_LZ4=y +CONFIG_RD_ZSTD=y +# CONFIG_BOOT_CONFIG is not set +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_LD_ORPHAN_WARN=y +CONFIG_SYSCTL=y +CONFIG_HAVE_UID16=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_HAVE_PCSPKR_PLATFORM=y +CONFIG_BPF=y +# CONFIG_EXPERT is not set +CONFIG_UID16=y +CONFIG_MULTIUSER=y +CONFIG_SGETMASK_SYSCALL=y +CONFIG_SYSFS_SYSCALL=y +CONFIG_FHANDLE=y +CONFIG_POSIX_TIMERS=y +CONFIG_PRINTK=y +CONFIG_PRINTK_NMI=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_PCSPKR_PLATFORM=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_FUTEX_PI=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_IO_URING=y +CONFIG_ADVISE_SYSCALLS=y +CONFIG_HAVE_ARCH_USERFAULTFD_WP=y +CONFIG_MEMBARRIER=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y +CONFIG_KALLSYMS_BASE_RELATIVE=y +CONFIG_BPF_SYSCALL=y +CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y +CONFIG_BPF_JIT_ALWAYS_ON=y +CONFIG_BPF_JIT_DEFAULT_ON=y +# CONFIG_BPF_PRELOAD is not set +CONFIG_USERFAULTFD=n +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_RSEQ=y +# CONFIG_EMBEDDED is not set +CONFIG_HAVE_PERF_EVENTS=y + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +# end of Kernel Performance Events And Counters + +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLUB_DEBUG=y +# CONFIG_COMPAT_BRK is not set +# CONFIG_SLAB is not set +CONFIG_SLUB=y +CONFIG_SLAB_MERGE_DEFAULT=y +# CONFIG_SLAB_FREELIST_RANDOM is not set +CONFIG_SLAB_FREELIST_HARDENED=y +# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set +CONFIG_SLUB_CPU_PARTIAL=y +CONFIG_SYSTEM_DATA_VERIFICATION=y +CONFIG_PROFILING=y +# end of General setup + +CONFIG_64BIT=y +CONFIG_X86_64=y +CONFIG_X86=n +CONFIG_INSTRUCTION_DECODER=y +CONFIG_OUTPUT_FORMAT="elf64-x86-64" +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_MMU=y +CONFIG_ARCH_MMAP_RND_BITS_MIN=28 +CONFIG_ARCH_MMAP_RND_BITS_MAX=32 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_FILTER_PGPROT=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_ZONE_DMA32=y +CONFIG_AUDIT_ARCH=n +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_X86_64_SMP=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_DYNAMIC_PHYSICAL_MASK=y +CONFIG_PGTABLE_LEVELS=4 +CONFIG_CC_HAS_SANE_STACKPROTECTOR=y + +# +# Processor type and features +# +CONFIG_ZONE_DMA=y +CONFIG_SMP=y +CONFIG_X86_FEATURE_NAMES=y +CONFIG_X86_X2APIC=y +CONFIG_X86_MPPARSE=y +# CONFIG_GOLDFISH is not set +CONFIG_RETPOLINE=y +# CONFIG_X86_CPU_RESCTRL is not set +# CONFIG_X86_EXTENDED_PLATFORM is not set +# CONFIG_X86_AMD_PLATFORM_DEVICE is not set +CONFIG_SCHED_OMIT_FRAME_POINTER=y +CONFIG_HYPERVISOR_GUEST=y +CONFIG_PARAVIRT=y +# CONFIG_PARAVIRT_DEBUG is not set +CONFIG_PARAVIRT_SPINLOCKS=y +CONFIG_X86_HV_CALLBACK_VECTOR=y +# CONFIG_XEN is not set +CONFIG_KVM_GUEST=y +CONFIG_ARCH_CPUIDLE_HALTPOLL=y +# CONFIG_PVH is not set +CONFIG_PARAVIRT_TIME_ACCOUNTING=y +CONFIG_PARAVIRT_CLOCK=y +# CONFIG_ACRN_GUEST is not set +# CONFIG_MK8 is not set +# CONFIG_MPSC is not set +# CONFIG_MCORE2 is not set +# CONFIG_MATOM is not set +CONFIG_GENERIC_CPU=y +CONFIG_X86_INTERNODE_CACHE_SHIFT=6 +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_X86_DEBUGCTLMSR=y +CONFIG_IA32_FEAT_CTL=y +CONFIG_X86_VMX_FEATURE_NAMES=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_AMD=y +CONFIG_CPU_SUP_HYGON=y +CONFIG_CPU_SUP_CENTAUR=y +CONFIG_CPU_SUP_ZHAOXIN=y +CONFIG_HPET_TIMER=y +CONFIG_DMI=y +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=128 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y +# CONFIG_X86_MCE is not set + +# +# Performance monitoring +# +# CONFIG_PERF_EVENTS_AMD_POWER is not set +# end of Performance monitoring + +CONFIG_X86_16BIT=y +CONFIG_X86_ESPFIX64=y +CONFIG_X86_VSYSCALL_EMULATION=y +CONFIG_X86_IOPL_IOPERM=y +# CONFIG_I8K is not set +# CONFIG_MICROCODE is not set +CONFIG_X86_MSR=y +CONFIG_X86_CPUID=y +# CONFIG_X86_5LEVEL is not set +CONFIG_X86_DIRECT_GBPAGES=y +# CONFIG_X86_CPA_STATISTICS is not set +CONFIG_AMD_MEM_ENCRYPT=n +# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set +CONFIG_NUMA=y +# CONFIG_NUMA_EMU is not set +CONFIG_NODES_SHIFT=10 +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_MEMORY_PROBE=y +CONFIG_ARCH_PROC_KCORE_TEXT=y +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +# CONFIG_X86_PMEM_LEGACY is not set +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_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 +CONFIG_X86_PAT=y +CONFIG_ARCH_USES_PG_UNCACHED=y +CONFIG_ARCH_RANDOM=y +CONFIG_X86_SMAP=y +CONFIG_X86_UMIP=y +CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=n +CONFIG_X86_INTEL_TSX_MODE_OFF=y +# CONFIG_X86_INTEL_TSX_MODE_ON is not set +# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set +# CONFIG_EFI is not set +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_300 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=250 +CONFIG_SCHED_HRTICK=y +# CONFIG_KEXEC is not set +CONFIG_KEXEC_FILE=y +CONFIG_ARCH_HAS_KEXEC_PURGATORY=y +# CONFIG_KEXEC_SIG is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_PHYSICAL_START=0x1000000 +CONFIG_RELOCATABLE=y +# CONFIG_RANDOMIZE_BASE is not set +CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_HOTPLUG_CPU=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set +# CONFIG_COMPAT_VDSO is not set +CONFIG_LEGACY_VSYSCALL_EMULATE=y +# CONFIG_LEGACY_VSYSCALL_XONLY is not set +# CONFIG_LEGACY_VSYSCALL_NONE is not set +# CONFIG_CMDLINE_BOOL is not set +CONFIG_MODIFY_LDT_SYSCALL=y +CONFIG_HAVE_LIVEPATCH=y +# end of Processor type and features + +CONFIG_ARCH_HAS_ADD_PAGES=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y +CONFIG_USE_PERCPU_NUMA_NODE_ID=y +CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y +CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y +CONFIG_ARCH_ENABLE_THP_MIGRATION=y + +# +# Power management and ACPI options +# +CONFIG_ARCH_HIBERNATION_HEADER=y +# CONFIG_SUSPEND is not set +CONFIG_HIBERNATE_CALLBACKS=n +CONFIG_HIBERNATION=n +CONFIG_HIBERNATION_SNAPSHOT_DEV=n +CONFIG_PM_STD_PARTITION="" +CONFIG_PM_SLEEP=n +CONFIG_PM_SLEEP_SMP=n +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set +CONFIG_PM=n +# CONFIG_PM_DEBUG is not set +# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +# CONFIG_ENERGY_MODEL is not set +CONFIG_ARCH_SUPPORTS_ACPI=y +CONFIG_ACPI=n +CONFIG_ACPI_LEGACY_TABLES_LOOKUP=n +CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y +CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=n +# CONFIG_ACPI_DEBUGGER is not set +CONFIG_ACPI_SPCR_TABLE=n +CONFIG_ACPI_LPIT=n +CONFIG_ACPI_SLEEP=n +CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=n +# CONFIG_ACPI_EC_DEBUGFS is not set +CONFIG_ACPI_AC=n +CONFIG_ACPI_BATTERY=n +CONFIG_ACPI_BUTTON=n +CONFIG_ACPI_FAN=n +# CONFIG_ACPI_TAD is not set +# CONFIG_ACPI_DOCK is not set +CONFIG_ACPI_CPU_FREQ_PSS=n +CONFIG_ACPI_PROCESSOR_CSTATE=n +CONFIG_ACPI_PROCESSOR_IDLE=n +CONFIG_ACPI_CPPC_LIB=n +CONFIG_ACPI_PROCESSOR=n +CONFIG_ACPI_HOTPLUG_CPU=n +# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set +CONFIG_ACPI_THERMAL=n +CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y +CONFIG_ACPI_TABLE_UPGRADE=n +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_CONTAINER=n +# CONFIG_ACPI_HOTPLUG_MEMORY is not set +# CONFIG_ACPI_SBS is not set +# CONFIG_ACPI_HED is not set +# CONFIG_ACPI_CUSTOM_METHOD is not set +# CONFIG_ACPI_NFIT is not set +# CONFIG_ACPI_NUMA is not set +CONFIG_HAVE_ACPI_APEI=y +CONFIG_HAVE_ACPI_APEI_NMI=y +# CONFIG_ACPI_APEI is not set +# CONFIG_ACPI_DPTF is not set +# CONFIG_ACPI_CONFIGFS is not set +# CONFIG_PMIC_OPREGION is not set +CONFIG_X86_PM_TIMER=y +# CONFIG_SFI is not set + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# +# end of CPU Frequency scaling + +# +# CPU Idle +# +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_CPU_IDLE_GOV_TEO is not set +# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set +CONFIG_HALTPOLL_CPUIDLE=y +# end of CPU Idle + +CONFIG_INTEL_IDLE=y +# end of Power management and ACPI options + +# +# Bus options (PCI etc.) +# +CONFIG_ISA_DMA_API=y +# CONFIG_X86_SYSFB is not set +# end of Bus options (PCI etc.) + +# +# Binary Emulations +# +CONFIG_IA32_EMULATION=y +# CONFIG_X86_X32 is not set +CONFIG_COMPAT_32=y +CONFIG_COMPAT=y +CONFIG_COMPAT_FOR_U64_ALIGNMENT=y +CONFIG_SYSVIPC_COMPAT=y +# end of Binary Emulations + +# +# Firmware Drivers +# +# CONFIG_EDD is not set +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_DMIID=y +# CONFIG_DMI_SYSFS is not set +CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y +# CONFIG_ISCSI_IBFT is not set +# CONFIG_FW_CFG_SYSFS is not set +# CONFIG_GOOGLE_FIRMWARE is not set + +# +# Tegra firmware driver +# +# end of Tegra firmware driver +# end of Firmware Drivers + +CONFIG_HAVE_KVM=y +# CONFIG_VIRTUALIZATION is not set +CONFIG_AS_AVX512=y +CONFIG_AS_SHA1_NI=y +CONFIG_AS_SHA256_NI=y + +# +# General architecture-dependent options +# +CONFIG_CRASH_CORE=y +CONFIG_KEXEC_CORE=y +CONFIG_HOTPLUG_SMT=y +CONFIG_GENERIC_ENTRY=y +# CONFIG_OPROFILE is not set +CONFIG_HAVE_OPROFILE=y +CONFIG_OPROFILE_NMI_TIMER=y +CONFIG_KPROBES=y +CONFIG_JUMP_LABEL=y +# CONFIG_STATIC_KEYS_SELFTEST is not set +# CONFIG_STATIC_CALL_SELFTEST is not set +CONFIG_OPTPROBES=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_KRETPROBES=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_KPROBES_ON_FTRACE=y +CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y +CONFIG_HAVE_NMI=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SET_DIRECT_MAP=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y +CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y +CONFIG_HAVE_ASM_MODVERSIONS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y +CONFIG_HAVE_USER_RETURN_NOTIFIER=y +CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y +CONFIG_MMU_GATHER_TABLE_FREE=y +CONFIG_MMU_GATHER_RCU_TABLE_FREE=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y +CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y +CONFIG_HAVE_ARCH_SECCOMP=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP=n +CONFIG_SECCOMP_FILTER=n +CONFIG_HAVE_ARCH_STACKLEAK=y +CONFIG_HAVE_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOVE_PMD=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y +CONFIG_HAVE_ARCH_HUGE_VMAP=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y +CONFIG_HAVE_ARCH_SOFT_DIRTY=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_RELA=n +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_HAVE_EXIT_THREAD=y +CONFIG_ARCH_MMAP_RND_BITS=28 +CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 +CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y +CONFIG_HAVE_STACK_VALIDATION=y +CONFIG_HAVE_RELIABLE_STACKTRACE=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_COMPAT_OLD_SIGACTION=y +CONFIG_COMPAT_32BIT_TIME=y +CONFIG_HAVE_ARCH_VMAP_STACK=y +CONFIG_VMAP_STACK=y +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_STRICT_MODULE_RWX=y +CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y +CONFIG_ARCH_USE_MEMREMAP_PROT=y +# CONFIG_LOCK_EVENT_COUNTS is not set +CONFIG_ARCH_HAS_MEM_ENCRYPT=y +CONFIG_HAVE_STATIC_CALL=y +CONFIG_HAVE_STATIC_CALL_INLINE=y +CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +# end of GCOV-based kernel profiling + +CONFIG_HAVE_GCC_PLUGINS=y +# end of General architecture-dependent options + +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULE_SIG_FORMAT=n +CONFIG_MODULES=n +CONFIG_MODULE_FORCE_LOAD=n +CONFIG_MODULE_UNLOAD=n +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODVERSIONS=n +CONFIG_ASM_MODVERSIONS=y +CONFIG_MODULE_SRCVERSION_ALL=n +CONFIG_MODULE_SIG=n +# CONFIG_MODULE_SIG_FORCE is not set +CONFIG_MODULE_SIG_ALL=n +# CONFIG_MODULE_SIG_SHA1 is not set +# CONFIG_MODULE_SIG_SHA224 is not set +# CONFIG_MODULE_SIG_SHA256 is not set +# CONFIG_MODULE_SIG_SHA384 is not set +CONFIG_MODULE_SIG_SHA512=n +CONFIG_MODULE_SIG_HASH="sha512" +# CONFIG_MODULE_COMPRESS is not set +# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set +CONFIG_UNUSED_SYMBOLS=y +CONFIG_MODULES_TREE_LOOKUP=n +CONFIG_BLOCK=y +CONFIG_BLK_SCSI_REQUEST=n +CONFIG_BLK_CGROUP_RWSTAT=y +CONFIG_BLK_DEV_BSG=n +CONFIG_BLK_DEV_BSGLIB=n +CONFIG_BLK_DEV_INTEGRITY=n +# CONFIG_BLK_DEV_ZONED is not set +CONFIG_BLK_DEV_THROTTLING=y +# CONFIG_BLK_DEV_THROTTLING_LOW is not set +CONFIG_BLK_CMDLINE_PARSER=y +CONFIG_BLK_WBT=y +# CONFIG_BLK_CGROUP_IOLATENCY is not set +# CONFIG_BLK_CGROUP_IOCOST is not set +CONFIG_BLK_WBT_MQ=y +CONFIG_BLK_DEBUG_FS=y +# CONFIG_BLK_SED_OPAL is not set +# CONFIG_BLK_INLINE_ENCRYPTION is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_AIX_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +# CONFIG_EFI_PARTITION is not set +# CONFIG_SYSV68_PARTITION is not set +# CONFIG_CMDLINE_PARTITION is not set +# end of Partition Types + +CONFIG_BLOCK_COMPAT=y +CONFIG_BLK_MQ_VIRTIO=y +CONFIG_BLK_PM=y + +# +# IO Schedulers +# +# CONFIG_MQ_IOSCHED_DEADLINE is not set +# CONFIG_MQ_IOSCHED_KYBER is not set +# CONFIG_IOSCHED_BFQ is not set +# end of IO Schedulers + +CONFIG_ASN1=n +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y +CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y +CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y +CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y +CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y +CONFIG_FREEZER=y + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +CONFIG_COMPAT_BINFMT_ELF=y +CONFIG_ELFCORE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +CONFIG_BINFMT_MISC=y +CONFIG_COREDUMP=y +# end of Executable file formats + +# +# Memory Management options +# +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSEMEM=y +CONFIG_NEED_MULTIPLE_NODES=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_HAVE_FAST_GUP=y +CONFIG_NUMA_KEEP_MEMINFO=y +CONFIG_MEMORY_ISOLATION=y +CONFIG_HAVE_BOOTMEM_INFO_NODE=y +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MEMORY_HOTPLUG_SPARSE=y +# CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set +CONFIG_MEMORY_HOTREMOVE=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_MEMORY_BALLOON=y +# CONFIG_BALLOON_COMPACTION is not set +CONFIG_COMPACTION=y +CONFIG_PAGE_REPORTING=y +CONFIG_MIGRATION=y +CONFIG_CONTIG_ALLOC=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_KSM=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_TRANSPARENT_HUGEPAGE=y +# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y +CONFIG_ARCH_WANTS_THP_SWAP=y +CONFIG_THP_SWAP=y +CONFIG_CLEANCACHE=y +CONFIG_FRONTSWAP=y +# CONFIG_CMA is not set +# CONFIG_ZSWAP is not set +CONFIG_ZPOOL=n +# CONFIG_ZBUD is not set +# CONFIG_Z3FOLD is not set +# CONFIG_ZSMALLOC is not set +CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set +# CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_ARCH_HAS_PTE_DEVMAP=y +# CONFIG_ZONE_DEVICE is not set +CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y +CONFIG_ARCH_HAS_PKEYS=n +CONFIG_PERCPU_STATS=y +# CONFIG_GUP_BENCHMARK is not set +# CONFIG_READ_ONLY_THP_FOR_FS is not set +CONFIG_ARCH_HAS_PTE_SPECIAL=y +# end of Memory Management options + +CONFIG_NET=y +CONFIG_NET_INGRESS=y +CONFIG_SKB_EXTENSIONS=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_DIAG is not set +CONFIG_UNIX=y +CONFIG_UNIX_SCM=y +# CONFIG_UNIX_DIAG is not set +# CONFIG_TLS is not set +CONFIG_XFRM=n +CONFIG_XFRM_ALGO=n +CONFIG_XFRM_USER=n +# CONFIG_XFRM_USER_COMPAT is not set +# CONFIG_XFRM_INTERFACE is not set +CONFIG_XFRM_SUB_POLICY=n +CONFIG_XFRM_MIGRATE=n +CONFIG_XFRM_STATISTICS=n +# CONFIG_NET_KEY is not set +# CONFIG_XDP_SOCKETS is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=n +CONFIG_IP_PNP_BOOTP=n +CONFIG_IP_PNP_RARP=n +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE_DEMUX is not set +CONFIG_IP_MROUTE_COMMON=y +CONFIG_IP_MROUTE=y +CONFIG_IP_MROUTE_MULTIPLE_TABLES=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +CONFIG_SYN_COOKIES=y +# CONFIG_NET_IPVTI is not set +# CONFIG_NET_FOU is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_DIAG is not set +CONFIG_TCP_CONG_ADVANCED=y +# CONFIG_TCP_CONG_BIC is not set +CONFIG_TCP_CONG_CUBIC=y +# CONFIG_TCP_CONG_WESTWOOD is not set +# CONFIG_TCP_CONG_HTCP is not set +# CONFIG_TCP_CONG_HSTCP is not set +# CONFIG_TCP_CONG_HYBLA is not set +# CONFIG_TCP_CONG_VEGAS is not set +# CONFIG_TCP_CONG_NV is not set +# CONFIG_TCP_CONG_SCALABLE is not set +# CONFIG_TCP_CONG_LP is not set +# CONFIG_TCP_CONG_VENO is not set +# CONFIG_TCP_CONG_YEAH is not set +# CONFIG_TCP_CONG_ILLINOIS is not set +# CONFIG_TCP_CONG_DCTCP is not set +# CONFIG_TCP_CONG_CDG is not set +# CONFIG_TCP_CONG_BBR is not set +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +CONFIG_TCP_MD5SIG=y +CONFIG_IPV6=n +CONFIG_IPV6_ROUTER_PREF=n +CONFIG_IPV6_ROUTE_INFO=n +CONFIG_IPV6_OPTIMISTIC_DAD=n +# CONFIG_INET6_AH is not set +# CONFIG_INET6_ESP is not set +# CONFIG_INET6_IPCOMP is not set +# CONFIG_IPV6_MIP6 is not set +# CONFIG_IPV6_ILA is not set +# CONFIG_IPV6_VTI is not set +# CONFIG_IPV6_SIT is not set +# CONFIG_IPV6_TUNNEL is not set +CONFIG_IPV6_MULTIPLE_TABLES=n +CONFIG_IPV6_SUBTREES=n +CONFIG_IPV6_MROUTE=n +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=n +CONFIG_IPV6_PIMSM_V2=n +CONFIG_IPV6_SEG6_LWTUNNEL=n +CONFIG_IPV6_SEG6_HMAC=n +CONFIG_IPV6_SEG6_BPF=n +# CONFIG_IPV6_RPL_LWTUNNEL is not set +CONFIG_NETLABEL=n +# CONFIG_MPTCP is not set +CONFIG_NETWORK_SECMARK=y +CONFIG_NET_PTP_CLASSIFY=y +CONFIG_NETWORK_PHY_TIMESTAMPING=y +CONFIG_NETFILTER=n +CONFIG_NETFILTER_ADVANCED=n +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_INGRESS=n +CONFIG_NETFILTER_FAMILY_BRIDGE=n +# CONFIG_NETFILTER_NETLINK_ACCT is not set +# CONFIG_NETFILTER_NETLINK_QUEUE is not set +# CONFIG_NETFILTER_NETLINK_LOG is not set +# CONFIG_NETFILTER_NETLINK_OSF is not set +CONFIG_NF_CONNTRACK=n +CONFIG_NF_LOG_COMMON=n +# CONFIG_NF_LOG_NETDEV is not set +CONFIG_NF_CONNTRACK_MARK=n +CONFIG_NF_CONNTRACK_SECMARK=n +# CONFIG_NF_CONNTRACK_ZONES is not set +CONFIG_NF_CONNTRACK_PROCFS=n +CONFIG_NF_CONNTRACK_EVENTS=n +CONFIG_NF_CONNTRACK_TIMEOUT=n +CONFIG_NF_CONNTRACK_TIMESTAMP=n +# CONFIG_NF_CONNTRACK_LABELS is not set +CONFIG_NF_CT_PROTO_DCCP=n +CONFIG_NF_CT_PROTO_SCTP=n +CONFIG_NF_CT_PROTO_UDPLITE=n +# CONFIG_NF_CONNTRACK_AMANDA is not set +# CONFIG_NF_CONNTRACK_FTP is not set +# CONFIG_NF_CONNTRACK_H323 is not set +# CONFIG_NF_CONNTRACK_IRC is not set +# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set +# CONFIG_NF_CONNTRACK_SNMP is not set +# CONFIG_NF_CONNTRACK_PPTP is not set +# CONFIG_NF_CONNTRACK_SANE is not set +# CONFIG_NF_CONNTRACK_SIP is not set +# CONFIG_NF_CONNTRACK_TFTP is not set +# CONFIG_NF_CT_NETLINK is not set +# CONFIG_NF_CT_NETLINK_TIMEOUT is not set +CONFIG_NF_NAT=n +CONFIG_NF_NAT_REDIRECT=n +CONFIG_NF_NAT_MASQUERADE=n +CONFIG_NETFILTER_SYNPROXY=n +# CONFIG_NF_TABLES is not set +CONFIG_NETFILTER_XTABLES=n + +# +# Xtables combined modules +# +# CONFIG_NETFILTER_XT_MARK is not set +# CONFIG_NETFILTER_XT_CONNMARK is not set + +# +# Xtables targets +# +# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set +# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set +# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set +# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set +# CONFIG_NETFILTER_XT_TARGET_CONNSECMARK is not set +# CONFIG_NETFILTER_XT_TARGET_DSCP is not set +# CONFIG_NETFILTER_XT_TARGET_HL is not set +# CONFIG_NETFILTER_XT_TARGET_HMARK is not set +# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set +# CONFIG_NETFILTER_XT_TARGET_LOG is not set +# CONFIG_NETFILTER_XT_TARGET_MARK is not set +CONFIG_NETFILTER_XT_NAT=n +CONFIG_NETFILTER_XT_TARGET_NETMAP=n +# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set +# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set +# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set +CONFIG_NETFILTER_XT_TARGET_REDIRECT=n +CONFIG_NETFILTER_XT_TARGET_MASQUERADE=n +# CONFIG_NETFILTER_XT_TARGET_TEE is not set +# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set +# CONFIG_NETFILTER_XT_TARGET_SECMARK is not set +# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set +# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=n +# CONFIG_NETFILTER_XT_MATCH_BPF is not set +# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set +# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set +# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set +# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set +# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set +# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set +# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=n +# CONFIG_NETFILTER_XT_MATCH_CPU is not set +# CONFIG_NETFILTER_XT_MATCH_DCCP is not set +# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set +# CONFIG_NETFILTER_XT_MATCH_DSCP is not set +# CONFIG_NETFILTER_XT_MATCH_ECN is not set +# CONFIG_NETFILTER_XT_MATCH_ESP is not set +# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set +# CONFIG_NETFILTER_XT_MATCH_HELPER is not set +# CONFIG_NETFILTER_XT_MATCH_HL is not set +# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set +# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set +# CONFIG_NETFILTER_XT_MATCH_L2TP is not set +# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set +# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set +# CONFIG_NETFILTER_XT_MATCH_MAC is not set +# CONFIG_NETFILTER_XT_MATCH_MARK is not set +# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set +# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set +# CONFIG_NETFILTER_XT_MATCH_OSF is not set +# CONFIG_NETFILTER_XT_MATCH_OWNER is not set +# CONFIG_NETFILTER_XT_MATCH_POLICY is not set +# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set +# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set +# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set +# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set +# CONFIG_NETFILTER_XT_MATCH_REALM is not set +# CONFIG_NETFILTER_XT_MATCH_RECENT is not set +# CONFIG_NETFILTER_XT_MATCH_SCTP is not set +# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set +# CONFIG_NETFILTER_XT_MATCH_STATE is not set +# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set +# CONFIG_NETFILTER_XT_MATCH_STRING is not set +# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set +# CONFIG_NETFILTER_XT_MATCH_TIME is not set +# CONFIG_NETFILTER_XT_MATCH_U32 is not set +# end of Core Netfilter Configuration + +# CONFIG_IP_SET is not set +# CONFIG_IP_VS is not set + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=n +# CONFIG_NF_SOCKET_IPV4 is not set +# CONFIG_NF_TPROXY_IPV4 is not set +# CONFIG_NF_DUP_IPV4 is not set +CONFIG_NF_LOG_ARP=n +CONFIG_NF_LOG_IPV4=n +CONFIG_NF_REJECT_IPV4=n +CONFIG_IP_NF_IPTABLES=y +# CONFIG_IP_NF_MATCH_AH is not set +# CONFIG_IP_NF_MATCH_ECN is not set +# CONFIG_IP_NF_MATCH_RPFILTER is not set +# CONFIG_IP_NF_MATCH_TTL is not set +CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +CONFIG_IP_NF_TARGET_SYNPROXY=y +CONFIG_IP_NF_NAT=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +CONFIG_IP_NF_TARGET_NETMAP=y +CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_IP_NF_MANGLE=y +# CONFIG_IP_NF_TARGET_CLUSTERIP is not set +# CONFIG_IP_NF_TARGET_ECN is not set +# CONFIG_IP_NF_TARGET_TTL is not set +# CONFIG_IP_NF_RAW is not set +# CONFIG_IP_NF_SECURITY is not set +# CONFIG_IP_NF_ARPTABLES is not set +# end of IP: Netfilter Configuration + +# +# IPv6: Netfilter Configuration +# +# CONFIG_NF_SOCKET_IPV6 is not set +# CONFIG_NF_TPROXY_IPV6 is not set +# CONFIG_NF_DUP_IPV6 is not set +# CONFIG_NF_REJECT_IPV6 is not set +# CONFIG_NF_LOG_IPV6 is not set +# CONFIG_IP6_NF_IPTABLES is not set +# end of IPv6: Netfilter Configuration + +CONFIG_NF_DEFRAG_IPV6=n +# CONFIG_NF_CONNTRACK_BRIDGE is not set +# CONFIG_BRIDGE_NF_EBTABLES is not set +# CONFIG_BPFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_L2TP is not set +CONFIG_STP=y +CONFIG_BRIDGE=y +CONFIG_BRIDGE_IGMP_SNOOPING=y +# CONFIG_BRIDGE_MRP is not set +CONFIG_HAVE_NET_DSA=y +# CONFIG_NET_DSA is not set +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +CONFIG_LLC=y +# CONFIG_LLC2 is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_PHONET is not set +# CONFIG_6LOWPAN is not set +# CONFIG_IEEE802154 is not set +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +# CONFIG_NET_SCH_CBQ is not set +# CONFIG_NET_SCH_HTB is not set +# CONFIG_NET_SCH_HFSC is not set +# CONFIG_NET_SCH_PRIO is not set +# CONFIG_NET_SCH_MULTIQ is not set +# CONFIG_NET_SCH_RED is not set +# CONFIG_NET_SCH_SFB is not set +# CONFIG_NET_SCH_SFQ is not set +# CONFIG_NET_SCH_TEQL is not set +# CONFIG_NET_SCH_TBF is not set +# CONFIG_NET_SCH_CBS is not set +# CONFIG_NET_SCH_ETF is not set +# CONFIG_NET_SCH_TAPRIO is not set +# CONFIG_NET_SCH_GRED is not set +# CONFIG_NET_SCH_DSMARK is not set +# CONFIG_NET_SCH_NETEM is not set +# CONFIG_NET_SCH_DRR is not set +# CONFIG_NET_SCH_MQPRIO is not set +# CONFIG_NET_SCH_SKBPRIO is not set +# CONFIG_NET_SCH_CHOKE is not set +# CONFIG_NET_SCH_QFQ is not set +# CONFIG_NET_SCH_CODEL is not set +# CONFIG_NET_SCH_FQ_CODEL is not set +# CONFIG_NET_SCH_CAKE is not set +# CONFIG_NET_SCH_FQ is not set +# CONFIG_NET_SCH_HHF is not set +# CONFIG_NET_SCH_PIE is not set +# CONFIG_NET_SCH_INGRESS is not set +# CONFIG_NET_SCH_PLUG is not set +# CONFIG_NET_SCH_ETS is not set +# CONFIG_NET_SCH_DEFAULT is not set + +# +# Classification +# +CONFIG_NET_CLS=y +# CONFIG_NET_CLS_BASIC is not set +# CONFIG_NET_CLS_TCINDEX is not set +# CONFIG_NET_CLS_ROUTE4 is not set +# CONFIG_NET_CLS_FW is not set +# CONFIG_NET_CLS_U32 is not set +# CONFIG_NET_CLS_RSVP is not set +# CONFIG_NET_CLS_RSVP6 is not set +# CONFIG_NET_CLS_FLOW is not set +# CONFIG_NET_CLS_CGROUP is not set +# CONFIG_NET_CLS_BPF is not set +# CONFIG_NET_CLS_FLOWER is not set +# CONFIG_NET_CLS_MATCHALL is not set +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_STACK=32 +# CONFIG_NET_EMATCH_CMP is not set +# CONFIG_NET_EMATCH_NBYTE is not set +# CONFIG_NET_EMATCH_U32 is not set +# CONFIG_NET_EMATCH_META is not set +# CONFIG_NET_EMATCH_TEXT is not set +# CONFIG_NET_EMATCH_IPT is not set +CONFIG_NET_CLS_ACT=y +# CONFIG_NET_ACT_POLICE is not set +# CONFIG_NET_ACT_GACT is not set +# CONFIG_NET_ACT_MIRRED is not set +# CONFIG_NET_ACT_SAMPLE is not set +# CONFIG_NET_ACT_IPT is not set +# CONFIG_NET_ACT_NAT is not set +# CONFIG_NET_ACT_PEDIT is not set +# CONFIG_NET_ACT_SIMP is not set +# CONFIG_NET_ACT_SKBEDIT is not set +# CONFIG_NET_ACT_CSUM is not set +# CONFIG_NET_ACT_MPLS is not set +# CONFIG_NET_ACT_VLAN is not set +# CONFIG_NET_ACT_BPF is not set +# CONFIG_NET_ACT_CONNMARK is not set +# CONFIG_NET_ACT_CTINFO is not set +# CONFIG_NET_ACT_SKBMOD is not set +# CONFIG_NET_ACT_IFE is not set +# CONFIG_NET_ACT_TUNNEL_KEY is not set +# CONFIG_NET_ACT_GATE is not set +# CONFIG_NET_TC_SKB_EXT is not set +CONFIG_NET_SCH_FIFO=y +CONFIG_DCB=n +# CONFIG_DNS_RESOLVER is not set +# CONFIG_BATMAN_ADV is not set +# CONFIG_OPENVSWITCH is not set +CONFIG_VSOCKETS=y +CONFIG_VSOCKETS_DIAG=y +CONFIG_VSOCKETS_LOOPBACK=y +CONFIG_VIRTIO_VSOCKETS=y +CONFIG_VIRTIO_VSOCKETS_COMMON=y +# CONFIG_NETLINK_DIAG is not set +CONFIG_MPLS=n +# CONFIG_NET_MPLS_GSO is not set +# CONFIG_MPLS_ROUTING is not set +# CONFIG_NET_NSH is not set +# CONFIG_HSR is not set +# CONFIG_NET_SWITCHDEV is not set +# CONFIG_NET_L3_MASTER_DEV is not set +# CONFIG_QRTR is not set +# CONFIG_NET_NCSI is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y +CONFIG_CGROUP_NET_PRIO=y +CONFIG_CGROUP_NET_CLASSID=y +CONFIG_NET_RX_BUSY_POLL=y +CONFIG_BQL=y +CONFIG_BPF_JIT=y +CONFIG_BPF_STREAM_PARSER=y +CONFIG_NET_FLOW_LIMIT=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# end of Network testing +# end of Networking options + +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +# CONFIG_BT is not set +# CONFIG_AF_RXRPC is not set +# CONFIG_AF_KCM is not set +CONFIG_STREAM_PARSER=y +CONFIG_FIB_RULES=y +# CONFIG_WIRELESS is not set +# CONFIG_WIMAX is not set +# CONFIG_RFKILL is not set +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +# CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set +# CONFIG_PSAMPLE is not set +# CONFIG_NET_IFE is not set +CONFIG_LWTUNNEL=y +CONFIG_LWTUNNEL_BPF=y +CONFIG_DST_CACHE=y +CONFIG_GRO_CELLS=y +CONFIG_NET_SOCK_MSG=y +CONFIG_FAILOVER=y +CONFIG_ETHTOOL_NETLINK=y +CONFIG_HAVE_EBPF_JIT=y + +# +# Device Drivers +# +CONFIG_HAVE_EISA=y +# CONFIG_EISA is not set +CONFIG_HAVE_PCI=y +# CONFIG_PCI is not set +# CONFIG_PCCARD is not set + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER=y +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y + +# +# Firmware loader +# +CONFIG_FW_LOADER=n +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_FW_LOADER_USER_HELPER is not set +# CONFIG_FW_LOADER_COMPRESS is not set +CONFIG_FW_CACHE=y +# end of Firmware loader + +CONFIG_ALLOW_DEV_COREDUMP=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_CPU_VULNERABILITIES=y +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_DMA_FENCE_TRACE is not set +# end of Generic Driver Options + +# +# Bus devices +# +# CONFIG_MHI_BUS is not set +# end of Bus devices + +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +# CONFIG_GNSS is not set +# CONFIG_MTD is not set +# CONFIG_OF is not set +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y +# CONFIG_PARPORT is not set +CONFIG_PNP=y +CONFIG_PNP_DEBUG_MESSAGES=y + +# +# Protocols +# +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_NULL_BLK is not set +# CONFIG_BLK_DEV_FD is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_DRBD is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +CONFIG_VIRTIO_BLK=y +# CONFIG_BLK_DEV_RBD is not set + +# +# NVME Support +# +# CONFIG_NVME_FC is not set +# end of NVME Support + +# +# Misc devices +# +# CONFIG_DUMMY_IRQ is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_SRAM is not set +# CONFIG_XILINX_SDFEC is not set +# CONFIG_PVPANIC is not set +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +# CONFIG_EEPROM_93CX6 is not set +# end of EEPROM support + +# +# Texas Instruments shared transport line discipline +# +# end of Texas Instruments shared transport line discipline + +# +# Altera FPGA firmware download module (requires I2C) +# +# CONFIG_ECHO is not set +# end of Misc devices + +CONFIG_HAVE_IDE=y +# CONFIG_IDE is not set + +# +# SCSI device support +# +CONFIG_SCSI_MOD=n +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=n +CONFIG_SCSI_DMA=n +CONFIG_SCSI_PROC_FS=n + +# +# SCSI support type (disk, tape, CD-ROM) +# +# CONFIG_BLK_DEV_SD is not set +# CONFIG_CHR_DEV_ST is not set +# CONFIG_BLK_DEV_SR is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set +CONFIG_SCSI_CONSTANTS=n +CONFIG_SCSI_LOGGING=n +CONFIG_SCSI_SCAN_ASYNC=n + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +CONFIG_SCSI_ISCSI_ATTRS=n +# CONFIG_SCSI_SAS_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +# end of SCSI Transports + +CONFIG_SCSI_LOWLEVEL=n +CONFIG_ISCSI_TCP=n +# CONFIG_ISCSI_BOOT_SYSFS is not set +# CONFIG_SCSI_UFSHCD is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_VIRTIO is not set +# CONFIG_SCSI_DH is not set +# end of SCSI device support + +# CONFIG_ATA is not set +# CONFIG_MD is not set +# CONFIG_TARGET_CORE is not set +# CONFIG_MACINTOSH_DRIVERS is not set +CONFIG_NETDEVICES=y +CONFIG_NET_CORE=y +# CONFIG_BONDING is not set +# CONFIG_DUMMY is not set +# CONFIG_WIREGUARD is not set +# CONFIG_EQUALIZER is not set +# CONFIG_IFB is not set +# CONFIG_NET_TEAM is not set +# CONFIG_MACVLAN is not set +# CONFIG_IPVLAN is not set +# CONFIG_VXLAN is not set +# CONFIG_GENEVE is not set +# CONFIG_BAREUDP is not set +# CONFIG_GTP is not set +# CONFIG_MACSEC is not set +# CONFIG_NETCONSOLE is not set +CONFIG_TUN=y +# CONFIG_TUN_VNET_CROSS_LE is not set +CONFIG_VETH=y +CONFIG_VIRTIO_NET=y +# CONFIG_NLMON is not set + +# +# Distributed Switch Architecture drivers +# +# end of Distributed Switch Architecture drivers + +# CONFIG_ETHERNET is not set +# CONFIG_NET_SB1000 is not set +# CONFIG_PHYLIB is not set +# CONFIG_MDIO_DEVICE is not set + +# +# PCS device drivers +# +# end of PCS device drivers + +# CONFIG_PPP is not set +# CONFIG_SLIP is not set + +# +# Host-side USB support is needed for USB Network Adapter support +# +# CONFIG_WLAN is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# +# CONFIG_WAN is not set +# CONFIG_FUJITSU_ES is not set +# CONFIG_NETDEVSIM is not set +CONFIG_NET_FAILOVER=y +# CONFIG_ISDN is not set +# CONFIG_NVM is not set + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_FF_MEMLESS=n +# CONFIG_INPUT_POLLDEV is not set +# CONFIG_INPUT_SPARSEKMAP is not set +# CONFIG_INPUT_MATRIXKMAP is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_MISC=y +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_E3X0_BUTTON is not set +# CONFIG_INPUT_PCSPKR is not set +# CONFIG_INPUT_ATLAS_BTNS is not set +# CONFIG_INPUT_UINPUT is not set +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_CMA3000 is not set +# CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set +# CONFIG_RMI4_CORE is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_SERPORT=y +# CONFIG_SERIO_CT82C710 is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO_ALTERA_PS2 is not set +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_USERIO is not set +# CONFIG_GAMEPORT is not set +# end of Hardware I/O ports +# end of Input device support + +# +# Character devices +# +CONFIG_TTY=y +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_LDISC_AUTOLOAD=y + +# +# Serial drivers +# +CONFIG_SERIAL_EARLYCON=y +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_PNP=y +# CONFIG_SERIAL_8250_16550A_VARIANTS is not set +# CONFIG_SERIAL_8250_FINTEK is not set +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_NR_UARTS=1 +CONFIG_SERIAL_8250_RUNTIME_UARTS=1 +# CONFIG_SERIAL_8250_EXTENDED is not set +# CONFIG_SERIAL_8250_DW is not set +# CONFIG_SERIAL_8250_RT288X is not set + +# +# Non-8250 serial port support +# +# CONFIG_SERIAL_UARTLITE is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_LANTIQ is not set +# CONFIG_SERIAL_SCCNXP is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_ARC is not set +# CONFIG_SERIAL_FSL_LPUART is not set +# CONFIG_SERIAL_FSL_LINFLEXUART is not set +# end of Serial drivers + +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_N_GSM is not set +# CONFIG_NULL_TTY is not set +# CONFIG_TRACE_SINK is not set +CONFIG_HVC_DRIVER=y +CONFIG_SERIAL_DEV_BUS=y +CONFIG_SERIAL_DEV_CTRL_TTYPORT=y +CONFIG_VIRTIO_CONSOLE=y +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_VIRTIO=y + +# CONFIG_MWAVE is not set +CONFIG_DEVMEM=y +# CONFIG_DEVKMEM is not set +# CONFIG_NVRAM is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_HPET is not set +# CONFIG_HANGCHECK_TIMER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK is not set +# end of Character devices + +CONFIG_RANDOM_TRUST_CPU=y +# CONFIG_RANDOM_TRUST_BOOTLOADER is not set + +# +# I2C support +# +# CONFIG_I2C is not set +# end of I2C support + +# CONFIG_I3C is not set +# CONFIG_SPI is not set +# CONFIG_SPMI is not set +# CONFIG_HSI is not set +CONFIG_PPS=y +# CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=y + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +CONFIG_PTP_1588_CLOCK_KVM=y +# CONFIG_PTP_1588_CLOCK_VMW is not set +# end of PTP clock support + +# CONFIG_PINCTRL is not set +# CONFIG_GPIOLIB is not set +# CONFIG_W1 is not set +CONFIG_POWER_RESET=y +# CONFIG_POWER_RESET_RESTART is not set +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +# CONFIG_PDA_POWER is not set +# CONFIG_TEST_POWER is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set +# CONFIG_BATTERY_BQ27XXX is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_HWMON is not set +CONFIG_THERMAL=n +# CONFIG_THERMAL_NETLINK is not set +# CONFIG_THERMAL_STATISTICS is not set +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 +CONFIG_THERMAL_WRITABLE_TRIPS=n +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=n +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_FAIR_SHARE=n +CONFIG_THERMAL_GOV_STEP_WISE=n +# CONFIG_THERMAL_GOV_BANG_BANG is not set +CONFIG_THERMAL_GOV_USER_SPACE=n +# CONFIG_THERMAL_EMULATION is not set + +# +# Intel thermal drivers +# +# CONFIG_INTEL_POWERCLAMP is not set + +# +# ACPI INT340X thermal drivers +# +# end of ACPI INT340X thermal drivers +# end of Intel thermal drivers + +# CONFIG_WATCHDOG is not set +CONFIG_SSB_POSSIBLE=y +# CONFIG_SSB is not set +CONFIG_BCMA_POSSIBLE=y +# CONFIG_BCMA is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_MADERA is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_MFD_INTEL_LPSS_ACPI is not set +# CONFIG_MFD_INTEL_PMC_BXT is not set +# CONFIG_MFD_KEMPLD is not set +# CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_SYSCON is not set +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_TQMX86 is not set +# CONFIG_RAVE_SP_CORE is not set +# end of Multifunction device drivers + +# CONFIG_REGULATOR is not set +# CONFIG_RC_CORE is not set +# CONFIG_MEDIA_CEC_SUPPORT is not set +# CONFIG_MEDIA_SUPPORT is not set + +# +# Graphics support +# +# CONFIG_DRM is not set + +# +# ARM devices +# +# end of ARM devices + +# +# Frame buffer Devices +# +# CONFIG_FB is not set +# end of Frame buffer Devices + +# +# Backlight & LCD device support +# +# CONFIG_LCD_CLASS_DEVICE is not set +# CONFIG_BACKLIGHT_CLASS_DEVICE is not set +# end of Backlight & LCD device support + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_DUMMY_CONSOLE_COLUMNS=80 +CONFIG_DUMMY_CONSOLE_ROWS=25 +# end of Console display driver support +# end of Graphics support + +# CONFIG_SOUND is not set + +# +# HID support +# +CONFIG_HID=n +# CONFIG_HID_BATTERY_STRENGTH is not set +CONFIG_HIDRAW=n +# CONFIG_UHID is not set +# CONFIG_HID_GENERIC is not set + +# +# Special HID drivers +# +# CONFIG_HID_A4TECH is not set +# CONFIG_HID_ACRUX is not set +# CONFIG_HID_APPLE is not set +# CONFIG_HID_AUREAL is not set +# CONFIG_HID_BELKIN is not set +# CONFIG_HID_CHERRY is not set +# CONFIG_HID_CHICONY is not set +# CONFIG_HID_COUGAR is not set +# CONFIG_HID_MACALLY is not set +# CONFIG_HID_CMEDIA is not set +# CONFIG_HID_CYPRESS is not set +# CONFIG_HID_DRAGONRISE is not set +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELECOM is not set +# CONFIG_HID_EZKEY is not set +# CONFIG_HID_GEMBIRD is not set +# CONFIG_HID_GFRM is not set +# CONFIG_HID_GLORIOUS is not set +# CONFIG_HID_VIVALDI is not set +# CONFIG_HID_KEYTOUCH is not set +# CONFIG_HID_KYE is not set +# CONFIG_HID_WALTOP is not set +# CONFIG_HID_VIEWSONIC is not set +# CONFIG_HID_GYRATION is not set +# CONFIG_HID_ICADE is not set +# CONFIG_HID_ITE is not set +# CONFIG_HID_JABRA is not set +# CONFIG_HID_TWINHAN is not set +# CONFIG_HID_KENSINGTON is not set +# CONFIG_HID_LCPOWER is not set +# CONFIG_HID_LENOVO is not set +# CONFIG_HID_MAGICMOUSE is not set +# CONFIG_HID_MALTRON is not set +# CONFIG_HID_MAYFLASH is not set +CONFIG_HID_REDRAGON=n +# CONFIG_HID_MICROSOFT is not set +# CONFIG_HID_MONTEREY is not set +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTI is not set +# CONFIG_HID_ORTEK is not set +# CONFIG_HID_PANTHERLORD is not set +# CONFIG_HID_PETALYNX is not set +# CONFIG_HID_PICOLCD is not set +# CONFIG_HID_PLANTRONICS is not set +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_SAITEK is not set +# CONFIG_HID_SAMSUNG is not set +# CONFIG_HID_SPEEDLINK is not set +# CONFIG_HID_STEAM is not set +# CONFIG_HID_STEELSERIES is not set +# CONFIG_HID_SUNPLUS is not set +# CONFIG_HID_RMI is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +# CONFIG_HID_TIVO is not set +# CONFIG_HID_TOPSEED is not set +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_UDRAW_PS3 is not set +# CONFIG_HID_XINMO is not set +# CONFIG_HID_ZEROPLUS is not set +# CONFIG_HID_ZYDACRON is not set +# CONFIG_HID_SENSOR_HUB is not set +# CONFIG_HID_ALPS is not set +# end of Special HID drivers +# end of HID support + +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_SUPPORT is not set +# CONFIG_MMC is not set +# CONFIG_MEMSTICK is not set +# CONFIG_NEW_LEDS is not set +# CONFIG_ACCESSIBILITY is not set +# CONFIG_INFINIBAND is not set +CONFIG_EDAC_ATOMIC_SCRUB=y +CONFIG_EDAC_SUPPORT=y +# CONFIG_EDAC is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_MC146818_LIB=y +# CONFIG_RTC_CLASS is not set +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set + +# +# DMA Devices +# +CONFIG_DMA_ACPI=y +# CONFIG_ALTERA_MSGDMA is not set +# CONFIG_INTEL_IDMA64 is not set +# CONFIG_XILINX_ZYNQMP_DPDMA is not set +# CONFIG_QCOM_HIDMA_MGMT is not set +# CONFIG_QCOM_HIDMA is not set +# CONFIG_DW_DMAC is not set +# CONFIG_SF_PDMA is not set + +# +# DMABUF options +# +CONFIG_SYNC_FILE=y +# CONFIG_SW_SYNC is not set +# CONFIG_UDMABUF is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set +# CONFIG_DMABUF_SELFTESTS is not set +# CONFIG_DMABUF_HEAPS is not set +# end of DMABUF options + +CONFIG_AUXDISPLAY=y +# CONFIG_IMG_ASCII_LCD is not set +# CONFIG_CHARLCD_BL_OFF is not set +# CONFIG_CHARLCD_BL_ON is not set +CONFIG_CHARLCD_BL_FLASH=y +# CONFIG_UIO is not set +CONFIG_VIRT_DRIVERS=y +CONFIG_VIRTIO=y +CONFIG_VIRTIO_MENU=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_MEM=n +# CONFIG_VIRTIO_INPUT is not set +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y +# CONFIG_VDPA is not set +CONFIG_VHOST_MENU=y +# CONFIG_VHOST_NET is not set +# CONFIG_VHOST_VSOCK is not set +# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set + +# +# Microsoft Hyper-V guest support +# +# CONFIG_HYPERV is not set +# end of Microsoft Hyper-V guest support + +# CONFIG_GREYBUS is not set +CONFIG_STAGING=y +# CONFIG_COMEDI is not set +# CONFIG_STAGING_MEDIA is not set + +# +# Android +# +# end of Android + +# CONFIG_GS_FPGABOOT is not set +# CONFIG_UNISYSSPAR is not set + +# +# Gasket devices +# +# end of Gasket devices + +# CONFIG_FIELDBUS_DEV is not set +CONFIG_X86_PLATFORM_DEVICES=y +# CONFIG_ACPI_WMI is not set +# CONFIG_ACERHDF is not set +# CONFIG_ACER_WIRELESS is not set +# CONFIG_ASUS_WIRELESS is not set +# CONFIG_DCDBAS is not set +# CONFIG_DELL_SMBIOS is not set +# CONFIG_DELL_RBU is not set +# CONFIG_DELL_SMO8800 is not set +# CONFIG_FUJITSU_TABLET is not set +# CONFIG_GPD_POCKET_FAN is not set +# CONFIG_HP_ACCEL is not set +# CONFIG_HP_WIRELESS is not set +# CONFIG_SENSORS_HDAPS is not set +# CONFIG_INTEL_HID_EVENT is not set +# CONFIG_INTEL_MENLOW is not set +# CONFIG_INTEL_VBTN is not set +# CONFIG_SURFACE_PRO3_BUTTON is not set +# CONFIG_SAMSUNG_Q10 is not set +# CONFIG_TOSHIBA_BT_RFKILL is not set +# CONFIG_TOSHIBA_HAPS is not set +# CONFIG_ACPI_CMPC is not set +# CONFIG_SYSTEM76_ACPI is not set +# CONFIG_TOPSTAR_LAPTOP is not set +# CONFIG_INTEL_RST is not set +# CONFIG_INTEL_SMARTCONNECT is not set +CONFIG_INTEL_TURBO_MAX_3=y +# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set +# CONFIG_INTEL_PUNIT_IPC is not set +# CONFIG_INTEL_SCU_PLATFORM is not set +# CONFIG_CHROME_PLATFORMS is not set +# CONFIG_MELLANOX_PLATFORM is not set +# CONFIG_COMMON_CLK is not set +# CONFIG_HWSPINLOCK is not set + +# +# Clock Source drivers +# +CONFIG_CLKEVT_I8253=y +CONFIG_I8253_LOCK=y +CONFIG_CLKBLD_I8253=y +# end of Clock Source drivers + +CONFIG_MAILBOX=n +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set +CONFIG_IOMMU_SUPPORT=y + +# +# Generic IOMMU Pagetable Support +# +# end of Generic IOMMU Pagetable Support + +# CONFIG_IOMMU_DEBUGFS is not set + +# +# Remoteproc drivers +# +# CONFIG_REMOTEPROC is not set +# end of Remoteproc drivers + +# +# Rpmsg drivers +# +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_VIRTIO is not set +# end of Rpmsg drivers + +# CONFIG_SOUNDWIRE is not set + +# +# SOC (System On Chip) specific Drivers +# + +# +# Amlogic SoC drivers +# +# end of Amlogic SoC drivers + +# +# Aspeed SoC drivers +# +# end of Aspeed SoC drivers + +# +# Broadcom SoC drivers +# +# end of Broadcom SoC drivers + +# +# NXP/Freescale QorIQ SoC drivers +# +# end of NXP/Freescale QorIQ SoC drivers + +# +# i.MX SoC drivers +# +# end of i.MX SoC drivers + +# +# Qualcomm SoC drivers +# +# end of Qualcomm SoC drivers + +# CONFIG_SOC_TI is not set + +# +# Xilinx SoC drivers +# +# CONFIG_XILINX_VCU is not set +# end of Xilinx SoC drivers +# end of SOC (System On Chip) specific Drivers + +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +# CONFIG_MEMORY is not set +# CONFIG_IIO is not set +# CONFIG_PWM is not set + +# +# IRQ chip support +# +# end of IRQ chip support + +# CONFIG_IPACK_BUS is not set +# CONFIG_RESET_CONTROLLER is not set + +# +# PHY Subsystem +# +# CONFIG_GENERIC_PHY is not set +# CONFIG_BCM_KONA_USB2_PHY is not set +# CONFIG_PHY_PXA_28NM_HSIC is not set +# CONFIG_PHY_PXA_28NM_USB2 is not set +# CONFIG_PHY_INTEL_LGM_EMMC is not set +# end of PHY Subsystem + +# CONFIG_POWERCAP is not set +# CONFIG_MCB is not set + +# +# Performance monitor support +# +# end of Performance monitor support + +CONFIG_RAS=n + +# +# Android +# +# CONFIG_ANDROID is not set +# end of Android + +# CONFIG_LIBNVDIMM is not set +# CONFIG_DAX is not set +# CONFIG_NVMEM is not set + +# +# HW tracing support +# +# CONFIG_STM is not set +# CONFIG_INTEL_TH is not set +# end of HW tracing support + +# CONFIG_FPGA is not set +# CONFIG_TEE is not set +# CONFIG_UNISYS_VISORBUS is not set +# CONFIG_SIOX is not set +# CONFIG_SLIMBUS is not set +# CONFIG_INTERCONNECT is not set +# CONFIG_COUNTER is not set +# end of Device Drivers + +# +# File systems +# +CONFIG_DCACHE_WORD_ACCESS=y +# CONFIG_VALIDATE_FS_PARSER is not set +CONFIG_FS_IOMAP=y +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT2=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +CONFIG_EXT4_DEBUG=n +CONFIG_JBD2=y +CONFIG_JBD2_DEBUG=n +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_NILFS2_FS is not set +# CONFIG_F2FS_FS is not set +# CONFIG_FS_DAX is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=n +# CONFIG_EXPORTFS_BLOCK_OPS is not set +CONFIG_FILE_LOCKING=y +CONFIG_MANDATORY_FILE_LOCKING=y +CONFIG_FS_ENCRYPTION=n +CONFIG_FS_ENCRYPTION_ALGS=n +# CONFIG_FS_VERITY is not set +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=n +CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=n +CONFIG_QUOTA=y +CONFIG_QUOTA_NETLINK_INTERFACE=y +# CONFIG_PRINT_QUOTA_WARNING is not set +# CONFIG_QUOTA_DEBUG is not set +# CONFIG_QFMT_V1 is not set +# CONFIG_QFMT_V2 is not set +CONFIG_QUOTACTL=y +# CONFIG_AUTOFS4_FS is not set +# CONFIG_AUTOFS_FS is not set +# CONFIG_FUSE_FS is not set +CONFIG_OVERLAY_FS=y +# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set +CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y +# CONFIG_OVERLAY_FS_INDEX is not set +# CONFIG_OVERLAY_FS_XINO_AUTO is not set +# CONFIG_OVERLAY_FS_METACOPY is not set + +# +# Caches +# +# CONFIG_FSCACHE is not set +# end of Caches + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set +# end of CD-ROM/DVD Filesystems + +# +# DOS/FAT/EXFAT/NT Filesystems +# +# CONFIG_MSDOS_FS is not set +# CONFIG_VFAT_FS is not set +# CONFIG_EXFAT_FS is not set +# CONFIG_NTFS_FS is not set +# end of DOS/FAT/EXFAT/NT Filesystems + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_PROC_CHILDREN=y +CONFIG_PROC_PID_ARCH_STATUS=y +CONFIG_KERNFS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +# CONFIG_TMPFS_INODE64 is not set +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_MEMFD_CREATE=y +CONFIG_ARCH_HAS_GIGANTIC_PAGE=y +# CONFIG_CONFIGFS_FS is not set +# end of Pseudo filesystems + +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ORANGEFS_FS is not set +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_ECRYPT_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_CRAMFS is not set +CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_FILE_CACHE=y +# CONFIG_SQUASHFS_FILE_DIRECT is not set +CONFIG_SQUASHFS_DECOMP_SINGLE=y +# CONFIG_SQUASHFS_DECOMP_MULTI is not set +# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set +CONFIG_SQUASHFS_XATTR=y +CONFIG_SQUASHFS_ZLIB=y +CONFIG_SQUASHFS_LZ4=y +CONFIG_SQUASHFS_LZO=y +CONFIG_SQUASHFS_XZ=y +CONFIG_SQUASHFS_ZSTD=y +# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_PSTORE=n +CONFIG_PSTORE_DEFLATE_COMPRESS=n +# CONFIG_PSTORE_LZO_COMPRESS is not set +# CONFIG_PSTORE_LZ4_COMPRESS is not set +# CONFIG_PSTORE_LZ4HC_COMPRESS is not set +# CONFIG_PSTORE_842_COMPRESS is not set +# CONFIG_PSTORE_ZSTD_COMPRESS is not set +CONFIG_PSTORE_COMPRESS=n +CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=n +CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" +# CONFIG_PSTORE_CONSOLE is not set +# CONFIG_PSTORE_PMSG is not set +# CONFIG_PSTORE_RAM is not set +# CONFIG_PSTORE_BLK is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +# CONFIG_EROFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=n +# CONFIG_NFS_FS is not set +# CONFIG_NFSD is not set +# CONFIG_CEPH_FS is not set +# CONFIG_CIFS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +CONFIG_NLS=n +CONFIG_NLS_DEFAULT="utf8" +# CONFIG_NLS_CODEPAGE_437 is not set +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +# CONFIG_NLS_ISO8859_1 is not set +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_MAC_ROMAN is not set +# CONFIG_NLS_MAC_CELTIC is not set +# CONFIG_NLS_MAC_CENTEURO is not set +# CONFIG_NLS_MAC_CROATIAN is not set +# CONFIG_NLS_MAC_CYRILLIC is not set +# CONFIG_NLS_MAC_GAELIC is not set +# CONFIG_NLS_MAC_GREEK is not set +# CONFIG_NLS_MAC_ICELAND is not set +# CONFIG_NLS_MAC_INUIT is not set +# CONFIG_NLS_MAC_ROMANIAN is not set +# CONFIG_NLS_MAC_TURKISH is not set +# CONFIG_NLS_UTF8 is not set +# CONFIG_UNICODE is not set +CONFIG_IO_WQ=y +# end of File systems + +# +# Security options +# +CONFIG_KEYS=n +# CONFIG_KEYS_REQUEST_CACHE is not set +CONFIG_PERSISTENT_KEYRINGS=y +CONFIG_ENCRYPTED_KEYS=n +# CONFIG_KEY_DH_OPERATIONS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +CONFIG_SECURITY=n +CONFIG_SECURITY_WRITABLE_HOOKS=n +CONFIG_SECURITYFS=n +CONFIG_SECURITY_NETWORK=n +CONFIG_PAGE_TABLE_ISOLATION=y +CONFIG_SECURITY_NETWORK_XFRM=n +# CONFIG_SECURITY_PATH is not set +CONFIG_LSM_MMAP_MIN_ADDR=65536 +CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y +# CONFIG_HARDENED_USERCOPY is not set +CONFIG_FORTIFY_SOURCE=y +# CONFIG_STATIC_USERMODEHELPER is not set +CONFIG_SECURITY_SELINUX=n +CONFIG_SECURITY_SELINUX_BOOTPARAM=n +CONFIG_SECURITY_SELINUX_DISABLE=n +CONFIG_SECURITY_SELINUX_DEVELOP=n +CONFIG_SECURITY_SELINUX_AVC_STATS=n +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9 +CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 +# CONFIG_SECURITY_SMACK is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_SECURITY_LOADPIN is not set +# CONFIG_SECURITY_YAMA is not set +# CONFIG_SECURITY_SAFESETID is not set +# CONFIG_SECURITY_LOCKDOWN_LSM is not set +CONFIG_INTEGRITY=n +# CONFIG_INTEGRITY_SIGNATURE is not set +CONFIG_INTEGRITY_AUDIT=n +# CONFIG_IMA is not set +# CONFIG_EVM is not set +CONFIG_DEFAULT_SECURITY_SELINUX=n +# CONFIG_DEFAULT_SECURITY_DAC is not set +CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf" + +# +# Kernel hardening options +# + +# +# Memory initialization +# +CONFIG_INIT_STACK_NONE=y +# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set +# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set +# end of Memory initialization +# end of Kernel hardening options +# end of Security options + +CONFIG_CRYPTO=n + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=n +CONFIG_CRYPTO_ALGAPI2=n +CONFIG_CRYPTO_AEAD=n +CONFIG_CRYPTO_AEAD2=n +CONFIG_CRYPTO_SKCIPHER=n +CONFIG_CRYPTO_SKCIPHER2=n +CONFIG_CRYPTO_HASH=n +CONFIG_CRYPTO_HASH2=n +CONFIG_CRYPTO_RNG=n +CONFIG_CRYPTO_RNG2=n +CONFIG_CRYPTO_RNG_DEFAULT=n +CONFIG_CRYPTO_AKCIPHER2=n +CONFIG_CRYPTO_AKCIPHER=n +CONFIG_CRYPTO_KPP2=n +CONFIG_CRYPTO_KPP=n +CONFIG_CRYPTO_ACOMP2=n +CONFIG_CRYPTO_MANAGER=n +CONFIG_CRYPTO_MANAGER2=n +# CONFIG_CRYPTO_USER is not set +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=n +CONFIG_CRYPTO_NULL=n +CONFIG_CRYPTO_NULL2=n +# CONFIG_CRYPTO_PCRYPT is not set +# CONFIG_CRYPTO_CRYPTD is not set +# CONFIG_CRYPTO_AUTHENC is not set +# CONFIG_CRYPTO_TEST is not set + +# +# Public-key cryptography +# +CONFIG_CRYPTO_RSA=n +CONFIG_CRYPTO_DH=n +CONFIG_CRYPTO_ECC=n +CONFIG_CRYPTO_ECDH=n +# CONFIG_CRYPTO_ECRDSA is not set +# CONFIG_CRYPTO_SM2 is not set +# CONFIG_CRYPTO_CURVE25519 is not set +# CONFIG_CRYPTO_CURVE25519_X86 is not set + +# +# Authenticated Encryption with Associated Data +# +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_GCM is not set +# CONFIG_CRYPTO_CHACHA20POLY1305 is not set +# CONFIG_CRYPTO_AEGIS128 is not set +# CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set +CONFIG_CRYPTO_SEQIV=n +# CONFIG_CRYPTO_ECHAINIV is not set + +# +# Block modes +# +CONFIG_CRYPTO_CBC=n +# CONFIG_CRYPTO_CFB is not set +CONFIG_CRYPTO_CTR=n +CONFIG_CRYPTO_CTS=n +CONFIG_CRYPTO_ECB=n +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_OFB is not set +# CONFIG_CRYPTO_PCBC is not set +CONFIG_CRYPTO_XTS=n +# CONFIG_CRYPTO_KEYWRAP is not set +# CONFIG_CRYPTO_NHPOLY1305_SSE2 is not set +# CONFIG_CRYPTO_NHPOLY1305_AVX2 is not set +# CONFIG_CRYPTO_ADIANTUM is not set +# CONFIG_CRYPTO_ESSIV is not set + +# +# Hash modes +# +# CONFIG_CRYPTO_CMAC is not set +CONFIG_CRYPTO_HMAC=n +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_VMAC is not set + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=n +# CONFIG_CRYPTO_CRC32C_INTEL is not set +# CONFIG_CRYPTO_CRC32 is not set +# CONFIG_CRYPTO_CRC32_PCLMUL is not set +# CONFIG_CRYPTO_XXHASH is not set +# CONFIG_CRYPTO_BLAKE2B is not set +# CONFIG_CRYPTO_BLAKE2S is not set +# CONFIG_CRYPTO_BLAKE2S_X86 is not set +CONFIG_CRYPTO_CRCT10DIF=n +CONFIG_CRYPTO_CRCT10DIF_PCLMUL=n +# CONFIG_CRYPTO_GHASH is not set +# CONFIG_CRYPTO_POLY1305 is not set +# CONFIG_CRYPTO_POLY1305_X86_64 is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=n +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_RMD128 is not set +# CONFIG_CRYPTO_RMD160 is not set +# CONFIG_CRYPTO_RMD256 is not set +# CONFIG_CRYPTO_RMD320 is not set +CONFIG_CRYPTO_SHA1=n +# CONFIG_CRYPTO_SHA1_SSSE3 is not set +# CONFIG_CRYPTO_SHA256_SSSE3 is not set +# CONFIG_CRYPTO_SHA512_SSSE3 is not set +CONFIG_CRYPTO_SHA256=n +CONFIG_CRYPTO_SHA512=n +# CONFIG_CRYPTO_SHA3 is not set +# CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_STREEBOG is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set + +# +# Ciphers +# +CONFIG_CRYPTO_AES=n +CONFIG_CRYPTO_AES_TI=n +# CONFIG_CRYPTO_AES_NI_INTEL is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set +# CONFIG_CRYPTO_DES is not set +# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_CHACHA20 is not set +# CONFIG_CRYPTO_CHACHA20_X86_64 is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set +# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set +# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4 is not set +# CONFIG_CRYPTO_TWOFISH is not set +# CONFIG_CRYPTO_TWOFISH_X86_64 is not set +# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set +# CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=n +CONFIG_CRYPTO_LZO=n +# CONFIG_CRYPTO_842 is not set +# CONFIG_CRYPTO_LZ4 is not set +# CONFIG_CRYPTO_LZ4HC is not set +# CONFIG_CRYPTO_ZSTD is not set + +# +# Random Number Generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +CONFIG_CRYPTO_DRBG_MENU=n +CONFIG_CRYPTO_DRBG_HMAC=n +CONFIG_CRYPTO_DRBG_HASH=n +CONFIG_CRYPTO_DRBG_CTR=n +CONFIG_CRYPTO_DRBG=n +CONFIG_CRYPTO_JITTERENTROPY=n +# CONFIG_CRYPTO_USER_API_HASH is not set +# CONFIG_CRYPTO_USER_API_SKCIPHER is not set +# CONFIG_CRYPTO_USER_API_RNG is not set +# CONFIG_CRYPTO_USER_API_AEAD is not set +CONFIG_CRYPTO_HASH_INFO=n + +# +# Crypto library routines +# +CONFIG_CRYPTO_LIB_AES=n +# CONFIG_CRYPTO_LIB_BLAKE2S is not set +# CONFIG_CRYPTO_LIB_CHACHA is not set +# CONFIG_CRYPTO_LIB_CURVE25519 is not set +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 +# CONFIG_CRYPTO_LIB_POLY1305 is not set +# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set +CONFIG_CRYPTO_LIB_SHA256=n +# CONFIG_CRYPTO_HW is not set +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_X509_CERTIFICATE_PARSER=y +# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set +CONFIG_PKCS7_MESSAGE_PARSER=y +# CONFIG_PKCS7_TEST_KEY is not set +CONFIG_SIGNED_PE_FILE_VERIFICATION=y + +# +# Certificates for signature checking +# +CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSTEM_TRUSTED_KEYS="" +# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set +# CONFIG_SECONDARY_TRUSTED_KEYRING is not set +CONFIG_SYSTEM_BLACKLIST_KEYRING=y +CONFIG_SYSTEM_BLACKLIST_HASH_LIST="" +# end of Certificates for signature checking + +# +# Library routines +# +# CONFIG_PACKING is not set +CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_NET_UTILS=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +# CONFIG_CORDIC is not set +# CONFIG_PRIME_NUMBERS is not set +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IOMAP=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_ARCH_HAS_FAST_MULTIPLIER=y +CONFIG_ARCH_USE_SYM_ANNOTATIONS=y +CONFIG_CRC_CCITT=y +CONFIG_CRC16=y +CONFIG_CRC_T10DIF=y +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +# CONFIG_CRC64 is not set +# CONFIG_CRC4 is not set +# CONFIG_CRC7 is not set +CONFIG_LIBCRC32C=y +# CONFIG_CRC8 is not set +CONFIG_XXHASH=y +# CONFIG_RANDOM32_SELFTEST is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_LZ4_DECOMPRESS=y +CONFIG_ZSTD_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_BZIP2=n +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_DECOMPRESS_LZ4=y +CONFIG_DECOMPRESS_ZSTD=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_XARRAY_MULTI=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HAS_DMA=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y +CONFIG_SWIOTLB=y +CONFIG_DMA_COHERENT_POOL=y +# CONFIG_DMA_API_DEBUG is not set +CONFIG_SGL_ALLOC=y +CONFIG_CPU_RMAP=y +CONFIG_DQL=y +CONFIG_NLATTR=y +CONFIG_CLZ_TAB=y +CONFIG_IRQ_POLL=y +CONFIG_MPILIB=n +CONFIG_OID_REGISTRY=y +CONFIG_HAVE_GENERIC_VDSO=y +CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_GENERIC_VDSO_TIME_NS=y +CONFIG_SG_POOL=y +CONFIG_ARCH_HAS_PMEM_API=y +CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y +CONFIG_ARCH_HAS_COPY_MC=y +CONFIG_ARCH_STACKWALK=y +CONFIG_SBITMAP=y +# CONFIG_STRING_SELFTEST is not set +# end of Library routines + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_CALLER is not set +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 +CONFIG_CONSOLE_LOGLEVEL_QUIET=4 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +# CONFIG_BOOT_PRINTK_DELAY is not set +CONFIG_DYNAMIC_DEBUG=n +CONFIG_DYNAMIC_DEBUG_CORE=n +CONFIG_SYMBOLIC_ERRNAME=y +CONFIG_DEBUG_BUGVERBOSE=n +# end of printk and dmesg options + +# +# Compile-time checks and compiler options +# +# CONFIG_DEBUG_INFO is not set +# CONFIG_ENABLE_MUST_CHECK is not set +CONFIG_FRAME_WARN=2048 +CONFIG_STRIP_ASM_SYMS=y +# CONFIG_READABLE_ASM is not set +# CONFIG_HEADERS_INSTALL is not set +CONFIG_DEBUG_SECTION_MISMATCH=n +CONFIG_SECTION_MISMATCH_WARN_ONLY=y +CONFIG_FRAME_POINTER=y +CONFIG_STACK_VALIDATION=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# end of Compile-time checks and compiler options + +# +# Generic Kernel Debugging Instruments +# +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 +CONFIG_MAGIC_SYSRQ_SERIAL=y +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" +CONFIG_DEBUG_FS=n +CONFIG_DEBUG_FS_ALLOW_ALL=n +# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set +# CONFIG_DEBUG_FS_ALLOW_NONE is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y +# CONFIG_UBSAN is not set +CONFIG_HAVE_ARCH_KCSAN=y +# end of Generic Kernel Debugging Instruments + +CONFIG_DEBUG_KERNEL=n +CONFIG_DEBUG_MISC=n + +# +# Memory Debugging +# +# CONFIG_PAGE_EXTENSION is not set +# CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_PAGE_OWNER is not set +# CONFIG_PAGE_POISONING is not set +# CONFIG_DEBUG_RODATA_TEST is not set +CONFIG_ARCH_HAS_DEBUG_WX=y +# CONFIG_DEBUG_WX is not set +CONFIG_GENERIC_PTDUMP=y +# CONFIG_PTDUMP_DEBUGFS is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_SCHED_STACK_END_CHECK is not set +CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_VM_PGTABLE is not set +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +# CONFIG_DEBUG_VIRTUAL is not set +CONFIG_DEBUG_MEMORY_INIT=n +# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_HAVE_ARCH_KASAN=y +CONFIG_HAVE_ARCH_KASAN_VMALLOC=y +CONFIG_CC_HAS_KASAN_GENERIC=y +# end of Memory Debugging + +# CONFIG_DEBUG_SHIRQ is not set + +# +# Debug Oops, Lockups and Hangs +# +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=0 +# CONFIG_SOFTLOCKUP_DETECTOR is not set +CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y +# CONFIG_HARDLOCKUP_DETECTOR is not set +# CONFIG_DETECT_HUNG_TASK is not set +# CONFIG_WQ_WATCHDOG is not set +# CONFIG_TEST_LOCKUP is not set +# end of Debug Oops, Lockups and Hangs + +# +# Scheduler Debugging +# +# CONFIG_SCHED_DEBUG is not set +CONFIG_SCHED_INFO=y +# CONFIG_SCHEDSTATS is not set +# end of Scheduler Debugging + +# CONFIG_DEBUG_TIMEKEEPING is not set + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +CONFIG_LOCK_DEBUGGING_SUPPORT=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_RWSEMS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +# CONFIG_WW_MUTEX_SELFTEST is not set +# CONFIG_SCF_TORTURE_TEST is not set +# CONFIG_CSD_LOCK_WAIT_DEBUG is not set +# end of Lock Debugging (spinlocks, mutexes, etc...) + +CONFIG_STACKTRACE=y +# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set +# CONFIG_DEBUG_KOBJECT is not set + +# +# Debug kernel data structures +# +CONFIG_DEBUG_LIST=n +# CONFIG_DEBUG_PLIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +CONFIG_BUG_ON_DATA_CORRUPTION=y +# end of Debug kernel data structures + +# CONFIG_DEBUG_CREDENTIALS is not set + +# +# RCU Debugging +# +# CONFIG_RCU_SCALE_TEST is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_REF_SCALE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=59 +# CONFIG_RCU_TRACE is not set +# CONFIG_RCU_EQS_DEBUG is not set +# end of RCU Debugging + +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +# CONFIG_LATENCYTOP is not set +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_FENTRY=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set +# CONFIG_SAMPLES is not set +CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y +CONFIG_STRICT_DEVMEM=y +# CONFIG_IO_STRICT_DEVMEM is not set + +# +# x86 Debugging +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y +CONFIG_X86_VERBOSE_BOOTUP=y +CONFIG_EARLY_PRINTK=y +# CONFIG_DEBUG_TLBFLUSH is not set +CONFIG_HAVE_MMIOTRACE_SUPPORT=y +# CONFIG_X86_DECODER_SELFTEST is not set +CONFIG_IO_DELAY_0X80=y +# CONFIG_IO_DELAY_0XED is not set +# CONFIG_IO_DELAY_UDELAY is not set +# CONFIG_IO_DELAY_NONE is not set +# CONFIG_DEBUG_BOOT_PARAMS is not set +# CONFIG_CPA_DEBUG is not set +# CONFIG_DEBUG_ENTRY is not set +# CONFIG_DEBUG_NMI_SELFTEST is not set +# CONFIG_X86_DEBUG_FPU is not set +# CONFIG_UNWINDER_ORC is not set +CONFIG_UNWINDER_FRAME_POINTER=y +# end of x86 Debugging + +# +# Kernel Testing and Coverage +# +# CONFIG_KUNIT is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +CONFIG_FUNCTION_ERROR_INJECTION=y +# CONFIG_FAULT_INJECTION is not set +CONFIG_ARCH_HAS_KCOV=y +CONFIG_CC_HAS_SANCOV_TRACE_PC=y +# CONFIG_KCOV is not set +CONFIG_RUNTIME_TESTING_MENU=y +# CONFIG_LKDTM is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_TEST_MIN_HEAP is not set +# CONFIG_TEST_SORT is not set +# CONFIG_KPROBES_SANITY_TEST is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_PERCPU_TEST is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_TEST_HEXDUMP is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_STRSCPY is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set +# CONFIG_TEST_BITMAP is not set +# CONFIG_TEST_UUID is not set +# CONFIG_TEST_XARRAY is not set +# CONFIG_TEST_OVERFLOW is not set +# CONFIG_TEST_RHASHTABLE is not set +# CONFIG_TEST_HASH is not set +# CONFIG_TEST_IDA is not set +# CONFIG_TEST_LKM is not set +# CONFIG_TEST_BITOPS is not set +# CONFIG_TEST_VMALLOC is not set +# CONFIG_TEST_USER_COPY is not set +# CONFIG_TEST_BPF is not set +# CONFIG_TEST_BLACKHOLE_DEV is not set +# CONFIG_FIND_BIT_BENCHMARK is not set +# CONFIG_TEST_FIRMWARE is not set +# CONFIG_TEST_SYSCTL is not set +# CONFIG_TEST_UDELAY is not set +# CONFIG_TEST_STATIC_KEYS is not set +# CONFIG_TEST_KMOD is not set +# CONFIG_TEST_MEMCAT_P is not set +# CONFIG_TEST_STACKINIT is not set +# CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_FREE_PAGES is not set +# CONFIG_TEST_FPU is not set +# CONFIG_MEMTEST is not set +# end of Kernel Testing and Coverage +# end of Kernel hacking diff --git a/resources/guest_configs/microvm-kernel-ci-x86_64-5.10.config b/resources/guest_configs/microvm-kernel-ci-x86_64-5.10.config index 7c9357bced8..1d2ad6920e4 100644 --- a/resources/guest_configs/microvm-kernel-ci-x86_64-5.10.config +++ b/resources/guest_configs/microvm-kernel-ci-x86_64-5.10.config @@ -2,13 +2,16 @@ # Automatically generated file; DO NOT EDIT. # Linux/x86 5.10.0 Kernel Configuration # -CONFIG_CC_VERSION_TEXT="gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-13)" +CONFIG_CC_VERSION_TEXT="gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-17)" CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=70301 CONFIG_LD_VERSION=229010000 CONFIG_CLANG_VERSION=0 +CONFIG_AS_IS_GNU=y +CONFIG_AS_VERSION=22901 CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y +CONFIG_CC_CAN_LINK_STATIC=y CONFIG_CC_HAS_ASM_GOTO=y CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_TABLE_SORT=y @@ -23,7 +26,7 @@ CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_BUILD_SALT="" CONFIG_HAVE_KERNEL_GZIP=y -CONFIG_HAVE_KERNEL_BZIP2=n +CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y @@ -46,9 +49,8 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y # CONFIG_WATCH_QUEUE is not set CONFIG_CROSS_MEMORY_ATTACH=y # CONFIG_USELIB is not set -CONFIG_AUDIT=n -CONFIG_HAVE_ARCH_AUDITSYSCALL=n -CONFIG_AUDITSYSCALL=n +# CONFIG_AUDIT is not set +CONFIG_HAVE_ARCH_AUDITSYSCALL=y # # IRQ subsystem @@ -65,7 +67,6 @@ CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y CONFIG_GENERIC_IRQ_RESERVATION_MODE=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y -# CONFIG_GENERIC_IRQ_DEBUGFS is not set # end of IRQ subsystem CONFIG_CLOCKSOURCE_WATCHDOG=y @@ -126,7 +127,6 @@ CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y # end of RCU Subsystem -CONFIG_BUILD_BIN2C=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_IKHEADERS is not set @@ -168,7 +168,6 @@ CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y CONFIG_CGROUP_BPF=y -# CONFIG_CGROUP_DEBUG is not set CONFIG_SOCK_CGROUP_DATA=y CONFIG_NAMESPACES=y CONFIG_UTS_NS=y @@ -184,7 +183,7 @@ CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y -CONFIG_RD_BZIP2=n +# CONFIG_RD_BZIP2 is not set CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y @@ -222,18 +221,15 @@ CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_IO_URING=y CONFIG_ADVISE_SYSCALLS=y -CONFIG_HAVE_ARCH_USERFAULTFD_WP=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_BPF_SYSCALL=y CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y -CONFIG_BPF_JIT_ALWAYS_ON=y -CONFIG_BPF_JIT_DEFAULT_ON=y +# CONFIG_BPF_UNPRIV_DEFAULT_OFF is not set # CONFIG_BPF_PRELOAD is not set -CONFIG_USERFAULTFD=n +# CONFIG_USERFAULTFD is not set CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_RSEQ=y # CONFIG_EMBEDDED is not set @@ -243,7 +239,6 @@ CONFIG_HAVE_PERF_EVENTS=y # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set # end of Kernel Performance Events And Counters CONFIG_VM_EVENT_COUNTERS=y @@ -256,13 +251,12 @@ CONFIG_SLAB_MERGE_DEFAULT=y CONFIG_SLAB_FREELIST_HARDENED=y # CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set CONFIG_SLUB_CPU_PARTIAL=y -CONFIG_SYSTEM_DATA_VERIFICATION=y CONFIG_PROFILING=y # end of General setup CONFIG_64BIT=y CONFIG_X86_64=y -CONFIG_X86=n +CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf64-x86-64" CONFIG_LOCKDEP_SUPPORT=y @@ -287,12 +281,11 @@ CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ZONE_DMA32=y -CONFIG_AUDIT_ARCH=n +CONFIG_AUDIT_ARCH=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y -CONFIG_DYNAMIC_PHYSICAL_MASK=y CONFIG_PGTABLE_LEVELS=4 CONFIG_CC_HAS_SANE_STACKPROTECTOR=y @@ -303,16 +296,16 @@ CONFIG_ZONE_DMA=y CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_X2APIC=y -CONFIG_X86_MPPARSE=y +# CONFIG_X86_MPPARSE is not set # CONFIG_GOLDFISH is not set -CONFIG_RETPOLINE=y # CONFIG_X86_CPU_RESCTRL is not set # CONFIG_X86_EXTENDED_PLATFORM is not set +# CONFIG_X86_INTEL_LPSS is not set # CONFIG_X86_AMD_PLATFORM_DEVICE is not set +# CONFIG_IOSF_MBI is not set CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_HYPERVISOR_GUEST=y CONFIG_PARAVIRT=y -# CONFIG_PARAVIRT_DEBUG is not set CONFIG_PARAVIRT_SPINLOCKS=y CONFIG_X86_HV_CALLBACK_VECTOR=y # CONFIG_XEN is not set @@ -321,6 +314,7 @@ CONFIG_ARCH_CPUIDLE_HALTPOLL=y # CONFIG_PVH is not set CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT_CLOCK=y +# CONFIG_JAILHOUSE_GUEST is not set # CONFIG_ACRN_GUEST is not set # CONFIG_MK8 is not set # CONFIG_MPSC is not set @@ -343,7 +337,7 @@ CONFIG_CPU_SUP_CENTAUR=y CONFIG_CPU_SUP_ZHAOXIN=y CONFIG_HPET_TIMER=y CONFIG_DMI=y -# CONFIG_MAXSMP is not set +# CONFIG_GART_IOMMU is not set CONFIG_NR_CPUS_RANGE_BEGIN=2 CONFIG_NR_CPUS_RANGE_END=512 CONFIG_NR_CPUS_DEFAULT=64 @@ -359,6 +353,9 @@ CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y # # Performance monitoring # +CONFIG_PERF_EVENTS_INTEL_UNCORE=y +CONFIG_PERF_EVENTS_INTEL_RAPL=y +CONFIG_PERF_EVENTS_INTEL_CSTATE=y # CONFIG_PERF_EVENTS_AMD_POWER is not set # end of Performance monitoring @@ -366,16 +363,15 @@ CONFIG_X86_16BIT=y CONFIG_X86_ESPFIX64=y CONFIG_X86_VSYSCALL_EMULATION=y CONFIG_X86_IOPL_IOPERM=y -# CONFIG_I8K is not set # CONFIG_MICROCODE is not set CONFIG_X86_MSR=y CONFIG_X86_CPUID=y # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y -# CONFIG_X86_CPA_STATISTICS is not set -CONFIG_AMD_MEM_ENCRYPT=n -# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set +# CONFIG_AMD_MEM_ENCRYPT is not set CONFIG_NUMA=y +CONFIG_AMD_NUMA=y +CONFIG_X86_64_ACPI_NUMA=y # CONFIG_NUMA_EMU is not set CONFIG_NODES_SHIFT=10 CONFIG_ARCH_SPARSEMEM_ENABLE=y @@ -397,7 +393,7 @@ CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_ARCH_RANDOM=y CONFIG_X86_SMAP=y CONFIG_X86_UMIP=y -CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=n +# CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS is not set CONFIG_X86_INTEL_TSX_MODE_OFF=y # CONFIG_X86_INTEL_TSX_MODE_ON is not set # CONFIG_X86_INTEL_TSX_MODE_AUTO is not set @@ -409,9 +405,6 @@ CONFIG_HZ_250=y CONFIG_HZ=250 CONFIG_SCHED_HRTICK=y # CONFIG_KEXEC is not set -CONFIG_KEXEC_FILE=y -CONFIG_ARCH_HAS_KEXEC_PURGATORY=y -# CONFIG_KEXEC_SIG is not set # CONFIG_CRASH_DUMP is not set CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y @@ -429,6 +422,16 @@ CONFIG_MODIFY_LDT_SYSCALL=y CONFIG_HAVE_LIVEPATCH=y # end of Processor type and features +CONFIG_CC_HAS_RETURN_THUNK=y +CONFIG_SPECULATION_MITIGATIONS=y +CONFIG_PAGE_TABLE_ISOLATION=y +CONFIG_RETPOLINE=y +CONFIG_RETHUNK=y +CONFIG_CPU_UNRET_ENTRY=y +CONFIG_CPU_IBPB_ENTRY=y +CONFIG_CPU_IBRS_ENTRY=y +CONFIG_CPU_SRSO=y +# CONFIG_GDS_FORCE_MITIGATION is not set CONFIG_ARCH_HAS_ADD_PAGES=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y @@ -442,53 +445,56 @@ CONFIG_ARCH_ENABLE_THP_MIGRATION=y # CONFIG_ARCH_HIBERNATION_HEADER=y # CONFIG_SUSPEND is not set -CONFIG_HIBERNATE_CALLBACKS=n -CONFIG_HIBERNATION=n -CONFIG_HIBERNATION_SNAPSHOT_DEV=n +CONFIG_HIBERNATE_CALLBACKS=y +CONFIG_HIBERNATION=y +CONFIG_HIBERNATION_SNAPSHOT_DEV=y CONFIG_PM_STD_PARTITION="" -CONFIG_PM_SLEEP=n -CONFIG_PM_SLEEP_SMP=n +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set -CONFIG_PM=n +CONFIG_PM=y # CONFIG_PM_DEBUG is not set +CONFIG_PM_CLK=y # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set # CONFIG_ENERGY_MODEL is not set CONFIG_ARCH_SUPPORTS_ACPI=y -CONFIG_ACPI=n -CONFIG_ACPI_LEGACY_TABLES_LOOKUP=n +CONFIG_ACPI=y +CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y -CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=n +CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y # CONFIG_ACPI_DEBUGGER is not set -CONFIG_ACPI_SPCR_TABLE=n -CONFIG_ACPI_LPIT=n -CONFIG_ACPI_SLEEP=n -CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=n +CONFIG_ACPI_SPCR_TABLE=y +CONFIG_ACPI_LPIT=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y # CONFIG_ACPI_EC_DEBUGFS is not set -CONFIG_ACPI_AC=n -CONFIG_ACPI_BATTERY=n -CONFIG_ACPI_BUTTON=n -CONFIG_ACPI_FAN=n +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_FAN=y # CONFIG_ACPI_TAD is not set # CONFIG_ACPI_DOCK is not set -CONFIG_ACPI_CPU_FREQ_PSS=n -CONFIG_ACPI_PROCESSOR_CSTATE=n -CONFIG_ACPI_PROCESSOR_IDLE=n -CONFIG_ACPI_CPPC_LIB=n -CONFIG_ACPI_PROCESSOR=n -CONFIG_ACPI_HOTPLUG_CPU=n +CONFIG_ACPI_CPU_FREQ_PSS=y +CONFIG_ACPI_PROCESSOR_CSTATE=y +CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set -CONFIG_ACPI_THERMAL=n +CONFIG_ACPI_THERMAL=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y -CONFIG_ACPI_TABLE_UPGRADE=n +CONFIG_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set -CONFIG_ACPI_CONTAINER=n +# CONFIG_ACPI_PCI_SLOT is not set +CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_HOTPLUG_MEMORY is not set +CONFIG_ACPI_HOTPLUG_IOAPIC=y # CONFIG_ACPI_SBS is not set # CONFIG_ACPI_HED is not set -# CONFIG_ACPI_CUSTOM_METHOD is not set # CONFIG_ACPI_NFIT is not set -# CONFIG_ACPI_NUMA is not set +CONFIG_ACPI_NUMA=y +# CONFIG_ACPI_HMAT is not set CONFIG_HAVE_ACPI_APEI=y CONFIG_HAVE_ACPI_APEI_NMI=y # CONFIG_ACPI_APEI is not set @@ -546,7 +552,11 @@ CONFIG_INTEL_IDLE=y # # Bus options (PCI etc.) # +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_MMCONF_FAM10H=y CONFIG_ISA_DMA_API=y +CONFIG_AMD_NB=y # CONFIG_X86_SYSFB is not set # end of Bus options (PCI etc.) @@ -569,7 +579,6 @@ CONFIG_FIRMWARE_MEMMAP=y CONFIG_DMIID=y # CONFIG_DMI_SYSFS is not set CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y -# CONFIG_ISCSI_IBFT is not set # CONFIG_FW_CFG_SYSFS is not set # CONFIG_GOOGLE_FIRMWARE is not set @@ -589,20 +598,16 @@ CONFIG_AS_SHA256_NI=y # General architecture-dependent options # CONFIG_CRASH_CORE=y -CONFIG_KEXEC_CORE=y CONFIG_HOTPLUG_SMT=y CONFIG_GENERIC_ENTRY=y # CONFIG_OPROFILE is not set CONFIG_HAVE_OPROFILE=y CONFIG_OPROFILE_NMI_TIMER=y -CONFIG_KPROBES=y CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set # CONFIG_STATIC_CALL_SELFTEST is not set -CONFIG_OPTPROBES=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y -CONFIG_KRETPROBES=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y @@ -616,6 +621,7 @@ CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_HAS_SET_DIRECT_MAP=y +CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_HAVE_ASM_MODVERSIONS=y @@ -641,8 +647,7 @@ CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y CONFIG_HAVE_ARCH_SECCOMP=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y -CONFIG_SECCOMP=n -CONFIG_SECCOMP_FILTER=n +# CONFIG_SECCOMP is not set CONFIG_HAVE_ARCH_STACKLEAK=y CONFIG_HAVE_STACKPROTECTOR=y CONFIG_STACKPROTECTOR=y @@ -658,7 +663,7 @@ CONFIG_HAVE_ARCH_HUGE_VMAP=y CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_HAVE_ARCH_SOFT_DIRTY=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y -CONFIG_MODULES_USE_ELF_RELA=n +CONFIG_MODULES_USE_ELF_RELA=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_HAVE_EXIT_THREAD=y @@ -676,10 +681,7 @@ CONFIG_VMAP_STACK=y CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y -CONFIG_STRICT_MODULE_RWX=y CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y -CONFIG_ARCH_USE_MEMREMAP_PROT=y -# CONFIG_LOCK_EVENT_COUNTS is not set CONFIG_ARCH_HAS_MEM_ENCRYPT=y CONFIG_HAVE_STATIC_CALL=y CONFIG_HAVE_STATIC_CALL_INLINE=y @@ -688,7 +690,6 @@ CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y # # GCOV-based kernel profiling # -# CONFIG_GCOV_KERNEL is not set CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y # end of GCOV-based kernel profiling @@ -697,33 +698,13 @@ CONFIG_HAVE_GCC_PLUGINS=y CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 -CONFIG_MODULE_SIG_FORMAT=n -CONFIG_MODULES=n -CONFIG_MODULE_FORCE_LOAD=n -CONFIG_MODULE_UNLOAD=n -# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_MODVERSIONS=n -CONFIG_ASM_MODVERSIONS=y -CONFIG_MODULE_SRCVERSION_ALL=n -CONFIG_MODULE_SIG=n -# CONFIG_MODULE_SIG_FORCE is not set -CONFIG_MODULE_SIG_ALL=n -# CONFIG_MODULE_SIG_SHA1 is not set -# CONFIG_MODULE_SIG_SHA224 is not set -# CONFIG_MODULE_SIG_SHA256 is not set -# CONFIG_MODULE_SIG_SHA384 is not set -CONFIG_MODULE_SIG_SHA512=n -CONFIG_MODULE_SIG_HASH="sha512" -# CONFIG_MODULE_COMPRESS is not set -# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set -CONFIG_UNUSED_SYMBOLS=y -CONFIG_MODULES_TREE_LOOKUP=n +# CONFIG_MODULES is not set +CONFIG_MODULES_TREE_LOOKUP=y CONFIG_BLOCK=y -CONFIG_BLK_SCSI_REQUEST=n CONFIG_BLK_CGROUP_RWSTAT=y -CONFIG_BLK_DEV_BSG=n -CONFIG_BLK_DEV_BSGLIB=n -CONFIG_BLK_DEV_INTEGRITY=n +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_INTEGRITY is not set # CONFIG_BLK_DEV_ZONED is not set CONFIG_BLK_DEV_THROTTLING=y # CONFIG_BLK_DEV_THROTTLING_LOW is not set @@ -732,7 +713,6 @@ CONFIG_BLK_WBT=y # CONFIG_BLK_CGROUP_IOLATENCY is not set # CONFIG_BLK_CGROUP_IOCOST is not set CONFIG_BLK_WBT_MQ=y -CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_SED_OPAL is not set # CONFIG_BLK_INLINE_ENCRYPTION is not set @@ -762,6 +742,7 @@ CONFIG_MSDOS_PARTITION=y # end of Partition Types CONFIG_BLOCK_COMPAT=y +CONFIG_BLK_MQ_PCI=y CONFIG_BLK_MQ_VIRTIO=y CONFIG_BLK_PM=y @@ -773,7 +754,6 @@ CONFIG_BLK_PM=y # CONFIG_IOSCHED_BFQ is not set # end of IO Schedulers -CONFIG_ASN1=n CONFIG_INLINE_SPIN_UNLOCK_IRQ=y CONFIG_INLINE_READ_UNLOCK=y CONFIG_INLINE_READ_UNLOCK_IRQ=y @@ -843,17 +823,14 @@ CONFIG_CLEANCACHE=y CONFIG_FRONTSWAP=y # CONFIG_CMA is not set # CONFIG_ZSWAP is not set -CONFIG_ZPOOL=n +# CONFIG_ZPOOL is not set # CONFIG_ZBUD is not set -# CONFIG_Z3FOLD is not set # CONFIG_ZSMALLOC is not set CONFIG_GENERIC_EARLY_IOREMAP=y # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set CONFIG_ARCH_HAS_PTE_DEVMAP=y # CONFIG_ZONE_DEVICE is not set -CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y -CONFIG_ARCH_HAS_PKEYS=n CONFIG_PERCPU_STATS=y # CONFIG_GUP_BENCHMARK is not set # CONFIG_READ_ONLY_THP_FOR_FS is not set @@ -861,8 +838,6 @@ CONFIG_ARCH_HAS_PTE_SPECIAL=y # end of Memory Management options CONFIG_NET=y -CONFIG_NET_INGRESS=y -CONFIG_SKB_EXTENSIONS=y # # Networking options @@ -873,14 +848,7 @@ CONFIG_UNIX=y CONFIG_UNIX_SCM=y # CONFIG_UNIX_DIAG is not set # CONFIG_TLS is not set -CONFIG_XFRM=n -CONFIG_XFRM_ALGO=n -CONFIG_XFRM_USER=n -# CONFIG_XFRM_USER_COMPAT is not set -# CONFIG_XFRM_INTERFACE is not set -CONFIG_XFRM_SUB_POLICY=n -CONFIG_XFRM_MIGRATE=n -CONFIG_XFRM_STATISTICS=n +# CONFIG_XFRM_USER is not set # CONFIG_NET_KEY is not set # CONFIG_XDP_SOCKETS is not set CONFIG_INET=y @@ -907,6 +875,7 @@ CONFIG_SYN_COOKIES=y # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set +CONFIG_INET_TABLE_PERTURB_ORDER=16 # CONFIG_INET_DIAG is not set CONFIG_TCP_CONG_ADVANCED=y # CONFIG_TCP_CONG_BIC is not set @@ -929,209 +898,12 @@ CONFIG_DEFAULT_CUBIC=y # CONFIG_DEFAULT_RENO is not set CONFIG_DEFAULT_TCP_CONG="cubic" CONFIG_TCP_MD5SIG=y -CONFIG_IPV6=n -CONFIG_IPV6_ROUTER_PREF=n -CONFIG_IPV6_ROUTE_INFO=n -CONFIG_IPV6_OPTIMISTIC_DAD=n -# CONFIG_INET6_AH is not set -# CONFIG_INET6_ESP is not set -# CONFIG_INET6_IPCOMP is not set -# CONFIG_IPV6_MIP6 is not set -# CONFIG_IPV6_ILA is not set -# CONFIG_IPV6_VTI is not set -# CONFIG_IPV6_SIT is not set -# CONFIG_IPV6_TUNNEL is not set -CONFIG_IPV6_MULTIPLE_TABLES=n -CONFIG_IPV6_SUBTREES=n -CONFIG_IPV6_MROUTE=n -CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=n -CONFIG_IPV6_PIMSM_V2=n -CONFIG_IPV6_SEG6_LWTUNNEL=n -CONFIG_IPV6_SEG6_HMAC=n -CONFIG_IPV6_SEG6_BPF=n -# CONFIG_IPV6_RPL_LWTUNNEL is not set -CONFIG_NETLABEL=n +# CONFIG_IPV6 is not set # CONFIG_MPTCP is not set CONFIG_NETWORK_SECMARK=y CONFIG_NET_PTP_CLASSIFY=y CONFIG_NETWORK_PHY_TIMESTAMPING=y -CONFIG_NETFILTER=n -CONFIG_NETFILTER_ADVANCED=n -CONFIG_BRIDGE_NETFILTER=y - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_INGRESS=n -CONFIG_NETFILTER_FAMILY_BRIDGE=n -# CONFIG_NETFILTER_NETLINK_ACCT is not set -# CONFIG_NETFILTER_NETLINK_QUEUE is not set -# CONFIG_NETFILTER_NETLINK_LOG is not set -# CONFIG_NETFILTER_NETLINK_OSF is not set -CONFIG_NF_CONNTRACK=n -CONFIG_NF_LOG_COMMON=n -# CONFIG_NF_LOG_NETDEV is not set -CONFIG_NF_CONNTRACK_MARK=n -CONFIG_NF_CONNTRACK_SECMARK=n -# CONFIG_NF_CONNTRACK_ZONES is not set -CONFIG_NF_CONNTRACK_PROCFS=n -CONFIG_NF_CONNTRACK_EVENTS=n -CONFIG_NF_CONNTRACK_TIMEOUT=n -CONFIG_NF_CONNTRACK_TIMESTAMP=n -# CONFIG_NF_CONNTRACK_LABELS is not set -CONFIG_NF_CT_PROTO_DCCP=n -CONFIG_NF_CT_PROTO_SCTP=n -CONFIG_NF_CT_PROTO_UDPLITE=n -# CONFIG_NF_CONNTRACK_AMANDA is not set -# CONFIG_NF_CONNTRACK_FTP is not set -# CONFIG_NF_CONNTRACK_H323 is not set -# CONFIG_NF_CONNTRACK_IRC is not set -# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set -# CONFIG_NF_CONNTRACK_SNMP is not set -# CONFIG_NF_CONNTRACK_PPTP is not set -# CONFIG_NF_CONNTRACK_SANE is not set -# CONFIG_NF_CONNTRACK_SIP is not set -# CONFIG_NF_CONNTRACK_TFTP is not set -# CONFIG_NF_CT_NETLINK is not set -# CONFIG_NF_CT_NETLINK_TIMEOUT is not set -CONFIG_NF_NAT=n -CONFIG_NF_NAT_REDIRECT=n -CONFIG_NF_NAT_MASQUERADE=n -CONFIG_NETFILTER_SYNPROXY=n -# CONFIG_NF_TABLES is not set -CONFIG_NETFILTER_XTABLES=n - -# -# Xtables combined modules -# -# CONFIG_NETFILTER_XT_MARK is not set -# CONFIG_NETFILTER_XT_CONNMARK is not set - -# -# Xtables targets -# -# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set -# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set -# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set -# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set -# CONFIG_NETFILTER_XT_TARGET_CONNSECMARK is not set -# CONFIG_NETFILTER_XT_TARGET_DSCP is not set -# CONFIG_NETFILTER_XT_TARGET_HL is not set -# CONFIG_NETFILTER_XT_TARGET_HMARK is not set -# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set -# CONFIG_NETFILTER_XT_TARGET_LOG is not set -# CONFIG_NETFILTER_XT_TARGET_MARK is not set -CONFIG_NETFILTER_XT_NAT=n -CONFIG_NETFILTER_XT_TARGET_NETMAP=n -# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set -# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set -# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set -CONFIG_NETFILTER_XT_TARGET_REDIRECT=n -CONFIG_NETFILTER_XT_TARGET_MASQUERADE=n -# CONFIG_NETFILTER_XT_TARGET_TEE is not set -# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set -# CONFIG_NETFILTER_XT_TARGET_SECMARK is not set -# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set -# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set - -# -# Xtables matches -# -CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=n -# CONFIG_NETFILTER_XT_MATCH_BPF is not set -# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set -# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set -# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set -# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set -# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set -# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=n -# CONFIG_NETFILTER_XT_MATCH_CPU is not set -# CONFIG_NETFILTER_XT_MATCH_DCCP is not set -# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set -# CONFIG_NETFILTER_XT_MATCH_DSCP is not set -# CONFIG_NETFILTER_XT_MATCH_ECN is not set -# CONFIG_NETFILTER_XT_MATCH_ESP is not set -# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_HELPER is not set -# CONFIG_NETFILTER_XT_MATCH_HL is not set -# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set -# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set -# CONFIG_NETFILTER_XT_MATCH_L2TP is not set -# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set -# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_MAC is not set -# CONFIG_NETFILTER_XT_MATCH_MARK is not set -# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set -# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set -# CONFIG_NETFILTER_XT_MATCH_OSF is not set -# CONFIG_NETFILTER_XT_MATCH_OWNER is not set -# CONFIG_NETFILTER_XT_MATCH_POLICY is not set -# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set -# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set -# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set -# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set -# CONFIG_NETFILTER_XT_MATCH_REALM is not set -# CONFIG_NETFILTER_XT_MATCH_RECENT is not set -# CONFIG_NETFILTER_XT_MATCH_SCTP is not set -# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set -# CONFIG_NETFILTER_XT_MATCH_STATE is not set -# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set -# CONFIG_NETFILTER_XT_MATCH_STRING is not set -# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set -# CONFIG_NETFILTER_XT_MATCH_TIME is not set -# CONFIG_NETFILTER_XT_MATCH_U32 is not set -# end of Core Netfilter Configuration - -# CONFIG_IP_SET is not set -# CONFIG_IP_VS is not set - -# -# IP: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV4=n -# CONFIG_NF_SOCKET_IPV4 is not set -# CONFIG_NF_TPROXY_IPV4 is not set -# CONFIG_NF_DUP_IPV4 is not set -CONFIG_NF_LOG_ARP=n -CONFIG_NF_LOG_IPV4=n -CONFIG_NF_REJECT_IPV4=n -CONFIG_IP_NF_IPTABLES=y -# CONFIG_IP_NF_MATCH_AH is not set -# CONFIG_IP_NF_MATCH_ECN is not set -# CONFIG_IP_NF_MATCH_RPFILTER is not set -# CONFIG_IP_NF_MATCH_TTL is not set -CONFIG_IP_NF_FILTER=y -CONFIG_IP_NF_TARGET_REJECT=y -CONFIG_IP_NF_TARGET_SYNPROXY=y -CONFIG_IP_NF_NAT=y -CONFIG_IP_NF_TARGET_MASQUERADE=y -CONFIG_IP_NF_TARGET_NETMAP=y -CONFIG_IP_NF_TARGET_REDIRECT=y -CONFIG_IP_NF_MANGLE=y -# CONFIG_IP_NF_TARGET_CLUSTERIP is not set -# CONFIG_IP_NF_TARGET_ECN is not set -# CONFIG_IP_NF_TARGET_TTL is not set -# CONFIG_IP_NF_RAW is not set -# CONFIG_IP_NF_SECURITY is not set -# CONFIG_IP_NF_ARPTABLES is not set -# end of IP: Netfilter Configuration - -# -# IPv6: Netfilter Configuration -# -# CONFIG_NF_SOCKET_IPV6 is not set -# CONFIG_NF_TPROXY_IPV6 is not set -# CONFIG_NF_DUP_IPV6 is not set -# CONFIG_NF_REJECT_IPV6 is not set -# CONFIG_NF_LOG_IPV6 is not set -# CONFIG_IP6_NF_IPTABLES is not set -# end of IPv6: Netfilter Configuration - -CONFIG_NF_DEFRAG_IPV6=n -# CONFIG_NF_CONNTRACK_BRIDGE is not set -# CONFIG_BRIDGE_NF_EBTABLES is not set +# CONFIG_NETFILTER is not set # CONFIG_BPFILTER is not set # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set @@ -1146,14 +918,12 @@ CONFIG_BRIDGE_IGMP_SNOOPING=y CONFIG_HAVE_NET_DSA=y # CONFIG_NET_DSA is not set # CONFIG_VLAN_8021Q is not set -# CONFIG_DECNET is not set CONFIG_LLC=y # CONFIG_LLC2 is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_PHONET is not set -# CONFIG_6LOWPAN is not set # CONFIG_IEEE802154 is not set CONFIG_NET_SCHED=y @@ -1197,12 +967,9 @@ CONFIG_NET_SCHED=y # CONFIG_NET_CLS=y # CONFIG_NET_CLS_BASIC is not set -# CONFIG_NET_CLS_TCINDEX is not set # CONFIG_NET_CLS_ROUTE4 is not set # CONFIG_NET_CLS_FW is not set # CONFIG_NET_CLS_U32 is not set -# CONFIG_NET_CLS_RSVP is not set -# CONFIG_NET_CLS_RSVP6 is not set # CONFIG_NET_CLS_FLOW is not set # CONFIG_NET_CLS_CGROUP is not set # CONFIG_NET_CLS_BPF is not set @@ -1215,13 +982,11 @@ CONFIG_NET_EMATCH_STACK=32 # CONFIG_NET_EMATCH_U32 is not set # CONFIG_NET_EMATCH_META is not set # CONFIG_NET_EMATCH_TEXT is not set -# CONFIG_NET_EMATCH_IPT is not set CONFIG_NET_CLS_ACT=y # CONFIG_NET_ACT_POLICE is not set # CONFIG_NET_ACT_GACT is not set # CONFIG_NET_ACT_MIRRED is not set # CONFIG_NET_ACT_SAMPLE is not set -# CONFIG_NET_ACT_IPT is not set # CONFIG_NET_ACT_NAT is not set # CONFIG_NET_ACT_PEDIT is not set # CONFIG_NET_ACT_SIMP is not set @@ -1230,16 +995,13 @@ CONFIG_NET_CLS_ACT=y # CONFIG_NET_ACT_MPLS is not set # CONFIG_NET_ACT_VLAN is not set # CONFIG_NET_ACT_BPF is not set -# CONFIG_NET_ACT_CONNMARK is not set -# CONFIG_NET_ACT_CTINFO is not set # CONFIG_NET_ACT_SKBMOD is not set # CONFIG_NET_ACT_IFE is not set # CONFIG_NET_ACT_TUNNEL_KEY is not set # CONFIG_NET_ACT_GATE is not set # CONFIG_NET_TC_SKB_EXT is not set CONFIG_NET_SCH_FIFO=y -CONFIG_DCB=n -# CONFIG_DNS_RESOLVER is not set +# CONFIG_DCB is not set # CONFIG_BATMAN_ADV is not set # CONFIG_OPENVSWITCH is not set CONFIG_VSOCKETS=y @@ -1248,9 +1010,7 @@ CONFIG_VSOCKETS_LOOPBACK=y CONFIG_VIRTIO_VSOCKETS=y CONFIG_VIRTIO_VSOCKETS_COMMON=y # CONFIG_NETLINK_DIAG is not set -CONFIG_MPLS=n -# CONFIG_NET_MPLS_GSO is not set -# CONFIG_MPLS_ROUTING is not set +# CONFIG_MPLS is not set # CONFIG_NET_NSH is not set # CONFIG_HSR is not set # CONFIG_NET_SWITCHDEV is not set @@ -1264,7 +1024,6 @@ CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y -CONFIG_BPF_JIT=y CONFIG_BPF_STREAM_PARSER=y CONFIG_NET_FLOW_LIMIT=y @@ -1293,8 +1052,6 @@ CONFIG_FIB_RULES=y # CONFIG_NET_IFE is not set CONFIG_LWTUNNEL=y CONFIG_LWTUNNEL_BPF=y -CONFIG_DST_CACHE=y -CONFIG_GRO_CELLS=y CONFIG_NET_SOCK_MSG=y CONFIG_FAILOVER=y CONFIG_ETHTOOL_NETLINK=y @@ -1306,8 +1063,59 @@ CONFIG_HAVE_EBPF_JIT=y CONFIG_HAVE_EISA=y # CONFIG_EISA is not set CONFIG_HAVE_PCI=y -# CONFIG_PCI is not set +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +# CONFIG_PCIEPORTBUS is not set +CONFIG_PCIEASPM=y +CONFIG_PCIEASPM_DEFAULT=y +# CONFIG_PCIEASPM_POWERSAVE is not set +# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set +# CONFIG_PCIEASPM_PERFORMANCE is not set +# CONFIG_PCIE_PTM is not set +# CONFIG_PCI_MSI is not set +CONFIG_PCI_QUIRKS=y +# CONFIG_PCI_STUB is not set +CONFIG_PCI_LOCKLESS_CONFIG=y +# CONFIG_PCI_IOV is not set +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set +CONFIG_PCI_LABEL=y +# CONFIG_HOTPLUG_PCI is not set + +# +# PCI controller drivers +# + +# +# DesignWare PCI Core Support +# +# end of DesignWare PCI Core Support + +# +# Mobiveil PCIe Core Support +# +# end of Mobiveil PCIe Core Support + +# +# Cadence PCIe controllers support +# +# end of Cadence PCIe controllers support +# end of PCI controller drivers + +# +# PCI Endpoint +# +# CONFIG_PCI_ENDPOINT is not set +# end of PCI Endpoint + +# +# PCI switch controller drivers +# +# CONFIG_PCI_SW_SWITCHTEC is not set +# end of PCI switch controller drivers + # CONFIG_PCCARD is not set +# CONFIG_RAPIDIO is not set # # Generic Driver Options @@ -1322,7 +1130,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y # # Firmware loader # -CONFIG_FW_LOADER=n +CONFIG_FW_LOADER=y CONFIG_EXTRA_FIRMWARE="" # CONFIG_FW_LOADER_USER_HELPER is not set # CONFIG_FW_LOADER_COMPRESS is not set @@ -1330,10 +1138,6 @@ CONFIG_FW_CACHE=y # end of Firmware loader CONFIG_ALLOW_DEV_COREDUMP=y -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set -# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_VULNERABILITIES=y CONFIG_DMA_SHARED_BUFFER=y @@ -1363,29 +1167,40 @@ CONFIG_PNPACPI=y CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_NULL_BLK is not set # CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +# CONFIG_BLK_DEV_UMEM is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_DRBD is not set # CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_SKD is not set # CONFIG_BLK_DEV_RAM is not set # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set CONFIG_VIRTIO_BLK=y # CONFIG_BLK_DEV_RBD is not set +# CONFIG_BLK_DEV_RSXX is not set # # NVME Support # +# CONFIG_BLK_DEV_NVME is not set # CONFIG_NVME_FC is not set +# CONFIG_NVME_TCP is not set # end of NVME Support # # Misc devices # # CONFIG_DUMMY_IRQ is not set +# CONFIG_IBM_ASM is not set +# CONFIG_PHANTOM is not set +# CONFIG_TIFM_CORE is not set # CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_HP_ILO is not set # CONFIG_SRAM is not set +# CONFIG_PCI_ENDPOINT_TEST is not set # CONFIG_XILINX_SDFEC is not set # CONFIG_PVPANIC is not set # CONFIG_C2PORT is not set @@ -1396,6 +1211,8 @@ CONFIG_VIRTIO_BLK=y # CONFIG_EEPROM_93CX6 is not set # end of EEPROM support +# CONFIG_CB710_CORE is not set + # # Texas Instruments shared transport line discipline # @@ -1404,7 +1221,15 @@ CONFIG_VIRTIO_BLK=y # # Altera FPGA firmware download module (requires I2C) # +# CONFIG_INTEL_MEI is not set +# CONFIG_INTEL_MEI_ME is not set +# CONFIG_INTEL_MEI_TXE is not set +# CONFIG_VMWARE_VMCI is not set +# CONFIG_GENWQE is not set # CONFIG_ECHO is not set +# CONFIG_MISC_ALCOR_PCI is not set +# CONFIG_MISC_RTSX_PCI is not set +# CONFIG_HABANA_AI is not set # end of Misc devices CONFIG_HAVE_IDE=y @@ -1413,47 +1238,23 @@ CONFIG_HAVE_IDE=y # # SCSI device support # -CONFIG_SCSI_MOD=n +CONFIG_SCSI_MOD=y # CONFIG_RAID_ATTRS is not set -CONFIG_SCSI=n -CONFIG_SCSI_DMA=n -CONFIG_SCSI_PROC_FS=n - -# -# SCSI support type (disk, tape, CD-ROM) -# -# CONFIG_BLK_DEV_SD is not set -# CONFIG_CHR_DEV_ST is not set -# CONFIG_BLK_DEV_SR is not set -# CONFIG_CHR_DEV_SG is not set -# CONFIG_CHR_DEV_SCH is not set -CONFIG_SCSI_CONSTANTS=n -CONFIG_SCSI_LOGGING=n -CONFIG_SCSI_SCAN_ASYNC=n - -# -# SCSI Transports -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set -CONFIG_SCSI_ISCSI_ATTRS=n -# CONFIG_SCSI_SAS_ATTRS is not set -# CONFIG_SCSI_SAS_LIBSAS is not set -# CONFIG_SCSI_SRP_ATTRS is not set -# end of SCSI Transports - -CONFIG_SCSI_LOWLEVEL=n -CONFIG_ISCSI_TCP=n -# CONFIG_ISCSI_BOOT_SYSFS is not set -# CONFIG_SCSI_UFSHCD is not set -# CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_VIRTIO is not set -# CONFIG_SCSI_DH is not set +# CONFIG_SCSI is not set # end of SCSI device support # CONFIG_ATA is not set # CONFIG_MD is not set # CONFIG_TARGET_CORE is not set +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +# CONFIG_FIREWIRE_NOSY is not set +# end of IEEE 1394 (FireWire) support + # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y CONFIG_NET_CORE=y @@ -1461,7 +1262,6 @@ CONFIG_NET_CORE=y # CONFIG_DUMMY is not set # CONFIG_WIREGUARD is not set # CONFIG_EQUALIZER is not set -# CONFIG_IFB is not set # CONFIG_NET_TEAM is not set # CONFIG_MACVLAN is not set # CONFIG_IPVLAN is not set @@ -1476,6 +1276,7 @@ CONFIG_TUN=y CONFIG_VETH=y CONFIG_VIRTIO_NET=y # CONFIG_NLMON is not set +# CONFIG_ARCNET is not set # # Distributed Switch Architecture drivers @@ -1483,6 +1284,8 @@ CONFIG_VIRTIO_NET=y # end of Distributed Switch Architecture drivers # CONFIG_ETHERNET is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set # CONFIG_NET_SB1000 is not set # CONFIG_PHYLIB is not set # CONFIG_MDIO_DEVICE is not set @@ -1504,17 +1307,16 @@ CONFIG_VIRTIO_NET=y # Enable WiMAX (Networking options) to see the WiMAX drivers # # CONFIG_WAN is not set +# CONFIG_VMXNET3 is not set # CONFIG_FUJITSU_ES is not set -# CONFIG_NETDEVSIM is not set CONFIG_NET_FAILOVER=y # CONFIG_ISDN is not set -# CONFIG_NVM is not set # # Input device support # CONFIG_INPUT=y -CONFIG_INPUT_FF_MEMLESS=n +# CONFIG_INPUT_FF_MEMLESS is not set # CONFIG_INPUT_POLLDEV is not set # CONFIG_INPUT_SPARSEKMAP is not set # CONFIG_INPUT_MATRIXKMAP is not set @@ -1535,6 +1337,7 @@ CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_LKKBD is not set # CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_SAMSUNG is not set # CONFIG_KEYBOARD_STOWAWAY is not set # CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_XTKBD is not set @@ -1561,6 +1364,7 @@ CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set # CONFIG_SERIO_ALTERA_PS2 is not set @@ -1596,11 +1400,16 @@ CONFIG_SERIAL_8250_PNP=y # CONFIG_SERIAL_8250_FINTEK is not set CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_EXAR=y CONFIG_SERIAL_8250_NR_UARTS=1 CONFIG_SERIAL_8250_RUNTIME_UARTS=1 # CONFIG_SERIAL_8250_EXTENDED is not set +CONFIG_SERIAL_8250_DWLIB=y # CONFIG_SERIAL_8250_DW is not set # CONFIG_SERIAL_8250_RT288X is not set +CONFIG_SERIAL_8250_LPSS=y +CONFIG_SERIAL_8250_MID=y # # Non-8250 serial port support @@ -1608,17 +1417,21 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=1 # CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set # CONFIG_SERIAL_LANTIQ is not set # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_ALTERA_JTAGUART is not set # CONFIG_SERIAL_ALTERA_UART is not set # CONFIG_SERIAL_ARC is not set +# CONFIG_SERIAL_RP2 is not set # CONFIG_SERIAL_FSL_LPUART is not set # CONFIG_SERIAL_FSL_LINFLEXUART is not set +# CONFIG_SERIAL_SPRD is not set # end of Serial drivers # CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_N_GSM is not set +# CONFIG_NOZOMI is not set # CONFIG_NULL_TTY is not set # CONFIG_TRACE_SINK is not set CONFIG_HVC_DRIVER=y @@ -1627,21 +1440,28 @@ CONFIG_SERIAL_DEV_CTRL_TTYPORT=y CONFIG_VIRTIO_CONSOLE=y # CONFIG_IPMI_HANDLER is not set CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +CONFIG_HW_RANDOM_INTEL=y +CONFIG_HW_RANDOM_AMD=y +# CONFIG_HW_RANDOM_BA431 is not set +CONFIG_HW_RANDOM_VIA=y CONFIG_HW_RANDOM_VIRTIO=y - +# CONFIG_HW_RANDOM_XIPHERA is not set +# CONFIG_APPLICOM is not set # CONFIG_MWAVE is not set CONFIG_DEVMEM=y # CONFIG_DEVKMEM is not set # CONFIG_NVRAM is not set # CONFIG_RAW_DRIVER is not set +CONFIG_DEVPORT=y # CONFIG_HPET is not set # CONFIG_HANGCHECK_TIMER is not set # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set -# end of Character devices - +# CONFIG_XILLYBUS is not set CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDOM_TRUST_BOOTLOADER is not set +# end of Character devices # # I2C support @@ -1693,29 +1513,33 @@ CONFIG_POWER_SUPPLY=y # CONFIG_BATTERY_BQ27XXX is not set # CONFIG_CHARGER_MAX8903 is not set # CONFIG_HWMON is not set -CONFIG_THERMAL=n +CONFIG_THERMAL=y # CONFIG_THERMAL_NETLINK is not set # CONFIG_THERMAL_STATISTICS is not set CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_WRITABLE_TRIPS=n -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=n +# CONFIG_THERMAL_WRITABLE_TRIPS is not set +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y # CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set # CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set -CONFIG_THERMAL_GOV_FAIR_SHARE=n -CONFIG_THERMAL_GOV_STEP_WISE=n +# CONFIG_THERMAL_GOV_FAIR_SHARE is not set +CONFIG_THERMAL_GOV_STEP_WISE=y # CONFIG_THERMAL_GOV_BANG_BANG is not set -CONFIG_THERMAL_GOV_USER_SPACE=n +# CONFIG_THERMAL_GOV_USER_SPACE is not set # CONFIG_THERMAL_EMULATION is not set # # Intel thermal drivers # # CONFIG_INTEL_POWERCLAMP is not set +# CONFIG_INTEL_SOC_DTS_THERMAL is not set # # ACPI INT340X thermal drivers # +# CONFIG_INT340X_THERMAL is not set # end of ACPI INT340X thermal drivers + +# CONFIG_INTEL_PCH_THERMAL is not set # end of Intel thermal drivers # CONFIG_WATCHDOG is not set @@ -1729,15 +1553,22 @@ CONFIG_BCMA_POSSIBLE=y # # CONFIG_MFD_MADERA is not set # CONFIG_HTC_PASIC3 is not set +# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set +# CONFIG_LPC_ICH is not set +# CONFIG_LPC_SCH is not set # CONFIG_MFD_INTEL_LPSS_ACPI is not set +# CONFIG_MFD_INTEL_LPSS_PCI is not set # CONFIG_MFD_INTEL_PMC_BXT is not set +# CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_RDC321X is not set # CONFIG_MFD_SM501 is not set # CONFIG_ABX500_CORE is not set # CONFIG_MFD_SYSCON is not set # CONFIG_MFD_TI_AM335X_TSCADC is not set # CONFIG_MFD_TQMX86 is not set +# CONFIG_MFD_VX855 is not set # CONFIG_RAVE_SP_CORE is not set # end of Multifunction device drivers @@ -1749,6 +1580,10 @@ CONFIG_BCMA_POSSIBLE=y # # Graphics support # +# CONFIG_AGP is not set +CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +# CONFIG_VGA_SWITCHEROO is not set # CONFIG_DRM is not set # @@ -1784,79 +1619,13 @@ CONFIG_DUMMY_CONSOLE_ROWS=25 # # HID support # -CONFIG_HID=n -# CONFIG_HID_BATTERY_STRENGTH is not set -CONFIG_HIDRAW=n -# CONFIG_UHID is not set -# CONFIG_HID_GENERIC is not set - -# -# Special HID drivers -# -# CONFIG_HID_A4TECH is not set -# CONFIG_HID_ACRUX is not set -# CONFIG_HID_APPLE is not set -# CONFIG_HID_AUREAL is not set -# CONFIG_HID_BELKIN is not set -# CONFIG_HID_CHERRY is not set -# CONFIG_HID_CHICONY is not set -# CONFIG_HID_COUGAR is not set -# CONFIG_HID_MACALLY is not set -# CONFIG_HID_CMEDIA is not set -# CONFIG_HID_CYPRESS is not set -# CONFIG_HID_DRAGONRISE is not set -# CONFIG_HID_EMS_FF is not set -# CONFIG_HID_ELECOM is not set -# CONFIG_HID_EZKEY is not set -# CONFIG_HID_GEMBIRD is not set -# CONFIG_HID_GFRM is not set -# CONFIG_HID_GLORIOUS is not set -# CONFIG_HID_VIVALDI is not set -# CONFIG_HID_KEYTOUCH is not set -# CONFIG_HID_KYE is not set -# CONFIG_HID_WALTOP is not set -# CONFIG_HID_VIEWSONIC is not set -# CONFIG_HID_GYRATION is not set -# CONFIG_HID_ICADE is not set -# CONFIG_HID_ITE is not set -# CONFIG_HID_JABRA is not set -# CONFIG_HID_TWINHAN is not set -# CONFIG_HID_KENSINGTON is not set -# CONFIG_HID_LCPOWER is not set -# CONFIG_HID_LENOVO is not set -# CONFIG_HID_MAGICMOUSE is not set -# CONFIG_HID_MALTRON is not set -# CONFIG_HID_MAYFLASH is not set -CONFIG_HID_REDRAGON=n -# CONFIG_HID_MICROSOFT is not set -# CONFIG_HID_MONTEREY is not set -# CONFIG_HID_MULTITOUCH is not set -# CONFIG_HID_NTI is not set -# CONFIG_HID_ORTEK is not set -# CONFIG_HID_PANTHERLORD is not set -# CONFIG_HID_PETALYNX is not set -# CONFIG_HID_PICOLCD is not set -# CONFIG_HID_PLANTRONICS is not set -# CONFIG_HID_PRIMAX is not set -# CONFIG_HID_SAITEK is not set -# CONFIG_HID_SAMSUNG is not set -# CONFIG_HID_SPEEDLINK is not set -# CONFIG_HID_STEAM is not set -# CONFIG_HID_STEELSERIES is not set -# CONFIG_HID_SUNPLUS is not set -# CONFIG_HID_RMI is not set -# CONFIG_HID_GREENASIA is not set -# CONFIG_HID_SMARTJOYPLUS is not set -# CONFIG_HID_TIVO is not set -# CONFIG_HID_TOPSEED is not set -# CONFIG_HID_THRUSTMASTER is not set -# CONFIG_HID_UDRAW_PS3 is not set -# CONFIG_HID_XINMO is not set -# CONFIG_HID_ZEROPLUS is not set -# CONFIG_HID_ZYDACRON is not set -# CONFIG_HID_SENSOR_HUB is not set -# CONFIG_HID_ALPS is not set -# end of Special HID drivers +# CONFIG_HID is not set + +# +# Intel ISH HID support +# +# CONFIG_INTEL_ISH_HID is not set +# end of Intel ISH HID support # end of HID support CONFIG_USB_OHCI_LITTLE_ENDIAN=y @@ -1868,7 +1637,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y # CONFIG_INFINIBAND is not set CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y -# CONFIG_EDAC is not set CONFIG_RTC_LIB=y CONFIG_RTC_MC146818_LIB=y # CONFIG_RTC_CLASS is not set @@ -1878,20 +1646,31 @@ CONFIG_DMADEVICES=y # # DMA Devices # +CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=y CONFIG_DMA_ACPI=y # CONFIG_ALTERA_MSGDMA is not set # CONFIG_INTEL_IDMA64 is not set -# CONFIG_XILINX_ZYNQMP_DPDMA is not set +# CONFIG_INTEL_IOATDMA is not set +# CONFIG_PLX_DMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set # CONFIG_QCOM_HIDMA is not set +CONFIG_DW_DMAC_CORE=y # CONFIG_DW_DMAC is not set +# CONFIG_DW_DMAC_PCI is not set +CONFIG_HSU_DMA=y # CONFIG_SF_PDMA is not set +# +# DMA Clients +# +# CONFIG_ASYNC_TX_DMA is not set +# CONFIG_DMATEST is not set + # # DMABUF options # CONFIG_SYNC_FILE=y -# CONFIG_SW_SYNC is not set # CONFIG_UDMABUF is not set # CONFIG_DMABUF_MOVE_NOTIFY is not set # CONFIG_DMABUF_SELFTESTS is not set @@ -1904,11 +1683,15 @@ CONFIG_AUXDISPLAY=y # CONFIG_CHARLCD_BL_ON is not set CONFIG_CHARLCD_BL_FLASH=y # CONFIG_UIO is not set +# CONFIG_VFIO is not set CONFIG_VIRT_DRIVERS=y +# CONFIG_VBOXGUEST is not set +# CONFIG_NITRO_ENCLAVES is not set CONFIG_VIRTIO=y CONFIG_VIRTIO_MENU=y +# CONFIG_VIRTIO_PCI is not set CONFIG_VIRTIO_BALLOON=y -CONFIG_VIRTIO_MEM=n +# CONFIG_VIRTIO_MEM is not set # CONFIG_VIRTIO_INPUT is not set CONFIG_VIRTIO_MMIO=y CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y @@ -1940,6 +1723,7 @@ CONFIG_STAGING=y # # Gasket devices # +# CONFIG_STAGING_GASKET_FRAMEWORK is not set # end of Gasket devices # CONFIG_FIELDBUS_DEV is not set @@ -1956,6 +1740,7 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_GPD_POCKET_FAN is not set # CONFIG_HP_ACCEL is not set # CONFIG_HP_WIRELESS is not set +# CONFIG_IBM_RTL is not set # CONFIG_SENSORS_HDAPS is not set # CONFIG_INTEL_HID_EVENT is not set # CONFIG_INTEL_MENLOW is not set @@ -1967,15 +1752,29 @@ CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_ACPI_CMPC is not set # CONFIG_SYSTEM76_ACPI is not set # CONFIG_TOPSTAR_LAPTOP is not set +# CONFIG_INTEL_IPS is not set # CONFIG_INTEL_RST is not set # CONFIG_INTEL_SMARTCONNECT is not set + +# +# Intel Speed Select Technology interface support +# +# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set +# end of Intel Speed Select Technology interface support + CONFIG_INTEL_TURBO_MAX_3=y # CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set +# CONFIG_INTEL_PMC_CORE is not set # CONFIG_INTEL_PUNIT_IPC is not set +# CONFIG_INTEL_SCU_PCI is not set # CONFIG_INTEL_SCU_PLATFORM is not set +CONFIG_PMC_ATOM=y # CONFIG_CHROME_PLATFORMS is not set # CONFIG_MELLANOX_PLATFORM is not set -# CONFIG_COMMON_CLK is not set +CONFIG_HAVE_CLK=y +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y # CONFIG_HWSPINLOCK is not set # @@ -1986,7 +1785,7 @@ CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -CONFIG_MAILBOX=n +CONFIG_MAILBOX=y CONFIG_PCC=y # CONFIG_ALTERA_MBOX is not set CONFIG_IOMMU_SUPPORT=y @@ -1996,7 +1795,7 @@ CONFIG_IOMMU_SUPPORT=y # # end of Generic IOMMU Pagetable Support -# CONFIG_IOMMU_DEBUGFS is not set +# CONFIG_AMD_IOMMU is not set # # Remoteproc drivers @@ -2060,6 +1859,8 @@ CONFIG_IOMMU_SUPPORT=y # CONFIG_EXTCON is not set # CONFIG_MEMORY is not set # CONFIG_IIO is not set +# CONFIG_NTB is not set +# CONFIG_VME_BUS is not set # CONFIG_PWM is not set # @@ -2088,7 +1889,8 @@ CONFIG_IOMMU_SUPPORT=y # # end of Performance monitor support -CONFIG_RAS=n +# CONFIG_RAS is not set +# CONFIG_USB4 is not set # # Android @@ -2128,9 +1930,9 @@ CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y -CONFIG_EXT4_DEBUG=n +# CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y -CONFIG_JBD2_DEBUG=n +# CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set @@ -2141,18 +1943,16 @@ CONFIG_FS_MBCACHE=y # CONFIG_F2FS_FS is not set # CONFIG_FS_DAX is not set CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=n +CONFIG_EXPORTFS=y # CONFIG_EXPORTFS_BLOCK_OPS is not set CONFIG_FILE_LOCKING=y CONFIG_MANDATORY_FILE_LOCKING=y -CONFIG_FS_ENCRYPTION=n -CONFIG_FS_ENCRYPTION_ALGS=n +# CONFIG_FS_ENCRYPTION is not set # CONFIG_FS_VERITY is not set CONFIG_FSNOTIFY=y -CONFIG_DNOTIFY=n +# CONFIG_DNOTIFY is not set CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y -CONFIG_FANOTIFY_ACCESS_PERMISSIONS=n CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y # CONFIG_PRINT_QUOTA_WARNING is not set @@ -2218,7 +2018,6 @@ CONFIG_MISC_FILESYSTEMS=y # CONFIG_ORANGEFS_FS is not set # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set -# CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set @@ -2247,31 +2046,12 @@ CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_QNX4FS_FS is not set # CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set -CONFIG_PSTORE=n -CONFIG_PSTORE_DEFLATE_COMPRESS=n -# CONFIG_PSTORE_LZO_COMPRESS is not set -# CONFIG_PSTORE_LZ4_COMPRESS is not set -# CONFIG_PSTORE_LZ4HC_COMPRESS is not set -# CONFIG_PSTORE_842_COMPRESS is not set -# CONFIG_PSTORE_ZSTD_COMPRESS is not set -CONFIG_PSTORE_COMPRESS=n -CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=n -CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" -# CONFIG_PSTORE_CONSOLE is not set -# CONFIG_PSTORE_PMSG is not set -# CONFIG_PSTORE_RAM is not set -# CONFIG_PSTORE_BLK is not set +# CONFIG_PSTORE is not set # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set # CONFIG_EROFS_FS is not set -CONFIG_NETWORK_FILESYSTEMS=n -# CONFIG_NFS_FS is not set -# CONFIG_NFSD is not set -# CONFIG_CEPH_FS is not set -# CONFIG_CIFS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set -CONFIG_NLS=n +# CONFIG_NETWORK_FILESYSTEMS is not set +CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" # CONFIG_NLS_CODEPAGE_437 is not set # CONFIG_NLS_CODEPAGE_737 is not set @@ -2329,46 +2109,15 @@ CONFIG_IO_WQ=y # # Security options # -CONFIG_KEYS=n -# CONFIG_KEYS_REQUEST_CACHE is not set -CONFIG_PERSISTENT_KEYRINGS=y -CONFIG_ENCRYPTED_KEYS=n -# CONFIG_KEY_DH_OPERATIONS is not set +# CONFIG_KEYS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set -CONFIG_SECURITY=n -CONFIG_SECURITY_WRITABLE_HOOKS=n -CONFIG_SECURITYFS=n -CONFIG_SECURITY_NETWORK=n -CONFIG_PAGE_TABLE_ISOLATION=y -CONFIG_SECURITY_NETWORK_XFRM=n -# CONFIG_SECURITY_PATH is not set -CONFIG_LSM_MMAP_MIN_ADDR=65536 +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y # CONFIG_HARDENED_USERCOPY is not set CONFIG_FORTIFY_SOURCE=y # CONFIG_STATIC_USERMODEHELPER is not set -CONFIG_SECURITY_SELINUX=n -CONFIG_SECURITY_SELINUX_BOOTPARAM=n -CONFIG_SECURITY_SELINUX_DISABLE=n -CONFIG_SECURITY_SELINUX_DEVELOP=n -CONFIG_SECURITY_SELINUX_AVC_STATS=n -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 -CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9 -CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 -# CONFIG_SECURITY_SMACK is not set -# CONFIG_SECURITY_TOMOYO is not set -# CONFIG_SECURITY_APPARMOR is not set -# CONFIG_SECURITY_LOADPIN is not set -# CONFIG_SECURITY_YAMA is not set -# CONFIG_SECURITY_SAFESETID is not set -# CONFIG_SECURITY_LOCKDOWN_LSM is not set -CONFIG_INTEGRITY=n -# CONFIG_INTEGRITY_SIGNATURE is not set -CONFIG_INTEGRITY_AUDIT=n -# CONFIG_IMA is not set -# CONFIG_EVM is not set -CONFIG_DEFAULT_SECURITY_SELINUX=n -# CONFIG_DEFAULT_SECURITY_DAC is not set +CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf" # @@ -2385,45 +2134,29 @@ CONFIG_INIT_STACK_NONE=y # end of Kernel hardening options # end of Security options -CONFIG_CRYPTO=n +CONFIG_CRYPTO=y # # Crypto core or helper # -CONFIG_CRYPTO_ALGAPI=n -CONFIG_CRYPTO_ALGAPI2=n -CONFIG_CRYPTO_AEAD=n -CONFIG_CRYPTO_AEAD2=n -CONFIG_CRYPTO_SKCIPHER=n -CONFIG_CRYPTO_SKCIPHER2=n -CONFIG_CRYPTO_HASH=n -CONFIG_CRYPTO_HASH2=n -CONFIG_CRYPTO_RNG=n -CONFIG_CRYPTO_RNG2=n -CONFIG_CRYPTO_RNG_DEFAULT=n -CONFIG_CRYPTO_AKCIPHER2=n -CONFIG_CRYPTO_AKCIPHER=n -CONFIG_CRYPTO_KPP2=n -CONFIG_CRYPTO_KPP=n -CONFIG_CRYPTO_ACOMP2=n -CONFIG_CRYPTO_MANAGER=n -CONFIG_CRYPTO_MANAGER2=n +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +# CONFIG_CRYPTO_MANAGER is not set # CONFIG_CRYPTO_USER is not set -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=n -CONFIG_CRYPTO_NULL=n -CONFIG_CRYPTO_NULL2=n +# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +# CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_PCRYPT is not set # CONFIG_CRYPTO_CRYPTD is not set # CONFIG_CRYPTO_AUTHENC is not set -# CONFIG_CRYPTO_TEST is not set # # Public-key cryptography # -CONFIG_CRYPTO_RSA=n -CONFIG_CRYPTO_DH=n -CONFIG_CRYPTO_ECC=n -CONFIG_CRYPTO_ECDH=n +# CONFIG_CRYPTO_RSA is not set +# CONFIG_CRYPTO_DH is not set +# CONFIG_CRYPTO_ECDH is not set # CONFIG_CRYPTO_ECRDSA is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_CURVE25519 is not set @@ -2437,21 +2170,21 @@ CONFIG_CRYPTO_ECDH=n # CONFIG_CRYPTO_CHACHA20POLY1305 is not set # CONFIG_CRYPTO_AEGIS128 is not set # CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set -CONFIG_CRYPTO_SEQIV=n +# CONFIG_CRYPTO_SEQIV is not set # CONFIG_CRYPTO_ECHAINIV is not set # # Block modes # -CONFIG_CRYPTO_CBC=n +# CONFIG_CRYPTO_CBC is not set # CONFIG_CRYPTO_CFB is not set -CONFIG_CRYPTO_CTR=n -CONFIG_CRYPTO_CTS=n -CONFIG_CRYPTO_ECB=n +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_CTS is not set +# CONFIG_CRYPTO_ECB is not set # CONFIG_CRYPTO_LRW is not set # CONFIG_CRYPTO_OFB is not set # CONFIG_CRYPTO_PCBC is not set -CONFIG_CRYPTO_XTS=n +# CONFIG_CRYPTO_XTS is not set # CONFIG_CRYPTO_KEYWRAP is not set # CONFIG_CRYPTO_NHPOLY1305_SSE2 is not set # CONFIG_CRYPTO_NHPOLY1305_AVX2 is not set @@ -2462,14 +2195,14 @@ CONFIG_CRYPTO_XTS=n # Hash modes # # CONFIG_CRYPTO_CMAC is not set -CONFIG_CRYPTO_HMAC=n +# CONFIG_CRYPTO_HMAC is not set # CONFIG_CRYPTO_XCBC is not set # CONFIG_CRYPTO_VMAC is not set # # Digest # -CONFIG_CRYPTO_CRC32C=n +CONFIG_CRYPTO_CRC32C=y # CONFIG_CRYPTO_CRC32C_INTEL is not set # CONFIG_CRYPTO_CRC32 is not set # CONFIG_CRYPTO_CRC32_PCLMUL is not set @@ -2477,24 +2210,24 @@ CONFIG_CRYPTO_CRC32C=n # CONFIG_CRYPTO_BLAKE2B is not set # CONFIG_CRYPTO_BLAKE2S is not set # CONFIG_CRYPTO_BLAKE2S_X86 is not set -CONFIG_CRYPTO_CRCT10DIF=n -CONFIG_CRYPTO_CRCT10DIF_PCLMUL=n +CONFIG_CRYPTO_CRCT10DIF=y +# CONFIG_CRYPTO_CRCT10DIF_PCLMUL is not set # CONFIG_CRYPTO_GHASH is not set # CONFIG_CRYPTO_POLY1305 is not set # CONFIG_CRYPTO_POLY1305_X86_64 is not set # CONFIG_CRYPTO_MD4 is not set -CONFIG_CRYPTO_MD5=n +CONFIG_CRYPTO_MD5=y # CONFIG_CRYPTO_MICHAEL_MIC is not set # CONFIG_CRYPTO_RMD128 is not set # CONFIG_CRYPTO_RMD160 is not set # CONFIG_CRYPTO_RMD256 is not set # CONFIG_CRYPTO_RMD320 is not set -CONFIG_CRYPTO_SHA1=n +# CONFIG_CRYPTO_SHA1 is not set # CONFIG_CRYPTO_SHA1_SSSE3 is not set # CONFIG_CRYPTO_SHA256_SSSE3 is not set # CONFIG_CRYPTO_SHA512_SSSE3 is not set -CONFIG_CRYPTO_SHA256=n -CONFIG_CRYPTO_SHA512=n +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_SHA3 is not set # CONFIG_CRYPTO_SM3 is not set # CONFIG_CRYPTO_STREEBOG is not set @@ -2505,8 +2238,8 @@ CONFIG_CRYPTO_SHA512=n # # Ciphers # -CONFIG_CRYPTO_AES=n -CONFIG_CRYPTO_AES_TI=n +# CONFIG_CRYPTO_AES is not set +# CONFIG_CRYPTO_AES_TI is not set # CONFIG_CRYPTO_AES_NI_INTEL is not set # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_BLOWFISH_X86_64 is not set @@ -2537,8 +2270,8 @@ CONFIG_CRYPTO_AES_TI=n # # Compression # -CONFIG_CRYPTO_DEFLATE=n -CONFIG_CRYPTO_LZO=n +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_LZO is not set # CONFIG_CRYPTO_842 is not set # CONFIG_CRYPTO_LZ4 is not set # CONFIG_CRYPTO_LZ4HC is not set @@ -2548,48 +2281,17 @@ CONFIG_CRYPTO_LZO=n # Random Number Generation # # CONFIG_CRYPTO_ANSI_CPRNG is not set -CONFIG_CRYPTO_DRBG_MENU=n -CONFIG_CRYPTO_DRBG_HMAC=n -CONFIG_CRYPTO_DRBG_HASH=n -CONFIG_CRYPTO_DRBG_CTR=n -CONFIG_CRYPTO_DRBG=n -CONFIG_CRYPTO_JITTERENTROPY=n +# CONFIG_CRYPTO_DRBG_MENU is not set +# CONFIG_CRYPTO_JITTERENTROPY is not set # CONFIG_CRYPTO_USER_API_HASH is not set # CONFIG_CRYPTO_USER_API_SKCIPHER is not set # CONFIG_CRYPTO_USER_API_RNG is not set # CONFIG_CRYPTO_USER_API_AEAD is not set -CONFIG_CRYPTO_HASH_INFO=n - -# -# Crypto library routines -# -CONFIG_CRYPTO_LIB_AES=n -# CONFIG_CRYPTO_LIB_BLAKE2S is not set -# CONFIG_CRYPTO_LIB_CHACHA is not set -# CONFIG_CRYPTO_LIB_CURVE25519 is not set -CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 -# CONFIG_CRYPTO_LIB_POLY1305 is not set -# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set -CONFIG_CRYPTO_LIB_SHA256=n # CONFIG_CRYPTO_HW is not set -CONFIG_ASYMMETRIC_KEY_TYPE=y -CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y -CONFIG_X509_CERTIFICATE_PARSER=y -# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set -CONFIG_PKCS7_MESSAGE_PARSER=y -# CONFIG_PKCS7_TEST_KEY is not set -CONFIG_SIGNED_PE_FILE_VERIFICATION=y # # Certificates for signature checking # -CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" -CONFIG_SYSTEM_TRUSTED_KEYRING=y -CONFIG_SYSTEM_TRUSTED_KEYS="" -# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set -# CONFIG_SECONDARY_TRUSTED_KEYRING is not set -CONFIG_SYSTEM_BLACKLIST_KEYRING=y -CONFIG_SYSTEM_BLACKLIST_HASH_LIST="" # end of Certificates for signature checking # @@ -2603,11 +2305,25 @@ CONFIG_GENERIC_NET_UTILS=y CONFIG_GENERIC_FIND_FIRST_BIT=y # CONFIG_CORDIC is not set # CONFIG_PRIME_NUMBERS is not set +CONFIG_RATIONAL=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_IOMAP=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_ARCH_HAS_FAST_MULTIPLIER=y CONFIG_ARCH_USE_SYM_ANNOTATIONS=y + +# +# Crypto library routines +# +CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +# CONFIG_CRYPTO_LIB_CHACHA is not set +# CONFIG_CRYPTO_LIB_CURVE25519 is not set +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 +# CONFIG_CRYPTO_LIB_POLY1305 is not set +# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set +# end of Crypto library routines + +CONFIG_LIB_MEMNEQ=y CONFIG_CRC_CCITT=y CONFIG_CRC16=y CONFIG_CRC_T10DIF=y @@ -2626,7 +2342,6 @@ CONFIG_LIBCRC32C=y CONFIG_XXHASH=y # CONFIG_RANDOM32_SELFTEST is not set CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_LZ4_DECOMPRESS=y @@ -2641,37 +2356,27 @@ CONFIG_XZ_DEC_SPARC=y CONFIG_XZ_DEC_BCJ=y # CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y -CONFIG_DECOMPRESS_BZIP2=n CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y CONFIG_DECOMPRESS_LZ4=y CONFIG_DECOMPRESS_ZSTD=y -CONFIG_GENERIC_ALLOCATOR=y CONFIG_XARRAY_MULTI=y -CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y -CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y CONFIG_SWIOTLB=y -CONFIG_DMA_COHERENT_POOL=y # CONFIG_DMA_API_DEBUG is not set -CONFIG_SGL_ALLOC=y CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y -CONFIG_CLZ_TAB=y CONFIG_IRQ_POLL=y -CONFIG_MPILIB=n -CONFIG_OID_REGISTRY=y CONFIG_HAVE_GENERIC_VDSO=y CONFIG_GENERIC_GETTIMEOFDAY=y CONFIG_GENERIC_VDSO_TIME_NS=y -CONFIG_SG_POOL=y CONFIG_ARCH_HAS_PMEM_API=y CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y CONFIG_ARCH_HAS_COPY_MC=y @@ -2692,27 +2397,23 @@ CONFIG_PRINTK_TIME=y CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 -# CONFIG_BOOT_PRINTK_DELAY is not set -CONFIG_DYNAMIC_DEBUG=n -CONFIG_DYNAMIC_DEBUG_CORE=n +# CONFIG_DYNAMIC_DEBUG is not set +# CONFIG_DYNAMIC_DEBUG_CORE is not set CONFIG_SYMBOLIC_ERRNAME=y -CONFIG_DEBUG_BUGVERBOSE=n +CONFIG_DEBUG_BUGVERBOSE=y # end of printk and dmesg options # # Compile-time checks and compiler options # -# CONFIG_DEBUG_INFO is not set # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_FRAME_WARN=2048 CONFIG_STRIP_ASM_SYMS=y -# CONFIG_READABLE_ASM is not set # CONFIG_HEADERS_INSTALL is not set -CONFIG_DEBUG_SECTION_MISMATCH=n +# CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_FRAME_POINTER=y CONFIG_STACK_VALIDATION=y -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # end of Compile-time checks and compiler options # @@ -2722,73 +2423,49 @@ CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" -CONFIG_DEBUG_FS=n -CONFIG_DEBUG_FS_ALLOW_ALL=n -# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set -# CONFIG_DEBUG_FS_ALLOW_NONE is not set +# CONFIG_DEBUG_FS is not set CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y # CONFIG_UBSAN is not set CONFIG_HAVE_ARCH_KCSAN=y # end of Generic Kernel Debugging Instruments -CONFIG_DEBUG_KERNEL=n -CONFIG_DEBUG_MISC=n +# CONFIG_DEBUG_KERNEL is not set # # Memory Debugging # # CONFIG_PAGE_EXTENSION is not set -# CONFIG_DEBUG_PAGEALLOC is not set -# CONFIG_PAGE_OWNER is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_RODATA_TEST is not set CONFIG_ARCH_HAS_DEBUG_WX=y # CONFIG_DEBUG_WX is not set CONFIG_GENERIC_PTDUMP=y -# CONFIG_PTDUMP_DEBUGFS is not set -# CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y -# CONFIG_DEBUG_KMEMLEAK is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y -# CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_VM_PGTABLE is not set CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y -# CONFIG_DEBUG_VIRTUAL is not set -CONFIG_DEBUG_MEMORY_INIT=n -# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_DEBUG_MEMORY_INIT=y CONFIG_HAVE_ARCH_KASAN=y CONFIG_HAVE_ARCH_KASAN_VMALLOC=y CONFIG_CC_HAS_KASAN_GENERIC=y # end of Memory Debugging -# CONFIG_DEBUG_SHIRQ is not set - # # Debug Oops, Lockups and Hangs # # CONFIG_PANIC_ON_OOPS is not set CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 -# CONFIG_SOFTLOCKUP_DETECTOR is not set CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y -# CONFIG_HARDLOCKUP_DETECTOR is not set -# CONFIG_DETECT_HUNG_TASK is not set -# CONFIG_WQ_WATCHDOG is not set -# CONFIG_TEST_LOCKUP is not set # end of Debug Oops, Lockups and Hangs # # Scheduler Debugging # -# CONFIG_SCHED_DEBUG is not set CONFIG_SCHED_INFO=y -# CONFIG_SCHEDSTATS is not set # end of Scheduler Debugging # CONFIG_DEBUG_TIMEKEEPING is not set @@ -2797,53 +2474,25 @@ CONFIG_SCHED_INFO=y # Lock Debugging (spinlocks, mutexes, etc...) # CONFIG_LOCK_DEBUGGING_SUPPORT=y -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set -# CONFIG_DEBUG_RWSEMS is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_DEBUG_ATOMIC_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_LOCK_TORTURE_TEST is not set # CONFIG_WW_MUTEX_SELFTEST is not set -# CONFIG_SCF_TORTURE_TEST is not set -# CONFIG_CSD_LOCK_WAIT_DEBUG is not set # end of Lock Debugging (spinlocks, mutexes, etc...) CONFIG_STACKTRACE=y # CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set -# CONFIG_DEBUG_KOBJECT is not set # # Debug kernel data structures # -CONFIG_DEBUG_LIST=n -# CONFIG_DEBUG_PLIST is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_NOTIFIERS is not set +CONFIG_DEBUG_LIST=y CONFIG_BUG_ON_DATA_CORRUPTION=y # end of Debug kernel data structures -# CONFIG_DEBUG_CREDENTIALS is not set - # # RCU Debugging # -# CONFIG_RCU_SCALE_TEST is not set -# CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_REF_SCALE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=59 -# CONFIG_RCU_TRACE is not set -# CONFIG_RCU_EQS_DEBUG is not set # end of RCU Debugging -# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set -# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set -# CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y @@ -2856,6 +2505,7 @@ CONFIG_HAVE_FENTRY=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_SAMPLES is not set CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y CONFIG_STRICT_DEVMEM=y @@ -2868,18 +2518,14 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y -# CONFIG_DEBUG_TLBFLUSH is not set +# CONFIG_EARLY_PRINTK_DBGP is not set +# CONFIG_EARLY_PRINTK_USB_XDBC is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y -# CONFIG_X86_DECODER_SELFTEST is not set CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_0XED is not set # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set -# CONFIG_DEBUG_BOOT_PARAMS is not set -# CONFIG_CPA_DEBUG is not set -# CONFIG_DEBUG_ENTRY is not set -# CONFIG_DEBUG_NMI_SELFTEST is not set -# CONFIG_X86_DEBUG_FPU is not set +# CONFIG_PUNIT_ATOM_DEBUG is not set # CONFIG_UNWINDER_ORC is not set CONFIG_UNWINDER_FRAME_POINTER=y # end of x86 Debugging @@ -2888,23 +2534,10 @@ CONFIG_UNWINDER_FRAME_POINTER=y # Kernel Testing and Coverage # # CONFIG_KUNIT is not set -# CONFIG_NOTIFIER_ERROR_INJECTION is not set -CONFIG_FUNCTION_ERROR_INJECTION=y -# CONFIG_FAULT_INJECTION is not set CONFIG_ARCH_HAS_KCOV=y CONFIG_CC_HAS_SANCOV_TRACE_PC=y # CONFIG_KCOV is not set CONFIG_RUNTIME_TESTING_MENU=y -# CONFIG_LKDTM is not set -# CONFIG_TEST_LIST_SORT is not set -# CONFIG_TEST_MIN_HEAP is not set -# CONFIG_TEST_SORT is not set -# CONFIG_KPROBES_SANITY_TEST is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_RBTREE_TEST is not set -# CONFIG_REED_SOLOMON_TEST is not set -# CONFIG_INTERVAL_TREE_TEST is not set -# CONFIG_PERCPU_TEST is not set # CONFIG_ATOMIC64_SELFTEST is not set # CONFIG_TEST_HEXDUMP is not set # CONFIG_TEST_STRING_HELPERS is not set @@ -2918,18 +2551,10 @@ CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_TEST_RHASHTABLE is not set # CONFIG_TEST_HASH is not set # CONFIG_TEST_IDA is not set -# CONFIG_TEST_LKM is not set -# CONFIG_TEST_BITOPS is not set -# CONFIG_TEST_VMALLOC is not set -# CONFIG_TEST_USER_COPY is not set -# CONFIG_TEST_BPF is not set -# CONFIG_TEST_BLACKHOLE_DEV is not set # CONFIG_FIND_BIT_BENCHMARK is not set # CONFIG_TEST_FIRMWARE is not set # CONFIG_TEST_SYSCTL is not set # CONFIG_TEST_UDELAY is not set -# CONFIG_TEST_STATIC_KEYS is not set -# CONFIG_TEST_KMOD is not set # CONFIG_TEST_MEMCAT_P is not set # CONFIG_TEST_STACKINIT is not set # CONFIG_TEST_MEMINIT is not set diff --git a/resources/guest_configs/microvm-kernel-ci-x86_64-6.1.config b/resources/guest_configs/microvm-kernel-ci-x86_64-6.1.config index 057a846caa5..6c8a6e22183 100644 --- a/resources/guest_configs/microvm-kernel-ci-x86_64-6.1.config +++ b/resources/guest_configs/microvm-kernel-ci-x86_64-6.1.config @@ -2,14 +2,20 @@ # Automatically generated file; DO NOT EDIT. # Linux/x86 6.1.0 Kernel Configuration # -CONFIG_CC_VERSION_TEXT="gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-13)" +CONFIG_CC_VERSION_TEXT="gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-17)" CONFIG_CC_IS_GCC=y CONFIG_GCC_VERSION=70301 -CONFIG_LD_VERSION=229010000 CONFIG_CLANG_VERSION=0 +CONFIG_AS_IS_GNU=y +CONFIG_AS_VERSION=22901 +CONFIG_LD_IS_BFD=y +CONFIG_LD_VERSION=22901 CONFIG_LLD_VERSION=0 +CONFIG_RUST_IS_AVAILABLE=y CONFIG_CC_CAN_LINK=y -CONFIG_CC_HAS_ASM_GOTO=y +CONFIG_CC_CAN_LINK_STATIC=y +CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y +CONFIG_PAHOLE_VERSION=122 CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_TABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y @@ -19,11 +25,12 @@ CONFIG_THREAD_INFO_IN_TASK=y # CONFIG_INIT_ENV_ARG_LIMIT=32 # CONFIG_COMPILE_TEST is not set +# CONFIG_WERROR is not set CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_BUILD_SALT="" CONFIG_HAVE_KERNEL_GZIP=y -CONFIG_HAVE_KERNEL_BZIP2=n +CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y @@ -38,17 +45,16 @@ CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_ZSTD is not set CONFIG_DEFAULT_INIT="" CONFIG_DEFAULT_HOSTNAME="(none)" -CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y +CONFIG_SYSVIPC_COMPAT=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y # CONFIG_WATCH_QUEUE is not set CONFIG_CROSS_MEMORY_ATTACH=y # CONFIG_USELIB is not set -CONFIG_AUDIT=n -CONFIG_HAVE_ARCH_AUDITSYSCALL=n -CONFIG_AUDITSYSCALL=n +# CONFIG_AUDIT is not set +CONFIG_HAVE_ARCH_AUDITSYSCALL=y # # IRQ subsystem @@ -61,11 +67,11 @@ CONFIG_GENERIC_IRQ_MIGRATION=y CONFIG_HARDIRQS_SW_RESEND=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_IRQ_MSI_IOMMU=y CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y CONFIG_GENERIC_IRQ_RESERVATION_MODE=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y -# CONFIG_GENERIC_IRQ_DEBUGFS is not set # end of IRQ subsystem CONFIG_CLOCKSOURCE_WATCHDOG=y @@ -78,6 +84,8 @@ CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y +CONFIG_CONTEXT_TRACKING=y +CONFIG_CONTEXT_TRACKING_IDLE=y # # Timers subsystem @@ -89,11 +97,29 @@ CONFIG_NO_HZ_IDLE=y # CONFIG_NO_HZ_FULL is not set CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y +CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 # end of Timers subsystem +CONFIG_BPF=y +CONFIG_HAVE_EBPF_JIT=y +CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y + +# +# BPF subsystem +# +CONFIG_BPF_SYSCALL=y +CONFIG_BPF_UNPRIV_DEFAULT_OFF=y +# CONFIG_BPF_PRELOAD is not set +# end of BPF subsystem + +CONFIG_PREEMPT_BUILD=y CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set +CONFIG_PREEMPT_COUNT=y +CONFIG_PREEMPTION=y +CONFIG_PREEMPT_DYNAMIC=y +# CONFIG_SCHED_CORE is not set # # CPU/Task time and stats accounting @@ -117,16 +143,17 @@ CONFIG_CPU_ISOLATION=y # RCU Subsystem # CONFIG_TREE_RCU=y +CONFIG_PREEMPT_RCU=y # CONFIG_RCU_EXPERT is not set CONFIG_SRCU=y CONFIG_TREE_SRCU=y CONFIG_TASKS_RCU_GENERIC=y +CONFIG_TASKS_RCU=y CONFIG_TASKS_TRACE_RCU=y CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y # end of RCU Subsystem -CONFIG_BUILD_BIN2C=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_IKHEADERS is not set @@ -144,13 +171,15 @@ CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_CC_HAS_INT128=y +CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" +CONFIG_GCC11_NO_ARRAY_BOUNDS=y CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_NUMA_BALANCING=y # CONFIG_NUMA_BALANCING_DEFAULT_ENABLED is not set CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y +# CONFIG_CGROUP_FAVOR_DYNMODS is not set CONFIG_MEMCG=y -CONFIG_MEMCG_SWAP=y CONFIG_MEMCG_KMEM=y CONFIG_BLK_CGROUP=y CONFIG_CGROUP_WRITEBACK=y @@ -168,7 +197,7 @@ CONFIG_CGROUP_DEVICE=y CONFIG_CGROUP_CPUACCT=y CONFIG_CGROUP_PERF=y CONFIG_CGROUP_BPF=y -# CONFIG_CGROUP_DEBUG is not set +# CONFIG_CGROUP_MISC is not set CONFIG_SOCK_CGROUP_DATA=y CONFIG_NAMESPACES=y CONFIG_UTS_NS=y @@ -184,13 +213,14 @@ CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y -CONFIG_RD_BZIP2=n +# CONFIG_RD_BZIP2 is not set CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y CONFIG_RD_LZ4=y CONFIG_RD_ZSTD=y # CONFIG_BOOT_CONFIG is not set +CONFIG_INITRAMFS_PRESERVE_MTIME=y CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_LD_ORPHAN_WARN=y @@ -198,7 +228,6 @@ CONFIG_SYSCTL=y CONFIG_HAVE_UID16=y CONFIG_SYSCTL_EXCEPTION_TRACE=y CONFIG_HAVE_PCSPKR_PLATFORM=y -CONFIG_BPF=y # CONFIG_EXPERT is not set CONFIG_UID16=y CONFIG_MULTIUSER=y @@ -207,7 +236,6 @@ CONFIG_SYSFS_SYSCALL=y CONFIG_FHANDLE=y CONFIG_POSIX_TIMERS=y CONFIG_PRINTK=y -CONFIG_PRINTK_NMI=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y @@ -222,18 +250,10 @@ CONFIG_SHMEM=y CONFIG_AIO=y CONFIG_IO_URING=y CONFIG_ADVISE_SYSCALLS=y -CONFIG_HAVE_ARCH_USERFAULTFD_WP=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y CONFIG_KALLSYMS_BASE_RELATIVE=y -CONFIG_BPF_SYSCALL=y -CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y -CONFIG_BPF_JIT_ALWAYS_ON=y -CONFIG_BPF_JIT_DEFAULT_ON=y -# CONFIG_BPF_PRELOAD is not set -CONFIG_USERFAULTFD=n CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y CONFIG_RSEQ=y # CONFIG_EMBEDDED is not set @@ -243,26 +263,15 @@ CONFIG_HAVE_PERF_EVENTS=y # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set # end of Kernel Performance Events And Counters -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_SLUB_DEBUG=y -# CONFIG_COMPAT_BRK is not set -# CONFIG_SLAB is not set -CONFIG_SLUB=y -CONFIG_SLAB_MERGE_DEFAULT=y -# CONFIG_SLAB_FREELIST_RANDOM is not set -CONFIG_SLAB_FREELIST_HARDENED=y -# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set -CONFIG_SLUB_CPU_PARTIAL=y -CONFIG_SYSTEM_DATA_VERIFICATION=y CONFIG_PROFILING=y +# CONFIG_RUST is not set # end of General setup CONFIG_64BIT=y CONFIG_X86_64=y -CONFIG_X86=n +CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf64-x86-64" CONFIG_LOCKDEP_SUPPORT=y @@ -278,41 +287,32 @@ CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y -CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y -CONFIG_ARCH_HAS_FILTER_PGPROT=y -CONFIG_HAVE_SETUP_PER_CPU_AREA=y -CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y -CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_NR_GPIO=1024 CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_ARCH_WANT_GENERAL_HUGETLB=y -CONFIG_ZONE_DMA32=y -CONFIG_AUDIT_ARCH=n -CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_AUDIT_ARCH=y CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y -CONFIG_DYNAMIC_PHYSICAL_MASK=y CONFIG_PGTABLE_LEVELS=4 CONFIG_CC_HAS_SANE_STACKPROTECTOR=y # # Processor type and features # -CONFIG_ZONE_DMA=y CONFIG_SMP=y CONFIG_X86_FEATURE_NAMES=y CONFIG_X86_X2APIC=y -CONFIG_X86_MPPARSE=y +# CONFIG_X86_MPPARSE is not set # CONFIG_GOLDFISH is not set -CONFIG_RETPOLINE=y # CONFIG_X86_CPU_RESCTRL is not set # CONFIG_X86_EXTENDED_PLATFORM is not set +# CONFIG_X86_INTEL_LPSS is not set # CONFIG_X86_AMD_PLATFORM_DEVICE is not set +# CONFIG_IOSF_MBI is not set CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_HYPERVISOR_GUEST=y CONFIG_PARAVIRT=y -# CONFIG_PARAVIRT_DEBUG is not set CONFIG_PARAVIRT_SPINLOCKS=y CONFIG_X86_HV_CALLBACK_VECTOR=y # CONFIG_XEN is not set @@ -321,7 +321,9 @@ CONFIG_ARCH_CPUIDLE_HALTPOLL=y # CONFIG_PVH is not set CONFIG_PARAVIRT_TIME_ACCOUNTING=y CONFIG_PARAVIRT_CLOCK=y +# CONFIG_JAILHOUSE_GUEST is not set # CONFIG_ACRN_GUEST is not set +# CONFIG_INTEL_TDX_GUEST is not set # CONFIG_MK8 is not set # CONFIG_MPSC is not set # CONFIG_MCORE2 is not set @@ -343,11 +345,12 @@ CONFIG_CPU_SUP_CENTAUR=y CONFIG_CPU_SUP_ZHAOXIN=y CONFIG_HPET_TIMER=y CONFIG_DMI=y -# CONFIG_MAXSMP is not set +# CONFIG_GART_IOMMU is not set CONFIG_NR_CPUS_RANGE_BEGIN=2 CONFIG_NR_CPUS_RANGE_END=512 CONFIG_NR_CPUS_DEFAULT=64 CONFIG_NR_CPUS=128 +CONFIG_SCHED_CLUSTER=y CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y CONFIG_SCHED_MC_PRIO=y @@ -359,45 +362,45 @@ CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y # # Performance monitoring # +CONFIG_PERF_EVENTS_INTEL_UNCORE=y +CONFIG_PERF_EVENTS_INTEL_RAPL=y +CONFIG_PERF_EVENTS_INTEL_CSTATE=y # CONFIG_PERF_EVENTS_AMD_POWER is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=y +# CONFIG_PERF_EVENTS_AMD_BRS is not set # end of Performance monitoring CONFIG_X86_16BIT=y CONFIG_X86_ESPFIX64=y CONFIG_X86_VSYSCALL_EMULATION=y CONFIG_X86_IOPL_IOPERM=y -# CONFIG_I8K is not set # CONFIG_MICROCODE is not set CONFIG_X86_MSR=y CONFIG_X86_CPUID=y # CONFIG_X86_5LEVEL is not set CONFIG_X86_DIRECT_GBPAGES=y -# CONFIG_X86_CPA_STATISTICS is not set -CONFIG_AMD_MEM_ENCRYPT=n -# CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set +# CONFIG_AMD_MEM_ENCRYPT is not set CONFIG_NUMA=y +CONFIG_AMD_NUMA=y +CONFIG_X86_64_ACPI_NUMA=y # CONFIG_NUMA_EMU is not set CONFIG_NODES_SHIFT=10 CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y -CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_MEMORY_PROBE=y CONFIG_ARCH_PROC_KCORE_TEXT=y CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 # CONFIG_X86_PMEM_LEGACY is not set 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_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y -CONFIG_ARCH_RANDOM=y -CONFIG_X86_SMAP=y CONFIG_X86_UMIP=y -CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=n +# CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS is not set CONFIG_X86_INTEL_TSX_MODE_OFF=y # CONFIG_X86_INTEL_TSX_MODE_ON is not set # CONFIG_X86_INTEL_TSX_MODE_AUTO is not set @@ -409,9 +412,6 @@ CONFIG_HZ_250=y CONFIG_HZ=250 CONFIG_SCHED_HRTICK=y # CONFIG_KEXEC is not set -CONFIG_KEXEC_FILE=y -CONFIG_ARCH_HAS_KEXEC_PURGATORY=y -# CONFIG_KEXEC_SIG is not set # CONFIG_CRASH_DUMP is not set CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y @@ -421,82 +421,92 @@ CONFIG_HOTPLUG_CPU=y # CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set # CONFIG_DEBUG_HOTPLUG_CPU0 is not set # CONFIG_COMPAT_VDSO is not set -CONFIG_LEGACY_VSYSCALL_EMULATE=y -# CONFIG_LEGACY_VSYSCALL_XONLY is not set +CONFIG_LEGACY_VSYSCALL_XONLY=y # CONFIG_LEGACY_VSYSCALL_NONE is not set # CONFIG_CMDLINE_BOOL is not set CONFIG_MODIFY_LDT_SYSCALL=y +# CONFIG_STRICT_SIGALTSTACK_SIZE is not set CONFIG_HAVE_LIVEPATCH=y # end of Processor type and features +CONFIG_CC_HAS_RETURN_THUNK=y +CONFIG_SPECULATION_MITIGATIONS=y +CONFIG_PAGE_TABLE_ISOLATION=y +CONFIG_RETPOLINE=y +CONFIG_RETHUNK=y +CONFIG_CPU_UNRET_ENTRY=y +CONFIG_CPU_IBPB_ENTRY=y +CONFIG_CPU_IBRS_ENTRY=y +CONFIG_CPU_SRSO=y +# CONFIG_GDS_FORCE_MITIGATION is not set CONFIG_ARCH_HAS_ADD_PAGES=y -CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y -CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y -CONFIG_USE_PERCPU_NUMA_NODE_ID=y -CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y -CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y -CONFIG_ARCH_ENABLE_THP_MIGRATION=y +CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y # # Power management and ACPI options # CONFIG_ARCH_HIBERNATION_HEADER=y # CONFIG_SUSPEND is not set -CONFIG_HIBERNATE_CALLBACKS=n -CONFIG_HIBERNATION=n -CONFIG_HIBERNATION_SNAPSHOT_DEV=n +CONFIG_HIBERNATE_CALLBACKS=y +CONFIG_HIBERNATION=y +CONFIG_HIBERNATION_SNAPSHOT_DEV=y CONFIG_PM_STD_PARTITION="" -CONFIG_PM_SLEEP=n -CONFIG_PM_SLEEP_SMP=n +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y # CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_USERSPACE_AUTOSLEEP is not set # CONFIG_PM_WAKELOCKS is not set -CONFIG_PM=n +CONFIG_PM=y # CONFIG_PM_DEBUG is not set # CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set # CONFIG_ENERGY_MODEL is not set CONFIG_ARCH_SUPPORTS_ACPI=y -CONFIG_ACPI=n -CONFIG_ACPI_LEGACY_TABLES_LOOKUP=n +CONFIG_ACPI=y +CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y -CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=n +CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y # CONFIG_ACPI_DEBUGGER is not set -CONFIG_ACPI_SPCR_TABLE=n -CONFIG_ACPI_LPIT=n -CONFIG_ACPI_SLEEP=n -CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=n +CONFIG_ACPI_SPCR_TABLE=y +# CONFIG_ACPI_FPDT is not set +CONFIG_ACPI_LPIT=y +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y # CONFIG_ACPI_EC_DEBUGFS is not set -CONFIG_ACPI_AC=n -CONFIG_ACPI_BATTERY=n -CONFIG_ACPI_BUTTON=n -CONFIG_ACPI_FAN=n +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_FAN=y # CONFIG_ACPI_TAD is not set # CONFIG_ACPI_DOCK is not set -CONFIG_ACPI_CPU_FREQ_PSS=n -CONFIG_ACPI_PROCESSOR_CSTATE=n -CONFIG_ACPI_PROCESSOR_IDLE=n -CONFIG_ACPI_CPPC_LIB=n -CONFIG_ACPI_PROCESSOR=n -CONFIG_ACPI_HOTPLUG_CPU=n +CONFIG_ACPI_CPU_FREQ_PSS=y +CONFIG_ACPI_PROCESSOR_CSTATE=y +CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set -CONFIG_ACPI_THERMAL=n +CONFIG_ACPI_THERMAL=y CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y -CONFIG_ACPI_TABLE_UPGRADE=n +CONFIG_ACPI_TABLE_UPGRADE=y # CONFIG_ACPI_DEBUG is not set -CONFIG_ACPI_CONTAINER=n +# CONFIG_ACPI_PCI_SLOT is not set +CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_HOTPLUG_MEMORY is not set +CONFIG_ACPI_HOTPLUG_IOAPIC=y # CONFIG_ACPI_SBS is not set # CONFIG_ACPI_HED is not set -# CONFIG_ACPI_CUSTOM_METHOD is not set # CONFIG_ACPI_NFIT is not set -# CONFIG_ACPI_NUMA is not set +CONFIG_ACPI_NUMA=y +# CONFIG_ACPI_HMAT is not set CONFIG_HAVE_ACPI_APEI=y CONFIG_HAVE_ACPI_APEI_NMI=y # CONFIG_ACPI_APEI is not set # CONFIG_ACPI_DPTF is not set # CONFIG_ACPI_CONFIGFS is not set +# CONFIG_ACPI_PFRUT is not set +CONFIG_ACPI_PCC=y # CONFIG_PMIC_OPREGION is not set CONFIG_X86_PM_TIMER=y -# CONFIG_SFI is not set # # CPU Frequency scaling @@ -520,6 +530,8 @@ CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y # CONFIG_X86_INTEL_PSTATE=y # CONFIG_X86_PCC_CPUFREQ is not set +# CONFIG_X86_AMD_PSTATE is not set +# CONFIG_X86_AMD_PSTATE_UT is not set # CONFIG_X86_ACPI_CPUFREQ is not set # CONFIG_X86_SPEEDSTEP_CENTRINO is not set # CONFIG_X86_P4_CLOCKMOD is not set @@ -546,39 +558,23 @@ CONFIG_INTEL_IDLE=y # # Bus options (PCI etc.) # +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_MMCONF_FAM10H=y CONFIG_ISA_DMA_API=y -# CONFIG_X86_SYSFB is not set +CONFIG_AMD_NB=y # end of Bus options (PCI etc.) # # Binary Emulations # CONFIG_IA32_EMULATION=y -# CONFIG_X86_X32 is not set +# CONFIG_X86_X32_ABI is not set CONFIG_COMPAT_32=y CONFIG_COMPAT=y CONFIG_COMPAT_FOR_U64_ALIGNMENT=y -CONFIG_SYSVIPC_COMPAT=y # end of Binary Emulations -# -# Firmware Drivers -# -# CONFIG_EDD is not set -CONFIG_FIRMWARE_MEMMAP=y -CONFIG_DMIID=y -# CONFIG_DMI_SYSFS is not set -CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y -# CONFIG_ISCSI_IBFT is not set -# CONFIG_FW_CFG_SYSFS is not set -# CONFIG_GOOGLE_FIRMWARE is not set - -# -# Tegra firmware driver -# -# end of Tegra firmware driver -# end of Firmware Drivers - CONFIG_HAVE_KVM=y # CONFIG_VIRTUALIZATION is not set CONFIG_AS_AVX512=y @@ -589,38 +585,37 @@ CONFIG_AS_SHA256_NI=y # General architecture-dependent options # CONFIG_CRASH_CORE=y -CONFIG_KEXEC_CORE=y CONFIG_HOTPLUG_SMT=y CONFIG_GENERIC_ENTRY=y -# CONFIG_OPROFILE is not set -CONFIG_HAVE_OPROFILE=y -CONFIG_OPROFILE_NMI_TIMER=y -CONFIG_KPROBES=y CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set # CONFIG_STATIC_CALL_SELFTEST is not set -CONFIG_OPTPROBES=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y -CONFIG_KRETPROBES=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_KPROBES_ON_FTRACE=y +CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y CONFIG_HAVE_NMI=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_ARCH_HAS_FORTIFY_SOURCE=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_HAS_SET_DIRECT_MAP=y +CONFIG_ARCH_HAS_CPU_FINALIZE_INIT=y CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y +CONFIG_ARCH_WANTS_NO_INSTR=y CONFIG_HAVE_ASM_MODVERSIONS=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_RUST=y CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y @@ -633,6 +628,7 @@ CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y CONFIG_MMU_GATHER_TABLE_FREE=y CONFIG_MMU_GATHER_RCU_TABLE_FREE=y +CONFIG_MMU_GATHER_MERGE_VMAS=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y CONFIG_HAVE_CMPXCHG_LOCAL=y @@ -641,24 +637,33 @@ CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y CONFIG_HAVE_ARCH_SECCOMP=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y -CONFIG_SECCOMP=n -CONFIG_SECCOMP_FILTER=n +# CONFIG_SECCOMP is not set CONFIG_HAVE_ARCH_STACKLEAK=y CONFIG_HAVE_STACKPROTECTOR=y CONFIG_STACKPROTECTOR=y CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_ARCH_SUPPORTS_LTO_CLANG=y +CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y +CONFIG_LTO_NONE=y +CONFIG_ARCH_SUPPORTS_CFI_CLANG=y CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y -CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_CONTEXT_TRACKING_USER=y +CONFIG_HAVE_CONTEXT_TRACKING_USER_OFFSTACK=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOVE_PUD=y CONFIG_HAVE_MOVE_PMD=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y CONFIG_HAVE_ARCH_HUGE_VMAP=y +CONFIG_HAVE_ARCH_HUGE_VMALLOC=y CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_HAVE_ARCH_SOFT_DIRTY=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y -CONFIG_MODULES_USE_ELF_RELA=n +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y +CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y +CONFIG_SOFTIRQ_ON_OWN_STACK=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_HAVE_EXIT_THREAD=y @@ -666,6 +671,13 @@ CONFIG_ARCH_MMAP_RND_BITS=28 CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y +CONFIG_PAGE_SIZE_LESS_THAN_64KB=y +CONFIG_PAGE_SIZE_LESS_THAN_256KB=y +CONFIG_HAVE_OBJTOOL=y +CONFIG_HAVE_JUMP_LABEL_HACK=y +CONFIG_HAVE_NOINSTR_HACK=y +CONFIG_HAVE_NOINSTR_VALIDATION=y +CONFIG_HAVE_UACCESS_VALIDATION=y CONFIG_HAVE_STACK_VALIDATION=y CONFIG_HAVE_RELIABLE_STACKTRACE=y CONFIG_OLD_SIGSUSPEND3=y @@ -673,22 +685,29 @@ CONFIG_COMPAT_OLD_SIGACTION=y CONFIG_COMPAT_32BIT_TIME=y CONFIG_HAVE_ARCH_VMAP_STACK=y CONFIG_VMAP_STACK=y +CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y +CONFIG_RANDOMIZE_KSTACK_OFFSET=y +# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y -CONFIG_STRICT_MODULE_RWX=y CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y -CONFIG_ARCH_USE_MEMREMAP_PROT=y -# CONFIG_LOCK_EVENT_COUNTS is not set CONFIG_ARCH_HAS_MEM_ENCRYPT=y CONFIG_HAVE_STATIC_CALL=y CONFIG_HAVE_STATIC_CALL_INLINE=y +CONFIG_HAVE_PREEMPT_DYNAMIC=y +CONFIG_HAVE_PREEMPT_DYNAMIC_CALL=y CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y +CONFIG_ARCH_HAS_ELFCORE_COMPAT=y +CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y +CONFIG_DYNAMIC_SIGFRAME=y +CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG=y # # GCOV-based kernel profiling # -# CONFIG_GCOV_KERNEL is not set CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y # end of GCOV-based kernel profiling @@ -697,42 +716,20 @@ CONFIG_HAVE_GCC_PLUGINS=y CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 -CONFIG_MODULE_SIG_FORMAT=n -CONFIG_MODULES=n -CONFIG_MODULE_FORCE_LOAD=n -CONFIG_MODULE_UNLOAD=n -# CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_MODVERSIONS=n -CONFIG_ASM_MODVERSIONS=y -CONFIG_MODULE_SRCVERSION_ALL=n -CONFIG_MODULE_SIG=n -# CONFIG_MODULE_SIG_FORCE is not set -CONFIG_MODULE_SIG_ALL=n -# CONFIG_MODULE_SIG_SHA1 is not set -# CONFIG_MODULE_SIG_SHA224 is not set -# CONFIG_MODULE_SIG_SHA256 is not set -# CONFIG_MODULE_SIG_SHA384 is not set -CONFIG_MODULE_SIG_SHA512=n -CONFIG_MODULE_SIG_HASH="sha512" -# CONFIG_MODULE_COMPRESS is not set -# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set -CONFIG_UNUSED_SYMBOLS=y -CONFIG_MODULES_TREE_LOOKUP=n +# CONFIG_MODULES is not set CONFIG_BLOCK=y -CONFIG_BLK_SCSI_REQUEST=n +CONFIG_BLOCK_LEGACY_AUTOLOAD=y CONFIG_BLK_CGROUP_RWSTAT=y -CONFIG_BLK_DEV_BSG=n -CONFIG_BLK_DEV_BSGLIB=n -CONFIG_BLK_DEV_INTEGRITY=n +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_INTEGRITY is not set # CONFIG_BLK_DEV_ZONED is not set CONFIG_BLK_DEV_THROTTLING=y # CONFIG_BLK_DEV_THROTTLING_LOW is not set -CONFIG_BLK_CMDLINE_PARSER=y CONFIG_BLK_WBT=y +CONFIG_BLK_WBT_MQ=y # CONFIG_BLK_CGROUP_IOLATENCY is not set # CONFIG_BLK_CGROUP_IOCOST is not set -CONFIG_BLK_WBT_MQ=y -CONFIG_BLK_DEBUG_FS=y +# CONFIG_BLK_CGROUP_IOPRIO is not set # CONFIG_BLK_SED_OPAL is not set # CONFIG_BLK_INLINE_ENCRYPTION is not set @@ -762,6 +759,7 @@ CONFIG_MSDOS_PARTITION=y # end of Partition Types CONFIG_BLOCK_COMPAT=y +CONFIG_BLK_MQ_PCI=y CONFIG_BLK_MQ_VIRTIO=y CONFIG_BLK_PM=y @@ -773,12 +771,7 @@ CONFIG_BLK_PM=y # CONFIG_IOSCHED_BFQ is not set # end of IO Schedulers -CONFIG_ASN1=n -CONFIG_INLINE_SPIN_UNLOCK_IRQ=y -CONFIG_INLINE_READ_UNLOCK=y -CONFIG_INLINE_READ_UNLOCK_IRQ=y -CONFIG_INLINE_WRITE_UNLOCK=y -CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_UNINLINE_SPIN_UNLOCK=y CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_RWSEM_SPIN_ON_OWNER=y @@ -807,62 +800,94 @@ CONFIG_COREDUMP=y # # Memory Management options # -CONFIG_SELECT_MEMORY_MODEL=y -CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SWAP=y +# CONFIG_ZSWAP is not set + +# +# SLAB allocator options +# +# CONFIG_SLAB is not set +CONFIG_SLUB=y +CONFIG_SLAB_MERGE_DEFAULT=y +# CONFIG_SLAB_FREELIST_RANDOM is not set +CONFIG_SLAB_FREELIST_HARDENED=y +# CONFIG_SLUB_STATS is not set +CONFIG_SLUB_CPU_PARTIAL=y +# end of SLAB allocator options + +# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set +# CONFIG_COMPAT_BRK is not set CONFIG_SPARSEMEM=y -CONFIG_NEED_MULTIPLE_NODES=y CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_HAVE_FAST_GUP=y CONFIG_NUMA_KEEP_MEMINFO=y CONFIG_MEMORY_ISOLATION=y +CONFIG_EXCLUSIVE_SYSTEM_RAM=y CONFIG_HAVE_BOOTMEM_INFO_NODE=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y CONFIG_MEMORY_HOTPLUG=y -CONFIG_MEMORY_HOTPLUG_SPARSE=y # CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not set CONFIG_MEMORY_HOTREMOVE=y +CONFIG_MHP_MEMMAP_ON_MEMORY=y CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y CONFIG_MEMORY_BALLOON=y # CONFIG_BALLOON_COMPACTION is not set CONFIG_COMPACTION=y +CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 CONFIG_PAGE_REPORTING=y CONFIG_MIGRATION=y +CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y +CONFIG_ARCH_ENABLE_THP_MIGRATION=y CONFIG_CONTIG_ALLOC=y CONFIG_PHYS_ADDR_T_64BIT=y -CONFIG_BOUNCE=y -CONFIG_VIRT_TO_BUS=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_ARCH_WANTS_THP_SWAP=y CONFIG_TRANSPARENT_HUGEPAGE=y # CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y -CONFIG_ARCH_WANTS_THP_SWAP=y CONFIG_THP_SWAP=y -CONFIG_CLEANCACHE=y -CONFIG_FRONTSWAP=y +# CONFIG_READ_ONLY_THP_FOR_FS is not set +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y +CONFIG_USE_PERCPU_NUMA_NODE_ID=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y # CONFIG_CMA is not set -# CONFIG_ZSWAP is not set -CONFIG_ZPOOL=n -# CONFIG_ZBUD is not set -# CONFIG_Z3FOLD is not set -# CONFIG_ZSMALLOC is not set CONFIG_GENERIC_EARLY_IOREMAP=y # CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set # CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y CONFIG_ARCH_HAS_PTE_DEVMAP=y +CONFIG_ZONE_DMA=y +CONFIG_ZONE_DMA32=y # CONFIG_ZONE_DEVICE is not set -CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y -CONFIG_ARCH_HAS_PKEYS=n +CONFIG_VM_EVENT_COUNTERS=y CONFIG_PERCPU_STATS=y -# CONFIG_GUP_BENCHMARK is not set -# CONFIG_READ_ONLY_THP_FOR_FS is not set + +# +# GUP_TEST needs to have DEBUG_FS enabled +# CONFIG_ARCH_HAS_PTE_SPECIAL=y +CONFIG_SECRETMEM=y +# CONFIG_ANON_VMA_NAME is not set +# CONFIG_USERFAULTFD is not set +# CONFIG_LRU_GEN is not set +CONFIG_LOCK_MM_AND_FIND_VMA=y + +# +# Data Access Monitoring +# +# CONFIG_DAMON is not set +# end of Data Access Monitoring # end of Memory Management options CONFIG_NET=y -CONFIG_NET_INGRESS=y -CONFIG_SKB_EXTENSIONS=y # # Networking options @@ -871,16 +896,10 @@ CONFIG_PACKET=y # CONFIG_PACKET_DIAG is not set CONFIG_UNIX=y CONFIG_UNIX_SCM=y +CONFIG_AF_UNIX_OOB=y # CONFIG_UNIX_DIAG is not set # CONFIG_TLS is not set -CONFIG_XFRM=n -CONFIG_XFRM_ALGO=n -CONFIG_XFRM_USER=n -# CONFIG_XFRM_USER_COMPAT is not set -# CONFIG_XFRM_INTERFACE is not set -CONFIG_XFRM_SUB_POLICY=n -CONFIG_XFRM_MIGRATE=n -CONFIG_XFRM_STATISTICS=n +# CONFIG_XFRM_USER is not set # CONFIG_NET_KEY is not set # CONFIG_XDP_SOCKETS is not set CONFIG_INET=y @@ -907,6 +926,7 @@ CONFIG_SYN_COOKIES=y # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set +CONFIG_INET_TABLE_PERTURB_ORDER=16 # CONFIG_INET_DIAG is not set CONFIG_TCP_CONG_ADVANCED=y # CONFIG_TCP_CONG_BIC is not set @@ -929,209 +949,12 @@ CONFIG_DEFAULT_CUBIC=y # CONFIG_DEFAULT_RENO is not set CONFIG_DEFAULT_TCP_CONG="cubic" CONFIG_TCP_MD5SIG=y -CONFIG_IPV6=n -CONFIG_IPV6_ROUTER_PREF=n -CONFIG_IPV6_ROUTE_INFO=n -CONFIG_IPV6_OPTIMISTIC_DAD=n -# CONFIG_INET6_AH is not set -# CONFIG_INET6_ESP is not set -# CONFIG_INET6_IPCOMP is not set -# CONFIG_IPV6_MIP6 is not set -# CONFIG_IPV6_ILA is not set -# CONFIG_IPV6_VTI is not set -# CONFIG_IPV6_SIT is not set -# CONFIG_IPV6_TUNNEL is not set -CONFIG_IPV6_MULTIPLE_TABLES=n -CONFIG_IPV6_SUBTREES=n -CONFIG_IPV6_MROUTE=n -CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=n -CONFIG_IPV6_PIMSM_V2=n -CONFIG_IPV6_SEG6_LWTUNNEL=n -CONFIG_IPV6_SEG6_HMAC=n -CONFIG_IPV6_SEG6_BPF=n -# CONFIG_IPV6_RPL_LWTUNNEL is not set -CONFIG_NETLABEL=n +# CONFIG_IPV6 is not set # CONFIG_MPTCP is not set CONFIG_NETWORK_SECMARK=y CONFIG_NET_PTP_CLASSIFY=y CONFIG_NETWORK_PHY_TIMESTAMPING=y -CONFIG_NETFILTER=n -CONFIG_NETFILTER_ADVANCED=n -CONFIG_BRIDGE_NETFILTER=y - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_INGRESS=n -CONFIG_NETFILTER_FAMILY_BRIDGE=n -# CONFIG_NETFILTER_NETLINK_ACCT is not set -# CONFIG_NETFILTER_NETLINK_QUEUE is not set -# CONFIG_NETFILTER_NETLINK_LOG is not set -# CONFIG_NETFILTER_NETLINK_OSF is not set -CONFIG_NF_CONNTRACK=n -CONFIG_NF_LOG_COMMON=n -# CONFIG_NF_LOG_NETDEV is not set -CONFIG_NF_CONNTRACK_MARK=n -CONFIG_NF_CONNTRACK_SECMARK=n -# CONFIG_NF_CONNTRACK_ZONES is not set -CONFIG_NF_CONNTRACK_PROCFS=n -CONFIG_NF_CONNTRACK_EVENTS=n -CONFIG_NF_CONNTRACK_TIMEOUT=n -CONFIG_NF_CONNTRACK_TIMESTAMP=n -# CONFIG_NF_CONNTRACK_LABELS is not set -CONFIG_NF_CT_PROTO_DCCP=n -CONFIG_NF_CT_PROTO_SCTP=n -CONFIG_NF_CT_PROTO_UDPLITE=n -# CONFIG_NF_CONNTRACK_AMANDA is not set -# CONFIG_NF_CONNTRACK_FTP is not set -# CONFIG_NF_CONNTRACK_H323 is not set -# CONFIG_NF_CONNTRACK_IRC is not set -# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set -# CONFIG_NF_CONNTRACK_SNMP is not set -# CONFIG_NF_CONNTRACK_PPTP is not set -# CONFIG_NF_CONNTRACK_SANE is not set -# CONFIG_NF_CONNTRACK_SIP is not set -# CONFIG_NF_CONNTRACK_TFTP is not set -# CONFIG_NF_CT_NETLINK is not set -# CONFIG_NF_CT_NETLINK_TIMEOUT is not set -CONFIG_NF_NAT=n -CONFIG_NF_NAT_REDIRECT=n -CONFIG_NF_NAT_MASQUERADE=n -CONFIG_NETFILTER_SYNPROXY=n -# CONFIG_NF_TABLES is not set -CONFIG_NETFILTER_XTABLES=n - -# -# Xtables combined modules -# -# CONFIG_NETFILTER_XT_MARK is not set -# CONFIG_NETFILTER_XT_CONNMARK is not set - -# -# Xtables targets -# -# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set -# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set -# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set -# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set -# CONFIG_NETFILTER_XT_TARGET_CONNSECMARK is not set -# CONFIG_NETFILTER_XT_TARGET_DSCP is not set -# CONFIG_NETFILTER_XT_TARGET_HL is not set -# CONFIG_NETFILTER_XT_TARGET_HMARK is not set -# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set -# CONFIG_NETFILTER_XT_TARGET_LOG is not set -# CONFIG_NETFILTER_XT_TARGET_MARK is not set -CONFIG_NETFILTER_XT_NAT=n -CONFIG_NETFILTER_XT_TARGET_NETMAP=n -# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set -# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set -# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set -CONFIG_NETFILTER_XT_TARGET_REDIRECT=n -CONFIG_NETFILTER_XT_TARGET_MASQUERADE=n -# CONFIG_NETFILTER_XT_TARGET_TEE is not set -# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set -# CONFIG_NETFILTER_XT_TARGET_SECMARK is not set -# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set -# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set - -# -# Xtables matches -# -CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=n -# CONFIG_NETFILTER_XT_MATCH_BPF is not set -# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set -# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set -# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set -# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set -# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set -# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=n -# CONFIG_NETFILTER_XT_MATCH_CPU is not set -# CONFIG_NETFILTER_XT_MATCH_DCCP is not set -# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set -# CONFIG_NETFILTER_XT_MATCH_DSCP is not set -# CONFIG_NETFILTER_XT_MATCH_ECN is not set -# CONFIG_NETFILTER_XT_MATCH_ESP is not set -# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_HELPER is not set -# CONFIG_NETFILTER_XT_MATCH_HL is not set -# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set -# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set -# CONFIG_NETFILTER_XT_MATCH_L2TP is not set -# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set -# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_MAC is not set -# CONFIG_NETFILTER_XT_MATCH_MARK is not set -# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set -# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set -# CONFIG_NETFILTER_XT_MATCH_OSF is not set -# CONFIG_NETFILTER_XT_MATCH_OWNER is not set -# CONFIG_NETFILTER_XT_MATCH_POLICY is not set -# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set -# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set -# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set -# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set -# CONFIG_NETFILTER_XT_MATCH_REALM is not set -# CONFIG_NETFILTER_XT_MATCH_RECENT is not set -# CONFIG_NETFILTER_XT_MATCH_SCTP is not set -# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set -# CONFIG_NETFILTER_XT_MATCH_STATE is not set -# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set -# CONFIG_NETFILTER_XT_MATCH_STRING is not set -# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set -# CONFIG_NETFILTER_XT_MATCH_TIME is not set -# CONFIG_NETFILTER_XT_MATCH_U32 is not set -# end of Core Netfilter Configuration - -# CONFIG_IP_SET is not set -# CONFIG_IP_VS is not set - -# -# IP: Netfilter Configuration -# -CONFIG_NF_DEFRAG_IPV4=n -# CONFIG_NF_SOCKET_IPV4 is not set -# CONFIG_NF_TPROXY_IPV4 is not set -# CONFIG_NF_DUP_IPV4 is not set -CONFIG_NF_LOG_ARP=n -CONFIG_NF_LOG_IPV4=n -CONFIG_NF_REJECT_IPV4=n -CONFIG_IP_NF_IPTABLES=y -# CONFIG_IP_NF_MATCH_AH is not set -# CONFIG_IP_NF_MATCH_ECN is not set -# CONFIG_IP_NF_MATCH_RPFILTER is not set -# CONFIG_IP_NF_MATCH_TTL is not set -CONFIG_IP_NF_FILTER=y -CONFIG_IP_NF_TARGET_REJECT=y -CONFIG_IP_NF_TARGET_SYNPROXY=y -CONFIG_IP_NF_NAT=y -CONFIG_IP_NF_TARGET_MASQUERADE=y -CONFIG_IP_NF_TARGET_NETMAP=y -CONFIG_IP_NF_TARGET_REDIRECT=y -CONFIG_IP_NF_MANGLE=y -# CONFIG_IP_NF_TARGET_CLUSTERIP is not set -# CONFIG_IP_NF_TARGET_ECN is not set -# CONFIG_IP_NF_TARGET_TTL is not set -# CONFIG_IP_NF_RAW is not set -# CONFIG_IP_NF_SECURITY is not set -# CONFIG_IP_NF_ARPTABLES is not set -# end of IP: Netfilter Configuration - -# -# IPv6: Netfilter Configuration -# -# CONFIG_NF_SOCKET_IPV6 is not set -# CONFIG_NF_TPROXY_IPV6 is not set -# CONFIG_NF_DUP_IPV6 is not set -# CONFIG_NF_REJECT_IPV6 is not set -# CONFIG_NF_LOG_IPV6 is not set -# CONFIG_IP6_NF_IPTABLES is not set -# end of IPv6: Netfilter Configuration - -CONFIG_NF_DEFRAG_IPV6=n -# CONFIG_NF_CONNTRACK_BRIDGE is not set -# CONFIG_BRIDGE_NF_EBTABLES is not set +# CONFIG_NETFILTER is not set # CONFIG_BPFILTER is not set # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set @@ -1143,17 +966,15 @@ CONFIG_STP=y CONFIG_BRIDGE=y CONFIG_BRIDGE_IGMP_SNOOPING=y # CONFIG_BRIDGE_MRP is not set -CONFIG_HAVE_NET_DSA=y +# CONFIG_BRIDGE_CFM is not set # CONFIG_NET_DSA is not set # CONFIG_VLAN_8021Q is not set -# CONFIG_DECNET is not set CONFIG_LLC=y # CONFIG_LLC2 is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_PHONET is not set -# CONFIG_6LOWPAN is not set # CONFIG_IEEE802154 is not set CONFIG_NET_SCHED=y @@ -1197,12 +1018,9 @@ CONFIG_NET_SCHED=y # CONFIG_NET_CLS=y # CONFIG_NET_CLS_BASIC is not set -# CONFIG_NET_CLS_TCINDEX is not set # CONFIG_NET_CLS_ROUTE4 is not set # CONFIG_NET_CLS_FW is not set # CONFIG_NET_CLS_U32 is not set -# CONFIG_NET_CLS_RSVP is not set -# CONFIG_NET_CLS_RSVP6 is not set # CONFIG_NET_CLS_FLOW is not set # CONFIG_NET_CLS_CGROUP is not set # CONFIG_NET_CLS_BPF is not set @@ -1215,13 +1033,11 @@ CONFIG_NET_EMATCH_STACK=32 # CONFIG_NET_EMATCH_U32 is not set # CONFIG_NET_EMATCH_META is not set # CONFIG_NET_EMATCH_TEXT is not set -# CONFIG_NET_EMATCH_IPT is not set CONFIG_NET_CLS_ACT=y # CONFIG_NET_ACT_POLICE is not set # CONFIG_NET_ACT_GACT is not set # CONFIG_NET_ACT_MIRRED is not set # CONFIG_NET_ACT_SAMPLE is not set -# CONFIG_NET_ACT_IPT is not set # CONFIG_NET_ACT_NAT is not set # CONFIG_NET_ACT_PEDIT is not set # CONFIG_NET_ACT_SIMP is not set @@ -1230,16 +1046,13 @@ CONFIG_NET_CLS_ACT=y # CONFIG_NET_ACT_MPLS is not set # CONFIG_NET_ACT_VLAN is not set # CONFIG_NET_ACT_BPF is not set -# CONFIG_NET_ACT_CONNMARK is not set -# CONFIG_NET_ACT_CTINFO is not set # CONFIG_NET_ACT_SKBMOD is not set # CONFIG_NET_ACT_IFE is not set # CONFIG_NET_ACT_TUNNEL_KEY is not set # CONFIG_NET_ACT_GATE is not set # CONFIG_NET_TC_SKB_EXT is not set CONFIG_NET_SCH_FIFO=y -CONFIG_DCB=n -# CONFIG_DNS_RESOLVER is not set +# CONFIG_DCB is not set # CONFIG_BATMAN_ADV is not set # CONFIG_OPENVSWITCH is not set CONFIG_VSOCKETS=y @@ -1248,23 +1061,22 @@ CONFIG_VSOCKETS_LOOPBACK=y CONFIG_VIRTIO_VSOCKETS=y CONFIG_VIRTIO_VSOCKETS_COMMON=y # CONFIG_NETLINK_DIAG is not set -CONFIG_MPLS=n -# CONFIG_NET_MPLS_GSO is not set -# CONFIG_MPLS_ROUTING is not set +# CONFIG_MPLS is not set # CONFIG_NET_NSH is not set # CONFIG_HSR is not set # CONFIG_NET_SWITCHDEV is not set # CONFIG_NET_L3_MASTER_DEV is not set # CONFIG_QRTR is not set # CONFIG_NET_NCSI is not set +CONFIG_PCPU_DEV_REFCNT=y CONFIG_RPS=y CONFIG_RFS_ACCEL=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y CONFIG_XPS=y CONFIG_CGROUP_NET_PRIO=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y -CONFIG_BPF_JIT=y CONFIG_BPF_STREAM_PARSER=y CONFIG_NET_FLOW_LIMIT=y @@ -1281,9 +1093,9 @@ CONFIG_NET_FLOW_LIMIT=y # CONFIG_AF_RXRPC is not set # CONFIG_AF_KCM is not set CONFIG_STREAM_PARSER=y +# CONFIG_MCTP is not set CONFIG_FIB_RULES=y # CONFIG_WIRELESS is not set -# CONFIG_WIMAX is not set # CONFIG_RFKILL is not set # CONFIG_NET_9P is not set # CONFIG_CAIF is not set @@ -1293,12 +1105,11 @@ CONFIG_FIB_RULES=y # CONFIG_NET_IFE is not set CONFIG_LWTUNNEL=y CONFIG_LWTUNNEL_BPF=y -CONFIG_DST_CACHE=y -CONFIG_GRO_CELLS=y CONFIG_NET_SOCK_MSG=y +CONFIG_PAGE_POOL=y +# CONFIG_PAGE_POOL_STATS is not set CONFIG_FAILOVER=y CONFIG_ETHTOOL_NETLINK=y -CONFIG_HAVE_EBPF_JIT=y # # Device Drivers @@ -1306,8 +1117,62 @@ CONFIG_HAVE_EBPF_JIT=y CONFIG_HAVE_EISA=y # CONFIG_EISA is not set CONFIG_HAVE_PCI=y -# CONFIG_PCI is not set +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +# CONFIG_PCIEPORTBUS is not set +CONFIG_PCIEASPM=y +CONFIG_PCIEASPM_DEFAULT=y +# CONFIG_PCIEASPM_POWERSAVE is not set +# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set +# CONFIG_PCIEASPM_PERFORMANCE is not set +# CONFIG_PCIE_PTM is not set +# CONFIG_PCI_MSI is not set +CONFIG_PCI_QUIRKS=y +# CONFIG_PCI_STUB is not set +CONFIG_PCI_LOCKLESS_CONFIG=y +# CONFIG_PCI_IOV is not set +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set +CONFIG_PCI_LABEL=y +CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +# CONFIG_HOTPLUG_PCI is not set + +# +# PCI controller drivers +# + +# +# DesignWare PCI Core Support +# +# end of DesignWare PCI Core Support + +# +# Mobiveil PCIe Core Support +# +# end of Mobiveil PCIe Core Support + +# +# Cadence PCIe controllers support +# +# end of Cadence PCIe controllers support +# end of PCI controller drivers + +# +# PCI Endpoint +# +# CONFIG_PCI_ENDPOINT is not set +# end of PCI Endpoint + +# +# PCI switch controller drivers +# +# CONFIG_PCI_SW_SWITCHTEC is not set +# end of PCI switch controller drivers + +# CONFIG_CXL_BUS is not set # CONFIG_PCCARD is not set +# CONFIG_RAPIDIO is not set # # Generic Driver Options @@ -1316,24 +1181,22 @@ CONFIG_UEVENT_HELPER=y CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_DEVTMPFS_SAFE is not set CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y # # Firmware loader # -CONFIG_FW_LOADER=n +CONFIG_FW_LOADER=y CONFIG_EXTRA_FIRMWARE="" # CONFIG_FW_LOADER_USER_HELPER is not set # CONFIG_FW_LOADER_COMPRESS is not set CONFIG_FW_CACHE=y +# CONFIG_FW_UPLOAD is not set # end of Firmware loader CONFIG_ALLOW_DEV_COREDUMP=y -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set -# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set CONFIG_GENERIC_CPU_AUTOPROBE=y CONFIG_GENERIC_CPU_VULNERABILITIES=y CONFIG_DMA_SHARED_BUFFER=y @@ -1344,10 +1207,36 @@ CONFIG_DMA_SHARED_BUFFER=y # Bus devices # # CONFIG_MHI_BUS is not set +# CONFIG_MHI_BUS_EP is not set # end of Bus devices CONFIG_CONNECTOR=y CONFIG_PROC_EVENTS=y + +# +# Firmware Drivers +# + +# +# ARM System Control and Management Interface Protocol +# +# end of ARM System Control and Management Interface Protocol + +# CONFIG_EDD is not set +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_DMIID=y +# CONFIG_DMI_SYSFS is not set +CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y +# CONFIG_FW_CFG_SYSFS is not set +# CONFIG_SYSFB_SIMPLEFB is not set +# CONFIG_GOOGLE_FIRMWARE is not set + +# +# Tegra firmware driver +# +# end of Tegra firmware driver +# end of Firmware Drivers + # CONFIG_GNSS is not set # CONFIG_MTD is not set # CONFIG_OF is not set @@ -1363,31 +1252,38 @@ CONFIG_PNPACPI=y CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_NULL_BLK is not set # CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 -# CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_DRBD is not set # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_RAM is not set -# CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set CONFIG_VIRTIO_BLK=y # CONFIG_BLK_DEV_RBD is not set +# CONFIG_BLK_DEV_UBLK is not set # # NVME Support # +# CONFIG_BLK_DEV_NVME is not set # CONFIG_NVME_FC is not set +# CONFIG_NVME_TCP is not set # end of NVME Support # # Misc devices # # CONFIG_DUMMY_IRQ is not set +# CONFIG_IBM_ASM is not set +# CONFIG_PHANTOM is not set +# CONFIG_TIFM_CORE is not set # CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_HP_ILO is not set # CONFIG_SRAM is not set +# CONFIG_DW_XDATA_PCIE is not set +# CONFIG_PCI_ENDPOINT_TEST is not set # CONFIG_XILINX_SDFEC is not set -# CONFIG_PVPANIC is not set # CONFIG_C2PORT is not set # @@ -1396,6 +1292,8 @@ CONFIG_VIRTIO_BLK=y # CONFIG_EEPROM_93CX6 is not set # end of EEPROM support +# CONFIG_CB710_CORE is not set + # # Texas Instruments shared transport line discipline # @@ -1404,56 +1302,39 @@ CONFIG_VIRTIO_BLK=y # # Altera FPGA firmware download module (requires I2C) # +# CONFIG_INTEL_MEI is not set +# CONFIG_INTEL_MEI_ME is not set +# CONFIG_INTEL_MEI_TXE is not set +# CONFIG_VMWARE_VMCI is not set +# CONFIG_GENWQE is not set # CONFIG_ECHO is not set +# CONFIG_MISC_ALCOR_PCI is not set +# CONFIG_MISC_RTSX_PCI is not set +# CONFIG_HABANA_AI is not set +# CONFIG_UACCE is not set +# CONFIG_PVPANIC is not set # end of Misc devices -CONFIG_HAVE_IDE=y -# CONFIG_IDE is not set - # # SCSI device support # -CONFIG_SCSI_MOD=n +CONFIG_SCSI_MOD=y # CONFIG_RAID_ATTRS is not set -CONFIG_SCSI=n -CONFIG_SCSI_DMA=n -CONFIG_SCSI_PROC_FS=n - -# -# SCSI support type (disk, tape, CD-ROM) -# -# CONFIG_BLK_DEV_SD is not set -# CONFIG_CHR_DEV_ST is not set -# CONFIG_BLK_DEV_SR is not set -# CONFIG_CHR_DEV_SG is not set -# CONFIG_CHR_DEV_SCH is not set -CONFIG_SCSI_CONSTANTS=n -CONFIG_SCSI_LOGGING=n -CONFIG_SCSI_SCAN_ASYNC=n - -# -# SCSI Transports -# -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_FC_ATTRS is not set -CONFIG_SCSI_ISCSI_ATTRS=n -# CONFIG_SCSI_SAS_ATTRS is not set -# CONFIG_SCSI_SAS_LIBSAS is not set -# CONFIG_SCSI_SRP_ATTRS is not set -# end of SCSI Transports - -CONFIG_SCSI_LOWLEVEL=n -CONFIG_ISCSI_TCP=n -# CONFIG_ISCSI_BOOT_SYSFS is not set -# CONFIG_SCSI_UFSHCD is not set -# CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_VIRTIO is not set -# CONFIG_SCSI_DH is not set +# CONFIG_SCSI is not set # end of SCSI device support # CONFIG_ATA is not set # CONFIG_MD is not set # CONFIG_TARGET_CORE is not set +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +# CONFIG_FIREWIRE_NOSY is not set +# end of IEEE 1394 (FireWire) support + # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y CONFIG_NET_CORE=y @@ -1461,7 +1342,6 @@ CONFIG_NET_CORE=y # CONFIG_DUMMY is not set # CONFIG_WIREGUARD is not set # CONFIG_EQUALIZER is not set -# CONFIG_IFB is not set # CONFIG_NET_TEAM is not set # CONFIG_MACVLAN is not set # CONFIG_IPVLAN is not set @@ -1469,6 +1349,7 @@ CONFIG_NET_CORE=y # CONFIG_GENEVE is not set # CONFIG_BAREUDP is not set # CONFIG_GTP is not set +# CONFIG_AMT is not set # CONFIG_MACSEC is not set # CONFIG_NETCONSOLE is not set CONFIG_TUN=y @@ -1476,15 +1357,13 @@ CONFIG_TUN=y CONFIG_VETH=y CONFIG_VIRTIO_NET=y # CONFIG_NLMON is not set - -# -# Distributed Switch Architecture drivers -# -# end of Distributed Switch Architecture drivers - +# CONFIG_ARCNET is not set # CONFIG_ETHERNET is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set # CONFIG_NET_SB1000 is not set # CONFIG_PHYLIB is not set +# CONFIG_PSE_CONTROLLER is not set # CONFIG_MDIO_DEVICE is not set # @@ -1499,25 +1378,27 @@ CONFIG_VIRTIO_NET=y # Host-side USB support is needed for USB Network Adapter support # # CONFIG_WLAN is not set +# CONFIG_WAN is not set # -# Enable WiMAX (Networking options) to see the WiMAX drivers +# Wireless WAN # -# CONFIG_WAN is not set +# CONFIG_WWAN is not set +# end of Wireless WAN + +# CONFIG_VMXNET3 is not set # CONFIG_FUJITSU_ES is not set -# CONFIG_NETDEVSIM is not set CONFIG_NET_FAILOVER=y # CONFIG_ISDN is not set -# CONFIG_NVM is not set # # Input device support # CONFIG_INPUT=y -CONFIG_INPUT_FF_MEMLESS=n -# CONFIG_INPUT_POLLDEV is not set +# CONFIG_INPUT_FF_MEMLESS is not set # CONFIG_INPUT_SPARSEKMAP is not set # CONFIG_INPUT_MATRIXKMAP is not set +CONFIG_INPUT_VIVALDIFMAP=y # # Userland interfaces @@ -1561,6 +1442,7 @@ CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set # CONFIG_SERIO_ALTERA_PS2 is not set @@ -1596,11 +1478,17 @@ CONFIG_SERIAL_8250_PNP=y # CONFIG_SERIAL_8250_FINTEK is not set CONFIG_SERIAL_8250_CONSOLE=y CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_EXAR=y CONFIG_SERIAL_8250_NR_UARTS=1 CONFIG_SERIAL_8250_RUNTIME_UARTS=1 # CONFIG_SERIAL_8250_EXTENDED is not set +CONFIG_SERIAL_8250_DWLIB=y # CONFIG_SERIAL_8250_DW is not set # CONFIG_SERIAL_8250_RT288X is not set +CONFIG_SERIAL_8250_LPSS=y +CONFIG_SERIAL_8250_MID=y +CONFIG_SERIAL_8250_PERICOM=y # # Non-8250 serial port support @@ -1608,40 +1496,47 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=1 # CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set # CONFIG_SERIAL_LANTIQ is not set # CONFIG_SERIAL_SCCNXP is not set # CONFIG_SERIAL_ALTERA_JTAGUART is not set # CONFIG_SERIAL_ALTERA_UART is not set # CONFIG_SERIAL_ARC is not set +# CONFIG_SERIAL_RP2 is not set # CONFIG_SERIAL_FSL_LPUART is not set # CONFIG_SERIAL_FSL_LINFLEXUART is not set # end of Serial drivers # CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_N_GSM is not set +# CONFIG_NOZOMI is not set # CONFIG_NULL_TTY is not set -# CONFIG_TRACE_SINK is not set CONFIG_HVC_DRIVER=y CONFIG_SERIAL_DEV_BUS=y CONFIG_SERIAL_DEV_CTRL_TTYPORT=y CONFIG_VIRTIO_CONSOLE=y # CONFIG_IPMI_HANDLER is not set CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +CONFIG_HW_RANDOM_INTEL=y +CONFIG_HW_RANDOM_AMD=y +# CONFIG_HW_RANDOM_BA431 is not set +CONFIG_HW_RANDOM_VIA=y CONFIG_HW_RANDOM_VIRTIO=y - +# CONFIG_HW_RANDOM_XIPHERA is not set +# CONFIG_APPLICOM is not set # CONFIG_MWAVE is not set CONFIG_DEVMEM=y -# CONFIG_DEVKMEM is not set # CONFIG_NVRAM is not set -# CONFIG_RAW_DRIVER is not set +CONFIG_DEVPORT=y # CONFIG_HPET is not set # CONFIG_HANGCHECK_TIMER is not set # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set -# end of Character devices - +# CONFIG_XILLYBUS is not set CONFIG_RANDOM_TRUST_CPU=y # CONFIG_RANDOM_TRUST_BOOTLOADER is not set +# end of Character devices # # I2C support @@ -1671,6 +1566,7 @@ CONFIG_PPS=y # PTP clock support # CONFIG_PTP_1588_CLOCK=y +CONFIG_PTP_1588_CLOCK_OPTIONAL=y # # Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. @@ -1690,32 +1586,43 @@ CONFIG_POWER_SUPPLY=y # CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2780 is not set # CONFIG_BATTERY_DS2781 is not set +# CONFIG_BATTERY_SAMSUNG_SDI is not set # CONFIG_BATTERY_BQ27XXX is not set # CONFIG_CHARGER_MAX8903 is not set +# CONFIG_BATTERY_GOLDFISH is not set # CONFIG_HWMON is not set -CONFIG_THERMAL=n +CONFIG_THERMAL=y # CONFIG_THERMAL_NETLINK is not set # CONFIG_THERMAL_STATISTICS is not set CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_WRITABLE_TRIPS=n -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=n +CONFIG_THERMAL_WRITABLE_TRIPS=y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y # CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set # CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set -CONFIG_THERMAL_GOV_FAIR_SHARE=n -CONFIG_THERMAL_GOV_STEP_WISE=n +# CONFIG_THERMAL_GOV_FAIR_SHARE is not set +CONFIG_THERMAL_GOV_STEP_WISE=y # CONFIG_THERMAL_GOV_BANG_BANG is not set -CONFIG_THERMAL_GOV_USER_SPACE=n +CONFIG_THERMAL_GOV_USER_SPACE=y # CONFIG_THERMAL_EMULATION is not set # # Intel thermal drivers # # CONFIG_INTEL_POWERCLAMP is not set +CONFIG_X86_THERMAL_VECTOR=y +CONFIG_X86_PKG_TEMP_THERMAL=y +# CONFIG_INTEL_SOC_DTS_THERMAL is not set # # ACPI INT340X thermal drivers # +# CONFIG_INT340X_THERMAL is not set # end of ACPI INT340X thermal drivers + +# CONFIG_INTEL_PCH_THERMAL is not set +# CONFIG_INTEL_TCC_COOLING is not set +# CONFIG_INTEL_MENLOW is not set +# CONFIG_INTEL_HFI_THERMAL is not set # end of Intel thermal drivers # CONFIG_WATCHDOG is not set @@ -1729,26 +1636,38 @@ CONFIG_BCMA_POSSIBLE=y # # CONFIG_MFD_MADERA is not set # CONFIG_HTC_PASIC3 is not set +# CONFIG_LPC_ICH is not set +# CONFIG_LPC_SCH is not set # CONFIG_MFD_INTEL_LPSS_ACPI is not set +# CONFIG_MFD_INTEL_LPSS_PCI is not set # CONFIG_MFD_INTEL_PMC_BXT is not set +# CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_RDC321X is not set # CONFIG_MFD_SM501 is not set -# CONFIG_ABX500_CORE is not set # CONFIG_MFD_SYSCON is not set -# CONFIG_MFD_TI_AM335X_TSCADC is not set # CONFIG_MFD_TQMX86 is not set +# CONFIG_MFD_VX855 is not set # CONFIG_RAVE_SP_CORE is not set # end of Multifunction device drivers # CONFIG_REGULATOR is not set # CONFIG_RC_CORE is not set + +# +# CEC support +# # CONFIG_MEDIA_CEC_SUPPORT is not set +# end of CEC support + # CONFIG_MEDIA_SUPPORT is not set # # Graphics support # +# CONFIG_AGP is not set +# CONFIG_VGA_SWITCHEROO is not set # CONFIG_DRM is not set # @@ -1784,79 +1703,13 @@ CONFIG_DUMMY_CONSOLE_ROWS=25 # # HID support # -CONFIG_HID=n -# CONFIG_HID_BATTERY_STRENGTH is not set -CONFIG_HIDRAW=n -# CONFIG_UHID is not set -# CONFIG_HID_GENERIC is not set - -# -# Special HID drivers -# -# CONFIG_HID_A4TECH is not set -# CONFIG_HID_ACRUX is not set -# CONFIG_HID_APPLE is not set -# CONFIG_HID_AUREAL is not set -# CONFIG_HID_BELKIN is not set -# CONFIG_HID_CHERRY is not set -# CONFIG_HID_CHICONY is not set -# CONFIG_HID_COUGAR is not set -# CONFIG_HID_MACALLY is not set -# CONFIG_HID_CMEDIA is not set -# CONFIG_HID_CYPRESS is not set -# CONFIG_HID_DRAGONRISE is not set -# CONFIG_HID_EMS_FF is not set -# CONFIG_HID_ELECOM is not set -# CONFIG_HID_EZKEY is not set -# CONFIG_HID_GEMBIRD is not set -# CONFIG_HID_GFRM is not set -# CONFIG_HID_GLORIOUS is not set -# CONFIG_HID_VIVALDI is not set -# CONFIG_HID_KEYTOUCH is not set -# CONFIG_HID_KYE is not set -# CONFIG_HID_WALTOP is not set -# CONFIG_HID_VIEWSONIC is not set -# CONFIG_HID_GYRATION is not set -# CONFIG_HID_ICADE is not set -# CONFIG_HID_ITE is not set -# CONFIG_HID_JABRA is not set -# CONFIG_HID_TWINHAN is not set -# CONFIG_HID_KENSINGTON is not set -# CONFIG_HID_LCPOWER is not set -# CONFIG_HID_LENOVO is not set -# CONFIG_HID_MAGICMOUSE is not set -# CONFIG_HID_MALTRON is not set -# CONFIG_HID_MAYFLASH is not set -CONFIG_HID_REDRAGON=n -# CONFIG_HID_MICROSOFT is not set -# CONFIG_HID_MONTEREY is not set -# CONFIG_HID_MULTITOUCH is not set -# CONFIG_HID_NTI is not set -# CONFIG_HID_ORTEK is not set -# CONFIG_HID_PANTHERLORD is not set -# CONFIG_HID_PETALYNX is not set -# CONFIG_HID_PICOLCD is not set -# CONFIG_HID_PLANTRONICS is not set -# CONFIG_HID_PRIMAX is not set -# CONFIG_HID_SAITEK is not set -# CONFIG_HID_SAMSUNG is not set -# CONFIG_HID_SPEEDLINK is not set -# CONFIG_HID_STEAM is not set -# CONFIG_HID_STEELSERIES is not set -# CONFIG_HID_SUNPLUS is not set -# CONFIG_HID_RMI is not set -# CONFIG_HID_GREENASIA is not set -# CONFIG_HID_SMARTJOYPLUS is not set -# CONFIG_HID_TIVO is not set -# CONFIG_HID_TOPSEED is not set -# CONFIG_HID_THRUSTMASTER is not set -# CONFIG_HID_UDRAW_PS3 is not set -# CONFIG_HID_XINMO is not set -# CONFIG_HID_ZEROPLUS is not set -# CONFIG_HID_ZYDACRON is not set -# CONFIG_HID_SENSOR_HUB is not set -# CONFIG_HID_ALPS is not set -# end of Special HID drivers +# CONFIG_HID is not set + +# +# Intel ISH HID support +# +# CONFIG_INTEL_ISH_HID is not set +# end of Intel ISH HID support # end of HID support CONFIG_USB_OHCI_LITTLE_ENDIAN=y @@ -1868,7 +1721,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y # CONFIG_INFINIBAND is not set CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y -# CONFIG_EDAC is not set CONFIG_RTC_LIB=y CONFIG_RTC_MC146818_LIB=y # CONFIG_RTC_CLASS is not set @@ -1878,24 +1730,40 @@ CONFIG_DMADEVICES=y # # DMA Devices # +CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=y CONFIG_DMA_ACPI=y # CONFIG_ALTERA_MSGDMA is not set # CONFIG_INTEL_IDMA64 is not set -# CONFIG_XILINX_ZYNQMP_DPDMA is not set +# CONFIG_INTEL_IDXD_COMPAT is not set +# CONFIG_INTEL_IOATDMA is not set +# CONFIG_PLX_DMA is not set +# CONFIG_AMD_PTDMA is not set # CONFIG_QCOM_HIDMA_MGMT is not set # CONFIG_QCOM_HIDMA is not set +CONFIG_DW_DMAC_CORE=y # CONFIG_DW_DMAC is not set +# CONFIG_DW_DMAC_PCI is not set +CONFIG_HSU_DMA=y # CONFIG_SF_PDMA is not set +# CONFIG_INTEL_LDMA is not set + +# +# DMA Clients +# +# CONFIG_ASYNC_TX_DMA is not set +# CONFIG_DMATEST is not set # # DMABUF options # CONFIG_SYNC_FILE=y -# CONFIG_SW_SYNC is not set # CONFIG_UDMABUF is not set # CONFIG_DMABUF_MOVE_NOTIFY is not set +# CONFIG_DMABUF_DEBUG is not set # CONFIG_DMABUF_SELFTESTS is not set # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_SYSFS_STATS is not set # end of DMABUF options CONFIG_AUXDISPLAY=y @@ -1904,11 +1772,17 @@ CONFIG_AUXDISPLAY=y # CONFIG_CHARLCD_BL_ON is not set CONFIG_CHARLCD_BL_FLASH=y # CONFIG_UIO is not set +# CONFIG_VFIO is not set CONFIG_VIRT_DRIVERS=y +CONFIG_VMGENID=y +# CONFIG_VBOXGUEST is not set +# CONFIG_NITRO_ENCLAVES is not set +CONFIG_VIRTIO_ANCHOR=y CONFIG_VIRTIO=y CONFIG_VIRTIO_MENU=y +# CONFIG_VIRTIO_PCI is not set CONFIG_VIRTIO_BALLOON=y -CONFIG_VIRTIO_MEM=n +# CONFIG_VIRTIO_MEM is not set # CONFIG_VIRTIO_INPUT is not set CONFIG_VIRTIO_MMIO=y CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y @@ -1925,56 +1799,63 @@ CONFIG_VHOST_MENU=y # end of Microsoft Hyper-V guest support # CONFIG_GREYBUS is not set -CONFIG_STAGING=y # CONFIG_COMEDI is not set +CONFIG_STAGING=y # CONFIG_STAGING_MEDIA is not set - -# -# Android -# -# end of Android - -# CONFIG_GS_FPGABOOT is not set -# CONFIG_UNISYSSPAR is not set - -# -# Gasket devices -# -# end of Gasket devices - # CONFIG_FIELDBUS_DEV is not set +# CONFIG_VME_BUS is not set +# CONFIG_CHROME_PLATFORMS is not set +# CONFIG_MELLANOX_PLATFORM is not set +CONFIG_SURFACE_PLATFORMS=y +# CONFIG_SURFACE_GPE is not set +# CONFIG_SURFACE_PRO3_BUTTON is not set +# CONFIG_SURFACE_AGGREGATOR is not set CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_ACPI_WMI is not set # CONFIG_ACERHDF is not set # CONFIG_ACER_WIRELESS is not set +# CONFIG_AMD_PMF is not set +# CONFIG_AMD_HSMP is not set +# CONFIG_ADV_SWBUTTON is not set # CONFIG_ASUS_WIRELESS is not set -# CONFIG_DCDBAS is not set -# CONFIG_DELL_SMBIOS is not set -# CONFIG_DELL_RBU is not set -# CONFIG_DELL_SMO8800 is not set +# CONFIG_X86_PLATFORM_DRIVERS_DELL is not set # CONFIG_FUJITSU_TABLET is not set # CONFIG_GPD_POCKET_FAN is not set -# CONFIG_HP_ACCEL is not set -# CONFIG_HP_WIRELESS is not set +# CONFIG_X86_PLATFORM_DRIVERS_HP is not set +# CONFIG_WIRELESS_HOTKEY is not set +# CONFIG_IBM_RTL is not set # CONFIG_SENSORS_HDAPS is not set -# CONFIG_INTEL_HID_EVENT is not set -# CONFIG_INTEL_MENLOW is not set -# CONFIG_INTEL_VBTN is not set -# CONFIG_SURFACE_PRO3_BUTTON is not set +# CONFIG_INTEL_SAR_INT1092 is not set +# CONFIG_INTEL_PMC_CORE is not set + +# +# Intel Speed Select Technology interface support +# +# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set +# end of Intel Speed Select Technology interface support + +# +# Intel Uncore Frequency Control +# +# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set +# end of Intel Uncore Frequency Control + +# CONFIG_INTEL_PUNIT_IPC is not set +# CONFIG_INTEL_RST is not set +# CONFIG_INTEL_SMARTCONNECT is not set +CONFIG_INTEL_TURBO_MAX_3=y +# CONFIG_INTEL_VSEC is not set # CONFIG_SAMSUNG_Q10 is not set # CONFIG_TOSHIBA_BT_RFKILL is not set # CONFIG_TOSHIBA_HAPS is not set # CONFIG_ACPI_CMPC is not set -# CONFIG_SYSTEM76_ACPI is not set # CONFIG_TOPSTAR_LAPTOP is not set -# CONFIG_INTEL_RST is not set -# CONFIG_INTEL_SMARTCONNECT is not set -CONFIG_INTEL_TURBO_MAX_3=y -# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set -# CONFIG_INTEL_PUNIT_IPC is not set +# CONFIG_INTEL_IPS is not set +# CONFIG_INTEL_SCU_PCI is not set # CONFIG_INTEL_SCU_PLATFORM is not set -# CONFIG_CHROME_PLATFORMS is not set -# CONFIG_MELLANOX_PLATFORM is not set +# CONFIG_SIEMENS_SIMATIC_IPC is not set +# CONFIG_WINMATE_FM07_KEYS is not set +# CONFIG_P2SB is not set # CONFIG_COMMON_CLK is not set # CONFIG_HWSPINLOCK is not set @@ -1986,9 +1867,11 @@ CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y # end of Clock Source drivers -CONFIG_MAILBOX=n +CONFIG_MAILBOX=y CONFIG_PCC=y # CONFIG_ALTERA_MBOX is not set +CONFIG_IOMMU_IOVA=y +CONFIG_IOMMU_API=y CONFIG_IOMMU_SUPPORT=y # @@ -1996,7 +1879,12 @@ CONFIG_IOMMU_SUPPORT=y # # end of Generic IOMMU Pagetable Support -# CONFIG_IOMMU_DEBUGFS is not set +# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set +CONFIG_IOMMU_DEFAULT_DMA_LAZY=y +# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set +CONFIG_IOMMU_DMA=y +# CONFIG_AMD_IOMMU is not set +# CONFIG_VIRTIO_IOMMU is not set # # Remoteproc drivers @@ -2022,11 +1910,6 @@ CONFIG_IOMMU_SUPPORT=y # # end of Amlogic SoC drivers -# -# Aspeed SoC drivers -# -# end of Aspeed SoC drivers - # # Broadcom SoC drivers # @@ -2037,11 +1920,21 @@ CONFIG_IOMMU_SUPPORT=y # # end of NXP/Freescale QorIQ SoC drivers +# +# fujitsu SoC drivers +# +# end of fujitsu SoC drivers + # # i.MX SoC drivers # # end of i.MX SoC drivers +# +# Enable LiteX SoC Builder specific drivers +# +# end of Enable LiteX SoC Builder specific drivers + # # Qualcomm SoC drivers # @@ -2052,7 +1945,6 @@ CONFIG_IOMMU_SUPPORT=y # # Xilinx SoC drivers # -# CONFIG_XILINX_VCU is not set # end of Xilinx SoC drivers # end of SOC (System On Chip) specific Drivers @@ -2060,6 +1952,7 @@ CONFIG_IOMMU_SUPPORT=y # CONFIG_EXTCON is not set # CONFIG_MEMORY is not set # CONFIG_IIO is not set +# CONFIG_NTB is not set # CONFIG_PWM is not set # @@ -2074,7 +1967,14 @@ CONFIG_IOMMU_SUPPORT=y # PHY Subsystem # # CONFIG_GENERIC_PHY is not set +# CONFIG_PHY_CAN_TRANSCEIVER is not set + +# +# PHY drivers for Broadcom platforms +# # CONFIG_BCM_KONA_USB2_PHY is not set +# end of PHY drivers for Broadcom platforms + # CONFIG_PHY_PXA_28NM_HSIC is not set # CONFIG_PHY_PXA_28NM_USB2 is not set # CONFIG_PHY_INTEL_LGM_EMMC is not set @@ -2088,12 +1988,13 @@ CONFIG_IOMMU_SUPPORT=y # # end of Performance monitor support -CONFIG_RAS=n +# CONFIG_RAS is not set +# CONFIG_USB4 is not set # # Android # -# CONFIG_ANDROID is not set +# CONFIG_ANDROID_BINDER_IPC is not set # end of Android # CONFIG_LIBNVDIMM is not set @@ -2109,11 +2010,12 @@ CONFIG_RAS=n # CONFIG_FPGA is not set # CONFIG_TEE is not set -# CONFIG_UNISYS_VISORBUS is not set # CONFIG_SIOX is not set # CONFIG_SLIMBUS is not set # CONFIG_INTERCONNECT is not set # CONFIG_COUNTER is not set +# CONFIG_PECI is not set +# CONFIG_HTE is not set # end of Device Drivers # @@ -2128,9 +2030,9 @@ CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y -CONFIG_EXT4_DEBUG=n +# CONFIG_EXT4_DEBUG is not set CONFIG_JBD2=y -CONFIG_JBD2_DEBUG=n +# CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set @@ -2139,20 +2041,16 @@ CONFIG_FS_MBCACHE=y # CONFIG_BTRFS_FS is not set # CONFIG_NILFS2_FS is not set # CONFIG_F2FS_FS is not set -# CONFIG_FS_DAX is not set CONFIG_FS_POSIX_ACL=y -CONFIG_EXPORTFS=n +CONFIG_EXPORTFS=y # CONFIG_EXPORTFS_BLOCK_OPS is not set CONFIG_FILE_LOCKING=y -CONFIG_MANDATORY_FILE_LOCKING=y -CONFIG_FS_ENCRYPTION=n -CONFIG_FS_ENCRYPTION_ALGS=n +# CONFIG_FS_ENCRYPTION is not set # CONFIG_FS_VERITY is not set CONFIG_FSNOTIFY=y -CONFIG_DNOTIFY=n +# CONFIG_DNOTIFY is not set CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y -CONFIG_FANOTIFY_ACCESS_PERMISSIONS=n CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y # CONFIG_PRINT_QUOTA_WARNING is not set @@ -2190,6 +2088,7 @@ CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y # CONFIG_VFAT_FS is not set # CONFIG_EXFAT_FS is not set # CONFIG_NTFS_FS is not set +# CONFIG_NTFS3_FS is not set # end of DOS/FAT/EXFAT/NT Filesystems # @@ -2209,6 +2108,9 @@ CONFIG_TMPFS_XATTR=y # CONFIG_TMPFS_INODE64 is not set CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y +CONFIG_ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y +CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y +# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set CONFIG_MEMFD_CREATE=y CONFIG_ARCH_HAS_GIGANTIC_PAGE=y # CONFIG_CONFIGFS_FS is not set @@ -2218,7 +2120,6 @@ CONFIG_MISC_FILESYSTEMS=y # CONFIG_ORANGEFS_FS is not set # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set -# CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set @@ -2247,31 +2148,12 @@ CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_QNX4FS_FS is not set # CONFIG_QNX6FS_FS is not set # CONFIG_ROMFS_FS is not set -CONFIG_PSTORE=n -CONFIG_PSTORE_DEFLATE_COMPRESS=n -# CONFIG_PSTORE_LZO_COMPRESS is not set -# CONFIG_PSTORE_LZ4_COMPRESS is not set -# CONFIG_PSTORE_LZ4HC_COMPRESS is not set -# CONFIG_PSTORE_842_COMPRESS is not set -# CONFIG_PSTORE_ZSTD_COMPRESS is not set -CONFIG_PSTORE_COMPRESS=n -CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=n -CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" -# CONFIG_PSTORE_CONSOLE is not set -# CONFIG_PSTORE_PMSG is not set -# CONFIG_PSTORE_RAM is not set -# CONFIG_PSTORE_BLK is not set +# CONFIG_PSTORE is not set # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set # CONFIG_EROFS_FS is not set -CONFIG_NETWORK_FILESYSTEMS=n -# CONFIG_NFS_FS is not set -# CONFIG_NFSD is not set -# CONFIG_CEPH_FS is not set -# CONFIG_CIFS is not set -# CONFIG_CODA_FS is not set -# CONFIG_AFS_FS is not set -CONFIG_NLS=n +# CONFIG_NETWORK_FILESYSTEMS is not set +CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" # CONFIG_NLS_CODEPAGE_437 is not set # CONFIG_NLS_CODEPAGE_737 is not set @@ -2329,46 +2211,15 @@ CONFIG_IO_WQ=y # # Security options # -CONFIG_KEYS=n -# CONFIG_KEYS_REQUEST_CACHE is not set -CONFIG_PERSISTENT_KEYRINGS=y -CONFIG_ENCRYPTED_KEYS=n -# CONFIG_KEY_DH_OPERATIONS is not set +# CONFIG_KEYS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set -CONFIG_SECURITY=n -CONFIG_SECURITY_WRITABLE_HOOKS=n -CONFIG_SECURITYFS=n -CONFIG_SECURITY_NETWORK=n -CONFIG_PAGE_TABLE_ISOLATION=y -CONFIG_SECURITY_NETWORK_XFRM=n -# CONFIG_SECURITY_PATH is not set -CONFIG_LSM_MMAP_MIN_ADDR=65536 +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y # CONFIG_HARDENED_USERCOPY is not set CONFIG_FORTIFY_SOURCE=y # CONFIG_STATIC_USERMODEHELPER is not set -CONFIG_SECURITY_SELINUX=n -CONFIG_SECURITY_SELINUX_BOOTPARAM=n -CONFIG_SECURITY_SELINUX_DISABLE=n -CONFIG_SECURITY_SELINUX_DEVELOP=n -CONFIG_SECURITY_SELINUX_AVC_STATS=n -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 -CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9 -CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE=256 -# CONFIG_SECURITY_SMACK is not set -# CONFIG_SECURITY_TOMOYO is not set -# CONFIG_SECURITY_APPARMOR is not set -# CONFIG_SECURITY_LOADPIN is not set -# CONFIG_SECURITY_YAMA is not set -# CONFIG_SECURITY_SAFESETID is not set -# CONFIG_SECURITY_LOCKDOWN_LSM is not set -CONFIG_INTEGRITY=n -# CONFIG_INTEGRITY_SIGNATURE is not set -CONFIG_INTEGRITY_AUDIT=n -# CONFIG_IMA is not set -# CONFIG_EVM is not set -CONFIG_DEFAULT_SECURITY_SELINUX=n -# CONFIG_DEFAULT_SECURITY_DAC is not set +CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf" # @@ -2382,216 +2233,195 @@ CONFIG_INIT_STACK_NONE=y # CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set # end of Memory initialization + +CONFIG_RANDSTRUCT_NONE=y # end of Kernel hardening options # end of Security options -CONFIG_CRYPTO=n +CONFIG_CRYPTO=y # # Crypto core or helper # -CONFIG_CRYPTO_ALGAPI=n -CONFIG_CRYPTO_ALGAPI2=n -CONFIG_CRYPTO_AEAD=n -CONFIG_CRYPTO_AEAD2=n -CONFIG_CRYPTO_SKCIPHER=n -CONFIG_CRYPTO_SKCIPHER2=n -CONFIG_CRYPTO_HASH=n -CONFIG_CRYPTO_HASH2=n -CONFIG_CRYPTO_RNG=n -CONFIG_CRYPTO_RNG2=n -CONFIG_CRYPTO_RNG_DEFAULT=n -CONFIG_CRYPTO_AKCIPHER2=n -CONFIG_CRYPTO_AKCIPHER=n -CONFIG_CRYPTO_KPP2=n -CONFIG_CRYPTO_KPP=n -CONFIG_CRYPTO_ACOMP2=n -CONFIG_CRYPTO_MANAGER=n -CONFIG_CRYPTO_MANAGER2=n +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +# CONFIG_CRYPTO_MANAGER is not set # CONFIG_CRYPTO_USER is not set -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=n -CONFIG_CRYPTO_NULL=n -CONFIG_CRYPTO_NULL2=n +# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set +# CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_PCRYPT is not set # CONFIG_CRYPTO_CRYPTD is not set # CONFIG_CRYPTO_AUTHENC is not set -# CONFIG_CRYPTO_TEST is not set +# end of Crypto core or helper # # Public-key cryptography # -CONFIG_CRYPTO_RSA=n -CONFIG_CRYPTO_DH=n -CONFIG_CRYPTO_ECC=n -CONFIG_CRYPTO_ECDH=n +# CONFIG_CRYPTO_RSA is not set +# CONFIG_CRYPTO_DH is not set +# CONFIG_CRYPTO_ECDH is not set +# CONFIG_CRYPTO_ECDSA is not set # CONFIG_CRYPTO_ECRDSA is not set # CONFIG_CRYPTO_SM2 is not set # CONFIG_CRYPTO_CURVE25519 is not set -# CONFIG_CRYPTO_CURVE25519_X86 is not set +# end of Public-key cryptography # -# Authenticated Encryption with Associated Data +# Block ciphers # -# CONFIG_CRYPTO_CCM is not set -# CONFIG_CRYPTO_GCM is not set -# CONFIG_CRYPTO_CHACHA20POLY1305 is not set -# CONFIG_CRYPTO_AEGIS128 is not set -# CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set -CONFIG_CRYPTO_SEQIV=n -# CONFIG_CRYPTO_ECHAINIV is not set +# CONFIG_CRYPTO_AES is not set +# CONFIG_CRYPTO_AES_TI is not set +# CONFIG_CRYPTO_ARIA is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_DES is not set +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_SM4_GENERIC is not set +# CONFIG_CRYPTO_TWOFISH is not set +# end of Block ciphers # -# Block modes +# Length-preserving ciphers and modes # -CONFIG_CRYPTO_CBC=n +# CONFIG_CRYPTO_ADIANTUM is not set +# CONFIG_CRYPTO_CHACHA20 is not set +# CONFIG_CRYPTO_CBC is not set # CONFIG_CRYPTO_CFB is not set -CONFIG_CRYPTO_CTR=n -CONFIG_CRYPTO_CTS=n -CONFIG_CRYPTO_ECB=n +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_CTS is not set +# CONFIG_CRYPTO_ECB is not set +# CONFIG_CRYPTO_HCTR2 is not set +# CONFIG_CRYPTO_KEYWRAP is not set # CONFIG_CRYPTO_LRW is not set # CONFIG_CRYPTO_OFB is not set # CONFIG_CRYPTO_PCBC is not set -CONFIG_CRYPTO_XTS=n -# CONFIG_CRYPTO_KEYWRAP is not set -# CONFIG_CRYPTO_NHPOLY1305_SSE2 is not set -# CONFIG_CRYPTO_NHPOLY1305_AVX2 is not set -# CONFIG_CRYPTO_ADIANTUM is not set -# CONFIG_CRYPTO_ESSIV is not set +# CONFIG_CRYPTO_XTS is not set +# end of Length-preserving ciphers and modes # -# Hash modes +# AEAD (authenticated encryption with associated data) ciphers # -# CONFIG_CRYPTO_CMAC is not set -CONFIG_CRYPTO_HMAC=n -# CONFIG_CRYPTO_XCBC is not set -# CONFIG_CRYPTO_VMAC is not set +# CONFIG_CRYPTO_AEGIS128 is not set +# CONFIG_CRYPTO_CHACHA20POLY1305 is not set +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_GCM is not set +# CONFIG_CRYPTO_SEQIV is not set +# CONFIG_CRYPTO_ECHAINIV is not set +# CONFIG_CRYPTO_ESSIV is not set +# end of AEAD (authenticated encryption with associated data) ciphers # -# Digest +# Hashes, digests, and MACs # -CONFIG_CRYPTO_CRC32C=n -# CONFIG_CRYPTO_CRC32C_INTEL is not set -# CONFIG_CRYPTO_CRC32 is not set -# CONFIG_CRYPTO_CRC32_PCLMUL is not set -# CONFIG_CRYPTO_XXHASH is not set # CONFIG_CRYPTO_BLAKE2B is not set -# CONFIG_CRYPTO_BLAKE2S is not set -# CONFIG_CRYPTO_BLAKE2S_X86 is not set -CONFIG_CRYPTO_CRCT10DIF=n -CONFIG_CRYPTO_CRCT10DIF_PCLMUL=n +# CONFIG_CRYPTO_CMAC is not set # CONFIG_CRYPTO_GHASH is not set -# CONFIG_CRYPTO_POLY1305 is not set -# CONFIG_CRYPTO_POLY1305_X86_64 is not set +# CONFIG_CRYPTO_HMAC is not set # CONFIG_CRYPTO_MD4 is not set -CONFIG_CRYPTO_MD5=n +CONFIG_CRYPTO_MD5=y # CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_RMD128 is not set +# CONFIG_CRYPTO_POLY1305 is not set # CONFIG_CRYPTO_RMD160 is not set -# CONFIG_CRYPTO_RMD256 is not set -# CONFIG_CRYPTO_RMD320 is not set -CONFIG_CRYPTO_SHA1=n -# CONFIG_CRYPTO_SHA1_SSSE3 is not set -# CONFIG_CRYPTO_SHA256_SSSE3 is not set -# CONFIG_CRYPTO_SHA512_SSSE3 is not set -CONFIG_CRYPTO_SHA256=n -CONFIG_CRYPTO_SHA512=n +# CONFIG_CRYPTO_SHA1 is not set +# CONFIG_CRYPTO_SHA256 is not set +# CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_SHA3 is not set -# CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_SM3_GENERIC is not set # CONFIG_CRYPTO_STREEBOG is not set -# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_VMAC is not set # CONFIG_CRYPTO_WP512 is not set -# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_XXHASH is not set +# end of Hashes, digests, and MACs # -# Ciphers +# CRCs (cyclic redundancy checks) # -CONFIG_CRYPTO_AES=n -CONFIG_CRYPTO_AES_TI=n -# CONFIG_CRYPTO_AES_NI_INTEL is not set -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set -# CONFIG_CRYPTO_CAMELLIA is not set -# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set -# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set -# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set -# CONFIG_CRYPTO_CAST6 is not set -# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set -# CONFIG_CRYPTO_DES is not set -# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set -# CONFIG_CRYPTO_FCRYPT is not set -# CONFIG_CRYPTO_SALSA20 is not set -# CONFIG_CRYPTO_CHACHA20 is not set -# CONFIG_CRYPTO_CHACHA20_X86_64 is not set -# CONFIG_CRYPTO_SERPENT is not set -# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set -# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set -# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set -# CONFIG_CRYPTO_SM4 is not set -# CONFIG_CRYPTO_TWOFISH is not set -# CONFIG_CRYPTO_TWOFISH_X86_64 is not set -# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set -# CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set +CONFIG_CRYPTO_CRC32C=y +# CONFIG_CRYPTO_CRC32 is not set +CONFIG_CRYPTO_CRCT10DIF=y +# end of CRCs (cyclic redundancy checks) # # Compression # -CONFIG_CRYPTO_DEFLATE=n -CONFIG_CRYPTO_LZO=n +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_LZO is not set # CONFIG_CRYPTO_842 is not set # CONFIG_CRYPTO_LZ4 is not set # CONFIG_CRYPTO_LZ4HC is not set # CONFIG_CRYPTO_ZSTD is not set +# end of Compression # -# Random Number Generation +# Random number generation # # CONFIG_CRYPTO_ANSI_CPRNG is not set -CONFIG_CRYPTO_DRBG_MENU=n -CONFIG_CRYPTO_DRBG_HMAC=n -CONFIG_CRYPTO_DRBG_HASH=n -CONFIG_CRYPTO_DRBG_CTR=n -CONFIG_CRYPTO_DRBG=n -CONFIG_CRYPTO_JITTERENTROPY=n +# CONFIG_CRYPTO_DRBG_MENU is not set +# CONFIG_CRYPTO_JITTERENTROPY is not set +# end of Random number generation + +# +# Userspace interface +# # CONFIG_CRYPTO_USER_API_HASH is not set # CONFIG_CRYPTO_USER_API_SKCIPHER is not set # CONFIG_CRYPTO_USER_API_RNG is not set # CONFIG_CRYPTO_USER_API_AEAD is not set -CONFIG_CRYPTO_HASH_INFO=n +# end of Userspace interface # -# Crypto library routines +# Accelerated Cryptographic Algorithms for CPU (x86) # -CONFIG_CRYPTO_LIB_AES=n -# CONFIG_CRYPTO_LIB_BLAKE2S is not set -# CONFIG_CRYPTO_LIB_CHACHA is not set -# CONFIG_CRYPTO_LIB_CURVE25519 is not set -CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 -# CONFIG_CRYPTO_LIB_POLY1305 is not set -# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set -CONFIG_CRYPTO_LIB_SHA256=n +# CONFIG_CRYPTO_CURVE25519_X86 is not set +# CONFIG_CRYPTO_AES_NI_INTEL is not set +# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set +# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set +# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set +# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set +# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set +# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set +# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_TWOFISH_X86_64 is not set +# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set +# CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set +# CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64 is not set +# CONFIG_CRYPTO_CHACHA20_X86_64 is not set +# CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set +# CONFIG_CRYPTO_NHPOLY1305_SSE2 is not set +# CONFIG_CRYPTO_NHPOLY1305_AVX2 is not set +# CONFIG_CRYPTO_BLAKE2S_X86 is not set +# CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set +# CONFIG_CRYPTO_POLY1305_X86_64 is not set +# CONFIG_CRYPTO_SHA1_SSSE3 is not set +# CONFIG_CRYPTO_SHA256_SSSE3 is not set +# CONFIG_CRYPTO_SHA512_SSSE3 is not set +# CONFIG_CRYPTO_SM3_AVX_X86_64 is not set +# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set +# CONFIG_CRYPTO_CRC32C_INTEL is not set +# CONFIG_CRYPTO_CRC32_PCLMUL is not set +# CONFIG_CRYPTO_CRCT10DIF_PCLMUL is not set +# end of Accelerated Cryptographic Algorithms for CPU (x86) + # CONFIG_CRYPTO_HW is not set -CONFIG_ASYMMETRIC_KEY_TYPE=y -CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y -CONFIG_X509_CERTIFICATE_PARSER=y -# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set -CONFIG_PKCS7_MESSAGE_PARSER=y -# CONFIG_PKCS7_TEST_KEY is not set -CONFIG_SIGNED_PE_FILE_VERIFICATION=y # # Certificates for signature checking # -CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" -CONFIG_SYSTEM_TRUSTED_KEYRING=y -CONFIG_SYSTEM_TRUSTED_KEYS="" -# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set -# CONFIG_SECONDARY_TRUSTED_KEYRING is not set -CONFIG_SYSTEM_BLACKLIST_KEYRING=y -CONFIG_SYSTEM_BLACKLIST_HASH_LIST="" # end of Certificates for signature checking +CONFIG_BINARY_PRINTF=y + # # Library routines # @@ -2600,17 +2430,32 @@ CONFIG_BITREVERSE=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y -CONFIG_GENERIC_FIND_FIRST_BIT=y # CONFIG_CORDIC is not set # CONFIG_PRIME_NUMBERS is not set +CONFIG_RATIONAL=y CONFIG_GENERIC_PCI_IOMAP=y CONFIG_GENERIC_IOMAP=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_ARCH_HAS_FAST_MULTIPLIER=y CONFIG_ARCH_USE_SYM_ANNOTATIONS=y + +# +# Crypto library routines +# +CONFIG_CRYPTO_LIB_UTILS=y +CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +# CONFIG_CRYPTO_LIB_CHACHA is not set +# CONFIG_CRYPTO_LIB_CURVE25519 is not set +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 +# CONFIG_CRYPTO_LIB_POLY1305 is not set +# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set +CONFIG_CRYPTO_LIB_SHA1=y +# end of Crypto library routines + CONFIG_CRC_CCITT=y CONFIG_CRC16=y CONFIG_CRC_T10DIF=y +# CONFIG_CRC64_ROCKSOFT is not set # CONFIG_CRC_ITU_T is not set CONFIG_CRC32=y # CONFIG_CRC32_SELFTEST is not set @@ -2626,10 +2471,10 @@ CONFIG_LIBCRC32C=y CONFIG_XXHASH=y # CONFIG_RANDOM32_SELFTEST is not set CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_LZ4_DECOMPRESS=y +CONFIG_ZSTD_COMMON=y CONFIG_ZSTD_DECOMPRESS=y CONFIG_XZ_DEC=y CONFIG_XZ_DEC_X86=y @@ -2638,36 +2483,30 @@ CONFIG_XZ_DEC_IA64=y CONFIG_XZ_DEC_ARM=y CONFIG_XZ_DEC_ARMTHUMB=y CONFIG_XZ_DEC_SPARC=y +# CONFIG_XZ_DEC_MICROLZMA is not set CONFIG_XZ_DEC_BCJ=y # CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y -CONFIG_DECOMPRESS_BZIP2=n CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y CONFIG_DECOMPRESS_LZ4=y CONFIG_DECOMPRESS_ZSTD=y -CONFIG_GENERIC_ALLOCATOR=y CONFIG_XARRAY_MULTI=y -CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT_MAP=y CONFIG_HAS_DMA=y +CONFIG_DMA_OPS=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y -CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y CONFIG_SWIOTLB=y -CONFIG_DMA_COHERENT_POOL=y # CONFIG_DMA_API_DEBUG is not set -CONFIG_SGL_ALLOC=y +# CONFIG_FORCE_NR_CPUS is not set CONFIG_CPU_RMAP=y CONFIG_DQL=y CONFIG_NLATTR=y -CONFIG_CLZ_TAB=y CONFIG_IRQ_POLL=y -CONFIG_MPILIB=n -CONFIG_OID_REGISTRY=y CONFIG_HAVE_GENERIC_VDSO=y CONFIG_GENERIC_GETTIMEOFDAY=y CONFIG_GENERIC_VDSO_TIME_NS=y @@ -2676,8 +2515,8 @@ CONFIG_ARCH_HAS_PMEM_API=y CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y CONFIG_ARCH_HAS_COPY_MC=y CONFIG_ARCH_STACKWALK=y +CONFIG_STACKDEPOT=y CONFIG_SBITMAP=y -# CONFIG_STRING_SELFTEST is not set # end of Library routines # @@ -2689,30 +2528,30 @@ CONFIG_SBITMAP=y # CONFIG_PRINTK_TIME=y # CONFIG_PRINTK_CALLER is not set +# CONFIG_STACKTRACE_BUILD_ID is not set CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_CONSOLE_LOGLEVEL_QUIET=4 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 -# CONFIG_BOOT_PRINTK_DELAY is not set -CONFIG_DYNAMIC_DEBUG=n -CONFIG_DYNAMIC_DEBUG_CORE=n +# CONFIG_DYNAMIC_DEBUG is not set +# CONFIG_DYNAMIC_DEBUG_CORE is not set CONFIG_SYMBOLIC_ERRNAME=y -CONFIG_DEBUG_BUGVERBOSE=n +CONFIG_DEBUG_BUGVERBOSE=y # end of printk and dmesg options +# CONFIG_DEBUG_KERNEL is not set + # # Compile-time checks and compiler options # -# CONFIG_DEBUG_INFO is not set -# CONFIG_ENABLE_MUST_CHECK is not set +CONFIG_AS_HAS_NON_CONST_LEB128=y CONFIG_FRAME_WARN=2048 CONFIG_STRIP_ASM_SYMS=y -# CONFIG_READABLE_ASM is not set # CONFIG_HEADERS_INSTALL is not set -CONFIG_DEBUG_SECTION_MISMATCH=n +# CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_SECTION_MISMATCH_WARN_ONLY=y CONFIG_FRAME_POINTER=y +CONFIG_OBJTOOL=y CONFIG_STACK_VALIDATION=y -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # end of Compile-time checks and compiler options # @@ -2722,73 +2561,57 @@ CONFIG_MAGIC_SYSRQ=y CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 CONFIG_MAGIC_SYSRQ_SERIAL=y CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" -CONFIG_DEBUG_FS=n -CONFIG_DEBUG_FS_ALLOW_ALL=n -# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set -# CONFIG_DEBUG_FS_ALLOW_NONE is not set +# CONFIG_DEBUG_FS is not set CONFIG_HAVE_ARCH_KGDB=y -# CONFIG_KGDB is not set CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y # CONFIG_UBSAN is not set CONFIG_HAVE_ARCH_KCSAN=y # end of Generic Kernel Debugging Instruments -CONFIG_DEBUG_KERNEL=n -CONFIG_DEBUG_MISC=n +# +# Networking Debugging +# +# end of Networking Debugging # # Memory Debugging # # CONFIG_PAGE_EXTENSION is not set -# CONFIG_DEBUG_PAGEALLOC is not set -# CONFIG_PAGE_OWNER is not set +CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_PAGE_TABLE_CHECK is not set # CONFIG_PAGE_POISONING is not set # CONFIG_DEBUG_RODATA_TEST is not set CONFIG_ARCH_HAS_DEBUG_WX=y # CONFIG_DEBUG_WX is not set CONFIG_GENERIC_PTDUMP=y -# CONFIG_PTDUMP_DEBUGFS is not set -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_SLUB_STATS is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y -# CONFIG_DEBUG_KMEMLEAK is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_SCHED_STACK_END_CHECK is not set CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y -# CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_VM_PGTABLE is not set CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y -# CONFIG_DEBUG_VIRTUAL is not set -CONFIG_DEBUG_MEMORY_INIT=n -# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_DEBUG_MEMORY_INIT=y +CONFIG_ARCH_SUPPORTS_KMAP_LOCAL_FORCE_MAP=y CONFIG_HAVE_ARCH_KASAN=y CONFIG_HAVE_ARCH_KASAN_VMALLOC=y CONFIG_CC_HAS_KASAN_GENERIC=y +CONFIG_HAVE_ARCH_KFENCE=y +# CONFIG_KFENCE is not set +CONFIG_HAVE_ARCH_KMSAN=y # end of Memory Debugging -# CONFIG_DEBUG_SHIRQ is not set - # # Debug Oops, Lockups and Hangs # # CONFIG_PANIC_ON_OOPS is not set CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 -# CONFIG_SOFTLOCKUP_DETECTOR is not set CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y -# CONFIG_HARDLOCKUP_DETECTOR is not set -# CONFIG_DETECT_HUNG_TASK is not set -# CONFIG_WQ_WATCHDOG is not set -# CONFIG_TEST_LOCKUP is not set # end of Debug Oops, Lockups and Hangs # # Scheduler Debugging # -# CONFIG_SCHED_DEBUG is not set CONFIG_SCHED_INFO=y -# CONFIG_SCHEDSTATS is not set # end of Scheduler Debugging # CONFIG_DEBUG_TIMEKEEPING is not set @@ -2797,66 +2620,47 @@ CONFIG_SCHED_INFO=y # Lock Debugging (spinlocks, mutexes, etc...) # CONFIG_LOCK_DEBUGGING_SUPPORT=y -# CONFIG_PROVE_LOCKING is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set -# CONFIG_DEBUG_RWSEMS is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_DEBUG_ATOMIC_SLEEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_LOCK_TORTURE_TEST is not set # CONFIG_WW_MUTEX_SELFTEST is not set -# CONFIG_SCF_TORTURE_TEST is not set -# CONFIG_CSD_LOCK_WAIT_DEBUG is not set # end of Lock Debugging (spinlocks, mutexes, etc...) +# CONFIG_DEBUG_IRQFLAGS is not set CONFIG_STACKTRACE=y # CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set -# CONFIG_DEBUG_KOBJECT is not set # # Debug kernel data structures # -CONFIG_DEBUG_LIST=n -# CONFIG_DEBUG_PLIST is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_NOTIFIERS is not set +CONFIG_DEBUG_LIST=y CONFIG_BUG_ON_DATA_CORRUPTION=y # end of Debug kernel data structures -# CONFIG_DEBUG_CREDENTIALS is not set - # # RCU Debugging # -# CONFIG_RCU_SCALE_TEST is not set -# CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_RCU_REF_SCALE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=59 -# CONFIG_RCU_TRACE is not set -# CONFIG_RCU_EQS_DEBUG is not set +CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 # end of RCU Debugging -# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set -# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set -# CONFIG_LATENCYTOP is not set CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_HAVE_RETHOOK=y CONFIG_HAVE_FUNCTION_TRACER=y -CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y +CONFIG_HAVE_DYNAMIC_FTRACE_NO_PATCHABLE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_FENTRY=y +CONFIG_HAVE_OBJTOOL_MCOUNT=y CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_SAMPLES is not set +CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y +CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y CONFIG_STRICT_DEVMEM=y # CONFIG_IO_STRICT_DEVMEM is not set @@ -2864,22 +2668,16 @@ CONFIG_STRICT_DEVMEM=y # # x86 Debugging # -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y -# CONFIG_DEBUG_TLBFLUSH is not set +# CONFIG_EARLY_PRINTK_DBGP is not set +# CONFIG_EARLY_PRINTK_USB_XDBC is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y -# CONFIG_X86_DECODER_SELFTEST is not set CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_0XED is not set # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set -# CONFIG_DEBUG_BOOT_PARAMS is not set -# CONFIG_CPA_DEBUG is not set -# CONFIG_DEBUG_ENTRY is not set -# CONFIG_DEBUG_NMI_SELFTEST is not set -# CONFIG_X86_DEBUG_FPU is not set +# CONFIG_PUNIT_ATOM_DEBUG is not set # CONFIG_UNWINDER_ORC is not set CONFIG_UNWINDER_FRAME_POINTER=y # end of x86 Debugging @@ -2888,53 +2686,40 @@ CONFIG_UNWINDER_FRAME_POINTER=y # Kernel Testing and Coverage # # CONFIG_KUNIT is not set -# CONFIG_NOTIFIER_ERROR_INJECTION is not set -CONFIG_FUNCTION_ERROR_INJECTION=y -# CONFIG_FAULT_INJECTION is not set CONFIG_ARCH_HAS_KCOV=y CONFIG_CC_HAS_SANCOV_TRACE_PC=y # CONFIG_KCOV is not set CONFIG_RUNTIME_TESTING_MENU=y -# CONFIG_LKDTM is not set -# CONFIG_TEST_LIST_SORT is not set -# CONFIG_TEST_MIN_HEAP is not set -# CONFIG_TEST_SORT is not set -# CONFIG_KPROBES_SANITY_TEST is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_RBTREE_TEST is not set -# CONFIG_REED_SOLOMON_TEST is not set -# CONFIG_INTERVAL_TREE_TEST is not set -# CONFIG_PERCPU_TEST is not set # CONFIG_ATOMIC64_SELFTEST is not set # CONFIG_TEST_HEXDUMP is not set +# CONFIG_STRING_SELFTEST is not set # CONFIG_TEST_STRING_HELPERS is not set # CONFIG_TEST_STRSCPY is not set # CONFIG_TEST_KSTRTOX is not set # CONFIG_TEST_PRINTF is not set +# CONFIG_TEST_SCANF is not set # CONFIG_TEST_BITMAP is not set # CONFIG_TEST_UUID is not set # CONFIG_TEST_XARRAY is not set -# CONFIG_TEST_OVERFLOW is not set +# CONFIG_TEST_MAPLE_TREE is not set # CONFIG_TEST_RHASHTABLE is not set -# CONFIG_TEST_HASH is not set +# CONFIG_TEST_SIPHASH is not set # CONFIG_TEST_IDA is not set -# CONFIG_TEST_LKM is not set -# CONFIG_TEST_BITOPS is not set -# CONFIG_TEST_VMALLOC is not set -# CONFIG_TEST_USER_COPY is not set -# CONFIG_TEST_BPF is not set -# CONFIG_TEST_BLACKHOLE_DEV is not set # CONFIG_FIND_BIT_BENCHMARK is not set # CONFIG_TEST_FIRMWARE is not set # CONFIG_TEST_SYSCTL is not set # CONFIG_TEST_UDELAY is not set -# CONFIG_TEST_STATIC_KEYS is not set -# CONFIG_TEST_KMOD is not set # CONFIG_TEST_MEMCAT_P is not set -# CONFIG_TEST_STACKINIT is not set # CONFIG_TEST_MEMINIT is not set # CONFIG_TEST_FREE_PAGES is not set # CONFIG_TEST_FPU is not set +# CONFIG_TEST_CLOCKSOURCE_WATCHDOG is not set +CONFIG_ARCH_USE_MEMTEST=y # CONFIG_MEMTEST is not set # end of Kernel Testing and Coverage + +# +# Rust hacking +# +# end of Rust hacking # end of Kernel hacking diff --git a/resources/rebuild.sh b/resources/rebuild.sh index 12e0e84947b..cda05d77211 100755 --- a/resources/rebuild.sh +++ b/resources/rebuild.sh @@ -151,11 +151,18 @@ function get_linux_tarball { echo "Downloading the latest patch version for v$KERNEL_VERSION..." local major_version="${KERNEL_VERSION%%.*}" local url_base="https://cdn.kernel.org/pub/linux/kernel" - local LATEST_VERSION=$( - curl -fsSL $url_base/v$major_version.x/ \ - | grep -o "linux-$KERNEL_VERSION\.[0-9]*\.tar.xz" \ - | sort -rV \ - | head -n 1 || true) + # 5.10 kernels starting from 5.10.211 don't build with our + # configuration. For now, pin it to the last working version. + # TODO: once this is fixed upstream we can remove this pin. + if [[ $KERNEL_VERSION == "5.10" ]]; then + local LATEST_VERSION="linux-5.10.210.tar.xz" + else + local LATEST_VERSION=$( + curl -fsSL $url_base/v$major_version.x/ \ + | grep -o "linux-$KERNEL_VERSION\.[0-9]*\.tar.xz" \ + | sort -rV \ + | head -n 1 || true) + fi # Fetch tarball and sha256 checksum. curl -fsSLO "$url_base/v$major_version.x/sha256sums.asc" curl -fsSLO "$url_base/v$major_version.x/$LATEST_VERSION" @@ -218,6 +225,9 @@ build_initramfs build_linux $PWD/guest_configs/microvm-kernel-ci-$ARCH-4.14.config build_linux $PWD/guest_configs/microvm-kernel-ci-$ARCH-5.10.config +if [ $ARCH == "x86_64" ]; then + build_linux $PWD/guest_configs/microvm-kernel-ci-$ARCH-5.10-no-acpi.config +fi build_linux $PWD/guest_configs/microvm-kernel-ci-$ARCH-6.1.config if [ $ARCH == "aarch64" ]; then diff --git a/src/acpi-tables/Cargo.toml b/src/acpi-tables/Cargo.toml new file mode 100644 index 00000000000..f000dbc44f7 --- /dev/null +++ b/src/acpi-tables/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "acpi_tables" +version = "0.1.0" +authors = ["The Cloud Hypervisor Authors", "Amazon Firecracker team "] +edition = "2021" +license = "Apache-2.0" +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +displaydoc = "0.2.4" +thiserror = "1.0.32" +vm-memory = { version = "0.14.1", features = ["backend-mmap", "backend-bitmap"] } +zerocopy = { version = "0.7.32", features = ["derive"] } + +[lib] +bench = false + +[lints] +workspace = true diff --git a/src/acpi-tables/src/aml.rs b/src/acpi-tables/src/aml.rs new file mode 100644 index 00000000000..4e59f1d6bd8 --- /dev/null +++ b/src/acpi-tables/src/aml.rs @@ -0,0 +1,1866 @@ +// Copyright © 2019 Intel Corporation +// Copyright © 2023 Rivos, Inc. +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 + +#![allow(missing_debug_implementations)] + +use std::marker::PhantomData; + +pub trait Aml { + fn append_aml_bytes(&self, _v: &mut Vec); + + fn to_aml_bytes(&self) -> Vec { + let mut v = Vec::new(); + self.append_aml_bytes(&mut v); + v + } +} + +pub const ZERO: Zero = Zero {}; +pub struct Zero {} + +impl Aml for Zero { + fn append_aml_bytes(&self, v: &mut Vec) { + v.push(0u8) + } +} + +pub const ONE: One = One {}; +pub struct One {} + +impl Aml for One { + fn append_aml_bytes(&self, v: &mut Vec) { + v.push(1u8) + } +} + +pub const ONES: Ones = Ones {}; +pub struct Ones {} + +impl Aml for Ones { + fn append_aml_bytes(&self, v: &mut Vec) { + v.push(0xffu8) + } +} + +pub struct Path { + root: bool, + name_parts: Vec<[u8; 4]>, +} + +impl Aml for Path { + fn append_aml_bytes(&self, bytes: &mut Vec) { + if self.root { + bytes.push(b'\\'); + } + + match self.name_parts.len() { + 0 => panic!("Name cannot be empty"), + 1 => {} + 2 => { + bytes.push(0x2e); // DualNamePrefix + } + n => { + bytes.push(0x2f); // MultiNamePrefix + bytes.push(n.try_into().unwrap()); + } + }; + + for part in &self.name_parts { + bytes.extend_from_slice(part); + } + } +} + +impl Path { + pub fn new(name: &str) -> Self { + let root = name.starts_with('\\'); + let offset = root.into(); + let mut name_parts = Vec::new(); + for part in name[offset..].split('.') { + assert_eq!(part.len(), 4); + let mut name_part = [0u8; 4]; + name_part.copy_from_slice(part.as_bytes()); + name_parts.push(name_part); + } + + Path { root, name_parts } + } +} + +impl From<&str> for Path { + fn from(s: &str) -> Self { + Path::new(s) + } +} + +pub type Byte = u8; + +impl Aml for Byte { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x0a); // BytePrefix + bytes.push(*self); + } +} + +pub type Word = u16; + +impl Aml for Word { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x0b); // WordPrefix + bytes.extend_from_slice(&self.to_le_bytes()) + } +} + +pub type DWord = u32; + +impl Aml for DWord { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x0c); // DWordPrefix + bytes.extend_from_slice(&self.to_le_bytes()) + } +} + +pub type QWord = u64; + +impl Aml for QWord { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x0e); // QWordPrefix + bytes.extend_from_slice(&self.to_le_bytes()) + } +} + +pub struct Name { + bytes: Vec, +} + +impl Aml for Name { + fn append_aml_bytes(&self, bytes: &mut Vec) { + // TODO: Refactor this to make more efficient but there are + // lifetime/ownership challenges. + bytes.extend_from_slice(&self.bytes) + } +} + +impl Name { + pub fn new(path: Path, inner: &dyn Aml) -> Self { + let mut bytes = vec![0x08]; // NameOp + path.append_aml_bytes(&mut bytes); + inner.append_aml_bytes(&mut bytes); + Name { bytes } + } +} + +pub struct Package<'a> { + children: Vec<&'a dyn Aml>, +} + +impl<'a> Aml for Package<'a> { + fn append_aml_bytes(&self, bytes: &mut Vec) { + let mut tmp = vec![self.children.len().try_into().unwrap()]; + for child in &self.children { + child.append_aml_bytes(&mut tmp); + } + + let pkg_length = create_pkg_length(&tmp, true); + + bytes.push(0x12); // PackageOp + bytes.extend_from_slice(&pkg_length); + bytes.extend_from_slice(&tmp); + } +} + +impl<'a> Package<'a> { + pub fn new(children: Vec<&'a dyn Aml>) -> Self { + Package { children } + } +} + +// From the ACPI spec for PkgLength: +// +// "The high 2 bits of the first byte reveal how many follow bytes are in the PkgLength. If the +// PkgLength has only one byte, bit 0 through 5 are used to encode the package length (in other +// words, values 0-63). If the package length value is more than 63, more than one byte must be +// used for the encoding in which case bit 4 and 5 of the PkgLeadByte are reserved and must be zero. +// If the multiple bytes encoding is used, bits 0-3 of the PkgLeadByte become the least significant +// 4 bits of the resulting package length value. The next ByteData will become the next least +// significant 8 bits of the resulting value and so on, up to 3 ByteData bytes. Thus, the maximum +// package length is 2**28." +// + +// Also used for NamedField but in that case the length is not included in itself +fn create_pkg_length(data: &[u8], include_self: bool) -> Vec { + let mut result = Vec::new(); + + // PkgLength is inclusive and includes the length bytes + let length_length = if data.len() < (2usize.pow(6) - 1) { + 1 + } else if data.len() < (2usize.pow(12) - 2) { + 2 + } else if data.len() < (2usize.pow(20) - 3) { + 3 + } else { + 4 + }; + + let length = data.len() + if include_self { length_length } else { 0 }; + + match length_length { + 1 => result.push(length.try_into().unwrap()), + 2 => { + result.push((1u8 << 6) | TryInto::::try_into(length & 0xf).unwrap()); + result.push(TryInto::::try_into(length >> 4).unwrap()) + } + 3 => { + result.push((2u8 << 6) | TryInto::::try_into(length & 0xf).unwrap()); + result.push(((length >> 4) & 0xff).try_into().unwrap()); + result.push(((length >> 12) & 0xff).try_into().unwrap()); + } + _ => { + result.push((3u8 << 6) | TryInto::::try_into(length & 0xf).unwrap()); + result.push(((length >> 4) & 0xff).try_into().unwrap()); + result.push(((length >> 12) & 0xff).try_into().unwrap()); + result.push(((length >> 20) & 0xff).try_into().unwrap()); + } + } + + result +} + +pub struct EisaName { + value: DWord, +} + +impl EisaName { + pub fn new(name: &str) -> Self { + assert_eq!(name.len(), 7); + + let data = name.as_bytes(); + + let value: u32 = (u32::from(data[0] - 0x40) << 26 + | u32::from(data[1] - 0x40) << 21 + | u32::from(data[2] - 0x40) << 16 + | name.chars().nth(3).unwrap().to_digit(16).unwrap() << 12 + | name.chars().nth(4).unwrap().to_digit(16).unwrap() << 8 + | name.chars().nth(5).unwrap().to_digit(16).unwrap() << 4 + | name.chars().nth(6).unwrap().to_digit(16).unwrap()) + .swap_bytes(); + + EisaName { value } + } +} + +impl Aml for EisaName { + fn append_aml_bytes(&self, bytes: &mut Vec) { + self.value.append_aml_bytes(bytes) + } +} + +pub type Usize = usize; + +impl Aml for Usize { + fn append_aml_bytes(&self, bytes: &mut Vec) { + if *self <= u8::max_value().into() { + TryInto::::try_into(*self) + .unwrap() + .append_aml_bytes(bytes) + } else if *self <= u16::max_value().into() { + TryInto::::try_into(*self) + .unwrap() + .append_aml_bytes(bytes) + } else if *self <= u32::max_value() as usize { + TryInto::::try_into(*self) + .unwrap() + .append_aml_bytes(bytes) + } else { + TryInto::::try_into(*self) + .unwrap() + .append_aml_bytes(bytes) + } + } +} + +fn append_aml_string(v: &str, bytes: &mut Vec) { + bytes.push(0x0D); // String Op + bytes.extend_from_slice(v.as_bytes()); + bytes.push(0x0); // NullChar +} + +pub type AmlStr = &'static str; + +impl Aml for AmlStr { + fn append_aml_bytes(&self, bytes: &mut Vec) { + append_aml_string(self, bytes) + } +} + +pub type AmlString = String; + +impl Aml for AmlString { + fn append_aml_bytes(&self, bytes: &mut Vec) { + append_aml_string(self, bytes) + } +} + +pub struct ResourceTemplate<'a> { + children: Vec<&'a dyn Aml>, +} + +impl<'a> Aml for ResourceTemplate<'a> { + fn append_aml_bytes(&self, bytes: &mut Vec) { + let mut tmp = Vec::new(); + // Add buffer data + for child in &self.children { + child.append_aml_bytes(&mut tmp); + } + + // Mark with end and mark checksum as as always valid + tmp.push(0x79); // EndTag + tmp.push(0); // zero checksum byte + + // Buffer length is an encoded integer including buffer data + // and EndTag and checksum byte + let mut buffer_length = tmp.len().to_aml_bytes(); + buffer_length.reverse(); + for byte in buffer_length { + tmp.insert(0, byte); + } + + // PkgLength is everything else + let pkg_length = create_pkg_length(&tmp, true); + + bytes.push(0x11); // BufferOp + bytes.extend_from_slice(&pkg_length); + bytes.extend_from_slice(&tmp); + } +} + +impl<'a> ResourceTemplate<'a> { + pub fn new(children: Vec<&'a dyn Aml>) -> Self { + ResourceTemplate { children } + } +} + +pub struct Memory32Fixed { + read_write: bool, // true for read & write, false for read only + base: u32, + length: u32, +} + +impl Memory32Fixed { + pub fn new(read_write: bool, base: u32, length: u32) -> Self { + Memory32Fixed { + read_write, + base, + length, + } + } +} + +impl Aml for Memory32Fixed { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x86); // Memory32Fixed + bytes.extend_from_slice(&9u16.to_le_bytes()); + // 9 bytes of payload + bytes.push(self.read_write.into()); + bytes.extend_from_slice(&self.base.to_le_bytes()); + bytes.extend_from_slice(&self.length.to_le_bytes()); + } +} + +#[derive(Copy, Clone)] +enum AddressSpaceType { + Memory, + Io, + BusNumber, +} + +#[derive(Copy, Clone)] +pub enum AddressSpaceCachable { + NotCacheable, + Cacheable, + WriteCombining, + PreFetchable, +} + +pub struct AddressSpace { + r#type: AddressSpaceType, + min: T, + max: T, + type_flags: u8, +} + +impl AddressSpace { + pub fn new_memory(cacheable: AddressSpaceCachable, read_write: bool, min: T, max: T) -> Self { + AddressSpace { + r#type: AddressSpaceType::Memory, + min, + max, + type_flags: (cacheable as u8) << 1 | u8::from(read_write), + } + } + + pub fn new_io(min: T, max: T) -> Self { + AddressSpace { + r#type: AddressSpaceType::Io, + min, + max, + type_flags: 3, // EntireRange + } + } + + pub fn new_bus_number(min: T, max: T) -> Self { + AddressSpace { + r#type: AddressSpaceType::BusNumber, + min, + max, + type_flags: 0, + } + } + + fn push_header(&self, bytes: &mut Vec, descriptor: u8, length: usize) { + bytes.push(descriptor); // Word Address Space Descriptor + bytes.extend_from_slice(&(TryInto::::try_into(length).unwrap()).to_le_bytes()); + bytes.push(self.r#type as u8); // type + let generic_flags = 1 << 2 /* Min Fixed */ | 1 << 3; // Max Fixed + bytes.push(generic_flags); + bytes.push(self.type_flags); + } +} + +impl Aml for AddressSpace { + fn append_aml_bytes(&self, bytes: &mut Vec) { + self.push_header( + bytes, + 0x88, // Word Address Space Descriptor + 3 + 5 * std::mem::size_of::(), // 3 bytes of header + 5 u16 fields + ); + + bytes.extend_from_slice(&0u16.to_le_bytes()); // Granularity + bytes.extend_from_slice(&self.min.to_le_bytes()); // Min + bytes.extend_from_slice(&self.max.to_le_bytes()); // Max + bytes.extend_from_slice(&0u16.to_le_bytes()); // Translation + let len = self.max - self.min + 1; + bytes.extend_from_slice(&len.to_le_bytes()); // Length + } +} + +impl Aml for AddressSpace { + fn append_aml_bytes(&self, bytes: &mut Vec) { + self.push_header( + bytes, + 0x87, // DWord Address Space Descriptor + 3 + 5 * std::mem::size_of::(), // 3 bytes of header + 5 u32 fields + ); + + bytes.extend_from_slice(&0u32.to_le_bytes()); // Granularity + bytes.extend_from_slice(&self.min.to_le_bytes()); // Min + bytes.extend_from_slice(&self.max.to_le_bytes()); // Max + bytes.extend_from_slice(&0u32.to_le_bytes()); // Translation + let len = self.max - self.min + 1; + bytes.extend_from_slice(&len.to_le_bytes()); // Length + } +} + +impl Aml for AddressSpace { + fn append_aml_bytes(&self, bytes: &mut Vec) { + self.push_header( + bytes, + 0x8A, // QWord Address Space Descriptor + 3 + 5 * std::mem::size_of::(), // 3 bytes of header + 5 u64 fields + ); + + bytes.extend_from_slice(&0u64.to_le_bytes()); // Granularity + bytes.extend_from_slice(&self.min.to_le_bytes()); // Min + bytes.extend_from_slice(&self.max.to_le_bytes()); // Max + bytes.extend_from_slice(&0u64.to_le_bytes()); // Translation + let len = self.max - self.min + 1; + bytes.extend_from_slice(&len.to_le_bytes()); // Length + } +} + +pub struct Io { + min: u16, + max: u16, + alignment: u8, + length: u8, +} + +impl Io { + pub fn new(min: u16, max: u16, alignment: u8, length: u8) -> Self { + Io { + min, + max, + alignment, + length, + } + } +} + +impl Aml for Io { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x47); // Io Port Descriptor + bytes.push(1); // IODecode16 + bytes.extend_from_slice(&self.min.to_le_bytes()); + bytes.extend_from_slice(&self.max.to_le_bytes()); + bytes.push(self.alignment); + bytes.push(self.length); + } +} + +pub struct Interrupt { + consumer: bool, + edge_triggered: bool, + active_low: bool, + shared: bool, + number: u32, +} + +impl Interrupt { + pub fn new( + consumer: bool, + edge_triggered: bool, + active_low: bool, + shared: bool, + number: u32, + ) -> Self { + Interrupt { + consumer, + edge_triggered, + active_low, + shared, + number, + } + } +} + +impl Aml for Interrupt { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x89); // Extended IRQ Descriptor + bytes.extend_from_slice(&6u16.to_le_bytes()); + let flags = u8::from(self.shared) << 3 + | u8::from(self.active_low) << 2 + | u8::from(self.edge_triggered) << 1 + | u8::from(self.consumer); + bytes.push(flags); + bytes.push(1u8); // count + bytes.extend_from_slice(&self.number.to_le_bytes()); + } +} + +pub struct Device<'a> { + path: Path, + children: Vec<&'a dyn Aml>, +} + +impl<'a> Aml for Device<'a> { + fn append_aml_bytes(&self, bytes: &mut Vec) { + let mut tmp = Vec::new(); + self.path.append_aml_bytes(&mut tmp); + + for child in &self.children { + child.append_aml_bytes(&mut tmp); + } + + let pkg_length = create_pkg_length(&tmp, true); + + bytes.push(0x5b); // ExtOpPrefix + bytes.push(0x82); // DeviceOp + bytes.extend_from_slice(&pkg_length); + bytes.extend_from_slice(&tmp); + } +} + +impl<'a> Device<'a> { + pub fn new(path: Path, children: Vec<&'a dyn Aml>) -> Self { + Device { path, children } + } +} + +pub struct Scope<'a> { + path: Path, + children: Vec<&'a dyn Aml>, +} + +impl<'a> Aml for Scope<'a> { + fn append_aml_bytes(&self, bytes: &mut Vec) { + let mut tmp = Vec::new(); + self.path.append_aml_bytes(&mut tmp); + for child in &self.children { + child.append_aml_bytes(&mut tmp); + } + + let pkg_length = create_pkg_length(&tmp, true); + + bytes.push(0x10); // ScopeOp + bytes.extend_from_slice(&pkg_length); + bytes.extend_from_slice(&tmp) + } +} + +impl<'a> Scope<'a> { + pub fn new(path: Path, children: Vec<&'a dyn Aml>) -> Self { + Scope { path, children } + } +} + +pub struct Method<'a> { + path: Path, + children: Vec<&'a dyn Aml>, + args: u8, + serialized: bool, +} + +impl<'a> Method<'a> { + pub fn new(path: Path, args: u8, serialized: bool, children: Vec<&'a dyn Aml>) -> Self { + Method { + path, + children, + args, + serialized, + } + } +} + +impl<'a> Aml for Method<'a> { + fn append_aml_bytes(&self, bytes: &mut Vec) { + let mut tmp = Vec::new(); + self.path.append_aml_bytes(&mut tmp); + let flags: u8 = (self.args & 0x7) | u8::from(self.serialized) << 3; + tmp.push(flags); + for child in &self.children { + child.append_aml_bytes(&mut tmp); + } + + let pkg_length = create_pkg_length(&tmp, true); + + bytes.push(0x14); // MethodOp + bytes.extend_from_slice(&pkg_length); + bytes.extend_from_slice(&tmp) + } +} + +pub struct Return<'a> { + value: &'a dyn Aml, +} + +impl<'a> Return<'a> { + pub fn new(value: &'a dyn Aml) -> Self { + Return { value } + } +} + +impl<'a> Aml for Return<'a> { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0xa4); // ReturnOp + self.value.append_aml_bytes(bytes); + } +} + +#[derive(Clone, Copy)] +pub enum FieldAccessType { + Any, + Byte, + Word, + DWord, + QWord, + Buffer, +} + +#[derive(Clone, Copy)] +pub enum FieldUpdateRule { + Preserve = 0, + WriteAsOnes = 1, + WriteAsZeroes = 2, +} + +pub enum FieldEntry { + Named([u8; 4], usize), + Reserved(usize), +} + +pub struct Field { + path: Path, + + fields: Vec, + access_type: FieldAccessType, + update_rule: FieldUpdateRule, +} + +impl Field { + pub fn new( + path: Path, + access_type: FieldAccessType, + update_rule: FieldUpdateRule, + fields: Vec, + ) -> Self { + Field { + path, + fields, + access_type, + update_rule, + } + } +} + +impl Aml for Field { + fn append_aml_bytes(&self, bytes: &mut Vec) { + let mut tmp = Vec::new(); + self.path.append_aml_bytes(&mut tmp); + + let flags: u8 = self.access_type as u8 | (self.update_rule as u8) << 5; + tmp.push(flags); + + for field in self.fields.iter() { + match field { + FieldEntry::Named(name, length) => { + tmp.extend_from_slice(name); + tmp.extend_from_slice(&create_pkg_length(&vec![0; *length], false)); + } + FieldEntry::Reserved(length) => { + tmp.push(0x0); + tmp.extend_from_slice(&create_pkg_length(&vec![0; *length], false)); + } + } + } + + let pkg_length = create_pkg_length(&tmp, true); + + bytes.push(0x5b); // ExtOpPrefix + bytes.push(0x81); // FieldOp + bytes.extend_from_slice(&pkg_length); + bytes.extend_from_slice(&tmp) + } +} + +#[derive(Clone, Copy)] +pub enum OpRegionSpace { + SystemMemory, + SystemIo, + PConfig, + EmbeddedControl, + Smbus, + SystemCmos, + PciBarTarget, + Ipmi, + GeneralPurposeIo, + GenericSerialBus, +} + +pub struct OpRegion { + path: Path, + space: OpRegionSpace, + offset: usize, + length: usize, +} + +impl OpRegion { + pub fn new(path: Path, space: OpRegionSpace, offset: usize, length: usize) -> Self { + OpRegion { + path, + space, + offset, + length, + } + } +} + +impl Aml for OpRegion { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x5b); // ExtOpPrefix + bytes.push(0x80); // OpRegionOp + self.path.append_aml_bytes(bytes); + bytes.push(self.space as u8); + self.offset.append_aml_bytes(bytes); // RegionOffset + self.length.append_aml_bytes(bytes); // RegionLen + } +} + +pub struct If<'a> { + predicate: &'a dyn Aml, + if_children: Vec<&'a dyn Aml>, +} + +impl<'a> If<'a> { + pub fn new(predicate: &'a dyn Aml, if_children: Vec<&'a dyn Aml>) -> Self { + If { + predicate, + if_children, + } + } +} + +impl<'a> Aml for If<'a> { + fn append_aml_bytes(&self, bytes: &mut Vec) { + let mut tmp = Vec::new(); + self.predicate.append_aml_bytes(&mut tmp); + for child in self.if_children.iter() { + child.append_aml_bytes(&mut tmp); + } + + let pkg_length = create_pkg_length(&tmp, true); + + bytes.push(0xa0); // IfOp + bytes.extend_from_slice(&pkg_length); + bytes.extend_from_slice(&tmp); + } +} + +pub struct Equal<'a> { + left: &'a dyn Aml, + right: &'a dyn Aml, +} + +impl<'a> Equal<'a> { + pub fn new(left: &'a dyn Aml, right: &'a dyn Aml) -> Self { + Equal { left, right } + } +} + +impl<'a> Aml for Equal<'a> { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x93); // LEqualOp + self.left.append_aml_bytes(bytes); + self.right.append_aml_bytes(bytes); + } +} + +pub struct LessThan<'a> { + left: &'a dyn Aml, + right: &'a dyn Aml, +} + +impl<'a> LessThan<'a> { + pub fn new(left: &'a dyn Aml, right: &'a dyn Aml) -> Self { + LessThan { left, right } + } +} + +impl<'a> Aml for LessThan<'a> { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x95); // LLessOp + self.left.append_aml_bytes(bytes); + self.right.append_aml_bytes(bytes); + } +} + +pub struct Arg(pub u8); + +impl Aml for Arg { + fn append_aml_bytes(&self, bytes: &mut Vec) { + assert!(self.0 <= 6); + bytes.push(0x68 + self.0); // Arg0Op + } +} + +pub struct Local(pub u8); + +impl Aml for Local { + fn append_aml_bytes(&self, bytes: &mut Vec) { + assert!(self.0 <= 7); + bytes.push(0x60 + self.0); // Local0Op + } +} + +pub struct Store<'a> { + name: &'a dyn Aml, + value: &'a dyn Aml, +} + +impl<'a> Store<'a> { + pub fn new(name: &'a dyn Aml, value: &'a dyn Aml) -> Self { + Store { name, value } + } +} + +impl<'a> Aml for Store<'a> { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x70); // StoreOp + self.value.append_aml_bytes(bytes); + self.name.append_aml_bytes(bytes); + } +} + +pub struct Mutex { + path: Path, + sync_level: u8, +} + +impl Mutex { + pub fn new(path: Path, sync_level: u8) -> Self { + Self { path, sync_level } + } +} + +impl Aml for Mutex { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x5b); // ExtOpPrefix + bytes.push(0x01); // MutexOp + self.path.append_aml_bytes(bytes); + bytes.push(self.sync_level); + } +} + +pub struct Acquire { + mutex: Path, + timeout: u16, +} + +impl Acquire { + pub fn new(mutex: Path, timeout: u16) -> Self { + Acquire { mutex, timeout } + } +} + +impl Aml for Acquire { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x5b); // ExtOpPrefix + bytes.push(0x23); // AcquireOp + self.mutex.append_aml_bytes(bytes); + bytes.extend_from_slice(&self.timeout.to_le_bytes()); + } +} + +pub struct Release { + mutex: Path, +} + +impl Release { + pub fn new(mutex: Path) -> Self { + Release { mutex } + } +} + +impl Aml for Release { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x5b); // ExtOpPrefix + bytes.push(0x27); // ReleaseOp + self.mutex.append_aml_bytes(bytes); + } +} + +pub struct Notify<'a> { + object: &'a dyn Aml, + value: &'a dyn Aml, +} + +impl<'a> Notify<'a> { + pub fn new(object: &'a dyn Aml, value: &'a dyn Aml) -> Self { + Notify { object, value } + } +} + +impl<'a> Aml for Notify<'a> { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x86); // NotifyOp + self.object.append_aml_bytes(bytes); + self.value.append_aml_bytes(bytes); + } +} + +pub struct While<'a> { + predicate: &'a dyn Aml, + while_children: Vec<&'a dyn Aml>, +} + +impl<'a> While<'a> { + pub fn new(predicate: &'a dyn Aml, while_children: Vec<&'a dyn Aml>) -> Self { + While { + predicate, + while_children, + } + } +} + +impl<'a> Aml for While<'a> { + fn append_aml_bytes(&self, bytes: &mut Vec) { + let mut tmp = Vec::new(); + self.predicate.append_aml_bytes(&mut tmp); + for child in self.while_children.iter() { + child.append_aml_bytes(&mut tmp) + } + + let pkg_length = create_pkg_length(&tmp, true); + + bytes.push(0xa2); // WhileOp + bytes.extend_from_slice(&pkg_length); + bytes.extend_from_slice(&tmp); + } +} + +macro_rules! binary_op { + ($name:ident, $opcode:expr) => { + pub struct $name<'a> { + a: &'a dyn Aml, + b: &'a dyn Aml, + target: &'a dyn Aml, + } + + impl<'a> $name<'a> { + pub fn new(target: &'a dyn Aml, a: &'a dyn Aml, b: &'a dyn Aml) -> Self { + $name { a, b, target } + } + } + + impl<'a> Aml for $name<'a> { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push($opcode); // Op for the binary operator + self.a.append_aml_bytes(bytes); + self.b.append_aml_bytes(bytes); + self.target.append_aml_bytes(bytes); + } + } + }; +} + +// binary operators: TermArg TermArg Target +binary_op!(Add, 0x72); +binary_op!(Concat, 0x73); +binary_op!(Subtract, 0x74); +binary_op!(Multiply, 0x77); +binary_op!(ShiftLeft, 0x79); +binary_op!(ShiftRight, 0x7A); +binary_op!(And, 0x7B); +binary_op!(Nand, 0x7C); +binary_op!(Or, 0x7D); +binary_op!(Nor, 0x7E); +binary_op!(Xor, 0x7F); +binary_op!(ConateRes, 0x84); +binary_op!(Mod, 0x85); +binary_op!(Index, 0x88); +binary_op!(ToString, 0x9C); + +pub struct MethodCall<'a> { + name: Path, + args: Vec<&'a dyn Aml>, +} + +impl<'a> MethodCall<'a> { + pub fn new(name: Path, args: Vec<&'a dyn Aml>) -> Self { + MethodCall { name, args } + } +} + +impl<'a> Aml for MethodCall<'a> { + fn append_aml_bytes(&self, bytes: &mut Vec) { + self.name.append_aml_bytes(bytes); + for arg in self.args.iter() { + arg.append_aml_bytes(bytes); + } + } +} + +pub struct Buffer { + data: Vec, +} + +impl Buffer { + pub fn new(data: Vec) -> Self { + Buffer { data } + } +} + +impl Aml for Buffer { + fn append_aml_bytes(&self, bytes: &mut Vec) { + let mut tmp = Vec::new(); + self.data.len().append_aml_bytes(&mut tmp); + tmp.extend_from_slice(&self.data); + + let pkg_length = create_pkg_length(&tmp, true); + + bytes.push(0x11); // BufferOp + bytes.extend_from_slice(&pkg_length); + bytes.extend_from_slice(&tmp); + } +} + +pub struct CreateField<'a, T> { + buffer: &'a dyn Aml, + offset: &'a dyn Aml, + field: Path, + phantom: PhantomData<&'a T>, +} + +impl<'a, T> CreateField<'a, T> { + pub fn new(buffer: &'a dyn Aml, offset: &'a dyn Aml, field: Path) -> Self { + CreateField:: { + buffer, + offset, + field, + phantom: PhantomData, + } + } +} + +impl<'a> Aml for CreateField<'a, u64> { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x8f); // CreateQWordFieldOp + self.buffer.append_aml_bytes(bytes); + self.offset.append_aml_bytes(bytes); + self.field.append_aml_bytes(bytes); + } +} + +impl<'a> Aml for CreateField<'a, u32> { + fn append_aml_bytes(&self, bytes: &mut Vec) { + bytes.push(0x8a); // CreateDWordFieldOp + self.buffer.append_aml_bytes(bytes); + self.offset.append_aml_bytes(bytes); + self.field.append_aml_bytes(bytes); + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_device() { + // Device (_SB.COM1) + // { + // Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: + // Hardware ID Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings + // { + // Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) + // { + // 0x00000004, + // } + // IO (Decode16, + // 0x03F8, // Range Minimum + // 0x03F8, // Range Maximum + // 0x00, // Alignment + // 0x08, // Length + // ) + // } + // } + let com1_device = [ + 0x5B, 0x82, 0x30, 0x2E, 0x5F, 0x53, 0x42, 0x5F, 0x43, 0x4F, 0x4D, 0x31, 0x08, 0x5F, + 0x48, 0x49, 0x44, 0x0C, 0x41, 0xD0, 0x05, 0x01, 0x08, 0x5F, 0x43, 0x52, 0x53, 0x11, + 0x16, 0x0A, 0x13, 0x89, 0x06, 0x00, 0x03, 0x01, 0x04, 0x00, 0x00, 0x00, 0x47, 0x01, + 0xF8, 0x03, 0xF8, 0x03, 0x00, 0x08, 0x79, 0x00, + ]; + assert_eq!( + Device::new( + "_SB_.COM1".into(), + vec![ + &Name::new("_HID".into(), &EisaName::new("PNP0501")), + &Name::new( + "_CRS".into(), + &ResourceTemplate::new(vec![ + &Interrupt::new(true, true, false, false, 4), + &Io::new(0x3f8, 0x3f8, 0, 0x8) + ]) + ) + ] + ) + .to_aml_bytes(), + &com1_device[..] + ); + } + + #[test] + fn test_scope() { + // Scope (_SB.MBRD) + // { + // Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings + // { + // Memory32Fixed (ReadWrite, + // 0xE8000000, // Address Base + // 0x10000000, // Address Length + // ) + // }) + // } + + let mbrd_scope = [ + 0x10, 0x21, 0x2E, 0x5F, 0x53, 0x42, 0x5F, 0x4D, 0x42, 0x52, 0x44, 0x08, 0x5F, 0x43, + 0x52, 0x53, 0x11, 0x11, 0x0A, 0x0E, 0x86, 0x09, 0x00, 0x01, 0x00, 0x00, 0x00, 0xE8, + 0x00, 0x00, 0x00, 0x10, 0x79, 0x00, + ]; + + assert_eq!( + Scope::new( + "_SB_.MBRD".into(), + vec![&Name::new( + "_CRS".into(), + &ResourceTemplate::new(vec![&Memory32Fixed::new( + true, + 0xE800_0000, + 0x1000_0000 + )]) + )] + ) + .to_aml_bytes(), + &mbrd_scope[..] + ); + } + + #[test] + fn test_resource_template() { + // Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings + // { + // Memory32Fixed (ReadWrite, + // 0xE8000000, // Address Base + // 0x10000000, // Address Length + // ) + // }) + let crs_memory_32_fixed = [ + 0x08, 0x5F, 0x43, 0x52, 0x53, 0x11, 0x11, 0x0A, 0x0E, 0x86, 0x09, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x10, 0x79, 0x00, + ]; + + assert_eq!( + Name::new( + "_CRS".into(), + &ResourceTemplate::new(vec![&Memory32Fixed::new(true, 0xE800_0000, 0x1000_0000)]) + ) + .to_aml_bytes(), + crs_memory_32_fixed + ); + + // Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings + // { + // WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, + // 0x0000, // Granularity + // 0x0000, // Range Minimum + // 0x00FF, // Range Maximum + // 0x0000, // Translation Offset + // 0x0100, // Length + // ,, ) + // WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, + // 0x0000, // Granularity + // 0x0000, // Range Minimum + // 0x0CF7, // Range Maximum + // 0x0000, // Translation Offset + // 0x0CF8, // Length + // ,, , TypeStatic, DenseTranslation) + // WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, + // 0x0000, // Granularity + // 0x0D00, // Range Minimum + // 0xFFFF, // Range Maximum + // 0x0000, // Translation Offset + // 0xF300, // Length + // ,, , TypeStatic, DenseTranslation) + // DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, + // 0x00000000, // Granularity + // 0x000A0000, // Range Minimum + // 0x000BFFFF, // Range Maximum + // 0x00000000, // Translation Offset + // 0x00020000, // Length + // ,, , AddressRangeMemory, TypeStatic) + // DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, + // 0x00000000, // Granularity + // 0xC0000000, // Range Minimum + // 0xFEBFFFFF, // Range Maximum + // 0x00000000, // Translation Offset + // 0x3EC00000, // Length + // ,, , AddressRangeMemory, TypeStatic) + // QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, + // 0x0000000000000000, // Granularity + // 0x0000000800000000, // Range Minimum + // 0x0000000FFFFFFFFF, // Range Maximum + // 0x0000000000000000, // Translation Offset + // 0x0000000800000000, // Length + // ,, , AddressRangeMemory, TypeStatic) + // }) + + // WordBusNumber from above + let crs_word_bus_number = [ + 0x08, 0x5F, 0x43, 0x52, 0x53, 0x11, 0x15, 0x0A, 0x12, 0x88, 0x0D, 0x00, 0x02, 0x0C, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x01, 0x79, 0x00, + ]; + + assert_eq!( + Name::new( + "_CRS".into(), + &ResourceTemplate::new(vec![&AddressSpace::new_bus_number(0x0u16, 0xffu16),]) + ) + .to_aml_bytes(), + &crs_word_bus_number + ); + + // WordIO blocks (x 2) from above + let crs_word_io = [ + 0x08, 0x5F, 0x43, 0x52, 0x53, 0x11, 0x25, 0x0A, 0x22, 0x88, 0x0D, 0x00, 0x01, 0x0C, + 0x03, 0x00, 0x00, 0x00, 0x00, 0xF7, 0x0C, 0x00, 0x00, 0xF8, 0x0C, 0x88, 0x0D, 0x00, + 0x01, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x0D, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xF3, 0x79, + 0x00, + ]; + + assert_eq!( + Name::new( + "_CRS".into(), + &ResourceTemplate::new(vec![ + &AddressSpace::new_io(0x0u16, 0xcf7u16), + &AddressSpace::new_io(0xd00u16, 0xffffu16), + ]) + ) + .to_aml_bytes(), + &crs_word_io[..] + ); + + // DWordMemory blocks (x 2) from above + let crs_dword_memory = [ + 0x08, 0x5F, 0x43, 0x52, 0x53, 0x11, 0x39, 0x0A, 0x36, 0x87, 0x17, 0x00, 0x00, 0x0C, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xFF, 0xFF, 0x0B, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x87, 0x17, 0x00, 0x00, 0x0C, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xBF, 0xFE, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xC0, 0x3E, 0x79, 0x00, + ]; + + assert_eq!( + Name::new( + "_CRS".into(), + &ResourceTemplate::new(vec![ + &AddressSpace::new_memory( + AddressSpaceCachable::Cacheable, + true, + 0xa_0000u32, + 0xb_ffffu32 + ), + &AddressSpace::new_memory( + AddressSpaceCachable::NotCacheable, + true, + 0xc000_0000u32, + 0xfebf_ffffu32 + ), + ]) + ) + .to_aml_bytes(), + &crs_dword_memory[..] + ); + + // QWordMemory from above + let crs_qword_memory = [ + 0x08, 0x5F, 0x43, 0x52, 0x53, 0x11, 0x33, 0x0A, 0x30, 0x8A, 0x2B, 0x00, 0x00, 0x0C, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x79, + 0x00, + ]; + + assert_eq!( + Name::new( + "_CRS".into(), + &ResourceTemplate::new(vec![&AddressSpace::new_memory( + AddressSpaceCachable::Cacheable, + true, + 0x8_0000_0000u64, + 0xf_ffff_ffffu64 + )]) + ) + .to_aml_bytes(), + &crs_qword_memory[..] + ); + + // Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings + // { + // Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) + // { + // 0x00000004, + // } + // IO (Decode16, + // 0x03F8, // Range Minimum + // 0x03F8, // Range Maximum + // 0x00, // Alignment + // 0x08, // Length + // ) + // }) + // + let interrupt_io_data = [ + 0x08, 0x5F, 0x43, 0x52, 0x53, 0x11, 0x16, 0x0A, 0x13, 0x89, 0x06, 0x00, 0x03, 0x01, + 0x04, 0x00, 0x00, 0x00, 0x47, 0x01, 0xF8, 0x03, 0xF8, 0x03, 0x00, 0x08, 0x79, 0x00, + ]; + + assert_eq!( + Name::new( + "_CRS".into(), + &ResourceTemplate::new(vec![ + &Interrupt::new(true, true, false, false, 4), + &Io::new(0x3f8, 0x3f8, 0, 0x8) + ]) + ) + .to_aml_bytes(), + &interrupt_io_data[..] + ); + } + + #[test] + fn test_pkg_length() { + assert_eq!(create_pkg_length(&[0u8; 62], true), vec![63]); + assert_eq!( + create_pkg_length(&[0u8; 64], true), + vec![1 << 6 | (66 & 0xf), 66 >> 4] + ); + assert_eq!( + create_pkg_length(&[0u8; 4096], true), + vec![ + 2 << 6 | (4099 & 0xf) as u8, + ((4099 >> 4) & 0xff).try_into().unwrap(), + ((4099 >> 12) & 0xff).try_into().unwrap() + ] + ); + } + + #[test] + fn test_package() { + // Name (_S5, Package (0x01) // _S5_: S5 System State + // { + // 0x05 + // }) + let s5_sleep_data = [0x08, 0x5F, 0x53, 0x35, 0x5F, 0x12, 0x04, 0x01, 0x0A, 0x05]; + + let s5 = Name::new("_S5_".into(), &Package::new(vec![&5u8])); + + assert_eq!(s5_sleep_data.to_vec(), s5.to_aml_bytes()); + } + + #[test] + fn test_eisa_name() { + assert_eq!( + Name::new("_HID".into(), &EisaName::new("PNP0501")).to_aml_bytes(), + [0x08, 0x5F, 0x48, 0x49, 0x44, 0x0C, 0x41, 0xD0, 0x05, 0x01], + ) + } + #[test] + fn test_name_path() { + assert_eq!( + (&"_SB_".into() as &Path).to_aml_bytes(), + [0x5Fu8, 0x53, 0x42, 0x5F] + ); + assert_eq!( + (&"\\_SB_".into() as &Path).to_aml_bytes(), + [0x5C, 0x5F, 0x53, 0x42, 0x5F] + ); + assert_eq!( + (&"_SB_.COM1".into() as &Path).to_aml_bytes(), + [0x2E, 0x5F, 0x53, 0x42, 0x5F, 0x43, 0x4F, 0x4D, 0x31] + ); + assert_eq!( + (&"_SB_.PCI0._HID".into() as &Path).to_aml_bytes(), + [0x2F, 0x03, 0x5F, 0x53, 0x42, 0x5F, 0x50, 0x43, 0x49, 0x30, 0x5F, 0x48, 0x49, 0x44] + ); + } + + #[test] + fn test_numbers() { + assert_eq!(128u8.to_aml_bytes(), [0x0a, 0x80]); + assert_eq!(1024u16.to_aml_bytes(), [0x0b, 0x0, 0x04]); + assert_eq!((16u32 << 20).to_aml_bytes(), [0x0c, 0x00, 0x00, 0x0, 0x01]); + assert_eq!( + 0xdeca_fbad_deca_fbadu64.to_aml_bytes(), + [0x0e, 0xad, 0xfb, 0xca, 0xde, 0xad, 0xfb, 0xca, 0xde] + ); + } + + #[test] + fn test_name() { + assert_eq!( + Name::new("_SB_.PCI0._UID".into(), &0x1234u16).to_aml_bytes(), + [ + 0x08, // NameOp + 0x2F, // MultiNamePrefix + 0x03, // 3 name parts + 0x5F, 0x53, 0x42, 0x5F, // _SB_ + 0x50, 0x43, 0x49, 0x30, // PCI0 + 0x5F, 0x55, 0x49, 0x44, // _UID + 0x0b, // WordPrefix + 0x34, 0x12 + ] + ); + } + + #[test] + fn test_string() { + assert_eq!( + (&"ACPI" as &dyn Aml).to_aml_bytes(), + [0x0d, b'A', b'C', b'P', b'I', 0] + ); + assert_eq!( + "ACPI".to_owned().to_aml_bytes(), + [0x0d, b'A', b'C', b'P', b'I', 0] + ); + } + + #[test] + fn test_method() { + assert_eq!( + Method::new("_STA".into(), 0, false, vec![&Return::new(&0xfu8)]).to_aml_bytes(), + [0x14, 0x09, 0x5F, 0x53, 0x54, 0x41, 0x00, 0xA4, 0x0A, 0x0F] + ); + } + + #[test] + fn test_field() { + // Field (PRST, ByteAcc, NoLock, WriteAsZeros) + // { + // Offset (0x04), + // CPEN, 1, + // CINS, 1, + // CRMV, 1, + // CEJ0, 1, + // Offset (0x05), + // CCMD, 8 + // } + // + + let field_data = [ + 0x5Bu8, 0x81, 0x23, 0x50, 0x52, 0x53, 0x54, 0x41, 0x00, 0x20, 0x43, 0x50, 0x45, 0x4E, + 0x01, 0x43, 0x49, 0x4E, 0x53, 0x01, 0x43, 0x52, 0x4D, 0x56, 0x01, 0x43, 0x45, 0x4A, + 0x30, 0x01, 0x00, 0x04, 0x43, 0x43, 0x4D, 0x44, 0x08, + ]; + + assert_eq!( + Field::new( + "PRST".into(), + FieldAccessType::Byte, + FieldUpdateRule::WriteAsZeroes, + vec![ + FieldEntry::Reserved(32), + FieldEntry::Named(*b"CPEN", 1), + FieldEntry::Named(*b"CINS", 1), + FieldEntry::Named(*b"CRMV", 1), + FieldEntry::Named(*b"CEJ0", 1), + FieldEntry::Reserved(4), + FieldEntry::Named(*b"CCMD", 8) + ] + ) + .to_aml_bytes(), + &field_data[..] + ); + + // Field (PRST, DWordAcc, NoLock, Preserve) + // { + // CSEL, 32, + // Offset (0x08), + // CDAT, 32 + // } + + let field_data = [ + 0x5Bu8, 0x81, 0x12, 0x50, 0x52, 0x53, 0x54, 0x03, 0x43, 0x53, 0x45, 0x4C, 0x20, 0x00, + 0x20, 0x43, 0x44, 0x41, 0x54, 0x20, + ]; + + assert_eq!( + Field::new( + "PRST".into(), + FieldAccessType::DWord, + FieldUpdateRule::Preserve, + vec![ + FieldEntry::Named(*b"CSEL", 32), + FieldEntry::Reserved(32), + FieldEntry::Named(*b"CDAT", 32) + ] + ) + .to_aml_bytes(), + &field_data[..] + ); + } + + #[test] + fn test_op_region() { + // OperationRegion (PRST, SystemIo, 0x0CD8, 0x0C) + let op_region_data = [ + 0x5Bu8, 0x80, 0x50, 0x52, 0x53, 0x54, 0x01, 0x0B, 0xD8, 0x0C, 0x0A, 0x0C, + ]; + + assert_eq!( + OpRegion::new("PRST".into(), OpRegionSpace::SystemIo, 0xcd8, 0xc).to_aml_bytes(), + &op_region_data[..] + ); + } + + #[test] + fn test_arg_if() { + // Method(TEST, 1, NotSerialized) { + // If (Arg0 == Zero) { + // Return(One) + // } + // Return(Zero) + // } + let arg_if_data = [ + 0x14, 0x0F, 0x54, 0x45, 0x53, 0x54, 0x01, 0xA0, 0x06, 0x93, 0x68, 0x00, 0xA4, 0x01, + 0xA4, 0x00, + ]; + + assert_eq!( + Method::new( + "TEST".into(), + 1, + false, + vec![ + &If::new(&Equal::new(&Arg(0), &ZERO), vec![&Return::new(&ONE)]), + &Return::new(&ZERO) + ] + ) + .to_aml_bytes(), + &arg_if_data + ); + } + + #[test] + fn test_local_if() { + // Method(TEST, 0, NotSerialized) { + // Local0 = One + // If (Local0 == Zero) { + // Return(One) + // } + // Return(Zero) + // } + let local_if_data = [ + 0x14, 0x12, 0x54, 0x45, 0x53, 0x54, 0x00, 0x70, 0x01, 0x60, 0xA0, 0x06, 0x93, 0x60, + 0x00, 0xA4, 0x01, 0xA4, 0x00, + ]; + assert_eq!( + Method::new( + "TEST".into(), + 0, + false, + vec![ + &Store::new(&Local(0), &ONE), + &If::new(&Equal::new(&Local(0), &ZERO), vec![&Return::new(&ONE)]), + &Return::new(&ZERO) + ] + ) + .to_aml_bytes(), + &local_if_data + ); + } + + #[test] + fn test_mutex() { + // Device (_SB_.MHPC) + // { + // Name (_HID, EisaId("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID + // Mutex (MLCK, 0x00) + // Method (TEST, 0, NotSerialized) + // { + // Acquire (MLCK, 0xFFFF) + // Local0 = One + // Release (MLCK) + // } + // } + + let mutex_data = [ + 0x5B, 0x82, 0x33, 0x2E, 0x5F, 0x53, 0x42, 0x5F, 0x4D, 0x48, 0x50, 0x43, 0x08, 0x5F, + 0x48, 0x49, 0x44, 0x0C, 0x41, 0xD0, 0x0A, 0x06, 0x5B, 0x01, 0x4D, 0x4C, 0x43, 0x4B, + 0x00, 0x14, 0x17, 0x54, 0x45, 0x53, 0x54, 0x00, 0x5B, 0x23, 0x4D, 0x4C, 0x43, 0x4B, + 0xFF, 0xFF, 0x70, 0x01, 0x60, 0x5B, 0x27, 0x4D, 0x4C, 0x43, 0x4B, + ]; + + let mutex = Mutex::new("MLCK".into(), 0); + assert_eq!( + Device::new( + "_SB_.MHPC".into(), + vec![ + &Name::new("_HID".into(), &EisaName::new("PNP0A06")), + &mutex, + &Method::new( + "TEST".into(), + 0, + false, + vec![ + &Acquire::new("MLCK".into(), 0xffff), + &Store::new(&Local(0), &ONE), + &Release::new("MLCK".into()) + ] + ) + ] + ) + .to_aml_bytes(), + &mutex_data[..] + ); + } + + #[test] + fn test_notify() { + // Device (_SB.MHPC) + // { + // Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID + // Method (TEST, 0, NotSerialized) + // { + // Notify (MHPC, One) // Device Check + // } + // } + let notify_data = [ + 0x5B, 0x82, 0x21, 0x2E, 0x5F, 0x53, 0x42, 0x5F, 0x4D, 0x48, 0x50, 0x43, 0x08, 0x5F, + 0x48, 0x49, 0x44, 0x0C, 0x41, 0xD0, 0x0A, 0x06, 0x14, 0x0C, 0x54, 0x45, 0x53, 0x54, + 0x00, 0x86, 0x4D, 0x48, 0x50, 0x43, 0x01, + ]; + + assert_eq!( + Device::new( + "_SB_.MHPC".into(), + vec![ + &Name::new("_HID".into(), &EisaName::new("PNP0A06")), + &Method::new( + "TEST".into(), + 0, + false, + vec![&Notify::new(&Path::new("MHPC"), &ONE),] + ) + ] + ) + .to_aml_bytes(), + ¬ify_data[..] + ); + } + + #[test] + fn test_while() { + // Device (_SB.MHPC) + // { + // Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID + // Method (TEST, 0, NotSerialized) + // { + // Local0 = Zero + // While ((Local0 < 0x04)) + // { + // Local0 += One + // } + // } + // } + + let while_data = [ + 0x5B, 0x82, 0x28, 0x2E, 0x5F, 0x53, 0x42, 0x5F, 0x4D, 0x48, 0x50, 0x43, 0x08, 0x5F, + 0x48, 0x49, 0x44, 0x0C, 0x41, 0xD0, 0x0A, 0x06, 0x14, 0x13, 0x54, 0x45, 0x53, 0x54, + 0x00, 0x70, 0x00, 0x60, 0xA2, 0x09, 0x95, 0x60, 0x0A, 0x04, 0x72, 0x60, 0x01, 0x60, + ]; + + assert_eq!( + Device::new( + "_SB_.MHPC".into(), + vec![ + &Name::new("_HID".into(), &EisaName::new("PNP0A06")), + &Method::new( + "TEST".into(), + 0, + false, + vec![ + &Store::new(&Local(0), &ZERO), + &While::new( + &LessThan::new(&Local(0), &4usize), + vec![&Add::new(&Local(0), &Local(0), &ONE)] + ) + ] + ) + ] + ) + .to_aml_bytes(), + &while_data[..] + ) + } + + #[test] + fn test_method_call() { + // Method (TST1, 1, NotSerialized) + // { + // TST2 (One, One) + // } + // + // Method (TST2, 2, NotSerialized) + // { + // TST1 (One) + // } + let test_data = [ + 0x14, 0x0C, 0x54, 0x53, 0x54, 0x31, 0x01, 0x54, 0x53, 0x54, 0x32, 0x01, 0x01, 0x14, + 0x0B, 0x54, 0x53, 0x54, 0x32, 0x02, 0x54, 0x53, 0x54, 0x31, 0x01, + ]; + + let mut methods = Vec::new(); + methods.extend_from_slice( + &Method::new( + "TST1".into(), + 1, + false, + vec![&MethodCall::new("TST2".into(), vec![&ONE, &ONE])], + ) + .to_aml_bytes(), + ); + methods.extend_from_slice( + &Method::new( + "TST2".into(), + 2, + false, + vec![&MethodCall::new("TST1".into(), vec![&ONE])], + ) + .to_aml_bytes(), + ); + assert_eq!(&methods[..], &test_data[..]) + } + + #[test] + fn test_buffer() { + // Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry + // { + // 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 /* ........ */ + // }) + let buffer_data = [ + 0x08, 0x5F, 0x4D, 0x41, 0x54, 0x11, 0x0B, 0x0A, 0x08, 0x00, 0x08, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, + ]; + + assert_eq!( + Name::new( + "_MAT".into(), + &Buffer::new(vec![0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00]) + ) + .to_aml_bytes(), + &buffer_data[..] + ) + } + + #[test] + fn test_create_field() { + // Method (MCRS, 0, Serialized) + // { + // Name (MR64, ResourceTemplate () + // { + // QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, + // 0x0000000000000000, // Granularity + // 0x0000000000000000, // Range Minimum + // 0xFFFFFFFFFFFFFFFE, // Range Maximum + // 0x0000000000000000, // Translation Offset + // 0xFFFFFFFFFFFFFFFF, // Length + // ,, _Y00, AddressRangeMemory, TypeStatic) + // }) + // CreateQWordField (MR64, \_SB.MHPC.MCRS._Y00._MIN, MIN) // _MIN: Minimum Base Address + // CreateQWordField (MR64, \_SB.MHPC.MCRS._Y00._MAX, MAX) // _MAX: Maximum Base Address + // CreateQWordField (MR64, \_SB.MHPC.MCRS._Y00._LEN, LEN) // _LEN: Length + // } + let data = [ + 0x14, 0x41, 0x06, 0x4D, 0x43, 0x52, 0x53, 0x08, 0x08, 0x4D, 0x52, 0x36, 0x34, 0x11, + 0x33, 0x0A, 0x30, 0x8A, 0x2B, 0x00, 0x00, 0x0C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x79, 0x00, 0x8F, 0x4D, 0x52, 0x36, 0x34, + 0x0A, 0x0E, 0x4D, 0x49, 0x4E, 0x5F, 0x8F, 0x4D, 0x52, 0x36, 0x34, 0x0A, 0x16, 0x4D, + 0x41, 0x58, 0x5F, 0x8F, 0x4D, 0x52, 0x36, 0x34, 0x0A, 0x26, 0x4C, 0x45, 0x4E, 0x5F, + ]; + + assert_eq!( + Method::new( + "MCRS".into(), + 0, + true, + vec![ + &Name::new( + "MR64".into(), + &ResourceTemplate::new(vec![&AddressSpace::new_memory( + AddressSpaceCachable::Cacheable, + true, + 0x0000_0000_0000_0000u64, + 0xFFFF_FFFF_FFFF_FFFEu64 + )]) + ), + &CreateField::::new(&Path::new("MR64"), &14usize, "MIN_".into()), + &CreateField::::new(&Path::new("MR64"), &22usize, "MAX_".into()), + &CreateField::::new(&Path::new("MR64"), &38usize, "LEN_".into()), + ] + ) + .to_aml_bytes(), + &data[..] + ); + } +} diff --git a/src/acpi-tables/src/dsdt.rs b/src/acpi-tables/src/dsdt.rs new file mode 100644 index 00000000000..d42b261787b --- /dev/null +++ b/src/acpi-tables/src/dsdt.rs @@ -0,0 +1,65 @@ +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +use std::mem::size_of; + +use vm_memory::{Address, Bytes, GuestAddress, GuestMemory}; +use zerocopy::AsBytes; + +use crate::{checksum, AcpiError, Result, Sdt, SdtHeader}; + +/// Differentiated System Description Table (DSDT) +/// +/// Table that includes hardware definition blocks. +/// More information about this table can be found in the ACPI specification: +/// https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html#differentiated-system-description-table-dsdt +#[derive(Debug, Clone)] +pub struct Dsdt { + header: SdtHeader, + definition_block: Vec, +} + +impl Dsdt { + pub fn new( + oem_id: [u8; 6], + oem_table_id: [u8; 8], + oem_revision: u32, + definition_block: Vec, + ) -> Self { + let header = SdtHeader::new( + *b"DSDT", + (size_of::() + definition_block.len()) + .try_into() + .unwrap(), + 2, + oem_id, + oem_table_id, + oem_revision, + ); + + let mut dsdt = Dsdt { + header, + definition_block, + }; + + dsdt.header.checksum = + checksum(&[dsdt.header.as_bytes(), dsdt.definition_block.as_slice()]); + dsdt + } +} + +impl Sdt for Dsdt { + fn len(&self) -> usize { + self.header.length.get() as usize + } + + fn write_to_guest(&mut self, mem: &AS, address: GuestAddress) -> Result<()> { + mem.write_slice(self.header.as_bytes(), address)?; + let address = address + .checked_add(size_of::() as u64) + .ok_or(AcpiError::InvalidGuestAddress)?; + mem.write_slice(self.definition_block.as_slice(), address)?; + + Ok(()) + } +} diff --git a/src/acpi-tables/src/fadt.rs b/src/acpi-tables/src/fadt.rs new file mode 100644 index 00000000000..302e41cddc5 --- /dev/null +++ b/src/acpi-tables/src/fadt.rs @@ -0,0 +1,161 @@ +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// Copyright 2023 Rivos, Inc. +// +// SPDX-License-Identifier: Apache-2.0 + +use vm_memory::{Bytes, GuestAddress, GuestMemory}; +use zerocopy::little_endian::{U16, U32, U64}; +use zerocopy::AsBytes; + +use crate::{checksum, GenericAddressStructure, Result, Sdt, SdtHeader}; + +#[cfg(target_arch = "x86_64")] +pub const IAPC_BOOT_ARG_FLAGS_VGA_NOT_PRESENT: u16 = 2; +#[cfg(target_arch = "x86_64")] +pub const IAPC_BOOT_ARG_FLAGS_MSI_NOT_PRESENT: u16 = 3; +#[cfg(target_arch = "x86_64")] +pub const IAPC_BOOT_ARG_FLAGS_PCI_ASPM: u16 = 4; + +// ACPI Flags. Reading from the specification here: +// https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html#fixed-acpi-description-table-fixed-feature-flags + +/// Flag for the Power Button functionality. +/// If the system does not have a power button, this value would be “1” and no power button device +/// would be present +pub const FADT_F_PWR_BUTTON: u8 = 4; +/// Flag for the Sleep Button Functionality. +/// If the system does not have a sleep button, this value would be “1” and no power button device +/// would be present +pub const FADT_F_SLP_BUTTON: u8 = 5; +/// Flag for Hardware Reduced API. If enabled, software-only alternatives are used for supported +/// fixed features. +pub const FADT_F_HW_REDUCED_ACPI: u8 = 20; + +// clippy doesn't understand that we actually "use" the fields of this struct when we serialize +// them as bytes in guest memory, so here we just ignore dead code to avoid having to name +// everything with an underscore prefix +#[allow(dead_code)] +/// Fixed ACPI Description Table (FADT) +/// +/// This table includes fixed hardware ACPI information such as addresses of register blocks and +/// the pointer to the DSDT table. +/// More information about this table can be found in the ACPI specification: +/// https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html#fixed-acpi-description-table-fadt +#[repr(packed)] +#[derive(Debug, Copy, Clone, Default, AsBytes)] +pub struct Fadt { + header: SdtHeader, + firmware_control: U32, + dsdt: U32, + reserved_1: u8, + preferred_pm_profile: u8, + // In HW-reduced mode, fields starting from SCI_INT until CENTURY are ignored + sci_int: U16, + smi_cmd: U32, + acpi_enable: u8, + acpi_disable: u8, + s4bios_req: u8, + pstate_cnt: u8, + pm1a_evt_blk: U32, + pm1b_evt_blk: U32, + pm1a_cnt_blk: U32, + pm1b_cnt_blk: U32, + pm2_cnt_blk: U32, + pm_tmr_blk: U32, + gpe0_blk: U32, + gpe1_blk: U32, + pm1_evt_len: u8, + pm1_cnt_len: u8, + pm2_cnt_len: u8, + pm_tmr_len: u8, + gpe0_blk_len: u8, + gpe1_blk_len: u8, + gpe1_base: u8, + cst_cnt: u8, + p_lvl2_lat: U16, + p_lvl3_lat: U16, + flush_size: U16, + flush_stride: U16, + duty_offset: u8, + duty_width: u8, + day_alrm: u8, + mon_alrm: u8, + century: u8, + iapc_boot_arch: U16, + reserved_2: u8, + flags: U32, + reset_reg: GenericAddressStructure, + reset_value: u8, + arm_boot_arch: U16, + fadt_minor_version: u8, + x_firmware_ctrl: U64, + x_dsdt: U64, + // In HW-reduced mode, fields starting from X_PM1a_EVT_BLK through X_GPE1_BLK + // are ignored + x_pm1a_evt_blk: GenericAddressStructure, + x_pm1b_evt_blk: GenericAddressStructure, + x_pm1a_cnt_blk: GenericAddressStructure, + x_pm1b_cnt_blk: GenericAddressStructure, + x_pm2_cnt_blk: GenericAddressStructure, + x_pm_tmr_blk: GenericAddressStructure, + x_gpe0_blk: GenericAddressStructure, + x_gpe1_blk: GenericAddressStructure, + sleep_control_reg: GenericAddressStructure, + sleep_status_reg: GenericAddressStructure, + hypervisor_vendor_id: [u8; 8], +} + +impl Fadt { + pub fn new(oem_id: [u8; 6], oem_table_id: [u8; 8], oem_revision: u32) -> Self { + let header = SdtHeader::new( + *b"FACP", + // It's fine to unwrap here, we know that the size of the Fadt structure fits in 32 + // bits. + std::mem::size_of::().try_into().unwrap(), + 6, // revision 6 + oem_id, + oem_table_id, + oem_revision, + ); + + Fadt { + header, + fadt_minor_version: 5, + ..Default::default() + } + } + + /// Set the address of the DSDT table + /// + /// This sets the 64bit variant, X_DSDT field of the FADT table + pub fn set_x_dsdt(&mut self, addr: u64) { + self.x_dsdt = U64::new(addr); + } + + /// Set the FADT flags + pub fn set_flags(&mut self, flags: u32) { + self.flags = U32::new(flags); + } + + /// Set the IA-PC specific flags + pub fn setup_iapc_flags(&mut self, flags: u16) { + self.iapc_boot_arch = U16::new(flags); + } + + /// Set the hypervisor vendor ID + pub fn set_hypervisor_vendor_id(&mut self, hypervisor_vendor_id: [u8; 8]) { + self.hypervisor_vendor_id = hypervisor_vendor_id; + } +} + +impl Sdt for Fadt { + fn len(&self) -> usize { + self.header.length.get().try_into().unwrap() + } + + fn write_to_guest(&mut self, mem: &M, address: GuestAddress) -> Result<()> { + self.header.checksum = checksum(&[self.as_bytes()]); + mem.write_slice(self.as_bytes(), address)?; + Ok(()) + } +} diff --git a/src/acpi-tables/src/lib.rs b/src/acpi-tables/src/lib.rs new file mode 100644 index 00000000000..b815783ee14 --- /dev/null +++ b/src/acpi-tables/src/lib.rs @@ -0,0 +1,147 @@ +// Copyright © 2019 Intel Corporation +// Copyright 2023 Rivos, Inc. +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 + +use vm_memory::{GuestAddress, GuestMemory, GuestMemoryError}; + +pub mod aml; +pub mod dsdt; +pub mod fadt; +pub mod madt; +pub mod rsdp; +pub mod xsdt; + +pub use aml::Aml; +pub use dsdt::Dsdt; +pub use fadt::Fadt; +pub use madt::Madt; +pub use rsdp::Rsdp; +pub use xsdt::Xsdt; +use zerocopy::little_endian::{U32, U64}; +use zerocopy::AsBytes; + +// This is the creator ID that we will embed in ACPI tables that are created using this crate. +const FC_ACPI_CREATOR_ID: [u8; 4] = *b"FCAT"; +// This is the created ID revision that we will embed in ACPI tables that are created using this +// crate. +const FC_ACPI_CREATOR_REVISION: u32 = 0x20240119; + +fn checksum(buf: &[&[u8]]) -> u8 { + (255 - buf + .iter() + .flat_map(|b| b.iter()) + .fold(0u8, |acc, x| acc.wrapping_add(*x))) + .wrapping_add(1) +} + +#[derive(Debug, thiserror::Error, displaydoc::Display)] +pub enum AcpiError { + /// Guest memory error: {0} + GuestMemory(#[from] GuestMemoryError), + /// Invalid guest address + InvalidGuestAddress, + /// Invalid register size + InvalidRegisterSize, +} + +pub type Result = std::result::Result; + +/// ACPI type representing memory addresses +#[repr(packed)] +#[derive(AsBytes, Clone, Copy, Debug, Default)] +pub struct GenericAddressStructure { + pub address_space_id: u8, + pub register_bit_width: u8, + pub register_bit_offset: u8, + pub access_size: u8, + pub address: U64, +} + +impl GenericAddressStructure { + pub fn new( + address_space_id: u8, + register_bit_width: u8, + register_bit_offset: u8, + access_size: u8, + address: u64, + ) -> Self { + Self { + address_space_id, + register_bit_width, + register_bit_offset, + access_size, + address: U64::new(address), + } + } +} + +/// Header included in all System Descriptor Tables +#[repr(packed)] +#[derive(Clone, Debug, Copy, Default, AsBytes)] +pub struct SdtHeader { + pub signature: [u8; 4], + pub length: U32, + pub revision: u8, + pub checksum: u8, + pub oem_id: [u8; 6], + pub oem_table_id: [u8; 8], + pub oem_revision: U32, + pub creator_id: [u8; 4], + pub creator_revison: U32, +} + +impl SdtHeader { + pub(crate) fn new( + signature: [u8; 4], + length: u32, + table_revision: u8, + oem_id: [u8; 6], + oem_table_id: [u8; 8], + oem_revision: u32, + ) -> Self { + SdtHeader { + signature, + length: U32::new(length), + revision: table_revision, + checksum: 0, + oem_id, + oem_table_id, + oem_revision: U32::new(oem_revision), + creator_id: FC_ACPI_CREATOR_ID, + creator_revison: U32::new(FC_ACPI_CREATOR_REVISION), + } + } +} + +/// A trait for functionality around System Descriptor Tables. +pub trait Sdt { + /// Get the length of the table + fn len(&self) -> usize; + + /// Return true if Sdt is empty + fn is_empty(&self) -> bool { + self.len() == 0 + } + + /// Write the table in guest memory + fn write_to_guest(&mut self, mem: &M, address: GuestAddress) -> Result<()>; +} + +#[cfg(test)] +mod tests { + use super::checksum; + + #[test] + fn test_checksum() { + assert_eq!(checksum(&[&[]]), 0u8); + assert_eq!(checksum(&[]), 0u8); + assert_eq!(checksum(&[&[1, 2, 3]]), 250u8); + assert_eq!(checksum(&[&[1, 2, 3], &[]]), 250u8); + assert_eq!(checksum(&[&[1, 2], &[3]]), 250u8); + assert_eq!(checksum(&[&[1, 2], &[3], &[250]]), 0u8); + assert_eq!(checksum(&[&[255]]), 1u8); + assert_eq!(checksum(&[&[1, 2], &[3], &[250], &[255]]), 1u8); + } +} diff --git a/src/acpi-tables/src/madt.rs b/src/acpi-tables/src/madt.rs new file mode 100644 index 00000000000..1c3eb765701 --- /dev/null +++ b/src/acpi-tables/src/madt.rs @@ -0,0 +1,142 @@ +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// Copyright 2023 Rivos, Inc. +// +// SPDX-License-Identifier: Apache-2.0 + +use std::mem::size_of; + +use vm_memory::{Address, Bytes, GuestAddress, GuestMemory}; +use zerocopy::little_endian::U32; +use zerocopy::AsBytes; + +use crate::{checksum, AcpiError, Result, Sdt, SdtHeader}; + +const MADT_CPU_ENABLE_FLAG: u32 = 0; + +// clippy doesn't understand that we actually "use" the fields of this struct when we serialize +// them as bytes in guest memory, so here we just ignore dead code to avoid having to name +// everything with an underscore prefix +#[allow(dead_code)] +#[repr(packed)] +#[derive(Copy, Clone, Debug, Default, AsBytes)] +pub struct LocalAPIC { + r#type: u8, + length: u8, + processor_uid: u8, + apic_id: u8, + flags: U32, +} + +impl LocalAPIC { + pub fn new(cpu_id: u8) -> Self { + Self { + r#type: 0, + length: 8, + processor_uid: cpu_id, + apic_id: cpu_id, + flags: U32::new(1u32 << MADT_CPU_ENABLE_FLAG), + } + } +} + +// clippy doesn't understand that we actually "use" the fields of this struct when we serialize +// them as bytes in guest memory, so here we just ignore dead code to avoid having to name +// everything with an underscore prefix +#[allow(dead_code)] +#[repr(packed)] +#[derive(Copy, Clone, Debug, Default, AsBytes)] +pub struct IoAPIC { + r#type: u8, + length: u8, + ioapic_id: u8, + reserved: u8, + apic_address: U32, + gsi_base: U32, +} + +impl IoAPIC { + pub fn new(ioapic_id: u8, apic_address: u32) -> Self { + IoAPIC { + r#type: 1, + length: 12, + ioapic_id, + reserved: 0, + apic_address: U32::new(apic_address), + gsi_base: U32::ZERO, + } + } +} + +// clippy doesn't understand that we actually "use" the fields of this struct when we serialize +// them as bytes in guest memory, so here we just ignore dead code to avoid having to name +// everything with an underscore prefix +#[allow(dead_code)] +#[repr(packed)] +#[derive(Debug, AsBytes)] +struct MadtHeader { + sdt: SdtHeader, + base_address: U32, + flags: U32, +} + +/// Multiple APIC Description Table (MADT) +/// +/// This table includes information about the interrupt controllers of the device. +/// More information about this table can be found in the ACPI specification: +/// https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html#multiple-apic-description-table-madt +#[derive(Debug)] +pub struct Madt { + header: MadtHeader, + interrupt_controllers: Vec, +} + +impl Madt { + pub fn new( + oem_id: [u8; 6], + oem_table_id: [u8; 8], + oem_revision: u32, + base_address: u32, + interrupt_controllers: Vec, + ) -> Self { + let length = size_of::() + interrupt_controllers.len(); + let sdt_header = SdtHeader::new( + *b"APIC", + // It is ok to unwrap the conversion of `length` to u32. `SdtHeader` is 36 bytes long, + // so `length` here has a value of 44. + length.try_into().unwrap(), + 6, + oem_id, + oem_table_id, + oem_revision, + ); + + let mut header = MadtHeader { + sdt: sdt_header, + base_address: U32::new(base_address), + flags: U32::ZERO, + }; + + header.sdt.checksum = checksum(&[header.as_bytes(), interrupt_controllers.as_bytes()]); + + Madt { + header, + interrupt_controllers, + } + } +} + +impl Sdt for Madt { + fn len(&self) -> usize { + self.header.sdt.length.get().try_into().unwrap() + } + + fn write_to_guest(&mut self, mem: &M, address: GuestAddress) -> Result<()> { + mem.write_slice(self.header.as_bytes(), address)?; + let address = address + .checked_add(size_of::() as u64) + .ok_or(AcpiError::InvalidGuestAddress)?; + mem.write_slice(self.interrupt_controllers.as_bytes(), address)?; + + Ok(()) + } +} diff --git a/src/acpi-tables/src/rsdp.rs b/src/acpi-tables/src/rsdp.rs new file mode 100644 index 00000000000..aaf6fa5c051 --- /dev/null +++ b/src/acpi-tables/src/rsdp.rs @@ -0,0 +1,68 @@ +// Copyright © 2019 Intel Corporation +// Copyright © 2023 Rivos, Inc. +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// +// SPDX-License-Identifier: Apache-2.0 + +use vm_memory::{Bytes, GuestAddress, GuestMemory}; +use zerocopy::little_endian::{U32, U64}; +use zerocopy::AsBytes; + +use crate::{checksum, Result, Sdt}; + +// clippy doesn't understand that we actually "use" the fields of this struct when we serialize +// them as bytes in guest memory, so here we just ignore dead code to avoid having to name +// everything with an underscore prefix +#[allow(dead_code)] +/// Root System Description Pointer +/// +/// This is the root pointer to the ACPI hierarchy. This is what OSs +/// are looking for in the memory when initializing ACPI. It includes +/// a pointer to XSDT +/// More information about this structure can be found in the ACPI specification: +/// https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html#root-system-description-pointer-rsdp +#[repr(packed)] +#[derive(Clone, Copy, Debug, Default, AsBytes)] +pub struct Rsdp { + signature: [u8; 8], + checksum: u8, + oem_id: [u8; 6], + revision: u8, + rsdt_addr: U32, + length: U32, + xsdt_addr: U64, + extended_checksum: u8, + reserved: [u8; 3], +} + +impl Rsdp { + pub fn new(oem_id: [u8; 6], xsdt_addr: u64) -> Self { + let mut rsdp = Rsdp { + // Space in the end of string is needed! + signature: *b"RSD PTR ", + checksum: 0, + oem_id, + revision: 2, + rsdt_addr: U32::ZERO, + length: U32::new(std::mem::size_of::().try_into().unwrap()), + xsdt_addr: U64::new(xsdt_addr), + extended_checksum: 0, + reserved: [0u8; 3], + }; + + rsdp.checksum = checksum(&[&rsdp.as_bytes()[..20]]); + rsdp.extended_checksum = checksum(&[rsdp.as_bytes()]); + rsdp + } +} + +impl Sdt for Rsdp { + fn len(&self) -> usize { + self.as_bytes().len() + } + + fn write_to_guest(&mut self, mem: &M, address: GuestAddress) -> Result<()> { + mem.write_slice(self.as_bytes(), address)?; + Ok(()) + } +} diff --git a/src/acpi-tables/src/xsdt.rs b/src/acpi-tables/src/xsdt.rs new file mode 100644 index 00000000000..ff301fb9843 --- /dev/null +++ b/src/acpi-tables/src/xsdt.rs @@ -0,0 +1,72 @@ +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// Copyright 2023 Rivos, Inc. +// +// SPDX-License-Identifier: Apache-2.0 + +use std::mem::size_of; + +use vm_memory::{Address, Bytes, GuestAddress, GuestMemory}; +use zerocopy::AsBytes; + +use crate::{checksum, AcpiError, Result, Sdt, SdtHeader}; + +/// Extended System Description Table (XSDT) +/// +/// This table provides 64bit addresses to the rest of the ACPI tables defined by the platform +/// More information about this table can be found in the ACPI specification: +/// https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html#extended-system-description-table-xsdt +#[derive(Clone, Default, Debug)] +pub struct Xsdt { + header: SdtHeader, + tables: Vec, +} + +impl Xsdt { + pub fn new( + oem_id: [u8; 6], + oem_table_id: [u8; 8], + oem_revision: u32, + tables: Vec, + ) -> Self { + let mut tables_bytes = Vec::with_capacity(8 * tables.len()); + for addr in tables { + tables_bytes.extend(&addr.to_le_bytes()); + } + + let header = SdtHeader::new( + *b"XSDT", + (std::mem::size_of::() + tables_bytes.len()) + .try_into() + .unwrap(), + 1, + oem_id, + oem_table_id, + oem_revision, + ); + + let mut xsdt = Xsdt { + header, + + tables: tables_bytes, + }; + + xsdt.header.checksum = checksum(&[xsdt.header.as_bytes(), (xsdt.tables.as_slice())]); + + xsdt + } +} + +impl Sdt for Xsdt { + fn len(&self) -> usize { + std::mem::size_of::() + self.tables.len() + } + + fn write_to_guest(&mut self, mem: &M, address: GuestAddress) -> Result<()> { + mem.write_slice(self.header.as_bytes(), address)?; + let address = address + .checked_add(size_of::() as u64) + .ok_or(AcpiError::InvalidGuestAddress)?; + mem.write_slice(self.tables.as_slice(), address)?; + Ok(()) + } +} diff --git a/src/utils/Cargo.toml b/src/utils/Cargo.toml index 0069a8a71a0..351e47b7ff9 100644 --- a/src/utils/Cargo.toml +++ b/src/utils/Cargo.toml @@ -15,7 +15,7 @@ serde = { version = "1.0.165", features = ["derive"] } thiserror = "1.0.32" displaydoc = "0.2.4" vmm-sys-util = "0.12.1" -vm-memory = { version = "0.14.0", features = ["backend-mmap", "backend-bitmap"] } +vm-memory = { version = "0.14.1", features = ["backend-mmap", "backend-bitmap"] } log-instrument = { path = "../log-instrument", optional = true } [dev-dependencies] diff --git a/src/vmm/Cargo.toml b/src/vmm/Cargo.toml index 2904dd520db..67394b94ab7 100644 --- a/src/vmm/Cargo.toml +++ b/src/vmm/Cargo.toml @@ -29,7 +29,7 @@ userfaultfd = "0.7.0" vhost = { version = "0.10.0", features = ["vhost-user-frontend"] } vm-allocator = "0.1.0" vm-superio = "0.7.0" -vm-memory = { version = "0.14.0", features = ["backend-mmap", "backend-bitmap"] } +vm-memory = { version = "0.14.1", features = ["backend-mmap", "backend-bitmap"] } log = { version = "0.4.17", features = ["std", "serde"] } aes-gcm = { version = "0.10.1", default-features = false, features = ["aes"] } base64 = "0.21.0" @@ -38,10 +38,12 @@ micro_http = { git = "https://github.com/firecracker-microvm/micro-http" } log-instrument = { path = "../log-instrument", optional = true } crc64 = "2.0.0" slab = "0.4.7" +zerocopy = { version = "0.7.32" } seccompiler = { path = "../seccompiler" } utils = { path = "../utils" } smallvec = "1.11.2" +acpi_tables = { path = "../acpi-tables" } [target.'cfg(target_arch = "aarch64")'.dependencies] vm-fdt = "0.2.0" diff --git a/src/vmm/src/acpi/mod.rs b/src/vmm/src/acpi/mod.rs new file mode 100644 index 00000000000..917b1f0edf8 --- /dev/null +++ b/src/vmm/src/acpi/mod.rs @@ -0,0 +1,282 @@ +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +use acpi_tables::fadt::{FADT_F_HW_REDUCED_ACPI, FADT_F_PWR_BUTTON, FADT_F_SLP_BUTTON}; +use acpi_tables::{Dsdt, Fadt, Madt, Rsdp, Sdt, Xsdt}; +use log::{debug, error}; +use vm_allocator::AllocPolicy; + +use crate::acpi::x86_64::{ + apic_addr, rsdp_addr, setup_arch_dsdt, setup_arch_fadt, setup_interrupt_controllers, +}; +use crate::device_manager::mmio::MMIODeviceManager; +use crate::device_manager::resources::ResourceAllocator; +use crate::vstate::memory::{GuestAddress, GuestMemoryMmap}; +use crate::Vcpu; + +mod x86_64; + +// Our (Original Equipment Manufacturer" (OEM) name. OEM is how ACPI names the manufacturer of the +// hardware that is exposed to the OS, through ACPI tables. The OEM name is passed in every ACPI +// table, to let the OS know that we are the owner of the table. +const OEM_ID: [u8; 6] = *b"FIRECK"; + +// In reality the OEM revision is per table and it defines the revision of the OEM's implementation +// of the particular ACPI table. For our purpose, we can set it to a fixed value for all the tables +const OEM_REVISION: u32 = 0; + +// This is needed for an entry in the FADT table. Populating this entry in FADT is a way to let the +// guest know that it runs within a Firecracker microVM. +const HYPERVISOR_VENDOR_ID: [u8; 8] = *b"FIRECKVM"; + +#[derive(Debug, thiserror::Error, displaydoc::Display)] +/// Error type for ACPI related operations +pub enum AcpiError { + /// Could not allocate resources: {0} + VmAllocator(#[from] vm_allocator::Error), + /// ACPI tables error: {0} + AcpiTables(#[from] acpi_tables::AcpiError), +} + +/// Helper type that holds the guest memory in which we write the tables in and a resource +/// allocator for allocating space for the tables +struct AcpiTableWriter<'a> { + mem: &'a GuestMemoryMmap, + resource_allocator: &'a mut ResourceAllocator, +} + +impl<'a> AcpiTableWriter<'a> { + /// Write a table in guest memory + /// + /// This will allocate enough space inside guest memory and write the table in the allocated + /// buffer. It returns the address in which it wrote the table. + fn write_acpi_table(&mut self, table: &mut S) -> Result + where + S: Sdt, + { + let addr = self.resource_allocator.allocate_system_memory( + table.len().try_into().unwrap(), + 1, + AllocPolicy::FirstMatch, + )?; + + table + .write_to_guest(self.mem, GuestAddress(addr)) + .inspect_err(|err| error!("acpi: Could not write table in guest memory: {err}"))?; + + debug!( + "acpi: Wrote table ({} bytes) at address: {:#010x}", + table.len(), + addr + ); + + Ok(addr) + } + + /// Build the DSDT table for the guest + fn build_dsdt(&mut self, mmio_device_manager: &MMIODeviceManager) -> Result { + let mut dsdt_data = Vec::new(); + + // Virtio-devices DSDT data + dsdt_data.extend_from_slice(&mmio_device_manager.dsdt_data); + + // Architecture specific DSDT data + setup_arch_dsdt(&mut dsdt_data); + + let mut dsdt = Dsdt::new(OEM_ID, *b"FCVMDSDT", OEM_REVISION, dsdt_data); + self.write_acpi_table(&mut dsdt) + } + + /// Build the FADT table for the guest + /// + /// This includes a pointer with the location of the DSDT in guest memory + fn build_fadt(&mut self, dsdt_addr: u64) -> Result { + let mut fadt = Fadt::new(OEM_ID, *b"FCVMFADT", OEM_REVISION); + fadt.set_hypervisor_vendor_id(HYPERVISOR_VENDOR_ID); + fadt.set_x_dsdt(dsdt_addr); + fadt.set_flags( + 1 << FADT_F_HW_REDUCED_ACPI | 1 << FADT_F_PWR_BUTTON | 1 << FADT_F_SLP_BUTTON, + ); + setup_arch_fadt(&mut fadt); + self.write_acpi_table(&mut fadt) + } + + /// Build the MADT table for the guest + /// + /// This includes information about the interrupt controllers supported in the platform + fn build_madt(&mut self, nr_vcpus: u8) -> Result { + let mut madt = Madt::new( + OEM_ID, + *b"FCVMMADT", + OEM_REVISION, + apic_addr(), + setup_interrupt_controllers(nr_vcpus), + ); + self.write_acpi_table(&mut madt) + } + + /// Build the XSDT table for the guest + /// + /// Currently, we pass to the guest just FADT and MADT tables. + fn build_xsdt(&mut self, fadt_addr: u64, madt_addr: u64) -> Result { + let mut xsdt = Xsdt::new( + OEM_ID, + *b"FCMVXSDT", + OEM_REVISION, + vec![fadt_addr, madt_addr], + ); + self.write_acpi_table(&mut xsdt) + } + + /// Build the RSDP pointer for the guest. + /// + /// This will build the RSDP pointer which points to the XSDT table and write it in guest + /// memory. The address in which we write RSDP is pre-determined for every architecture. + /// We will not allocate arbitrary memory for it + fn build_rsdp(&mut self, xsdt_addr: u64) -> Result<(), AcpiError> { + let mut rsdp = Rsdp::new(OEM_ID, xsdt_addr); + rsdp.write_to_guest(self.mem, rsdp_addr()) + .inspect_err(|err| error!("acpi: Could not write RSDP in guest memory: {err}"))?; + + debug!( + "acpi: Wrote RSDP ({} bytes) at address: {:#010x}", + rsdp.len(), + rsdp_addr().0 + ); + Ok(()) + } +} + +/// Create ACPI tables for the guest +/// +/// This will create the ACPI tables needed to describe to the guest OS the available hardware, +/// such as interrupt controllers, vCPUs and VirtIO devices. +pub(crate) fn create_acpi_tables( + mem: &GuestMemoryMmap, + resource_allocator: &mut ResourceAllocator, + mmio_device_manager: &MMIODeviceManager, + vcpus: &[Vcpu], +) -> Result<(), AcpiError> { + let mut writer = AcpiTableWriter { + mem, + resource_allocator, + }; + + let dsdt_addr = writer.build_dsdt(mmio_device_manager)?; + let fadt_addr = writer.build_fadt(dsdt_addr)?; + let madt_addr = writer.build_madt(vcpus.len().try_into().unwrap())?; + let xsdt_addr = writer.build_xsdt(fadt_addr, madt_addr)?; + writer.build_rsdp(xsdt_addr) +} + +#[cfg(test)] +pub mod tests { + use acpi_tables::Sdt; + use vm_memory::Bytes; + + use crate::acpi::{AcpiError, AcpiTableWriter}; + use crate::arch::x86_64::layout::{SYSTEM_MEM_SIZE, SYSTEM_MEM_START}; + use crate::builder::tests::default_vmm; + use crate::utilities::test_utils::arch_mem; + + struct MockSdt(Vec); + + impl Sdt for MockSdt { + fn len(&self) -> usize { + self.0.len() + } + + fn write_to_guest( + &mut self, + mem: &M, + address: vm_memory::GuestAddress, + ) -> acpi_tables::Result<()> { + mem.write_slice(&self.0, address)?; + Ok(()) + } + } + + // Currently we are allocating up to SYSTEM_MEM_SIZE memory for ACPI tables. We are allocating + // using the FirstMatch policy, with an 1 byte alignment. This test checks that we are able to + // allocate up to this size, and get back the expected addresses. + #[test] + fn test_write_acpi_table_memory_allocation() { + // A mocke Vmm object with 128MBs of memory + let mut vmm = default_vmm(); + let mut writer = AcpiTableWriter { + mem: &vmm.guest_memory, + resource_allocator: &mut vmm.resource_allocator, + }; + + // This should succeed + let mut sdt = MockSdt(vec![0; 4096]); + let addr = writer.write_acpi_table(&mut sdt).unwrap(); + assert_eq!(addr, SYSTEM_MEM_START); + + // Let's try to write two 4K pages plus one byte + let mut sdt = MockSdt(vec![0; usize::try_from(SYSTEM_MEM_SIZE + 1).unwrap()]); + let err = writer.write_acpi_table(&mut sdt).unwrap_err(); + assert!( + matches!( + err, + AcpiError::VmAllocator(vm_allocator::Error::ResourceNotAvailable) + ), + "{:?}", + err + ); + + // We are allocating memory for tables with alignment of 1 byte. All of these should + // succeed. + let mut sdt = MockSdt(vec![0; 5]); + let addr = writer.write_acpi_table(&mut sdt).unwrap(); + assert_eq!(addr, SYSTEM_MEM_START + 4096); + let mut sdt = MockSdt(vec![0; 2]); + let addr = writer.write_acpi_table(&mut sdt).unwrap(); + assert_eq!(addr, SYSTEM_MEM_START + 4101); + let mut sdt = MockSdt(vec![0; 4]); + let addr = writer.write_acpi_table(&mut sdt).unwrap(); + assert_eq!(addr, SYSTEM_MEM_START + 4103); + let mut sdt = MockSdt(vec![0; 8]); + let addr = writer.write_acpi_table(&mut sdt).unwrap(); + assert_eq!(addr, SYSTEM_MEM_START + 4107); + let mut sdt = MockSdt(vec![0; 16]); + let addr = writer.write_acpi_table(&mut sdt).unwrap(); + assert_eq!(addr, SYSTEM_MEM_START + 4115); + } + + // If, for whatever weird reason, we end up with microVM that has less memory than the maximum + // address we allocate for ACPI tables, we would be able to allocate the tables but we would + // not be able to write them. This is practically impossible in our case. If we get such a + // guest memory, we won't be able to load the guest kernel, but the function does + // return an error on this case, so let's just check that in case any of these assumptions + // change in the future. + #[test] + fn test_write_acpi_table_small_memory() { + let mut vmm = default_vmm(); + vmm.guest_memory = arch_mem( + (SYSTEM_MEM_START + SYSTEM_MEM_SIZE - 4096) + .try_into() + .unwrap(), + ); + let mut writer = AcpiTableWriter { + mem: &vmm.guest_memory, + resource_allocator: &mut vmm.resource_allocator, + }; + + let mut sdt = MockSdt(vec![0; usize::try_from(SYSTEM_MEM_SIZE).unwrap()]); + let err = writer.write_acpi_table(&mut sdt).unwrap_err(); + assert!( + matches!( + err, + AcpiError::AcpiTables(acpi_tables::AcpiError::GuestMemory( + vm_memory::GuestMemoryError::PartialBuffer { + expected: 263168, // SYSTEM_MEM_SIZE + completed: 259072 // SYSTEM_MEM_SIZE - 4096 + }, + )) + ), + "{:?}", + err + ); + } +} diff --git a/src/vmm/src/acpi/x86_64.rs b/src/vmm/src/acpi/x86_64.rs new file mode 100644 index 00000000000..0d64b6d5f26 --- /dev/null +++ b/src/vmm/src/acpi/x86_64.rs @@ -0,0 +1,54 @@ +// Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +use std::mem::size_of; + +use acpi_tables::fadt::{ + IAPC_BOOT_ARG_FLAGS_MSI_NOT_PRESENT, IAPC_BOOT_ARG_FLAGS_PCI_ASPM, + IAPC_BOOT_ARG_FLAGS_VGA_NOT_PRESENT, +}; +use acpi_tables::madt::{IoAPIC, LocalAPIC}; +use acpi_tables::Fadt; +use vm_memory::GuestAddress; +use zerocopy::AsBytes; + +use crate::arch::x86_64::layout; +use crate::device_manager::legacy::PortIODeviceManager; + +#[inline(always)] +pub(crate) fn setup_interrupt_controllers(nr_vcpus: u8) -> Vec { + let mut ic = + Vec::with_capacity(size_of::() + (nr_vcpus as usize) * size_of::()); + + ic.extend_from_slice(IoAPIC::new(0, layout::IOAPIC_ADDR).as_bytes()); + for i in 0..nr_vcpus { + ic.extend_from_slice(LocalAPIC::new(i).as_bytes()); + } + ic +} + +#[inline(always)] +pub(crate) fn setup_arch_fadt(fadt: &mut Fadt) { + // Let the guest kernel know that there is not VGA hardware present + // neither do we support ASPM, or MSI type of interrupts. + // More info here: + // https://uefi.org/specs/ACPI/6.5/05_ACPI_Software_Programming_Model.html?highlight=0a06#ia-pc-boot-architecture-flags + fadt.setup_iapc_flags( + 1 << IAPC_BOOT_ARG_FLAGS_VGA_NOT_PRESENT + | 1 << IAPC_BOOT_ARG_FLAGS_PCI_ASPM + | 1 << IAPC_BOOT_ARG_FLAGS_MSI_NOT_PRESENT, + ); +} + +#[inline(always)] +pub(crate) fn setup_arch_dsdt(dsdt_data: &mut Vec) { + PortIODeviceManager::append_aml_bytes(dsdt_data) +} + +pub(crate) const fn apic_addr() -> u32 { + layout::APIC_ADDR +} + +pub(crate) const fn rsdp_addr() -> GuestAddress { + GuestAddress(layout::RSDP_ADDR) +} diff --git a/src/vmm/src/arch/mod.rs b/src/vmm/src/arch/mod.rs index e68bf1ec089..c29f53fdd61 100644 --- a/src/vmm/src/arch/mod.rs +++ b/src/vmm/src/arch/mod.rs @@ -22,8 +22,9 @@ pub mod x86_64; #[cfg(target_arch = "x86_64")] pub use crate::arch::x86_64::{ - arch_memory_regions, configure_system, get_kernel_start, initrd_load_addr, - layout::CMDLINE_MAX_SIZE, layout::IRQ_BASE, layout::IRQ_MAX, ConfigurationError, MMIO_MEM_SIZE, + arch_memory_regions, configure_system, get_kernel_start, initrd_load_addr, layout::APIC_ADDR, + layout::CMDLINE_MAX_SIZE, layout::IOAPIC_ADDR, layout::IRQ_BASE, layout::IRQ_MAX, + layout::SYSTEM_MEM_SIZE, layout::SYSTEM_MEM_START, ConfigurationError, MMIO_MEM_SIZE, MMIO_MEM_START, }; diff --git a/src/vmm/src/arch/x86_64/layout.rs b/src/vmm/src/arch/x86_64/layout.rs index 38776c1e7ed..01355b3018a 100644 --- a/src/vmm/src/arch/x86_64/layout.rs +++ b/src/vmm/src/arch/x86_64/layout.rs @@ -29,3 +29,40 @@ pub const KVM_TSS_ADDRESS: u64 = 0xfffb_d000; /// The 'zero page', a.k.a linux kernel bootparams. pub const ZERO_PAGE_START: u64 = 0x7000; + +/// APIC address +pub const APIC_ADDR: u32 = 0xfee0_0000; + +/// IOAPIC address +pub const IOAPIC_ADDR: u32 = 0xfec0_0000; + +/// Location of RSDP pointer in x86 machines +pub const RSDP_ADDR: u64 = 0x000e_0000; + +/// Start of memory region we will use for system data (MPTable, ACPI, etc). We are putting its +/// start address where EBDA normally starts, i.e. in the last 1 KiB of the first 640KiB of memory +pub const SYSTEM_MEM_START: u64 = 0x9fc00; + +/// Size of memory region for system data. +/// +/// We reserve the memory between the start of the EBDA up until the location of RSDP pointer, +/// [0x9fc00, 0xe0000) for system data. This is 257 KiB of memory we is enough for our needs and +/// future proof. +/// +/// For ACPI we currently need: +/// +/// FADT size: 276 bytes +/// XSDT size: 52 bytes (header: 36 bytes, plus pointers of FADT and MADT) +/// MADT size: 2104 bytes (header: 44 bytes, IO-APIC: 12 bytes, LocalAPIC: 8 * #vCPUS) +/// DSDT size: 1907 bytes (header: 36 bytes, legacy devices: 345, GED: 161, VMGenID: 87, VirtIO +/// devices: 71 bytes per device) +/// +/// The above assumes a maximum of 256 vCPUs, because that's what ACPI allows, but currently +/// we have a hard limit of up to 32 vCPUs. +/// +/// Moreover, for MPTable we need up to 5304 bytes (284 + 20 * #vCPUS) assuming again +/// a maximum number of 256 vCPUs. +/// +/// 257KiB is more than we need, however we reserve this space for potential future use of +/// ACPI features (new tables and/or devices). +pub const SYSTEM_MEM_SIZE: u64 = RSDP_ADDR - SYSTEM_MEM_START; diff --git a/src/vmm/src/arch/x86_64/mod.rs b/src/vmm/src/arch/x86_64/mod.rs index c004603663e..d9d51d9aa0c 100644 --- a/src/vmm/src/arch/x86_64/mod.rs +++ b/src/vmm/src/arch/x86_64/mod.rs @@ -24,6 +24,7 @@ use linux_loader::loader::bootparam::boot_params; use utils::u64_to_usize; use crate::arch::InitrdConfig; +use crate::device_manager::resources::ResourceAllocator; use crate::vstate::memory::{ Address, GuestAddress, GuestMemory, GuestMemoryMmap, GuestMemoryRegion, }; @@ -47,13 +48,8 @@ pub enum ConfigurationError { InitrdAddress, } -// EBDA is located in the last 1 KiB of the first 640KiB of memory, i.e in the range: -// [0x9FC00, 0x9FFFF] -// We mark first [0x0, EBDA_START] region as usable RAM -// and [EBDA_START, (EBDA_START + EBDA_SIZE)] as reserved. -const EBDA_START: u64 = 0x9fc00; -const EBDA_SIZE: u64 = 1 << 10; const FIRST_ADDR_PAST_32BITS: u64 = 1 << 32; + /// Size of MMIO gap at top of 32-bit address space. pub const MEM_32BIT_GAP_SIZE: u64 = 768 << 20; /// The start of the memory area reserved for MMIO devices. @@ -113,6 +109,7 @@ pub fn initrd_load_addr( /// * `num_cpus` - Number of virtual CPUs the guest will have. pub fn configure_system( guest_mem: &GuestMemoryMmap, + resource_allocator: &mut ResourceAllocator, cmdline_addr: GuestAddress, cmdline_size: usize, initrd: &Option, @@ -128,9 +125,13 @@ pub fn configure_system( let himem_start = GuestAddress(layout::HIMEM_START); // Note that this puts the mptable at the last 1k of Linux's 640k base RAM - mptable::setup_mptable(guest_mem, num_cpus)?; + mptable::setup_mptable(guest_mem, resource_allocator, num_cpus)?; - let mut params = boot_params::default(); + // Set the location of RSDP in Boot Parameters to help the guest kernel find it faster. + let mut params = boot_params { + acpi_rsdp_addr: layout::RSDP_ADDR, + ..Default::default() + }; params.hdr.type_of_loader = KERNEL_LOADER_OTHER; params.hdr.boot_flag = KERNEL_BOOT_FLAG_MAGIC; @@ -143,8 +144,16 @@ pub fn configure_system( params.hdr.ramdisk_size = u32::try_from(initrd_config.size).unwrap(); } - add_e820_entry(&mut params, 0, EBDA_START, E820_RAM)?; - add_e820_entry(&mut params, EBDA_START, EBDA_SIZE, E820_RESERVED)?; + // We mark first [0x0, SYSTEM_MEM_START) region as usable RAM and the subsequent + // [SYSTEM_MEM_START, (SYSTEM_MEM_START + SYSTEM_MEM_SIZE)) as reserved (note + // SYSTEM_MEM_SIZE + SYSTEM_MEM_SIZE == HIMEM_START). + add_e820_entry(&mut params, 0, layout::SYSTEM_MEM_START, E820_RAM)?; + add_e820_entry( + &mut params, + layout::SYSTEM_MEM_START, + layout::SYSTEM_MEM_SIZE, + E820_RESERVED, + )?; let last_addr = guest_mem.last_addr(); if last_addr < end_32bit_gap_start { @@ -232,7 +241,9 @@ mod tests { fn test_system_configuration() { let no_vcpus = 4; let gm = single_region_mem(0x10000); - let config_err = configure_system(&gm, GuestAddress(0), 0, &None, 1); + let mut resource_allocator = ResourceAllocator::new().unwrap(); + let config_err = + configure_system(&gm, &mut resource_allocator, GuestAddress(0), 0, &None, 1); assert_eq!( config_err.unwrap_err(), super::ConfigurationError::MpTableSetup(mptable::MptableError::NotEnoughMemory) @@ -241,17 +252,44 @@ mod tests { // Now assigning some memory that falls before the 32bit memory hole. let mem_size = 128 << 20; let gm = arch_mem(mem_size); - configure_system(&gm, GuestAddress(0), 0, &None, no_vcpus).unwrap(); + let mut resource_allocator = ResourceAllocator::new().unwrap(); + configure_system( + &gm, + &mut resource_allocator, + GuestAddress(0), + 0, + &None, + no_vcpus, + ) + .unwrap(); // Now assigning some memory that is equal to the start of the 32bit memory hole. let mem_size = 3328 << 20; let gm = arch_mem(mem_size); - configure_system(&gm, GuestAddress(0), 0, &None, no_vcpus).unwrap(); + let mut resource_allocator = ResourceAllocator::new().unwrap(); + configure_system( + &gm, + &mut resource_allocator, + GuestAddress(0), + 0, + &None, + no_vcpus, + ) + .unwrap(); // Now assigning some memory that falls after the 32bit memory hole. let mem_size = 3330 << 20; let gm = arch_mem(mem_size); - configure_system(&gm, GuestAddress(0), 0, &None, no_vcpus).unwrap(); + let mut resource_allocator = ResourceAllocator::new().unwrap(); + configure_system( + &gm, + &mut resource_allocator, + GuestAddress(0), + 0, + &None, + no_vcpus, + ) + .unwrap(); } #[test] diff --git a/src/vmm/src/arch/x86_64/mptable.rs b/src/vmm/src/arch/x86_64/mptable.rs index d72f36b50c4..587f74dd1f3 100644 --- a/src/vmm/src/arch/x86_64/mptable.rs +++ b/src/vmm/src/arch/x86_64/mptable.rs @@ -7,12 +7,15 @@ use std::convert::TryFrom; use std::fmt::Debug; -use std::mem; +use std::mem::{self, size_of}; use libc::c_char; +use log::debug; +use vm_allocator::AllocPolicy; use crate::arch::IRQ_MAX; use crate::arch_gen::x86::mpspec; +use crate::device_manager::resources::ResourceAllocator; use crate::vstate::memory::{ Address, ByteValued, Bytes, GuestAddress, GuestMemory, GuestMemoryMmap, }; @@ -33,9 +36,6 @@ unsafe impl ByteValued for mpspec::mpc_lintsrc {} // SAFETY: POD unsafe impl ByteValued for mpspec::mpf_intel {} -// MPTABLE, describing VCPUS. -const MPTABLE_START: u64 = 0x9fc00; - #[derive(Debug, PartialEq, Eq, thiserror::Error, displaydoc::Display)] pub enum MptableError { /// There was too little guest memory to store the entire MP table. @@ -62,6 +62,8 @@ pub enum MptableError { WriteMpcLintsrc, /// Failure to write MP table header. WriteMpcTable, + /// Failure to allocate memory for MPTable + AllocateMemory(#[from] vm_allocator::Error), } // With APIC/xAPIC, there are only 255 APIC IDs available. And IOAPIC occupies @@ -112,15 +114,25 @@ fn compute_mp_size(num_cpus: u8) -> usize { } /// Performs setup of the MP table for the given `num_cpus`. -pub fn setup_mptable(mem: &GuestMemoryMmap, num_cpus: u8) -> Result<(), MptableError> { +pub fn setup_mptable( + mem: &GuestMemoryMmap, + resource_allocator: &mut ResourceAllocator, + num_cpus: u8, +) -> Result<(), MptableError> { if num_cpus > MAX_SUPPORTED_CPUS { return Err(MptableError::TooManyCpus); } - // Used to keep track of the next base pointer into the MP table. - let mut base_mp = GuestAddress(MPTABLE_START); - let mp_size = compute_mp_size(num_cpus); + let mptable_addr = + resource_allocator.allocate_system_memory(mp_size as u64, 1, AllocPolicy::FirstMatch)?; + debug!( + "mptable: Allocated {mp_size} bytes for MPTable {num_cpus} vCPUs at address {:#010x}", + mptable_addr + ); + + // Used to keep track of the next base pointer into the MP table. + let mut base_mp = GuestAddress(mptable_addr); let mut mp_num_entries: u16 = 0; let mut checksum: u8 = 0; @@ -284,6 +296,10 @@ pub fn setup_mptable(mem: &GuestMemoryMmap, num_cpus: u8) -> Result<(), MptableE lapic: APIC_DEFAULT_PHYS_BASE, ..Default::default() }; + debug_assert_eq!( + mpc_table.length as usize + size_of::(), + mp_size + ); checksum = checksum.wrapping_add(compute_checksum(&mpc_table)); #[allow(clippy::cast_possible_wrap)] let checksum_final = (!checksum).wrapping_add(1) as i8; @@ -299,6 +315,7 @@ pub fn setup_mptable(mem: &GuestMemoryMmap, num_cpus: u8) -> Result<(), MptableE mod tests { use super::*; + use crate::arch::SYSTEM_MEM_START; use crate::utilities::test_utils::single_region_mem_at; use crate::vstate::memory::Bytes; @@ -316,27 +333,30 @@ mod tests { #[test] fn bounds_check() { let num_cpus = 4; - let mem = single_region_mem_at(MPTABLE_START, compute_mp_size(num_cpus)); + let mem = single_region_mem_at(SYSTEM_MEM_START, compute_mp_size(num_cpus)); + let mut resource_allocator = ResourceAllocator::new().unwrap(); - setup_mptable(&mem, num_cpus).unwrap(); + setup_mptable(&mem, &mut resource_allocator, num_cpus).unwrap(); } #[test] fn bounds_check_fails() { let num_cpus = 4; - let mem = single_region_mem_at(MPTABLE_START, compute_mp_size(num_cpus) - 1); + let mem = single_region_mem_at(SYSTEM_MEM_START, compute_mp_size(num_cpus) - 1); + let mut resource_allocator = ResourceAllocator::new().unwrap(); - setup_mptable(&mem, num_cpus).unwrap_err(); + setup_mptable(&mem, &mut resource_allocator, num_cpus).unwrap_err(); } #[test] fn mpf_intel_checksum() { let num_cpus = 1; - let mem = single_region_mem_at(MPTABLE_START, compute_mp_size(num_cpus)); + let mem = single_region_mem_at(SYSTEM_MEM_START, compute_mp_size(num_cpus)); + let mut resource_allocator = ResourceAllocator::new().unwrap(); - setup_mptable(&mem, num_cpus).unwrap(); + setup_mptable(&mem, &mut resource_allocator, num_cpus).unwrap(); - let mpf_intel: mpspec::mpf_intel = mem.read_obj(GuestAddress(MPTABLE_START)).unwrap(); + let mpf_intel: mpspec::mpf_intel = mem.read_obj(GuestAddress(SYSTEM_MEM_START)).unwrap(); assert_eq!(mpf_intel_compute_checksum(&mpf_intel), mpf_intel.checksum); } @@ -344,11 +364,12 @@ mod tests { #[test] fn mpc_table_checksum() { let num_cpus = 4; - let mem = single_region_mem_at(MPTABLE_START, compute_mp_size(num_cpus)); + let mem = single_region_mem_at(SYSTEM_MEM_START, compute_mp_size(num_cpus)); + let mut resource_allocator = ResourceAllocator::new().unwrap(); - setup_mptable(&mem, num_cpus).unwrap(); + setup_mptable(&mem, &mut resource_allocator, num_cpus).unwrap(); - let mpf_intel: mpspec::mpf_intel = mem.read_obj(GuestAddress(MPTABLE_START)).unwrap(); + let mpf_intel: mpspec::mpf_intel = mem.read_obj(GuestAddress(SYSTEM_MEM_START)).unwrap(); let mpc_offset = GuestAddress(u64::from(mpf_intel.physptr)); let mpc_table: mpspec::mpc_table = mem.read_obj(mpc_offset).unwrap(); @@ -366,11 +387,12 @@ mod tests { #[test] fn mpc_entry_count() { let num_cpus = 1; - let mem = single_region_mem_at(MPTABLE_START, compute_mp_size(num_cpus)); + let mem = single_region_mem_at(SYSTEM_MEM_START, compute_mp_size(num_cpus)); + let mut resource_allocator = ResourceAllocator::new().unwrap(); - setup_mptable(&mem, num_cpus).unwrap(); + setup_mptable(&mem, &mut resource_allocator, num_cpus).unwrap(); - let mpf_intel: mpspec::mpf_intel = mem.read_obj(GuestAddress(MPTABLE_START)).unwrap(); + let mpf_intel: mpspec::mpf_intel = mem.read_obj(GuestAddress(SYSTEM_MEM_START)).unwrap(); let mpc_offset = GuestAddress(u64::from(mpf_intel.physptr)); let mpc_table: mpspec::mpc_table = mem.read_obj(mpc_offset).unwrap(); @@ -394,12 +416,14 @@ mod tests { #[test] fn cpu_entry_count() { - let mem = single_region_mem_at(MPTABLE_START, compute_mp_size(MAX_SUPPORTED_CPUS)); + let mem = single_region_mem_at(SYSTEM_MEM_START, compute_mp_size(MAX_SUPPORTED_CPUS)); for i in 0..MAX_SUPPORTED_CPUS { - setup_mptable(&mem, i).unwrap(); + let mut resource_allocator = ResourceAllocator::new().unwrap(); + setup_mptable(&mem, &mut resource_allocator, i).unwrap(); - let mpf_intel: mpspec::mpf_intel = mem.read_obj(GuestAddress(MPTABLE_START)).unwrap(); + let mpf_intel: mpspec::mpf_intel = + mem.read_obj(GuestAddress(SYSTEM_MEM_START)).unwrap(); let mpc_offset = GuestAddress(u64::from(mpf_intel.physptr)); let mpc_table: mpspec::mpc_table = mem.read_obj(mpc_offset).unwrap(); let mpc_end = mpc_offset.checked_add(u64::from(mpc_table.length)).unwrap(); @@ -425,9 +449,10 @@ mod tests { #[test] fn cpu_entry_count_max() { let cpus = MAX_SUPPORTED_CPUS + 1; - let mem = single_region_mem_at(MPTABLE_START, compute_mp_size(cpus)); + let mem = single_region_mem_at(SYSTEM_MEM_START, compute_mp_size(cpus)); + let mut resource_allocator = ResourceAllocator::new().unwrap(); - let result = setup_mptable(&mem, cpus).unwrap_err(); + let result = setup_mptable(&mem, &mut resource_allocator, cpus).unwrap_err(); assert_eq!(result, MptableError::TooManyCpus); } } diff --git a/src/vmm/src/builder.rs b/src/vmm/src/builder.rs index b6b3fad97e8..3ebc62ec0bb 100644 --- a/src/vmm/src/builder.rs +++ b/src/vmm/src/builder.rs @@ -27,6 +27,8 @@ use vm_memory::ReadVolatile; use vm_superio::Rtc; use vm_superio::Serial; +#[cfg(target_arch = "x86_64")] +use crate::acpi; use crate::arch::InitrdConfig; #[cfg(target_arch = "aarch64")] use crate::construct_kvm_mpidrs; @@ -38,6 +40,7 @@ use crate::cpu_config::templates::{ use crate::device_manager::legacy::PortIODeviceManager; use crate::device_manager::mmio::MMIODeviceManager; use crate::device_manager::persist::MMIODevManagerConstructorArgs; +use crate::device_manager::resources::ResourceAllocator; use crate::devices::legacy::serial::SerialOut; #[cfg(target_arch = "aarch64")] use crate::devices::legacy::RTCDevice; @@ -105,13 +108,18 @@ pub enum StartMicrovmError { /// Cannot open the block device backing file: {0} OpenBlockDevice(io::Error), /// Cannot initialize a MMIO Device or add a device to the MMIO Bus or cmdline: {0} - RegisterMmioDevice(device_manager::mmio::MmioError), + RegisterMmioDevice(#[from] device_manager::mmio::MmioError), /// Cannot restore microvm state: {0} RestoreMicrovmState(MicrovmStateError), /// Cannot set vm resources: {0} SetVmResources(VmConfigError), /// Cannot create the entropy device: {0} CreateEntropyDevice(crate::devices::virtio::rng::EntropyError), + /// Failed to allocate guest resource: {0} + AllocateResources(#[from] vm_allocator::Error), + /// Error configuring ACPI: {0} + #[cfg(target_arch = "x86_64")] + Acpi(#[from] crate::acpi::AcpiError), } /// It's convenient to automatically convert `linux_loader::cmdline::Error`s @@ -147,15 +155,10 @@ fn create_vmm_and_vcpus( .map_err(VmmError::EventFd) .map_err(Internal)?; + let resource_allocator = ResourceAllocator::new()?; + // Instantiate the MMIO device manager. - // 'mmio_base' address has to be an address which is protected by the kernel - // and is architectural specific. - let mmio_device_manager = MMIODeviceManager::new( - crate::arch::MMIO_MEM_START, - crate::arch::MMIO_MEM_SIZE, - (crate::arch::IRQ_BASE, crate::arch::IRQ_MAX), - ) - .map_err(StartMicrovmError::RegisterMmioDevice)?; + let mmio_device_manager = MMIODeviceManager::new(); // For x86_64 we need to create the interrupt controller before calling `KVM_CREATE_VCPUS` // while on aarch64 we need to do it the other way around. @@ -208,6 +211,7 @@ fn create_vmm_and_vcpus( uffd, vcpus_handles: Vec::new(), vcpus_exit_evt, + resource_allocator, mmio_device_manager, #[cfg(target_arch = "x86_64")] pio_device_manager, @@ -324,7 +328,7 @@ pub fn build_microvm_for_boot( attach_legacy_devices_aarch64(event_manager, &mut vmm, &mut boot_cmdline).map_err(Internal)?; configure_system_for_boot( - &vmm, + &mut vmm, vcpus.as_mut(), &vm_resources.vm_config, &cpu_template, @@ -497,6 +501,7 @@ pub fn build_microvm_from_snapshot( mem: guest_memory, vm: vmm.vm.fd(), event_manager, + resource_allocator: &mut vmm.resource_allocator, vm_resources, instance_id: &instance_info.id, }; @@ -681,7 +686,7 @@ fn attach_legacy_devices_aarch64( set_stdout_nonblocking(); let serial = setup_serial_device(event_manager, std::io::stdin(), std::io::stdout())?; vmm.mmio_device_manager - .register_mmio_serial(vmm.vm.fd(), serial, None) + .register_mmio_serial(vmm.vm.fd(), &mut vmm.resource_allocator, serial, None) .map_err(VmmError::RegisterMMIODevice)?; vmm.mmio_device_manager .add_mmio_serial_to_cmdline(cmdline) @@ -692,7 +697,7 @@ fn attach_legacy_devices_aarch64( &crate::devices::legacy::rtc_pl031::METRICS, )); vmm.mmio_device_manager - .register_mmio_rtc(rtc, None) + .register_mmio_rtc(&mut vmm.resource_allocator, rtc, None) .map_err(VmmError::RegisterMMIODevice) } @@ -709,7 +714,7 @@ fn create_vcpus(vm: &Vm, vcpu_count: u8, exit_evt: &EventFd) -> Result /// Configures the system for booting Linux. #[cfg_attr(target_arch = "aarch64", allow(unused))] pub fn configure_system_for_boot( - vmm: &Vmm, + vmm: &mut Vmm, vcpus: &mut [Vcpu], vm_config: &VmConfig, cpu_template: &CustomCpuTemplate, @@ -784,12 +789,22 @@ pub fn configure_system_for_boot( .map_err(LoadCommandline)?; crate::arch::x86_64::configure_system( &vmm.guest_memory, + &mut vmm.resource_allocator, crate::vstate::memory::GuestAddress(crate::arch::x86_64::layout::CMDLINE_START), cmdline_size, initrd, vcpu_config.vcpu_count, ) .map_err(ConfigureSystem)?; + + // Create ACPI tables and write them in guest memory + // For the time being we only support ACPI in x86_64 + acpi::create_acpi_tables( + &vmm.guest_memory, + &mut vmm.resource_allocator, + &vmm.mmio_device_manager, + vcpus, + )?; } #[cfg(target_arch = "aarch64")] { @@ -827,7 +842,13 @@ fn attach_virtio_device( // The device mutex mustn't be locked here otherwise it will deadlock. let device = MmioTransport::new(vmm.guest_memory().clone(), device, is_vhost_user); vmm.mmio_device_manager - .register_mmio_virtio_for_boot(vmm.vm.fd(), id, device, cmdline) + .register_mmio_virtio_for_boot( + vmm.vm.fd(), + &mut vmm.resource_allocator, + id, + device, + cmdline, + ) .map_err(RegisterMmioDevice) .map(|_| ()) } @@ -841,7 +862,7 @@ pub(crate) fn attach_boot_timer_device( let boot_timer = crate::devices::pseudo::BootTimer::new(request_ts); vmm.mmio_device_manager - .register_mmio_boot_timer(boot_timer) + .register_mmio_boot_timer(&mut vmm.resource_allocator, boot_timer) .map_err(RegisterMmioDevice)?; Ok(()) @@ -964,6 +985,7 @@ pub mod tests { use super::*; use crate::arch::DeviceType; + use crate::device_manager::resources::ResourceAllocator; use crate::devices::virtio::block::CacheType; use crate::devices::virtio::rng::device::ENTROPY_DEV_ID; use crate::devices::virtio::vsock::{TYPE_VSOCK, VSOCK_DEV_ID}; @@ -1006,15 +1028,6 @@ pub mod tests { } } - fn default_mmio_device_manager() -> MMIODeviceManager { - MMIODeviceManager::new( - crate::arch::MMIO_MEM_START, - crate::arch::MMIO_MEM_SIZE, - (crate::arch::IRQ_BASE, crate::arch::IRQ_MAX), - ) - .unwrap() - } - fn cmdline_contains(cmdline: &Cmdline, slug: &str) -> bool { // The following unwraps can never fail; the only way any of these methods // would return an `Err` is if one of the following conditions is met: @@ -1051,7 +1064,7 @@ pub mod tests { let mut vm = Vm::new(vec![]).unwrap(); vm.memory_init(&guest_memory, false).unwrap(); - let mmio_device_manager = default_mmio_device_manager(); + let mmio_device_manager = MMIODeviceManager::new(); #[cfg(target_arch = "x86_64")] let pio_device_manager = PortIODeviceManager::new( Arc::new(Mutex::new(BusDevice::Serial(SerialWrapper { @@ -1087,6 +1100,7 @@ pub mod tests { uffd: None, vcpus_handles: Vec::new(), vcpus_exit_evt, + resource_allocator: ResourceAllocator::new().unwrap(), mmio_device_manager, #[cfg(target_arch = "x86_64")] pio_device_manager, diff --git a/src/vmm/src/device_manager/legacy.rs b/src/vmm/src/device_manager/legacy.rs index 7d529503160..7c4a0719900 100644 --- a/src/vmm/src/device_manager/legacy.rs +++ b/src/vmm/src/device_manager/legacy.rs @@ -9,6 +9,7 @@ use std::fmt::Debug; use std::sync::{Arc, Mutex}; +use acpi_tables::{aml, Aml}; use kvm_ioctls::VmFd; use libc::EFD_NONBLOCK; use utils::eventfd::EventFd; @@ -167,6 +168,71 @@ impl PortIODeviceManager { Ok(()) } + + pub(crate) fn append_aml_bytes(bytes: &mut Vec) { + // Set up COM devices + let gsi = [ + Self::COM_EVT_1_3_GSI, + Self::COM_EVT_2_4_GSI, + Self::COM_EVT_1_3_GSI, + Self::COM_EVT_2_4_GSI, + ]; + for com in 0u8..4 { + // COM1 + aml::Device::new( + format!("_SB_.COM{}", com + 1).as_str().into(), + vec![ + &aml::Name::new("_HID".into(), &aml::EisaName::new("PNP0501")), + &aml::Name::new("_UID".into(), &com), + &aml::Name::new("_DDN".into(), &format!("COM{}", com + 1)), + &aml::Name::new( + "_CRS".into(), + &aml::ResourceTemplate::new(vec![ + &aml::Interrupt::new(true, true, false, false, gsi[com as usize]), + &aml::Io::new( + PortIODeviceManager::SERIAL_PORT_ADDRESSES[com as usize] + .try_into() + .unwrap(), + PortIODeviceManager::SERIAL_PORT_ADDRESSES[com as usize] + .try_into() + .unwrap(), + 1, + PortIODeviceManager::SERIAL_PORT_SIZE.try_into().unwrap(), + ), + ]), + ), + ], + ) + .append_aml_bytes(bytes); + } + // Setup i8042 + aml::Device::new( + "_SB_.PS2_".into(), + vec![ + &aml::Name::new("_HID".into(), &aml::EisaName::new("PNP0303")), + &aml::Method::new("_STA".into(), 0, false, vec![&aml::Return::new(&0x0fu8)]), + &aml::Name::new( + "_CRS".into(), + &aml::ResourceTemplate::new(vec![ + &aml::Io::new( + PortIODeviceManager::I8042_KDB_DATA_REGISTER_ADDRESS + .try_into() + .unwrap(), + PortIODeviceManager::I8042_KDB_DATA_REGISTER_ADDRESS + .try_into() + .unwrap(), + 1u8, + 1u8, + ), + // Fake a command port so Linux stops complaining + &aml::Io::new(0x0064, 0x0064, 1u8, 1u8), + &aml::Interrupt::new(true, true, false, false, Self::KBD_EVT_GSI), + ]), + ), + ], + ) + .append_aml_bytes(bytes); + } } #[cfg(test)] diff --git a/src/vmm/src/device_manager/mmio.rs b/src/vmm/src/device_manager/mmio.rs index d0f10011bf7..68dfa3dfc8d 100644 --- a/src/vmm/src/device_manager/mmio.rs +++ b/src/vmm/src/device_manager/mmio.rs @@ -9,12 +9,17 @@ use std::collections::HashMap; use std::fmt::Debug; use std::sync::{Arc, Mutex}; +#[cfg(target_arch = "x86_64")] +use acpi_tables::{aml, Aml}; use kvm_ioctls::{IoEventAddress, VmFd}; use linux_loader::cmdline as kernel_cmdline; +#[cfg(target_arch = "x86_64")] +use log::debug; use log::info; use serde::{Deserialize, Serialize}; -use vm_allocator::{AddressAllocator, AllocPolicy, IdAllocator}; +use vm_allocator::AllocPolicy; +use super::resources::ResourceAllocator; #[cfg(target_arch = "aarch64")] use crate::arch::aarch64::DeviceInfoForFDT; use crate::arch::DeviceType; @@ -38,7 +43,7 @@ use crate::vstate::memory::GuestAddress; #[derive(Debug, thiserror::Error, displaydoc::Display)] pub enum MmioError { /// Failed to allocate requested resource: {0} - Allocator(vm_allocator::Error), + Allocator(#[from] vm_allocator::Error), /// Failed to insert device on the bus: {0} BusInsert(crate::devices::BusError), /// Failed to allocate requested resourc: {0} @@ -57,7 +62,8 @@ pub enum MmioError { RegisterIrqFd(kvm_ioctls::Error), } -/// This represents the size of the mmio device specified to the kernel as a cmdline option +/// This represents the size of the mmio device specified to the kernel through ACPI and as a +/// command line option. /// It has to be larger than 0x100 (the offset where the configuration space starts from /// the beginning of the memory mapped device registers) + the size of the configuration space /// Currently hardcoded to 4K. @@ -74,43 +80,75 @@ pub struct MMIODeviceInfo { pub irqs: Vec, } +#[cfg(target_arch = "x86_64")] +fn add_virtio_aml(dsdt_data: &mut Vec, addr: u64, len: u64, irq: u32) { + let dev_id = irq - crate::arch::IRQ_BASE; + debug!( + "acpi: Building AML for VirtIO device _SB_.V{:03}. memory range: {:#010x}:{} irq: {}", + dev_id, addr, len, irq + ); + aml::Device::new( + format!("V{:03}", dev_id).as_str().into(), + vec![ + &aml::Name::new("_HID".into(), &"LNRO0005"), + &aml::Name::new("_UID".into(), &dev_id), + &aml::Name::new("_CCA".into(), &aml::ONE), + &aml::Name::new( + "_CRS".into(), + &aml::ResourceTemplate::new(vec![ + &aml::Memory32Fixed::new( + true, + addr.try_into().unwrap(), + len.try_into().unwrap(), + ), + &aml::Interrupt::new(true, true, false, false, irq), + ]), + ), + ], + ) + .append_aml_bytes(dsdt_data); +} + /// Manages the complexities of registering a MMIO device. #[derive(Debug)] pub struct MMIODeviceManager { pub(crate) bus: crate::devices::Bus, - pub(crate) irq_allocator: IdAllocator, - pub(crate) address_allocator: AddressAllocator, pub(crate) id_to_dev_info: HashMap<(DeviceType, String), MMIODeviceInfo>, + // We create the AML byte code for every VirtIO device in the order we build + // it, so that we ensure the root block device is appears first in the DSDT. + // This is needed, so that the root device appears as `/dev/vda` in the guest + // filesystem. + // The alternative would be that we iterate the bus to get the data after all + // of the devices are build. However, iterating the bus won't give us the + // devices in the order they were added. + #[cfg(target_arch = "x86_64")] + pub(crate) dsdt_data: Vec, } impl MMIODeviceManager { /// Create a new DeviceManager handling mmio devices (virtio net, block). - pub fn new( - mmio_base: u64, - mmio_size: u64, - (irq_start, irq_end): (u32, u32), - ) -> Result { - Ok(MMIODeviceManager { - irq_allocator: IdAllocator::new(irq_start, irq_end).map_err(MmioError::Allocator)?, - address_allocator: AddressAllocator::new(mmio_base, mmio_size) - .map_err(MmioError::Allocator)?, + pub fn new() -> MMIODeviceManager { + MMIODeviceManager { bus: crate::devices::Bus::new(), id_to_dev_info: HashMap::new(), - }) + #[cfg(target_arch = "x86_64")] + dsdt_data: vec![], + } } /// Allocates resources for a new device to be added. - fn allocate_mmio_resources(&mut self, irq_count: u32) -> Result { - let irqs = (0..irq_count) - .map(|_| self.irq_allocator.allocate_id()) - .collect::>() - .map_err(MmioError::Allocator)?; + fn allocate_mmio_resources( + &mut self, + resource_allocator: &mut ResourceAllocator, + irq_count: u32, + ) -> Result { + let irqs = resource_allocator.allocate_gsi(irq_count)?; let device_info = MMIODeviceInfo { - addr: self - .address_allocator - .allocate(MMIO_LEN, MMIO_LEN, AllocPolicy::FirstMatch) - .map_err(MmioError::Allocator)? - .start(), + addr: resource_allocator.allocate_mmio_memory( + MMIO_LEN, + MMIO_LEN, + AllocPolicy::FirstMatch, + )?, len: MMIO_LEN, irqs, }; @@ -173,7 +211,7 @@ impl MMIODeviceManager { device_info: &MMIODeviceInfo, ) -> Result<(), MmioError> { // as per doc, [virtio_mmio.]device=@: needs to be appended - // to kernel commandline for virtio mmio devices to get recognized + // to kernel command line for virtio mmio devices to get recongnized // the size parameter has to be transformed to KiB, so dividing hexadecimal value in // bytes to 1024; further, the '{}' formatting rust construct will automatically // transform it to decimal @@ -192,14 +230,25 @@ impl MMIODeviceManager { pub fn register_mmio_virtio_for_boot( &mut self, vm: &VmFd, + resource_allocator: &mut ResourceAllocator, device_id: String, mmio_device: MmioTransport, _cmdline: &mut kernel_cmdline::Cmdline, ) -> Result { - let device_info = self.allocate_mmio_resources(1)?; + let device_info = self.allocate_mmio_resources(resource_allocator, 1)?; self.register_mmio_virtio(vm, device_id, mmio_device, &device_info)?; #[cfg(target_arch = "x86_64")] - Self::add_virtio_device_to_cmdline(_cmdline, &device_info)?; + { + Self::add_virtio_device_to_cmdline(_cmdline, &device_info)?; + add_virtio_aml( + &mut self.dsdt_data, + device_info.addr, + device_info.len, + // We are sure that `irqs` has at least one element; allocate_mmio_resources makes + // sure of it. + device_info.irqs[0], + ); + } Ok(device_info) } @@ -209,6 +258,7 @@ impl MMIODeviceManager { pub fn register_mmio_serial( &mut self, vm: &VmFd, + resource_allocator: &mut ResourceAllocator, serial: Arc>, device_info_opt: Option, ) -> Result<(), MmioError> { @@ -217,7 +267,7 @@ impl MMIODeviceManager { let device_info = if let Some(device_info) = device_info_opt { device_info } else { - self.allocate_mmio_resources(1)? + self.allocate_mmio_resources(resource_allocator, 1)? }; vm.register_irqfd( @@ -257,6 +307,7 @@ impl MMIODeviceManager { /// given as parameter, otherwise allocate a new MMIO resources for it. pub fn register_mmio_rtc( &mut self, + resource_allocator: &mut ResourceAllocator, rtc: RTCDevice, device_info_opt: Option, ) -> Result<(), MmioError> { @@ -265,7 +316,7 @@ impl MMIODeviceManager { let device_info = if let Some(device_info) = device_info_opt { device_info } else { - self.allocate_mmio_resources(1)? + self.allocate_mmio_resources(resource_allocator, 1)? }; // Create a new identifier for the RTC device. @@ -279,9 +330,13 @@ impl MMIODeviceManager { } /// Register a boot timer device. - pub fn register_mmio_boot_timer(&mut self, device: BootTimer) -> Result<(), MmioError> { + pub fn register_mmio_boot_timer( + &mut self, + resource_allocator: &mut ResourceAllocator, + device: BootTimer, + ) -> Result<(), MmioError> { // Attach a new boot timer device. - let device_info = self.allocate_mmio_resources(0)?; + let device_info = self.allocate_mmio_resources(resource_allocator, 0)?; let identifier = (DeviceType::BootTimer, DeviceType::BootTimer.to_string()); self.register_mmio_device( @@ -478,13 +533,19 @@ mod tests { &mut self, vm: &VmFd, guest_mem: GuestMemoryMmap, + resource_allocator: &mut ResourceAllocator, device: Arc>, cmdline: &mut kernel_cmdline::Cmdline, dev_id: &str, ) -> Result { let mmio_device = MmioTransport::new(guest_mem, device, false); - let device_info = - self.register_mmio_virtio_for_boot(vm, dev_id.to_string(), mmio_device, cmdline)?; + let device_info = self.register_mmio_virtio_for_boot( + vm, + resource_allocator, + dev_id.to_string(), + mmio_device, + cmdline, + )?; Ok(device_info.addr) } @@ -585,12 +646,8 @@ mod tests { let guest_mem = multi_region_mem(&[(start_addr1, 0x1000), (start_addr2, 0x1000)]); let mut vm = Vm::new(vec![]).unwrap(); vm.memory_init(&guest_mem, false).unwrap(); - let mut device_manager = MMIODeviceManager::new( - 0xd000_0000, - crate::arch::MMIO_MEM_SIZE, - (crate::arch::IRQ_BASE, crate::arch::IRQ_MAX), - ) - .unwrap(); + let mut device_manager = MMIODeviceManager::new(); + let mut resource_allocator = ResourceAllocator::new().unwrap(); let mut cmdline = kernel_cmdline::Cmdline::new(4096).unwrap(); let dummy = Arc::new(Mutex::new(DummyDevice::new())); @@ -600,7 +657,14 @@ mod tests { builder::setup_interrupt_controller(&mut vm, 1).unwrap(); device_manager - .register_virtio_test_device(vm.fd(), guest_mem, dummy, &mut cmdline, "dummy") + .register_virtio_test_device( + vm.fd(), + guest_mem, + &mut resource_allocator, + dummy, + &mut cmdline, + "dummy", + ) .unwrap(); } @@ -611,12 +675,8 @@ mod tests { let guest_mem = multi_region_mem(&[(start_addr1, 0x1000), (start_addr2, 0x1000)]); let mut vm = Vm::new(vec![]).unwrap(); vm.memory_init(&guest_mem, false).unwrap(); - let mut device_manager = MMIODeviceManager::new( - 0xd000_0000, - crate::arch::MMIO_MEM_SIZE, - (crate::arch::IRQ_BASE, crate::arch::IRQ_MAX), - ) - .unwrap(); + let mut device_manager = MMIODeviceManager::new(); + let mut resource_allocator = ResourceAllocator::new().unwrap(); let mut cmdline = kernel_cmdline::Cmdline::new(4096).unwrap(); #[cfg(target_arch = "x86_64")] @@ -629,6 +689,7 @@ mod tests { .register_virtio_test_device( vm.fd(), guest_mem.clone(), + &mut resource_allocator, Arc::new(Mutex::new(DummyDevice::new())), &mut cmdline, "dummy1", @@ -642,6 +703,7 @@ mod tests { .register_virtio_test_device( vm.fd(), guest_mem, + &mut resource_allocator, Arc::new(Mutex::new(DummyDevice::new())), &mut cmdline, "dummy2" @@ -675,19 +737,22 @@ mod tests { #[cfg(target_arch = "aarch64")] builder::setup_interrupt_controller(&mut vm, 1).unwrap(); - let mut device_manager = MMIODeviceManager::new( - 0xd000_0000, - crate::arch::MMIO_MEM_SIZE, - (crate::arch::IRQ_BASE, crate::arch::IRQ_MAX), - ) - .unwrap(); + let mut device_manager = MMIODeviceManager::new(); + let mut resource_allocator = ResourceAllocator::new().unwrap(); let mut cmdline = kernel_cmdline::Cmdline::new(4096).unwrap(); let dummy = Arc::new(Mutex::new(DummyDevice::new())); let type_id = dummy.lock().unwrap().device_type(); let id = String::from("foo"); let addr = device_manager - .register_virtio_test_device(vm.fd(), guest_mem, dummy, &mut cmdline, &id) + .register_virtio_test_device( + vm.fd(), + guest_mem, + &mut resource_allocator, + dummy, + &mut cmdline, + &id, + ) .unwrap(); assert!(device_manager .get_device(DeviceType::Virtio(type_id), &id) @@ -709,7 +774,14 @@ mod tests { let dummy2 = Arc::new(Mutex::new(DummyDevice::new())); let id2 = String::from("foo2"); device_manager - .register_virtio_test_device(vm.fd(), mem_clone, dummy2, &mut cmdline, &id2) + .register_virtio_test_device( + vm.fd(), + mem_clone, + &mut resource_allocator, + dummy2, + &mut cmdline, + &id2, + ) .unwrap(); let mut count = 0; @@ -729,40 +801,49 @@ mod tests { #[test] fn test_slot_irq_allocation() { - let mut device_manager = MMIODeviceManager::new( - 0xd000_0000, - crate::arch::MMIO_MEM_SIZE, - (crate::arch::IRQ_BASE, crate::arch::IRQ_MAX), - ) - .unwrap(); - let device_info = device_manager.allocate_mmio_resources(0).unwrap(); + let mut device_manager = MMIODeviceManager::new(); + let mut resource_allocator = ResourceAllocator::new().unwrap(); + let device_info = device_manager + .allocate_mmio_resources(&mut resource_allocator, 0) + .unwrap(); assert_eq!(device_info.irqs.len(), 0); - let device_info = device_manager.allocate_mmio_resources(1).unwrap(); + let device_info = device_manager + .allocate_mmio_resources(&mut resource_allocator, 1) + .unwrap(); assert_eq!(device_info.irqs[0], crate::arch::IRQ_BASE); assert_eq!( format!( "{}", device_manager - .allocate_mmio_resources(crate::arch::IRQ_MAX - crate::arch::IRQ_BASE + 1) + .allocate_mmio_resources( + &mut resource_allocator, + crate::arch::IRQ_MAX - crate::arch::IRQ_BASE + 1 + ) .unwrap_err() ), "Failed to allocate requested resource: The requested resource is not available." .to_string() ); - for i in crate::arch::IRQ_BASE..crate::arch::IRQ_MAX { - device_manager.irq_allocator.free_id(i).unwrap(); - } - let device_info = device_manager - .allocate_mmio_resources(crate::arch::IRQ_MAX - crate::arch::IRQ_BASE - 1) + .allocate_mmio_resources( + &mut resource_allocator, + crate::arch::IRQ_MAX - crate::arch::IRQ_BASE - 1, + ) .unwrap(); - assert_eq!(device_info.irqs[16], crate::arch::IRQ_BASE + 16); + assert_eq!(device_info.irqs[16], crate::arch::IRQ_BASE + 17); assert_eq!( - format!("{}", device_manager.allocate_mmio_resources(2).unwrap_err()), + format!( + "{}", + device_manager + .allocate_mmio_resources(&mut resource_allocator, 2) + .unwrap_err() + ), "Failed to allocate requested resource: The requested resource is not available." .to_string() ); - device_manager.allocate_mmio_resources(0).unwrap(); + device_manager + .allocate_mmio_resources(&mut resource_allocator, 0) + .unwrap(); } } diff --git a/src/vmm/src/device_manager/mod.rs b/src/vmm/src/device_manager/mod.rs index b55c5154276..42ad46ca0a8 100644 --- a/src/vmm/src/device_manager/mod.rs +++ b/src/vmm/src/device_manager/mod.rs @@ -11,3 +11,5 @@ pub mod legacy; pub mod mmio; /// Device managers (de)serialization support. pub mod persist; +/// Resource manager for devices. +pub mod resources; diff --git a/src/vmm/src/device_manager/persist.rs b/src/vmm/src/device_manager/persist.rs index 094c4bf14a8..da1adf0dc98 100644 --- a/src/vmm/src/device_manager/persist.rs +++ b/src/vmm/src/device_manager/persist.rs @@ -13,6 +13,7 @@ use serde::{Deserialize, Serialize}; use vm_allocator::AllocPolicy; use super::mmio::*; +use super::resources::ResourceAllocator; #[cfg(target_arch = "aarch64")] use crate::arch::DeviceType; use crate::devices::virtio::balloon::persist::{BalloonConstructorArgs, BalloonState}; @@ -208,6 +209,7 @@ pub struct MMIODevManagerConstructorArgs<'a> { pub mem: GuestMemoryMmap, pub vm: &'a VmFd, pub event_manager: &'a mut EventManager, + pub resource_allocator: &'a mut ResourceAllocator, pub vm_resources: &'a mut VmResources, pub instance_id: &'a str, } @@ -357,12 +359,7 @@ impl<'a> Persist<'a> for MMIODeviceManager { constructor_args: Self::ConstructorArgs, state: &Self::State, ) -> Result { - let mut dev_manager = MMIODeviceManager::new( - crate::arch::MMIO_MEM_START, - crate::arch::MMIO_MEM_SIZE, - (crate::arch::IRQ_BASE, crate::arch::IRQ_MAX), - ) - .map_err(Self::Error::DeviceManager)?; + let mut dev_manager = MMIODeviceManager::new(); let mem = &constructor_args.mem; let vm = constructor_args.vm; @@ -376,9 +373,9 @@ impl<'a> Persist<'a> for MMIODeviceManager { std::io::stdout(), )?; - dev_manager - .address_allocator - .allocate( + constructor_args + .resource_allocator + .allocate_mmio_memory( MMIO_LEN, MMIO_LEN, AllocPolicy::ExactMatch(state.device_info.addr), @@ -389,6 +386,7 @@ impl<'a> Persist<'a> for MMIODeviceManager { dev_manager.register_mmio_serial( vm, + constructor_args.resource_allocator, serial, Some(state.device_info.clone()), )?; @@ -397,9 +395,9 @@ impl<'a> Persist<'a> for MMIODeviceManager { let rtc = crate::devices::legacy::RTCDevice(vm_superio::Rtc::with_events( &crate::devices::legacy::rtc_pl031::METRICS, )); - dev_manager - .address_allocator - .allocate( + constructor_args + .resource_allocator + .allocate_mmio_memory( MMIO_LEN, MMIO_LEN, AllocPolicy::ExactMatch(state.device_info.addr), @@ -407,7 +405,11 @@ impl<'a> Persist<'a> for MMIODeviceManager { .map_err(|e| { DevicePersistError::DeviceManager(super::mmio::MmioError::Allocator(e)) })?; - dev_manager.register_mmio_rtc(rtc, Some(state.device_info.clone()))?; + dev_manager.register_mmio_rtc( + constructor_args.resource_allocator, + rtc, + Some(state.device_info.clone()), + )?; } } } @@ -438,9 +440,9 @@ impl<'a> Persist<'a> for MMIODeviceManager { // For now this is why we do not restore the state of the // `IdAllocator` under `dev_manager`. - dev_manager - .address_allocator - .allocate( + constructor_args + .resource_allocator + .allocate_mmio_memory( MMIO_LEN, MMIO_LEN, AllocPolicy::ExactMatch(device_info.addr), @@ -650,16 +652,9 @@ mod tests { impl MMIODeviceManager { fn soft_clone(&self) -> Self { - let dummy_mmio_base = 0; - let dummy_irq_range = (0, 0); // We can unwrap here as we create with values directly in scope we // know will results in `Ok` - let mut clone = MMIODeviceManager::new( - dummy_mmio_base, - crate::arch::MMIO_MEM_SIZE, - dummy_irq_range, - ) - .unwrap(); + let mut clone = MMIODeviceManager::new(); // We only care about the device hashmap. clone.id_to_dev_info = self.id_to_dev_info.clone(); clone @@ -688,6 +683,7 @@ mod tests { // These need to survive so the restored blocks find them. let _block_files; let mut tmp_sock_file = TempFile::new().unwrap(); + let mut resource_allocator = ResourceAllocator::new().unwrap(); tmp_sock_file.remove().unwrap(); // Set up a vmm with one of each device, and get the serialized DeviceStates. let original_mmio_device_manager = { @@ -755,6 +751,7 @@ mod tests { mem: vmm.guest_memory().clone(), vm: vmm.vm.fd(), event_manager: &mut event_manager, + resource_allocator: &mut resource_allocator, vm_resources, instance_id: "microvm-id", }; diff --git a/src/vmm/src/device_manager/resources.rs b/src/vmm/src/device_manager/resources.rs new file mode 100644 index 00000000000..851893bd4ca --- /dev/null +++ b/src/vmm/src/device_manager/resources.rs @@ -0,0 +1,148 @@ +// Copyright 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +pub use vm_allocator::AllocPolicy; +use vm_allocator::{AddressAllocator, IdAllocator}; + +use crate::arch; + +/// A resource manager for (de)allocating interrupt lines (GSIs) and guest memory +/// +/// At the moment, we support: +/// +/// * GSIs for legacy x86_64 devices +/// * GSIs for MMIO devicecs +/// * Memory allocations in the MMIO address space +#[derive(Debug)] +pub struct ResourceAllocator { + // Allocator for device interrupt lines + gsi_allocator: IdAllocator, + // Allocator for memory in the MMIO address space + mmio_memory: AddressAllocator, + // Memory allocator for system data + #[cfg(target_arch = "x86_64")] + system_memory: AddressAllocator, +} + +impl ResourceAllocator { + /// Create a new resource allocator for Firecracker devices + pub fn new() -> Result { + Ok(Self { + gsi_allocator: IdAllocator::new(arch::IRQ_BASE, arch::IRQ_MAX)?, + mmio_memory: AddressAllocator::new(arch::MMIO_MEM_START, arch::MMIO_MEM_SIZE)?, + #[cfg(target_arch = "x86_64")] + system_memory: AddressAllocator::new(arch::SYSTEM_MEM_START, arch::SYSTEM_MEM_SIZE)?, + }) + } + + /// Allocate a number of GSIs + /// + /// # Arguments + /// + /// * `gsi_count` - The number of GSIs to allocate + pub fn allocate_gsi(&mut self, gsi_count: u32) -> Result, vm_allocator::Error> { + let mut gsis = Vec::with_capacity(gsi_count as usize); + + for _ in 0..gsi_count { + match self.gsi_allocator.allocate_id() { + Ok(gsi) => gsis.push(gsi), + Err(err) => { + // It is ok to unwrap here, we just allocated the GSI + gsis.into_iter().for_each(|gsi| { + self.gsi_allocator.free_id(gsi).unwrap(); + }); + return Err(err); + } + } + } + + Ok(gsis) + } + + /// Allocate a memory range in MMIO address space + /// + /// If it succeeds, it returns the first address of the allocated range + /// + /// # Arguments + /// + /// * `size` - The size in bytes of the memory to allocate + /// * `alignment` - The alignment of the address of the first byte + /// * `policy` - A [`vm_allocator::AllocPolicy`] variant for determining the allocation policy + pub fn allocate_mmio_memory( + &mut self, + size: u64, + alignment: u64, + policy: AllocPolicy, + ) -> Result { + Ok(self.mmio_memory.allocate(size, alignment, policy)?.start()) + } + + /// Allocate a memory range for system data + /// + /// If it succeeds, it returns the first address of the allocated range + /// + /// # Arguments + /// + /// * `size` - The size in bytes of the memory to allocate + /// * `alignment` - The alignment of the address of the first byte + /// * `policy` - A [`vm_allocator::AllocPolicy`] variant for determining the allocation policy + #[cfg(target_arch = "x86_64")] + pub fn allocate_system_memory( + &mut self, + size: u64, + alignment: u64, + policy: AllocPolicy, + ) -> Result { + Ok(self + .system_memory + .allocate(size, alignment, policy)? + .start()) + } +} + +#[cfg(test)] +mod tests { + use super::ResourceAllocator; + use crate::arch; + + const MAX_IRQS: u32 = arch::IRQ_MAX - arch::IRQ_BASE + 1; + + #[test] + fn test_allocate_gsi() { + let mut allocator = ResourceAllocator::new().unwrap(); + // asking for 0 IRQs should return us an empty vector + assert_eq!(allocator.allocate_gsi(0), Ok(vec![])); + // We cannot allocate more GSIs than available + assert_eq!( + allocator.allocate_gsi(MAX_IRQS + 1), + Err(vm_allocator::Error::ResourceNotAvailable) + ); + // But allocating all of them at once should work + assert_eq!( + allocator.allocate_gsi(MAX_IRQS), + Ok((arch::IRQ_BASE..=arch::IRQ_MAX).collect::>()) + ); + // And now we ran out of GSIs + assert_eq!( + allocator.allocate_gsi(1), + Err(vm_allocator::Error::ResourceNotAvailable) + ); + // But we should be able to ask for 0 GSIs + assert_eq!(allocator.allocate_gsi(0), Ok(vec![])); + + let mut allocator = ResourceAllocator::new().unwrap(); + // We should be able to allocate 1 GSI + assert_eq!(allocator.allocate_gsi(1), Ok(vec![arch::IRQ_BASE])); + // We can't allocate MAX_IRQS any more + assert_eq!( + allocator.allocate_gsi(MAX_IRQS), + Err(vm_allocator::Error::ResourceNotAvailable) + ); + // We can allocate another one and it should be the second available + assert_eq!(allocator.allocate_gsi(1), Ok(vec![arch::IRQ_BASE + 1])); + // Let's allocate the rest in a loop + for i in arch::IRQ_BASE + 2..=arch::IRQ_MAX { + assert_eq!(allocator.allocate_gsi(1), Ok(vec![i])); + } + } +} diff --git a/src/vmm/src/lib.rs b/src/vmm/src/lib.rs index 83d1607e1c6..845f01d81f5 100644 --- a/src/vmm/src/lib.rs +++ b/src/vmm/src/lib.rs @@ -73,6 +73,10 @@ pub mod io_uring; /// needs to be called by the user on every event on the rate limiter's `AsRawFd` FD. pub mod rate_limiter; +/// Module for handling ACPI tables. +/// Currently, we only use ACPI on x86 microVMs. +#[cfg(target_arch = "x86_64")] +pub mod acpi; /// Handles setup and initialization a `Vmm` object. pub mod builder; /// Types for guest configuration. @@ -113,6 +117,7 @@ use std::sync::mpsc::RecvTimeoutError; use std::sync::{Arc, Barrier, Mutex}; use std::time::Duration; +use device_manager::resources::ResourceAllocator; use event_manager::{EventManager as BaseEventManager, EventOps, Events, MutEventSubscriber}; use seccompiler::BpfProgram; use userfaultfd::Uffd; @@ -307,6 +312,8 @@ pub struct Vmm { // Used by Vcpus and devices to initiate teardown; Vmm should never write here. vcpus_exit_evt: EventFd, + // Allocator for guest resrouces + resource_allocator: ResourceAllocator, // Guest VM devices. mmio_device_manager: MMIODeviceManager, #[cfg(target_arch = "x86_64")] diff --git a/tests/framework/artifacts.py b/tests/framework/artifacts.py index 3aa564b4a7c..0bba886f0cc 100644 --- a/tests/framework/artifacts.py +++ b/tests/framework/artifacts.py @@ -31,6 +31,13 @@ def select_supported_kernels(): else: supported_kernels.append(r"vmlinux-5.10.\d+") + # Booting with MPTable is deprecated but we still want to test + # for it. Until we drop support for it we will be building a 5.10 guest + # kernel without ACPI support, so that we are able to test this use-case + # as well. + # TODO: remove this once we drop support for MPTable + supported_kernels.append(r"vmlinux-5.10.\d+-no-acpi") + # Support Linux 6.1 guest in a limited fashion if global_props.cpu_model == "ARM_NEOVERSE_V1" and (hlv.major, hlv.minor) >= (6, 1): supported_kernels.append(r"vmlinux-6.1.\d+") diff --git a/tests/integration_tests/functional/test_net_config_space.py b/tests/integration_tests/functional/test_net_config_space.py index bd4f8176431..75d192105e3 100644 --- a/tests/integration_tests/functional/test_net_config_space.py +++ b/tests/integration_tests/functional/test_net_config_space.py @@ -21,6 +21,7 @@ def test_net_change_mac_address(uvm_plain_any, change_net_config_space_bin): """ test_microvm = uvm_plain_any + test_microvm.help.enable_console() test_microvm.spawn() test_microvm.basic_config(boot_args="ipv6.disable=1") @@ -196,37 +197,110 @@ def _change_guest_if_mac(ssh_connection, guest_if_mac, guest_if_name): ssh_connection.run(cmd) +def _find_iomem_range(ssh_connection, dev_name): + # `/proc/iomem` includes information of the system's MMIO registered + # slots. It looks like this: + # + # ``` + # ~ cat /proc/iomem + # 00000000-00000fff : Reserved + # 00001000-0007ffff : System RAM + # 00080000-0009ffff : Reserved + # 000f0000-000fffff : System ROM + # 00100000-0fffffff : System RAM + # 01000000-018031d0 : Kernel code + # 018031d1-01c863bf : Kernel data + # 01df8000-0209ffff : Kernel bss + # d0000000-d0000fff : LNRO0005:00 + # d0000000-d0000fff : LNRO0005:00 + # d0001000-d0001fff : LNRO0005:01 + # d0001000-d0001fff : LNRO0005:01 + # ``` + # + # So, to find the address range of a device we just `cat` + # its contents and grep for the VirtIO device name, which + # with ACPI is "LNRO0005:XY". + cmd = f"cat /proc/iomem | grep -m 1 {dev_name}" + rc, stdout, stderr = ssh_connection.run(cmd) + assert rc == 0, stderr + + # Take range in the form 'start-end' from line. The line looks like this: + # d00002000-d0002fff : LNRO0005:02 + mem_range = stdout.strip().split(" ")[0] + + # Parse range into (start, end) integers + tokens = mem_range.split("-") + return (int(tokens[0], 16), int(tokens[1], 16)) + + +def _get_net_mem_addr_base_x86_acpi(ssh_connection, if_name): + """Check for net device memory start address via ACPI info""" + # On x86 we define VirtIO devices through ACPI AML bytecode. VirtIO devices + # are identified as "LNRO0005" and appear under /sys/devices/platform + sys_virtio_mmio_cmdline = "/sys/devices/platform/" + cmd = "ls {}" + exit_code, stdout, stderr = ssh_connection.run(cmd.format(sys_virtio_mmio_cmdline)) + assert exit_code == 0, stderr + virtio_devs = list(filter(lambda x: "LNRO0005" in x, stdout.strip().split())) + + # For virtio-net LNRO0005 devices, we should have a path like: + # /sys/devices/platform/LNRO0005::XY/virtioXY/net which is a directory + # that includes a subdirectory `ethZ` which represents the network device + # that corresponds to the virtio-net device. + cmd = "ls {}/{}/virtio{}/net" + for idx, dev in enumerate(virtio_devs): + _, guest_if_name, _ = ssh_connection.run( + cmd.format(sys_virtio_mmio_cmdline, dev, idx) + ) + if guest_if_name.strip() == if_name: + return _find_iomem_range(ssh_connection, dev)[0] + + return None + + +def _get_net_mem_addr_base_x86_cmdline(ssh_connection, if_name): + """Check for net device memory start address via command line arguments""" + sys_virtio_mmio_cmdline = "/sys/devices/virtio-mmio-cmdline/" + cmd = "ls {} | grep virtio-mmio. | sed 's/virtio-mmio.//'" + exit_code, stdout, stderr = ssh_connection.run(cmd.format(sys_virtio_mmio_cmdline)) + assert exit_code == 0, stderr + virtio_devs_idx = stdout.strip().split() + + cmd = "cat /proc/cmdline" + exit_code, cmd_line, stderr = ssh_connection.run(cmd) + assert exit_code == 0, stderr + pattern_dev = re.compile("(virtio_mmio.device=4K@0x[0-9a-f]+:[0-9]+)+") + pattern_addr = re.compile("virtio_mmio.device=4K@(0x[0-9a-f]+):[0-9]+") + devs_addr = [] + for dev in re.findall(pattern_dev, cmd_line): + matched_addr = pattern_addr.search(dev) + # The 1st group which matches this pattern + # is the device start address. `0` group is + # full match + addr = matched_addr.group(1) + devs_addr.append(addr) + + cmd = "ls {}/virtio-mmio.{}/virtio{}/net" + for idx in virtio_devs_idx: + _, guest_if_name, _ = ssh_connection.run( + cmd.format(sys_virtio_mmio_cmdline, idx, idx) + ) + if guest_if_name.strip() == if_name: + return devs_addr[int(idx)] + + return None + + def _get_net_mem_addr_base(ssh_connection, if_name): """Get the net device memory start address.""" if platform.machine() == "x86_64": - sys_virtio_mmio_cmdline = "/sys/devices/virtio-mmio-cmdline/" - cmd = "ls {} | grep virtio-mmio. | sed 's/virtio-mmio.//'" - exit_code, stdout, _ = ssh_connection.run(cmd.format(sys_virtio_mmio_cmdline)) - assert exit_code == 0 - virtio_devs_idx = stdout.split() - - cmd = "cat /proc/cmdline" - exit_code, cmd_line, _ = ssh_connection.run(cmd) - assert exit_code == 0 - pattern_dev = re.compile("(virtio_mmio.device=4K@0x[0-9a-f]+:[0-9]+)+") - pattern_addr = re.compile("virtio_mmio.device=4K@(0x[0-9a-f]+):[0-9]+") - devs_addr = [] - for dev in re.findall(pattern_dev, cmd_line): - matched_addr = pattern_addr.search(dev) - # The 1st group which matches this pattern - # is the device start address. `0` group is - # full match. - addr = matched_addr.group(1) - devs_addr.append(addr) - - cmd = "ls {}/virtio-mmio.{}/virtio{}/net" - for idx in virtio_devs_idx: - _, guest_if_name, _ = ssh_connection.run( - cmd.format(sys_virtio_mmio_cmdline, idx, idx) - ) - if guest_if_name.strip() == if_name: - return devs_addr[int(idx)] - elif platform.machine() == "aarch64": + acpi_info = _get_net_mem_addr_base_x86_acpi(ssh_connection, if_name) + if acpi_info is not None: + return acpi_info + + return _get_net_mem_addr_base_x86_cmdline(ssh_connection, if_name) + + if platform.machine() == "aarch64": sys_virtio_mmio_cmdline = "/sys/devices/platform" cmd = "ls {} | grep .virtio_mmio".format(sys_virtio_mmio_cmdline) rc, stdout, _ = ssh_connection.run(cmd) diff --git a/tests/integration_tests/style/test_licenses.py b/tests/integration_tests/style/test_licenses.py index f3f4d24d4dc..cca36540603 100644 --- a/tests/integration_tests/style/test_licenses.py +++ b/tests/integration_tests/style/test_licenses.py @@ -23,6 +23,10 @@ ) ALIBABA_COPYRIGHT = "Copyright (C) 2019 Alibaba Cloud Computing. All rights reserved." ALIBABA_LICENSE = "SPDX-License-Identifier: Apache-2.0 OR BSD-3-Clause" +INTEL_COPYRIGHT = "Copyright © 2019 Intel Corporation" +INTEL_LICENSE = "SPDX-License-Identifier: Apache-2.0" +RIVOS_COPYRIGHT = "Copyright © 2023 Rivos, Inc." +RIVOS_LICENSE = "SPDX-License-Identifier: Apache-2.0" def _has_amazon_copyright(string): @@ -75,11 +79,22 @@ def _validate_license(filename): ALIBABA_COPYRIGHT in copyright_info and _look_for_license(file, ALIBABA_LICENSE) ) + + has_intel_copyright = INTEL_COPYRIGHT in copyright_info and _look_for_license( + file, INTEL_LICENSE + ) + + has_rivos_copyright = RIVOS_COPYRIGHT in copyright_info and _look_for_license( + file, RIVOS_LICENSE + ) + return ( has_amazon_copyright or has_chromium_copyright or has_tuntap_copyright or has_alibaba_copyright + or has_intel_copyright + or has_rivos_copyright ) return True