Skip to content

Commit 6146be5

Browse files
committed
nb/intel/sandybridge/northbridge.c: Disable non-active PEG devices
TXT SINIT ACM checks the PEG bridge memory ranges whether they are correctly assigned in the MMIO space. If the bridge is enabled but no device is attached to it, coreboot will not assign any resources (if hotplug is not enabled). When SINIT ACM checks the ranges, it fails on prefetchable range check. Hide the PEG devices if the bridge is not active. PCIe bridges should generally be hidden if hotplug is not enabled and there is no downstream device. Upstream-status: CB:87472 Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
1 parent b0f2947 commit 6146be5

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

src/northbridge/intel/sandybridge/northbridge.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -267,17 +267,17 @@ static void disable_peg(void)
267267
reg = pci_read_config32(dev, DEVEN);
268268

269269
dev = pcidev_on_root(1, 2);
270-
if (!dev || !dev->enabled) {
270+
if (!dev || !dev->enabled || !dev_is_active_bridge(dev)) {
271271
printk(BIOS_DEBUG, "Disabling PEG12.\n");
272272
reg &= ~DEVEN_PEG12;
273273
}
274274
dev = pcidev_on_root(1, 1);
275-
if (!dev || !dev->enabled) {
275+
if (!dev || !dev->enabled || !dev_is_active_bridge(dev)) {
276276
printk(BIOS_DEBUG, "Disabling PEG11.\n");
277277
reg &= ~DEVEN_PEG11;
278278
}
279279
dev = pcidev_on_root(1, 0);
280-
if (!dev || !dev->enabled) {
280+
if (!dev || !dev->enabled || !dev_is_active_bridge(dev)) {
281281
printk(BIOS_DEBUG, "Disabling PEG10.\n");
282282
reg &= ~DEVEN_PEG10;
283283
}
@@ -292,7 +292,7 @@ static void disable_peg(void)
292292
reg &= ~DEVEN_D4EN;
293293
}
294294
dev = pcidev_on_root(6, 0);
295-
if (!dev || !dev->enabled) {
295+
if (!dev || !dev->enabled || !dev_is_active_bridge(dev)) {
296296
printk(BIOS_DEBUG, "Disabling PEG60.\n");
297297
reg &= ~DEVEN_PEG60;
298298
}

0 commit comments

Comments
 (0)