[coreboot-gerrit] Change in coreboot[master]: mb/google/kahlee:Fix IRQ routing

Richard Spiegel (Code Review) gerrit at coreboot.org
Mon Mar 12 16:08:28 CET 2018


Richard Spiegel has uploaded this change for review. ( https://review.coreboot.org/25107


Change subject: mb/google/kahlee:Fix IRQ routing
......................................................................

mb/google/kahlee:Fix IRQ routing

Current IRQ tables (firmware and ACPI) are based in the assumption of a
non-existent IOAPIC redirection table, which probably existed when the
code was in UEFI environment. Coreboot does not work with redirection table,
instead it relies on much simpler virtual wire. Therefor both table have
to be fixed to use virtual wire.

BUG=b:74104946
TEST=Build and boot kahlee and grunt, verify that neither is broken.
Someone else will need to verify if PCIe interrupt are working.

Change-Id: Ibb048d3e728dc562cb31b9ddd50bfd8fb032017e
Signed-off-by: Richard Spiegel <richard.spiegel at silverbackltd.com>
---
M src/mainboard/google/kahlee/mainboard.c
M src/mainboard/google/kahlee/variants/baseboard/include/baseboard/acpi/routing.asl
2 files changed, 39 insertions(+), 80 deletions(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/07/25107/1

diff --git a/src/mainboard/google/kahlee/mainboard.c b/src/mainboard/google/kahlee/mainboard.c
index e82569e..e1f5915 100644
--- a/src/mainboard/google/kahlee/mainboard.c
+++ b/src/mainboard/google/kahlee/mainboard.c
@@ -43,16 +43,14 @@
  * MP Tables.  TODO: Make ACPI use these values too.
  */
 
-// TODO: Move these to board variant specific file
-#if IS_ENABLED(CONFIG_BOARD_GOOGLE_KAHLEE)
 const u8 mainboard_picr_data[] = {
-	[0x00] = 0x03, 0x04, 0x05, 0x07, 0x0B, 0x0A, 0x1F, 0x1F,
+	[0x00] = 0x03, 0x04, 0x05, 0x07, 0x1F, 0x1F, 0x1F, 0x1F,
 	[0x08] = 0xFA, 0xF1, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F,
 	[0x10] = 0x09, 0x1F, 0x1F, 0x03, 0x1F, 0x1F, 0x1F, 0x03,
-	[0x18] = 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	[0x18] = 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
 	[0x20] = 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00,
 	[0x28] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	[0x30] = 0x05, 0x04, 0x05, 0x04, 0x04, 0x05, 0x04, 0x05,
+	[0x30] = 0x05, 0x04, 0x00, 0x00, 0x04, 0x05, 0x00, 0x00,
 	[0x38] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 	[0x40] = 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 	[0x48] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -65,15 +63,15 @@
 };
 
 const u8 mainboard_intr_data[] = {
-	[0x00] = 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+	[0x00] = 0X14, 0x15, 0x16, 0x17, 0x1F, 0x1F, 0x1F, 0x1F,
 	[0x08] = 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F,
-	[0x10] = 0x09, 0x1F, 0x1F, 0x10, 0x1F, 0x1F, 0x1F, 0x10,
+	[0x10] = 0x09, 0x1F, 0x1F, 0x12, 0x1F, 0x1F, 0x1F, 0x13,
 	[0x18] = 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
 	[0x20] = 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00,
 	[0x28] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	[0x30] = 0x12, 0x11, 0x12, 0x11, 0x12, 0x11, 0x12, 0x00,
+	[0x30] = 0x0C, 0x0D, 0x12, 0x11, 0x0C, 0x0D, 0x12, 0x00,
 	[0x38] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	[0x40] = 0x11, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	[0x40] = 0x11, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 	[0x48] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 	[0x50] = 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00,
 	[0x58] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -82,45 +80,6 @@
 	[0x70] = 0x03, 0x0F, 0x06, 0x0E, 0x0A, 0x0B, 0x1F, 0x1F,
 	[0x78] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 };
-#else
-const u8 mainboard_picr_data[] = {
-	[0x00] = 0x03, 0x04, 0x05, 0x07, 0x0B, 0x1F, 0x1F, 0x1F,
-	[0x08] = 0xFA, 0xF1, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F,
-	[0x10] = 0x09, 0x1F, 0x1F, 0x03, 0x1F, 0x1F, 0x1F, 0x03,
-	[0x18] = 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	[0x20] = 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00,
-	[0x28] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	[0x30] = 0x05, 0x04, 0x05, 0x04, 0x04, 0x05, 0x04, 0x05,
-	[0x38] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	[0x40] = 0x04, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	[0x48] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	[0x50] = 0x03, 0x04, 0x05, 0x07, 0x1F, 0x1F, 0x1F, 0x1F,
-	[0x58] = 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
-	[0x60] = 0x1F, 0x1F, 0x07, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
-	[0x68] = 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
-	[0x70] = 0x03, 0x0F, 0x06, 0x0E, 0x0A, 0x0B, 0x1F, 0x1F,
-	[0x78] = 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F,
-};
-
-const u8 mainboard_intr_data[] = {
-	[0x00] = 0x10, 0x11, 0x12, 0x13, 0x14, 0x1F, 0x16, 0x17,
-	[0x08] = 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F,
-	[0x10] = 0x09, 0x1F, 0x1F, 0x10, 0x1F, 0x1F, 0x1F, 0x10,
-	[0x18] = 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
-	[0x20] = 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00,
-	[0x28] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	[0x30] = 0x12, 0x11, 0x12, 0x11, 0x12, 0x11, 0x12, 0x00,
-	[0x38] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	[0x40] = 0x11, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	[0x48] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	[0x50] = 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00,
-	[0x58] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	[0x60] = 0x1F, 0x1F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
-	[0x68] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-	[0x70] = 0x03, 0x0F, 0x06, 0x0E, 0x0A, 0x0B, 0x1F, 0x1F,
-	[0x78] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
-#endif
 
 /*
  * This table defines the index into the picr/intr_data tables for each
diff --git a/src/mainboard/google/kahlee/variants/baseboard/include/baseboard/acpi/routing.asl b/src/mainboard/google/kahlee/variants/baseboard/include/baseboard/acpi/routing.asl
index c61bc4bb..4bbb0fc 100644
--- a/src/mainboard/google/kahlee/variants/baseboard/include/baseboard/acpi/routing.asl
+++ b/src/mainboard/google/kahlee/variants/baseboard/include/baseboard/acpi/routing.asl
@@ -50,7 +50,7 @@
 	Package() { 0x0012FFFF, 0, INTC, 0 },
 	Package() { 0x0012FFFF, 1, INTB, 0 },
 
-	/* Bus 0, Dev 10 Func 0 - USB: xHCI */
+	/* Bus 0, Dev 16 Func 0 - USB: xHCI */
 	Package() { 0x0010FFFF, 0, INTC, 0 },
 	Package() { 0x0010FFFF, 1, INTB, 0 },
 
@@ -65,14 +65,14 @@
 	/* Bus 0, Dev 0 - F15 Host Controller */
 
 	/* Bus 0, Dev 1 - PCI Bridge for Internal Graphics(IGP) */
-	Package() { 0x0001FFFF, 0, 0, 43 },
-	Package() { 0x0001FFFF, 1, 0, 40 },
+	Package() { 0x0001FFFF, 0, 0, 17 },
+	Package() { 0x0001FFFF, 1, 0, 18 },
 
 	/* Bus 0, Dev 2 - PCIe Bridges  */
-	Package() { 0x0002FFFF, 0, 0, 44 },
-	Package() { 0x0002FFFF, 1, 0, 45 },
-	Package() { 0x0002FFFF, 2, 0, 46 },
-	Package() { 0x0002FFFF, 3, 0, 47 },
+	Package() { 0x0002FFFF, 0, 0, 26 },
+	Package() { 0x0002FFFF, 1, 0, 23 },
+	Package() { 0x0002FFFF, 2, 0, 24 },
+	Package() { 0x0002FFFF, 3, 0, 25 },
 
 	/* SB devices in APIC mode */
 	/* Bus 0, Dev 20 - F0:SMBus/ACPI;F3:LPC;F7:SD */
@@ -82,15 +82,15 @@
 	Package() { 0x0014FFFF, 3, 0, 19 },
 
 	/* Bus 0, Dev 18 Func 0 - USB: EHCI */
-	Package() { 0x0012FFFF, 0, 0, 18 },
-	Package() { 0x0012FFFF, 1, 0, 17 },
+	Package() { 0x0012FFFF, 0, 0, 12 },
+	Package() { 0x0012FFFF, 1, 0, 13 },
 
 	/* Bus 0, Dev 10 Func 0 - USB: xHCI */
-	Package() { 0x0010FFFF, 0, 0, 18},
-	Package() { 0x0010FFFF, 1, 0, 17},
+	Package() { 0x0010FFFF, 0, 0, 12},
+	Package() { 0x0010FFFF, 1, 0, 13},
 
 	/* Bus 0, Dev 17 - SATA controller */
-	Package() { 0x0011FFFF, 0, 0, 19 },
+	Package() { 0x0011FFFF, 0, 0, 5 },
 })
 
 
@@ -105,10 +105,10 @@
 Name (APS4, Package()
 {
 	/* PCIe slot - Hooked to PCIe slot 4 */
-	Package() { 0x0000FFFF, 0, 0, 24 },
-	Package() { 0x0000FFFF, 1, 0, 25 },
-	Package() { 0x0000FFFF, 2, 0, 26 },
-	Package() { 0x0000FFFF, 3, 0, 27 },
+	Package() { 0x0000FFFF, 0, 0, 0 },
+	Package() { 0x0000FFFF, 1, 0, 1 },
+	Package() { 0x0000FFFF, 2, 0, 2 },
+	Package() { 0x0000FFFF, 3, 0, 3 },
 })
 
 /* GPP 1 */
@@ -121,10 +121,10 @@
 })
 Name (APS5, Package()
 {
-	Package() { 0x0000FFFF, 0, 0, 28 },
-	Package() { 0x0000FFFF, 1, 0, 29 },
-	Package() { 0x0000FFFF, 2, 0, 30 },
-	Package() { 0x0000FFFF, 3, 0, 31 },
+	Package() { 0x0000FFFF, 0, 0, 8 },
+	Package() { 0x0000FFFF, 1, 0, 9 },
+	Package() { 0x0000FFFF, 2, 0, 10 },
+	Package() { 0x0000FFFF, 3, 0, 11 },
 })
 
 /* GPP 2 */
@@ -137,10 +137,10 @@
 })
 Name (APS6, Package()
 {
-	Package() { 0x0000FFFF, 0, 0, 32 },
-	Package() { 0x0000FFFF, 1, 0, 33 },
-	Package() { 0x0000FFFF, 2, 0, 34 },
-	Package() { 0x0000FFFF, 3, 0, 35 },
+	Package() { 0x0000FFFF, 0, 0, 16 },
+	Package() { 0x0000FFFF, 1, 0, 17 },
+	Package() { 0x0000FFFF, 2, 0, 18 },
+	Package() { 0x0000FFFF, 3, 0, 19 },
 })
 
 /* GPP 3 */
@@ -153,10 +153,10 @@
 })
 Name (APS7, Package()
 {
-	Package() { 0x0000FFFF, 0, 0, 36 },
-	Package() { 0x0000FFFF, 1, 0, 37 },
-	Package() { 0x0000FFFF, 2, 0, 38 },
-	Package() { 0x0000FFFF, 3, 0, 39 },
+	Package() { 0x0000FFFF, 0, 0, 24 },
+	Package() { 0x0000FFFF, 1, 0, 25 },
+	Package() { 0x0000FFFF, 2, 0, 26 },
+	Package() { 0x0000FFFF, 3, 0, 27 },
 })
 
 /* GPP 4 */
@@ -168,8 +168,8 @@
 })
 Name (APS8, Package()
 {
-	Package() { 0x0000FFFF, 0, 0, 40 },
-	Package() { 0x0000FFFF, 1, 0, 41 },
-	Package() { 0x0000FFFF, 2, 0, 42 },
-	Package() { 0x0000FFFF, 3, 0, 43 },
+	Package() { 0x0000FFFF, 0, 0, 0 },
+	Package() { 0x0000FFFF, 1, 0, 1 },
+	Package() { 0x0000FFFF, 2, 0, 2 },
+	Package() { 0x0000FFFF, 3, 0, 3 },
 })

-- 
To view, visit https://review.coreboot.org/25107
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibb048d3e728dc562cb31b9ddd50bfd8fb032017e
Gerrit-Change-Number: 25107
Gerrit-PatchSet: 1
Gerrit-Owner: Richard Spiegel <richard.spiegel at silverbackltd.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20180312/f9a01387/attachment-0001.html>


More information about the coreboot-gerrit mailing list