Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys/arch/x86/x86
# Joerg Sonnenberger 2008-06-01:
>
> Module Name: src
> Committed By: joerg
> Date: Sun Jun 1 15:33:15 UTC 2008
>
> Modified Files:
> src/sys/arch/x86/x86: mpacpi.c
>
> Log Message:
> When a PCI host bridge description in the DSDT has a missing _BBN or the
> _BBN is 0, check if the _ADR field is also 0. If it is, assume that the
> _BBN really should be 0. Otherwise, try to extract the _BBN from the
> bridge itself using pchb logic and panic only, if that fails as well.
> Reported and tested by Martin Husemann as interrupt issue.
I have no clue about ACPI, but this breaks on my Fujitsu S6410 (amd64):
'_BBN' reads as zero so the code tries to look at '_ADR' and fails
resulting in the "broken _BBN" panic. Booting with ACPI disabled
(from bootloader) hangs the machine hard halfway through configure().
With the hack below, I can boot multiuser and everything except Cardbus
seems to work.
-- Jachym
Index: sys/arch/x86/x86/mpacpi.c
===================================================================
RCS file: /cvsroot/src/sys/arch/x86/x86/mpacpi.c,v
retrieving revision 1.60
diff -u -r1.60 mpacpi.c
--- sys/arch/x86/x86/mpacpi.c 1 Jun 2008 15:33:15 -0000 1.60
+++ sys/arch/x86/x86/mpacpi.c 2 Jun 2008 16:09:18 -0000
@@ -676,9 +677,13 @@
/* check whether this is PCI root bridge or not */
if (acpi_match_hid(devinfo, pciroot_hid)) {
/* this is PCI root bridge */
+#if 0 /* XXXfreza */
rv = mpacpi_get_bbn(acpi, handle, &mpr->mpr_bus);
if (ACPI_FAILURE(rv))
panic("mpacpi: PCI root bridge with broken _BBN");
+#else
+ mpr->mpr_bus = 0;
+#endif
if (mp_verbose)
printf("mpacpi: found root PCI bus %d at level %u\n",
Home |
Main Index |
Thread Index |
Old Index