9020: note about iommu enablement for gfxcards

Signed-off-by: Leah Rowe <info@minifree.org>
master
Leah Rowe 2024-04-11 12:05:04 +01:00
parent 240bfc950e
commit 14f649771f
1 changed files with 47 additions and 8 deletions

View File

@ -91,23 +91,62 @@ Kukri's patch is here:
This patch, at this revision (patchset 31), is what Libreboot uses for this
port.
Graphics cards
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.
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.
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.
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
under `src/coreboot/default/util/nvramtool`. Do this in lbmk if you don't
already havse `src/coreboot/default/`:
./update trees -f coreboot default
Then do this:
make -C src/coreboot/default/util/nvramtool
The binary `nvramtool` will then live in that directory. More information
available in [Libreboot build instructions](../build/). Information about
dumping/flashing the ROM can be found
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`
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
table that is baked into it.
On current lbmk master, graphics cards *do* work. The option to hide PEG
devices from MRC was disabled. Now when you insert a graphics card, the
onboard Intel GPU is disabled and the graphics card is used instead.
NOTE: You must set `iommu=off` in your linux cmdline. For instance, set this
in `/etc/default/grub` and regenerate your GRUB config. With the IOMMU turned
off, graphics cards work fine. Otherwise, with IOMMU turned on, you might get
this error:
Here is an example of the type of errors we got when testing graphics cards
with IOMMU enabled:
<https://av.vimuser.org/error.jpg>
NOTE2: You *can* use the onboard Intel GPU (without a graphics card inserted),
and leave IOMMU turned on. You only need to disable the IOMMU when a graphics
card is inserted.
We believe the native MRC replacement may work better on graphics card with
IOMMU turned on. This will be enabled in a future Libreboot release, if not
already supported.
7020 compatibility
------------------