summaryrefslogtreecommitdiffstats
path: root/resources/libreboot/patch/coreboot/369b561315ca68d0cdedc38208105a513c7139b5/grub/kcma-d8/0030-mainboard-asus-kgpe-d16-Clean-up-legacy-PIRQ-table-c.patch
diff options
context:
space:
mode:
Diffstat (limited to 'resources/libreboot/patch/coreboot/369b561315ca68d0cdedc38208105a513c7139b5/grub/kcma-d8/0030-mainboard-asus-kgpe-d16-Clean-up-legacy-PIRQ-table-c.patch')
-rw-r--r--resources/libreboot/patch/coreboot/369b561315ca68d0cdedc38208105a513c7139b5/grub/kcma-d8/0030-mainboard-asus-kgpe-d16-Clean-up-legacy-PIRQ-table-c.patch92
1 files changed, 92 insertions, 0 deletions
diff --git a/resources/libreboot/patch/coreboot/369b561315ca68d0cdedc38208105a513c7139b5/grub/kcma-d8/0030-mainboard-asus-kgpe-d16-Clean-up-legacy-PIRQ-table-c.patch b/resources/libreboot/patch/coreboot/369b561315ca68d0cdedc38208105a513c7139b5/grub/kcma-d8/0030-mainboard-asus-kgpe-d16-Clean-up-legacy-PIRQ-table-c.patch
new file mode 100644
index 0000000..3d13fd4
--- /dev/null
+++ b/resources/libreboot/patch/coreboot/369b561315ca68d0cdedc38208105a513c7139b5/grub/kcma-d8/0030-mainboard-asus-kgpe-d16-Clean-up-legacy-PIRQ-table-c.patch
@@ -0,0 +1,92 @@
+From 2f6df3b764bf4090a79a4bae7c4c7e7281568cf3 Mon Sep 17 00:00:00 2001
+From: Timothy Pearson <tpearson@raptorengineeringinc.com>
+Date: Tue, 24 Nov 2015 14:11:59 -0600
+Subject: [PATCH 30/45] mainboard/asus/kgpe-d16: Clean up legacy PIRQ table
+ code
+
+Signed-off-by: Timothy Pearson <tpearson@raptorengineeringinc.com>
+---
+ src/mainboard/asus/kgpe-d16/irq_tables.c | 31 +++++++++++++++++++++++++------
+ 1 file changed, 25 insertions(+), 6 deletions(-)
+
+diff --git a/src/mainboard/asus/kgpe-d16/irq_tables.c b/src/mainboard/asus/kgpe-d16/irq_tables.c
+index 029dea8..ef39db2 100644
+--- a/src/mainboard/asus/kgpe-d16/irq_tables.c
++++ b/src/mainboard/asus/kgpe-d16/irq_tables.c
+@@ -2,7 +2,7 @@
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2010 Advanced Micro Devices, Inc.
+- * Copyright (C) 2015 Timothy Pearson <tpearson@raptorengineeringinc.com>, Raptor Engineering
++ * Copyright (C) 2015 Raptor Engineering
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+@@ -23,6 +23,24 @@
+
+ #include <cpu/amd/amdfam10_sysconf.h>
+
++/* Free irqs are 3, 4, 5, 6, 7, 9, 10, 11, 12, 14, and 15 */
++#define IRQBM ((1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<9)|(1<<10)|(1<<11)|(1<<12)|(1<<14)|(1<<15))
++
++#define LNKA 1
++#define LNKB 2
++#define LNKC 3
++#define LNKD 4
++
++/*
++ * For simplicity map LNK[E-H] to LNK[A-D].
++ * This also means we are 82C596 compatible.
++ * Needs 0:11.0 0x46[4] set to 0.
++ */
++#define LNKE 1
++#define LNKF 2
++#define LNKG 3
++#define LNKH 4
++
+ static void write_pirq_info(struct irq_info *pirq_info, u8 bus, u8 devfn,
+ u8 link0, u16 bitmap0, u8 link1, u16 bitmap1,
+ u8 link2, u16 bitmap2, u8 link3, u16 bitmap3,
+@@ -42,9 +60,10 @@ static void write_pirq_info(struct irq_info *pirq_info, u8 bus, u8 devfn,
+ pirq_info->rfu = rfu;
+ }
+ extern u8 bus_isa;
+-extern u8 bus_rs780[8];
++extern u8 bus_sr5650[14];
+ extern u8 bus_sp5100[2];
+-extern unsigned long sbdn_sp5100;
++extern u32 sbdn_sp5100;
++extern u32 sbdn_sr5650;
+
+ unsigned long write_pirq_routing_table(unsigned long addr)
+ {
+@@ -71,6 +90,7 @@ unsigned long write_pirq_routing_table(unsigned long addr)
+ pirq->signature = PIRQ_SIGNATURE;
+ pirq->version = PIRQ_VERSION;
+
++ /* Where the interrupt router resides */
+ pirq->rtr_bus = bus_sp5100[0];
+ pirq->rtr_devfn = PCI_DEVFN(0x14, 4);
+
+@@ -88,8 +108,7 @@ unsigned long write_pirq_routing_table(unsigned long addr)
+
+ /* pci bridge */
+ write_pirq_info(pirq_info, bus_sp5100[0], ((sbdn_sp5100 + 0x14) << 3) | 4,
+- 0x1, 0xdef8, 0x2, 0xdef8, 0x3, 0xdef8, 0x4, 0xdef8, 0,
+- 0);
++ LNKA, IRQBM, LNKB, IRQBM, LNKC, IRQBM, LNKD, IRQBM, 0, 0);
+ pirq_info++;
+ slot_num++;
+
+@@ -103,7 +122,7 @@ unsigned long write_pirq_routing_table(unsigned long addr)
+ pirq->checksum = sum;
+ }
+
+- printk(BIOS_INFO, "write_pirq_routing_table done.\n");
++ printk(BIOS_INFO, "done.\n");
+
+ return (unsigned long)pirq_info;
+ }
+--
+2.1.4
+