aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/pci.c7
-rw-r--r--src/pci.h34
-rw-r--r--src/pcibios.c30
3 files changed, 43 insertions, 28 deletions
diff --git a/src/pci.c b/src/pci.c
index 8d19b81..c688dac 100644
--- a/src/pci.c
+++ b/src/pci.c
@@ -1,3 +1,10 @@
+// PCI config space access functions.
+//
+// Copyright (C) 2008 Kevin O'Connor <kevin@koconnor.net>
+// Copyright (C) 2002 MandrakeSoft S.A.
+//
+// This file may be distributed under the terms of the GNU GPLv3 license.
+
#include "pci.h" // PCIDevice
#include "ioport.h" // outl
diff --git a/src/pci.h b/src/pci.h
index b54cd37..edf94b1 100644
--- a/src/pci.h
+++ b/src/pci.h
@@ -25,4 +25,38 @@ u8 pci_config_readb(PCIDevice d, u32 addr);
int pci_find_device(u16 vendid, u16 devid, int index, PCIDevice *dev);
int pci_find_class(u32 classid, int index, PCIDevice *dev);
+
+/****************************************************************
+ * PIR table
+ ****************************************************************/
+
+struct pir_header {
+ u32 signature;
+ u16 version;
+ u16 size;
+ u8 router_bus;
+ u8 router_devfunc;
+ u16 exclusive_irqs;
+ u32 compatible_devid;
+ u32 miniport_data;
+ u8 reserved[11];
+ u8 checksum;
+} PACKED;
+
+#define PIR_SIGNATURE 0x52495024 // $PIR
+
+struct link_info {
+ u8 link;
+ u16 bitmap;
+} PACKED;
+
+struct pir_slot {
+ u8 bus;
+ u8 dev;
+ struct link_info links[4];
+ u8 slot_nr;
+ u8 reserved;
+} PACKED;
+
+
#endif
diff --git a/src/pcibios.c b/src/pcibios.c
index 68a50ed..6a83b83 100644
--- a/src/pcibios.c
+++ b/src/pcibios.c
@@ -14,39 +14,13 @@
* PIR table
****************************************************************/
-struct pir {
- u32 signature;
- u16 version;
- u16 size;
- u8 router_bus;
- u8 router_devfunc;
- u16 exclusive_irqs;
- u32 compatible_devid;
- u32 miniport_data;
- u8 reserved[11];
- u8 checksum;
-} PACKED;
-
-struct link_info {
- u8 link;
- u16 bitmap;
-} PACKED;
-
-struct pir_slot {
- u8 bus;
- u8 dev;
- struct link_info links[4];
- u8 slot_nr;
- u8 reserved;
-} PACKED;
-
struct pir_table {
- struct pir pir;
+ struct pir_header pir;
struct pir_slot slots[6];
} PACKED PIR_TABLE VISIBLE16 __attribute__((aligned(16))) = {
#if CONFIG_PIRTABLE
.pir = {
- .signature = 0x52495024, // "$PIR"
+ .signature = PIR_SIGNATURE,
.version = 0x0100,
.size = sizeof(struct pir_table),
.router_devfunc = 0x08,