summaryrefslogtreecommitdiff
path: root/config/coreboot/default/patches/0026-nb-haswell-lock-policy-regs-when-disabling-IOMMU.patch
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2024-11-01 15:59:30 +0000
committerLeah Rowe <leah@libreboot.org>2024-11-01 15:59:30 +0000
commit14b4838d49556eb544c0f6a96d72128c3480ec2c (patch)
tree71cc7fb04cd7871ddfc4377b9653990a3d712578 /config/coreboot/default/patches/0026-nb-haswell-lock-policy-regs-when-disabling-IOMMU.patch
parent67c92889a866d67132bcc37de6444e0bc56f548c (diff)
coreboot/default: Re-base all patches
There were a lot of unnecessary patches, such as the VRAM patches; as Nicholas Chin has explained to me, the drivers for these machines will just allocate what RAM they want anyway, so in a lot of cases the extra allocated Video RAM simply reduces the total amount of memory for other uses. In general, we have a lot of patches that have existed for years. A much more aggressive sweep will be done in the next major audit, especially when the revisions are updated again. Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'config/coreboot/default/patches/0026-nb-haswell-lock-policy-regs-when-disabling-IOMMU.patch')
-rw-r--r--config/coreboot/default/patches/0026-nb-haswell-lock-policy-regs-when-disabling-IOMMU.patch55
1 files changed, 55 insertions, 0 deletions
diff --git a/config/coreboot/default/patches/0026-nb-haswell-lock-policy-regs-when-disabling-IOMMU.patch b/config/coreboot/default/patches/0026-nb-haswell-lock-policy-regs-when-disabling-IOMMU.patch
new file mode 100644
index 00000000..fe9034b0
--- /dev/null
+++ b/config/coreboot/default/patches/0026-nb-haswell-lock-policy-regs-when-disabling-IOMMU.patch
@@ -0,0 +1,55 @@
+From ce7d65790b9b8656ebbaa0ca715adff6a9c25588 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <info@minifree.org>
+Date: Sat, 4 May 2024 02:00:53 +0100
+Subject: [PATCH 26/51] nb/haswell: lock policy regs when disabling IOMMU
+
+Angel Pons told me I should do it. See comments here:
+https://review.coreboot.org/c/coreboot/+/81016
+
+I see no harm in complying with the request. I'll merge
+this into the main patch at a later date and try to
+get this upstreamed.
+
+Just a reminder: on Optiplex 9020 variants, Xorg locks up
+under Linux when tested with a graphics card; disabling
+IOMMU works around the issue. Intel graphics work just fine
+with IOMMU turned on. Libreboot disables IOMMU by default,
+on the 9020, so that users can install graphics cards easily.
+
+Signed-off-by: Leah Rowe <info@minifree.org>
+---
+ src/northbridge/intel/haswell/early_init.c | 15 +++++++--------
+ 1 file changed, 7 insertions(+), 8 deletions(-)
+
+diff --git a/src/northbridge/intel/haswell/early_init.c b/src/northbridge/intel/haswell/early_init.c
+index 1a7e0b1076..e9506ee830 100644
+--- a/src/northbridge/intel/haswell/early_init.c
++++ b/src/northbridge/intel/haswell/early_init.c
+@@ -160,17 +160,16 @@ static void haswell_setup_iommu(void)
+ const u32 capid0_a = pci_read_config32(HOST_BRIDGE, CAPID0_A);
+ u8 enable_iommu = get_uint_option("iommu", 1);
+
+- if (!enable_iommu)
+- return;
+-
+ if (capid0_a & VTD_DISABLE)
+ return;
+
+- /* Setup BARs: zeroize top 32 bits; set enable bit */
+- mchbar_write32(GFXVTBAR + 4, GFXVT_BASE_ADDRESS >> 32);
+- mchbar_write32(GFXVTBAR + 0, GFXVT_BASE_ADDRESS | 1);
+- mchbar_write32(VTVC0BAR + 4, VTVC0_BASE_ADDRESS >> 32);
+- mchbar_write32(VTVC0BAR + 0, VTVC0_BASE_ADDRESS | 1);
++ if (enable_iommu) {
++ /* Setup BARs: zeroize top 32 bits; set enable bit */
++ mchbar_write32(GFXVTBAR + 4, GFXVT_BASE_ADDRESS >> 32);
++ mchbar_write32(GFXVTBAR + 0, GFXVT_BASE_ADDRESS | 1);
++ mchbar_write32(VTVC0BAR + 4, VTVC0_BASE_ADDRESS >> 32);
++ mchbar_write32(VTVC0BAR + 0, VTVC0_BASE_ADDRESS | 1);
++ }
+
+ /* Set L3HIT2PEND_DIS, lock GFXVTBAR policy config registers */
+ u32 reg32;
+--
+2.39.5
+