From 81a35f0027463067d556e1c017fd9ee86766557a Mon Sep 17 00:00:00 2001 From: "Franklin \"Snaipe\" Mathieu" Date: Mon, 17 Oct 2022 16:22:44 +0200 Subject: [PATCH] sys-kernel: enable IOMMU on arm64 On Gigabyte R152-P31 arm64 servers, the Flatcar PXE images hang during the boot process, making them unusable, while Fedora CoreOS images work. The kernel seems to start correctly, however it invariably ends up printing this message and hanging: ata1.00: qc timeout (cmd 0xec) ahci 000c:01:00.0: AHCI controller unavailable! pcieport 000c:00:01.0: AER: Uncorrected (Non-Fatal) error received: 000c:00:00.0 ata1.00: failed to IDENTIFY (I/O error, err_mask=0x4) pcieport 000c:00:01.0: PCIe Bus Error: severity=Uncorrected (Non-Fatal), type=Transaction Layer, (Requester ID) pcieport 000c:00:01.0: device [1def:e101] error status/mask=00004000/00400000 pcieport 000c:00:01.0: [14] CmpltTO (First) ahci 000c:01:00.0: AHCI controller unavailable! ahci 000c:01:00.0: AER: can't recover (no error_detected callback) pcieport 000c:00:01.0: AER: device recovery failed pcieport 000c:00:01.0: AER: Multiple Uncorrected (Non-Fatal) error received: 000c:00:00.0 Enabling IOMMU seems to make the problem disappear. --- .../changelog/bugfixes/2022-10-17-iommu-arm64.md | 1 + .../sys-kernel/coreos-modules/files/arm64_defconfig-5.15 | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 sdk_container/src/third_party/coreos-overlay/changelog/bugfixes/2022-10-17-iommu-arm64.md diff --git a/sdk_container/src/third_party/coreos-overlay/changelog/bugfixes/2022-10-17-iommu-arm64.md b/sdk_container/src/third_party/coreos-overlay/changelog/bugfixes/2022-10-17-iommu-arm64.md new file mode 100644 index 0000000000..fdef805513 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/changelog/bugfixes/2022-10-17-iommu-arm64.md @@ -0,0 +1 @@ +- Enabled IOMMU on arm64 kernels, the lack of which prevented some systems from booting ([coreos-overlay#2235](https://github.com/flatcar/coreos-overlay/pull/2235)) diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/files/arm64_defconfig-5.15 b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/files/arm64_defconfig-5.15 index 140c9996ab..b9e11bc9d4 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/files/arm64_defconfig-5.15 +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/files/arm64_defconfig-5.15 @@ -13,6 +13,8 @@ CONFIG_ARCH_ZYNQMP=y CONFIG_ARM64_ACPI_PARKING_PROTOCOL=y CONFIG_ARM64_CRYPTO=y CONFIG_ARM64_VA_BITS_48=y +CONFIG_ARM_SMMU=y +CONFIG_ARM_SMMU_V3=y CONFIG_BCM7XXX_PHY=m CONFIG_BCMGENET=m CONFIG_CHR_DEV_SCH=m @@ -33,7 +35,7 @@ CONFIG_FB_ARMCLCD=y CONFIG_GPIO_PL061=y CONFIG_GPIO_XGENE=y CONFIG_GPIO_XGENE_SB=y -# CONFIG_IOMMU_SUPPORT is not set +CONFIG_IOMMU_SUPPORT=y # CONFIG_IOSCHED_DEADLINE is not set CONFIG_KVM=y CONFIG_LEGACY_PTY_COUNT=16