[LinuxBIOS] r499 - in LinuxBIOSv3: device include/device
svn at openbios.org
svn at openbios.org
Tue Sep 25 02:16:32 CEST 2007
Author: uwe
Date: 2007-09-25 02:16:31 +0200 (Tue, 25 Sep 2007)
New Revision: 499
Modified:
LinuxBIOSv3/device/pci_device.c
LinuxBIOSv3/include/device/device.h
Log:
Add more information to the device structure, so an Open Firmware
device tree can be created from data in struct device.
Signed-off-by: Jens Freimann <jens at freimann.org>
Acked-by: Uwe Hermann <uwe at hermann-uwe.de>
Modified: LinuxBIOSv3/device/pci_device.c
===================================================================
--- LinuxBIOSv3/device/pci_device.c 2007-09-16 14:37:59 UTC (rev 498)
+++ LinuxBIOSv3/device/pci_device.c 2007-09-25 00:16:31 UTC (rev 499)
@@ -964,6 +964,15 @@
/* Read the rest of the PCI configuration information. */
hdr_type = pci_read_config8(dev, PCI_HEADER_TYPE);
class = pci_read_config32(dev, PCI_CLASS_REVISION);
+ dev->status = pci_read_config16(dev, PCI_STATUS);
+ dev->revision = pci_read_config8(dev, PCI_REVISION_ID);
+ dev->cache_line = pci_read_config8(dev, PCI_CACHE_LINE_SIZE);
+ dev->irq_line = pci_read_config8(dev, PCI_INTERRUPT_LINE);
+ dev->irq_pin = pci_read_config8(dev, PCI_INTERRUPT_PIN);
+ dev->min_gnt = pci_read_config8(dev, PCI_MIN_GNT);
+ dev->max_lat = pci_read_config8(dev, PCI_MAX_LAT);
+ dev->subsystem_vendor = pci_read_config16(dev, PCI_SUBSYSTEM_VENDOR_ID);
+ dev->subsystem_device = pci_read_config16(dev, PCI_SUBSYSTEM_ID);
/* Store the interesting information in the device structure. */
dev->vendor = id & 0xffff;
Modified: LinuxBIOSv3/include/device/device.h
===================================================================
--- LinuxBIOSv3/include/device/device.h 2007-09-16 14:37:59 UTC (rev 498)
+++ LinuxBIOSv3/include/device/device.h 2007-09-25 00:16:31 UTC (rev 499)
@@ -188,6 +188,16 @@
char dtsname[MAX_DTSNAME_SIZE]; /* the name from the dts */
unsigned vendor;
unsigned device;
+ u16 status;
+ u8 revision;
+ u8 cache_line;
+ u8 irq_line;
+ u8 irq_pin;
+ u8 min_gnt;
+ u8 max_lat;
+ u16 subsystem_vendor;
+ u16 subsystem_device;
+
unsigned int class; /* 3 bytes: (base,sub,prog-if) */
unsigned int hdr_type; /* PCI header type */
unsigned int enabled : 1; /* set if we should enable the device */
More information about the coreboot
mailing list