9020sff/mt: say how to use gfxcard+iommu
A special kernel option is required: intel_iommu=enable,igfx_off Signed-off-by: Leah Rowe <info@minifree.org>master
parent
91db0835fa
commit
253a3f7ca0
|
@ -30,9 +30,9 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
|
||||||
| **CPU** | Intel Haswell |
|
| **CPU** | Intel Haswell |
|
||||||
| **Graphics** | Intel HD Graphics |
|
| **Graphics** | Intel HD Graphics |
|
||||||
| **Memory** | DDR3 DIMMs (max 32GB, 4x8GB) |
|
| **Memory** | DDR3 DIMMs (max 32GB, 4x8GB) |
|
||||||
| **Architecture** | x86_64 |
|
| **Architecture** | x86\_64 |
|
||||||
| **Original boot firmware** | Dell UEFI firmware |
|
| **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) |
|
| **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
|
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,
|
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
|
Current Libreboot revisions *disable IOMMU by default*, on this board. The
|
||||||
coreboot code for initialising IOMMU was modified by the Libreboot project, to
|
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.
|
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
|
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,
|
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
|
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.
|
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
|
On all other Haswell boards, LIbreboot enables IOMMU by default. To enable
|
||||||
it on the 9020, do this on your ROM:
|
it on the 9020, do this on your ROM:
|
||||||
|
|
||||||
nvramtool -C libreboot.rom -w iommu=Enable
|
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
|
under `src/coreboot/default/util/nvramtool`. Do this in lbmk if you don't
|
||||||
already havse `src/coreboot/default/`:
|
already havse `src/coreboot/default/`:
|
||||||
|
|
||||||
|
@ -137,7 +161,8 @@ in [Libreboot flashing instructions](../install/)
|
||||||
and [Libreboot external flashing instructions](../install/spi.md).
|
and [Libreboot external flashing instructions](../install/spi.md).
|
||||||
|
|
||||||
NOTE: If IOMMU is enabled, you can still use a graphics card, but you must
|
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,
|
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
|
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.
|
turned on, [internal flashing](../install/) is possible.
|
||||||
|
|
||||||
Internal flashing can also be done with the original Dell BIOS, if the
|
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
|
rmmod spi-intel-platform
|
||||||
|
|
||||||
needs to be run to prevent errors. Once Libreboot is installed, the
|
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
|
**Note: The Dell BIOS can write EFI variables to flash when shutting
|
||||||
down, which could corrupt the newly flashed Libreboot ROM and render
|
down, which could corrupt the newly flashed Libreboot ROM and render
|
||||||
|
|
Loading…
Reference in New Issue