the following patch was just integrated into master:
commit 422e296d560b5f076e0cb866202b2aab4dcfaebb
Author: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
Date: Wed Feb 4 15:19:17 2015 -0600
3rdparty: Update to latest commit (for Intel microcode)
This pulls in the Intel microcode from blobs, and allows us to move
forward with relocating microcode updates in blobs.
Change-Id: Iaa046cc20c7825aac168a6ed97c87be548634df3
Signed-off-by: Alexandru Gagniuc <mr.nuke.me(a)gmail.com>
Reviewed-on: http://review.coreboot.org/8356
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter(a)users.sourceforge.net>
Reviewed-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
See http://review.coreboot.org/8356 for details.
-gerrit
the following patch was just integrated into master:
commit 4104e6cd30ba80f93e764e5036f79dd7a60d5b1c
Author: Kevin Paul Herbert <kph(a)meraki.net>
Date: Wed Feb 25 00:36:51 2015 -0800
x86: Fix pointer arithmetic regressions from MMIO changes
During the development of commit bde6d30 (x86: Change MMIO addr
in readN(addr)/writeN(addr, val) to pointer), there were several iterations
and patterns tried. An intermediate pattern was the use of u32 pointers,
and division by sizeof(u32). Some of these did not get properly
changed to pointer types of length 1, causing a regression in
the Intel Ibex Peak SATA driver, fixed in commit 9b5f137
(Intel ibexpeak: Fix SATA configuration).
Other regressions of this pattern are fixed here. I audited all changes
to u32 types, and the other ones are safe.
Change-Id: I9e73ac8f4329df8bf0cdd1a14759f0280f974052
Signed-off-by: Kevin Paul Herbert <kph(a)meraki.net>
Reviewed-on: http://review.coreboot.org/8530
Tested-by: build bot (Jenkins)
Reviewed-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Reviewed-by: Patrick Georgi <pgeorgi(a)google.com>
See http://review.coreboot.org/8530 for details.
-gerrit
Kyösti Mälkki (kyosti.malkki(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8537
-gerrit
commit 9b80760ff453af2bee5751331cf614f09aec2be2
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Mon Feb 23 06:58:26 2015 +0200
PCI subsystem: Use subordinate property to track bus enumeration
Parameter max is the cumulative number of PCI buses scanned on the
system so far. Use the property subordinate from the parent PCI bridge
device to keep track of the first available bus number instead of
passing that on the stack.
Change-Id: I1a884c98d50fa4f1eb2752e10b778aea8a7b090a
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
---
src/device/pci_device.c | 29 +++++++++--------------------
1 file changed, 9 insertions(+), 20 deletions(-)
diff --git a/src/device/pci_device.c b/src/device/pci_device.c
index d3a7865..538ab4c 100644
--- a/src/device/pci_device.c
+++ b/src/device/pci_device.c
@@ -1179,11 +1179,16 @@ static void pci_bridge_route(struct bus *link, scan_state state)
struct bus *parent = dev->bus;
u32 reg, buses = 0;
+ if (state == PCI_ROUTE_SCAN) {
+ link->secondary = parent->subordinate + 1;
+ link->subordinate = link->secondary;
+ }
+
if (state == PCI_ROUTE_CLOSE) {
buses |= 0xfeff << 8;
} else if (state == PCI_ROUTE_SCAN) {
buses |= ((u32) link->secondary & 0xff) << 8;
- buses |= ((u32) link->subordinate & 0xff) << 16;
+ buses |= 0xff << 16; /* MAX PCI_BUS number here */
} else if (state == PCI_ROUTE_FINAL) {
buses |= parent->secondary & 0xff;
buses |= ((u32) link->secondary & 0xff) << 8;
@@ -1210,10 +1215,10 @@ static void pci_bridge_route(struct bus *link, scan_state state)
if (state == PCI_ROUTE_FINAL) {
pci_write_config16(dev, PCI_COMMAND, link->bridge_cmd);
+ parent->subordinate = link->subordinate;
}
}
-
/**
* Scan a PCI bridge and the buses behind the bridge.
*
@@ -1249,29 +1254,13 @@ unsigned int do_pci_scan_bridge(struct device *dev, unsigned int max,
bus = dev->link_list;
- /*
- * Set up the primary, secondary and subordinate bus numbers. We have
- * no idea how many buses are behind this bridge yet, so we set the
- * subordinate bus number to 0xff for the moment.
- */
- bus->secondary = ++max;
- bus->subordinate = 0xff;
-
pci_bridge_route(bus, PCI_ROUTE_SCAN);
- /* Now we can scan all subordinate buses (those behind the bridge). */
- max = do_scan_bus(bus, 0x00, 0xff, max);
-
- /*
- * We know the number of buses behind this bridge. Set the subordinate
- * bus number to its real value.
- */
- bus->subordinate = max;
+ bus->subordinate = do_scan_bus(bus, 0x00, 0xff, bus->secondary);
pci_bridge_route(bus, PCI_ROUTE_FINAL);
- printk(BIOS_SPEW, "%s returns max %d\n", __func__, max);
- return max;
+ return bus->subordinate;
}
/**
Kyösti Mälkki (kyosti.malkki(a)gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/8542
-gerrit
commit 5e8e50b87e72aa64cb85f3aaf5f22115c2a9bb32
Author: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
Date: Fri Feb 27 17:24:00 2015 +0200
devicetree: Remove dev_find_slot() implementation in romstage
PCI tree has not been enumerated yet in romstage, so all bridge devices
found in the static devicetree have their secondary bus number initialized to 0.
Change-Id: Ib797210102c942bad3549b756ab0ebe5870b3ce4
Signed-off-by: Kyösti Mälkki <kyosti.malkki(a)gmail.com>
---
src/device/device_romstage.c | 24 ------------------------
src/include/device/device.h | 2 --
2 files changed, 26 deletions(-)
diff --git a/src/device/device_romstage.c b/src/device/device_romstage.c
index df0df6a..b28dedf 100644
--- a/src/device/device_romstage.c
+++ b/src/device/device_romstage.c
@@ -31,30 +31,6 @@
ROMSTAGE_CONST struct device * ROMSTAGE_CONST all_devices = &dev_root;
/**
- * Given a PCI bus and a devfn number, find the device structure.
- *
- * @param bus The bus number.
- * @param devfn A device/function number.
- * @return Pointer to the device structure (if found), 0 otherwise.
- */
-ROMSTAGE_CONST struct device *dev_find_slot(unsigned int bus,
- unsigned int devfn)
-{
- ROMSTAGE_CONST struct device *dev, *result;
-
- result = 0;
- for (dev = all_devices; dev; dev = dev->next) {
- if ((dev->path.type == DEVICE_PATH_PCI) &&
- (dev->bus->secondary == bus) &&
- (dev->path.pci.devfn == devfn)) {
- result = dev;
- break;
- }
- }
- return result;
-}
-
-/**
* Given a device pointer, find the next PCI device.
*
* @param previous_dev A pointer to a PCI device structure.
diff --git a/src/include/device/device.h b/src/include/device/device.h
index a09413f..0ead7e2 100644
--- a/src/include/device/device.h
+++ b/src/include/device/device.h
@@ -258,8 +258,6 @@ u32 find_pci_tolm(struct bus *bus);
#else /* vv __SIMPLE_DEVICE__ vv */
-ROMSTAGE_CONST struct device * dev_find_slot (unsigned int bus,
- unsigned int devfn);
ROMSTAGE_CONST struct device *dev_find_next_pci_device(
ROMSTAGE_CONST struct device *previous_dev);
ROMSTAGE_CONST struct device * dev_find_slot_on_smbus (unsigned int bus,