From 253a3f7ca0e83af9ebbf14266117bd8bd742ae43 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 5 Oct 2024 02:42:41 +0100 Subject: [PATCH] 9020sff/mt: say how to use gfxcard+iommu A special kernel option is required: intel_iommu=enable,igfx_off Signed-off-by: Leah Rowe --- site/docs/install/dell9020.md | 39 ++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/site/docs/install/dell9020.md b/site/docs/install/dell9020.md index 72712c2..50df552 100644 --- a/site/docs/install/dell9020.md +++ b/site/docs/install/dell9020.md @@ -30,9 +30,9 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** | **CPU** | Intel Haswell | | **Graphics** | Intel HD Graphics | | **Memory** | DDR3 DIMMs (max 32GB, 4x8GB) | -| **Architecture** | x86_64 | +| **Architecture** | x86\_64 | | **Original boot firmware** | Dell UEFI firmware | -| **Intel ME/AMD PSP** | Present. Can be disabled with me_cleaner. | +| **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. | | **Flash chip** | 2x SOIC-8, 12MiB (8+4) (96Mbit) | @@ -104,23 +104,47 @@ Graphics cards and IOMMU IOMMU is buggy for some reason (we don't know why yet), when you plug in a graphics card. The graphics card simply won't work. On some of them, -you can use the console but as soon as you start xorg, it will just b0rk. +you can use the console but as soon as you start xorg/wayland, it will just b0rk. Current Libreboot revisions *disable IOMMU by default*, on this board. The coreboot code for initialising IOMMU was modified by the Libreboot project, to make it a toggle. IOMMU works fine if you use only Intel graphics. +If you want to use IOMMU *with a graphics card*, you also can. Use this Linux +kernel option at boot: + + intel_iommu=enable,igfx_off + +With the above option, IOMMU is enabled *except* for the Intel GPU. However, +Libreboot also *disables the Intel GPU* in coreboot, entirely, when a graphics +card is used. With the above option, it's possible that something like Qubes +may work, which requires an IOMMU to be turned on. + +If you are using Intel graphics, and not a graphics card, you can ignore the +above, and instead fully turn on the IOMMU, without any special kernel options. + The way coreboot works is this: if vt-d is present on the CPU, it enables an IOMMU, and only if vt-d is present. This is still the behaviour in Libreboot, but Libreboot adds an additional check: if `iommu` is not set in nvram, it defaults to on, but if it's set to disabled, then IOMMU is not initialised. +Enable IOMMU +------------ + +IOMMU is *disabled by default*, universally, on this board. You can turn it on, +by modifying the ROM image prior to flashing, or modifying it prior to +re-flashing. + On all other Haswell boards, LIbreboot enables IOMMU by default. To enable it on the 9020, do this on your ROM: nvramtool -C libreboot.rom -w iommu=Enable -Then flash the ROM image. You can find nvram +If you're using a graphics card, please make sure to read the above notes +about how to use IOMMU; specifically, the part that talks about Linux kernel +option `intel_iommu=enable,igfx_off` + +Then flash the ROM image. You can find nvramtool under `src/coreboot/default/util/nvramtool`. Do this in lbmk if you don't already havse `src/coreboot/default/`: @@ -137,7 +161,8 @@ in [Libreboot flashing instructions](../install/) and [Libreboot external flashing instructions](../install/spi.md). NOTE: If IOMMU is enabled, you can still use a graphics card, but you must -pass this on the Linux cmdline paramaters: `iommu=off` +pass this on the Linux cmdline paramaters: `iommu=off` - or if you need +IOMMU (e.g. for Qubes), use `intel_iommu=enable,igfx_off` instead. NOTE2: Libreboot uses a *static option table* on all boards that have nvram, which is why you must use the `-C` option on your ROM, to change the static @@ -201,12 +226,12 @@ If you're already running Libreboot, and you don't have flash protection turned on, [internal flashing](../install/) is possible. Internal flashing can also be done with the original Dell BIOS, if the -SERVICE_MODE jumper near the PCIe slots is installed. Before flashing, +SERVICE\_MODE jumper near the PCIe slots is installed. Before flashing, rmmod spi-intel-platform needs to be run to prevent errors. Once Libreboot is installed, the -SERVICE_MODE jumper can be removed. +SERVICE\_MODE jumper can be removed. **Note: The Dell BIOS can write EFI variables to flash when shutting down, which could corrupt the newly flashed Libreboot ROM and render