diff options
author | 2011-01-05 22:29:31 +0000 | |
---|---|---|
committer | 2011-01-05 22:29:31 +0000 | |
commit | efef306f0089831e89b9e08376d750348b835d85 (patch) | |
tree | 1d92f766530e6460ed1f04dd76831bc1a8536683 | |
parent | Pass pmap_bootstrap() the memory range used by the PROM/BUG/firmware/whatever, (diff) | |
download | wireguard-openbsd-efef306f0089831e89b9e08376d750348b835d85.tar.xz wireguard-openbsd-efef306f0089831e89b9e08376d750348b835d85.zip |
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; |