summaryrefslogtreecommitdiff
path: root/resources/coreboot/default/patches/0023-mb-dell-e6400-acpi-Route-Ricoh-R5C847-PCI-IRQ-lines-.patch
blob: 483ea0e150e25d3a66a5a76f07d5f70fd1ea3c2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
From 5c1455495e8d2030473d8194fcf2e1d1111696b7 Mon Sep 17 00:00:00 2001
From: Nicholas Chin <nic.c3.14@gmail.com>
Date: Tue, 23 May 2023 20:59:56 -0600
Subject: [PATCH] mb/dell/e6400/acpi: Route Ricoh R5C847 PCI IRQ lines as DBC

Based on the schematic and vendor ASL code, PCI interrupt lines ABC of
the Ricoh R5C847 PC Card/Media Card/FireWire controller are routed DBC.
From lspci and the schematic this chip is PCI device 1. The original
config copied from the T400 was routed ABCD->BCDA, causing Linux to
issue an "irq 18: nobody cared" message when inserting an SD card.
This is fixed by this patch and the SD card now works properly.

Change-Id: Iede1de72d5369f1aebbac170792733739add3431
Signed-off-by: Nicholas Chin <nic.c3.14@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/75411
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
---
 .../dell/e6400/acpi/ich9_pci_irqs.asl         | 85 ++-----------------
 1 file changed, 8 insertions(+), 77 deletions(-)

diff --git a/src/mainboard/dell/e6400/acpi/ich9_pci_irqs.asl b/src/mainboard/dell/e6400/acpi/ich9_pci_irqs.asl
index 21066fbf3b..9a4cdfb75b 100644
--- a/src/mainboard/dell/e6400/acpi/ich9_pci_irqs.asl
+++ b/src/mainboard/dell/e6400/acpi/ich9_pci_irqs.asl
@@ -4,87 +4,18 @@
  * 0:1e.0 PCI bridge of the ICH9
  */
 
-/* TODO: which slots are actually relevant? */
 If (PICM) {
 	Return (Package() {
-		// PCI Slot 1 routes ABCD
-		Package() { 0x0000ffff, 0, 0, 16},
-		Package() { 0x0000ffff, 1, 0, 17},
-		Package() { 0x0000ffff, 2, 0, 18},
-		Package() { 0x0000ffff, 3, 0, 19},
-
-		// PCI Slot 2 routes BCDA
-		Package() { 0x0001ffff, 0, 0, 17},
-		Package() { 0x0001ffff, 1, 0, 18},
-		Package() { 0x0001ffff, 2, 0, 19},
-		Package() { 0x0001ffff, 3, 0, 16},
-
-		// PCI Slot 3 routes CDAB
-		Package() { 0x0002ffff, 0, 0, 18},
-		Package() { 0x0002ffff, 1, 0, 19},
-		Package() { 0x0002ffff, 2, 0, 16},
-		Package() { 0x0002ffff, 3, 0, 17},
-
-		// PCI Slot 4 routes ABCD
-		Package() { 0x0003ffff, 0, 0, 16},
-		Package() { 0x0003ffff, 1, 0, 17},
-		Package() { 0x0003ffff, 2, 0, 18},
-		Package() { 0x0003ffff, 3, 0, 19},
-
-		// PCI Slot 5 routes ABCD
-		Package() { 0x0004ffff, 0, 0, 16},
-		Package() { 0x0004ffff, 1, 0, 17},
-		Package() { 0x0004ffff, 2, 0, 18},
-		Package() { 0x0004ffff, 3, 0, 19},
-
-		// PCI Slot 6 routes BCDA
-		Package() { 0x0005ffff, 0, 0, 17},
-		Package() { 0x0005ffff, 1, 0, 18},
-		Package() { 0x0005ffff, 2, 0, 19},
-		Package() { 0x0005ffff, 3, 0, 16},
-
-		// FIXME: what's this supposed to mean? (adopted from ich7)
-		//Package() { 0x0008ffff, 0, 0, 20},
+		// PCI Device 1, Ricoh R5C847 routes DBC
+		Package() { 0x0001ffff, 0, 0, 19},
+		Package() { 0x0001ffff, 1, 0, 17},
+		Package() { 0x0001ffff, 2, 0, 18},
 	})
 } Else {
 	Return (Package() {
-		// PCI Slot 1 routes ABCD
-		Package() { 0x0000ffff, 0, \_SB.PCI0.LPCB.LNKA, 0},
-		Package() { 0x0000ffff, 1, \_SB.PCI0.LPCB.LNKB, 0},
-		Package() { 0x0000ffff, 2, \_SB.PCI0.LPCB.LNKC, 0},
-		Package() { 0x0000ffff, 3, \_SB.PCI0.LPCB.LNKD, 0},
-
-		// PCI Slot 2 routes BCDA
-		Package() { 0x0001ffff, 0, \_SB.PCI0.LPCB.LNKB, 0},
-		Package() { 0x0001ffff, 1, \_SB.PCI0.LPCB.LNKC, 0},
-		Package() { 0x0001ffff, 2, \_SB.PCI0.LPCB.LNKD, 0},
-		Package() { 0x0001ffff, 3, \_SB.PCI0.LPCB.LNKA, 0},
-
-		// PCI Slot 3 routes CDAB
-		Package() { 0x0002ffff, 0, \_SB.PCI0.LPCB.LNKC, 0},
-		Package() { 0x0002ffff, 1, \_SB.PCI0.LPCB.LNKD, 0},
-		Package() { 0x0002ffff, 2, \_SB.PCI0.LPCB.LNKA, 0},
-		Package() { 0x0002ffff, 3, \_SB.PCI0.LPCB.LNKB, 0},
-
-		// PCI Slot 4 routes ABCD
-		Package() { 0x0003ffff, 0, \_SB.PCI0.LPCB.LNKA, 0},
-		Package() { 0x0003ffff, 1, \_SB.PCI0.LPCB.LNKB, 0},
-		Package() { 0x0003ffff, 2, \_SB.PCI0.LPCB.LNKC, 0},
-		Package() { 0x0003ffff, 3, \_SB.PCI0.LPCB.LNKD, 0},
-
-		// PCI Slot 5 routes ABCD
-		Package() { 0x0004ffff, 0, \_SB.PCI0.LPCB.LNKA, 0},
-		Package() { 0x0004ffff, 1, \_SB.PCI0.LPCB.LNKB, 0},
-		Package() { 0x0004ffff, 2, \_SB.PCI0.LPCB.LNKC, 0},
-		Package() { 0x0004ffff, 3, \_SB.PCI0.LPCB.LNKD, 0},
-
-		// PCI Slot 6 routes BCDA
-		Package() { 0x0005ffff, 0, \_SB.PCI0.LPCB.LNKB, 0},
-		Package() { 0x0005ffff, 1, \_SB.PCI0.LPCB.LNKC, 0},
-		Package() { 0x0005ffff, 2, \_SB.PCI0.LPCB.LNKD, 0},
-		Package() { 0x0005ffff, 3, \_SB.PCI0.LPCB.LNKA, 0},
-
-		// FIXME
-		// Package() { 0x0008ffff, 0, \_SB.PCI0.LPCB.LNKE, 0},
+		// PCI Device 1, Ricoh R5C847 routes DBC
+		Package() { 0x0001ffff, 0, \_SB.PCI0.LPCB.LNKD, 0},
+		Package() { 0x0001ffff, 1, \_SB.PCI0.LPCB.LNKB, 0},
+		Package() { 0x0001ffff, 2, \_SB.PCI0.LPCB.LNKC, 0},
 	})
 }
-- 
2.41.0