summaryrefslogtreecommitdiff
path: root/config/coreboot/default/patches/0039-nb-haswell-lock-policy-regs-when-disabling-IOMMU.patch
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2024-07-31 12:26:25 +0100
committerLeah Rowe <leah@libreboot.org>2024-08-09 20:50:37 +0100
commitdbe24b039d381365b62c02802016f108c3efe8eb (patch)
tree435214dc54b53a560e2d2a9fff3dfe5864943dc6 /config/coreboot/default/patches/0039-nb-haswell-lock-policy-regs-when-disabling-IOMMU.patch
parent1b55fc790c1eebc8db16dab0611f08df36acd793 (diff)
coreboot/default: Update to 97bc693ab (2024-07-29)
Several patches are now merged upstream and no longer needed in lbmk, such as the HP EliteBook 8560w patch, and related patches. Some patches were changed, for example the Dell Latitude ivb/snb laptops are now variants in coreboot, instead of being individual ports; now they re-use the same base code. This this, the corresponding files under config/submodules have changed, for things like 3rdparty submodules e.g. libgfxinit, and tarballs e.g. crossgcc. This is long overdue, and will enable more boards to be added. This newer revision will be used in the next release, and some follow-up patches will merge these trees into default: * coreboot/haswell * coreboot/dell Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'config/coreboot/default/patches/0039-nb-haswell-lock-policy-regs-when-disabling-IOMMU.patch')
-rw-r--r--config/coreboot/default/patches/0039-nb-haswell-lock-policy-regs-when-disabling-IOMMU.patch55
1 files changed, 55 insertions, 0 deletions
diff --git a/config/coreboot/default/patches/0039-nb-haswell-lock-policy-regs-when-disabling-IOMMU.patch b/config/coreboot/default/patches/0039-nb-haswell-lock-policy-regs-when-disabling-IOMMU.patch
new file mode 100644
index 00000000..f658b6d0
--- /dev/null
+++ b/config/coreboot/default/patches/0039-nb-haswell-lock-policy-regs-when-disabling-IOMMU.patch
@@ -0,0 +1,55 @@
+From 919cbfa034db5d2ef9e56dd71ef329c38c5ede3c Mon Sep 17 00:00:00 2001
+From: Leah Rowe <info@minifree.org>
+Date: Sat, 4 May 2024 02:00:53 +0100
+Subject: [PATCH 39/39] 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.2
+