diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2011-01-05 22:29:32 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2011-01-05 22:29:32 +0000 |
commit | d2e4356a36b105293b12063292c5dc723c47a523 (patch) | |
tree | 074d2a3dc4fd89f0ce788a9e27d58914a32dc9e0 | |
parent | 0366f9ef3969200de0b1cf0264b860fdac62b384 (diff) |
Ignore MCFG tables with an empty bus range. Makes stu@'s amd64 machine
boot again.
-rw-r--r-- | sys/dev/acpi/acpimcfg.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/dev/acpi/acpimcfg.c b/sys/dev/acpi/acpimcfg.c index ee265db9918..23772cae0aa 100644 --- a/sys/dev/acpi/acpimcfg.c +++ b/sys/dev/acpi/acpimcfg.c @@ -1,4 +1,4 @@ -/* $OpenBSD: acpimcfg.c,v 1.1 2011/01/04 21:17:49 kettenis Exp $ */ +/* $OpenBSD: acpimcfg.c,v 1.2 2011/01/05 22:29:31 kettenis Exp $ */ /* * Copyright (c) 2010 Mark Kettenis <kettenis@openbsd.org> * @@ -67,6 +67,13 @@ acpimcfg_attach(struct device *parent, struct device *self, void *aux) printf(" addr 0x%llx, bus %d-%d\n", mcfg->base_address, mcfg->min_bus_number, mcfg->max_bus_number); + /* + * Some (broken?) BIOSen have an MCFG table for an empty bus + * range. Ignore those tables. + */ + if (mcfg->min_bus_number == mcfg->max_bus_number) + return; + pci_mcfg_addr = mcfg->base_address; pci_mcfg_min_bus = mcfg->min_bus_number; pci_mcfg_max_bus = mcfg->max_bus_number; |