[PATCH 0/4] MIPS: sgi-ip32: CRIME 1.1 and MACE PCI fixes
From: Imre Kaloz
Date: Wed Oct 21 2026 - 15:25:31 EST
This series fixes hangs and stale PIO reads on SGI O2 machines with a
CRIME 1.1 memory controller.
Patches 1-2 stop the MACE PCI code from issuing a bridge register
sequence that hangs the machine under DMA load: slot interrupts are
masked in CRIME and the bridge control register is left alone at run
time, as IRIX, OpenBSD and NetBSD do.
Patch 3 reports the real CRIME revision, which the current code
reads as 1 on both 1.1 and 1.4. Patch 4 fences PIO reads on CRIME
1.1, where a read that follows an aic7880 status register read within
a few microseconds returns stale data; the fence stays off on 1.4.
Patches 1-2 are independent of 3-4 and are marked for stable.
Tested on O2 systems with CRIME 1.1 and 1.4.
Imre Kaloz (4):
MIPS: sgi-ip32: Mask MACE PCI interrupts in CRIME only
MIPS: sgi-ip32: Leave MACE PCI control alone in config accesses
MIPS: sgi-ip32: Report the real CRIME revision
MIPS: sgi-ip32: Fence PIO reads on CRIME 1.1
arch/mips/include/asm/io.h | 11 +++++
arch/mips/include/asm/ip32/crime.h | 2 +-
.../include/asm/mach-generic/read-fence.h | 20 +++++++++
arch/mips/include/asm/mach-ip32/read-fence.h | 29 ++++++++++++
arch/mips/pci/ops-mace.c | 26 ++++++++---
arch/mips/pci/pci-ip32.c | 9 +++-
arch/mips/sgi-ip32/crime.c | 38 +++++++++++++---
arch/mips/sgi-ip32/ip32-irq.c | 45 ++-----------------
8 files changed, 123 insertions(+), 57 deletions(-)
create mode 100644 arch/mips/include/asm/mach-generic/read-fence.h
create mode 100644 arch/mips/include/asm/mach-ip32/read-fence.h
base-commit: 24a19b953e2a3d0ea5a8c4951a0ab8f32720c907
--
2.47.3