[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