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@freimann.org>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@499 f3766cd6-281f-0410-b1cd-43a5c92072e9
This commit is contained in:
Uwe Hermann 2007-09-25 00:16:31 +00:00
parent c8ea006269
commit d3f1396e9b
2 changed files with 19 additions and 0 deletions

View file

@ -964,6 +964,15 @@ struct device *pci_probe_dev(struct device *dev, struct bus *bus,
/* 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;

View file

@ -188,6 +188,16 @@ struct device {
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 */