Rework the configuration scheme for PCI fixups:

* bus enumeration fixups are not PCIBIOS-specific, interrupt fixups are done
  by both PCIBIOS and ACPI.  The redundancy is very redundant.  Therefore,
  rename PCIBIOS_*_FIXUP to PCI_*_FIXUP, use PCI_INTR_FIXUP in place of
  ACPI_PCI_FIXUP, and change code refences to match.

* move the fixup defines from opt_pcibios.h to opt_pcifixup.h to reflect
  the above.

* fix up the PCI bus numbering in mainbus_attach(), right after we detect the
  configuration mode.  This probably renders the fixup in pcibios.c
  redundant -- but it should be harmless.

These changes make cardbus work in ACPI-only machines, when PCI_BUS_FIXUP
and PCI_INTR_FIXUP are defined.
This commit is contained in:
sekiya 2005-06-21 08:19:25 +00:00
parent b7d7ac9d1a
commit 0919f4d283
17 changed files with 127 additions and 97 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: CARDBUS,v 1.73 2004/08/26 14:33:01 itohy Exp $
# $NetBSD: CARDBUS,v 1.74 2005/06/21 08:19:25 sekiya Exp $
#
# CARDBUS: GENERIC + CardBus support
@ -12,12 +12,14 @@ include "arch/i386/conf/GENERIC"
# Configure PCI using BIOS information
options PCIBIOS # PCI BIOS support
#options PCIBIOSVERBOSE # PCI BIOS verbose info
options PCIBIOS_ADDR_FIXUP # fixup PCI I/O addresses
options PCIBIOS_BUS_FIXUP # fixup PCI bus numbering
options PCIBIOS_INTR_FIXUP # fixup PCI interrupt routing
#options PCIBIOS_IRQS_HINT=0x0a00 # PCI interrupts hint. IRQ 9 or 11
options PCIBIOS_INTR_GUESS # see pcibios(4)
#options PCIINTR_DEBUG # super-verbose PCI interrupt fixup
# PCI fixups, for both PCIBIOS and ACPI
options PCI_ADDR_FIXUP # fixup PCI I/O addresses
options PCI_BUS_FIXUP # fixup PCI bus numbering
options PCI_INTR_FIXUP # fixup PCI interrupt routing
# Cardbus bridges
ppb* at cardbus? dev ? function ? # Cardbus-PCI bridges (www.magma.com)

View File

@ -1,4 +1,4 @@
# $NetBSD: GENERIC,v 1.678 2005/06/21 02:23:13 kent Exp $
# $NetBSD: GENERIC,v 1.679 2005/06/21 08:19:25 sekiya Exp $
#
# GENERIC machine description file
#
@ -22,7 +22,7 @@ include "arch/i386/conf/std.i386"
options INCLUDE_CONFIG_FILE # embed config file in kernel binary
#ident "GENERIC-$Revision: 1.678 $"
#ident "GENERIC-$Revision: 1.679 $"
maxusers 32 # estimated number of users
@ -330,7 +330,7 @@ cpu* at mainbus?
#options MPACPI_SCANPCI # find PCI roots using MPACPI
#acpi0 at mainbus0
#options ACPI_PCI_FIXUP # PCI interrupt routing via ACPI
#options ACPI_ACTIVATE_DEV # If set, activate inactive devices
#options ACPICA_PEDANTIC # force strict conformance to the Spec.
#options ACPI_DISABLE_ON_POWEROFF # disable acpi on power off
@ -399,9 +399,6 @@ pci* at ppb? bus ?
# Configure PCI using BIOS information
#options PCIBIOS # PCI BIOS support
#options PCIBIOSVERBOSE # PCI BIOS verbose info
#options PCIBIOS_ADDR_FIXUP # fixup PCI I/O addresses
#options PCIBIOS_BUS_FIXUP # fixup PCI bus numbering
#options PCIBIOS_INTR_FIXUP # fixup PCI interrupt routing
#options PCIBIOS_IRQS_HINT=0x0a00 # PCI interrupts hint. IRQ 9 or 11
#options PCIBIOS_INTR_GUESS # see pcibios(4)
#options PCIBIOS_LIBRETTO_FIXUP # this code makes the Toshiba Libretto
@ -412,6 +409,11 @@ pci* at ppb? bus ?
# on anything else.
#options PCIINTR_DEBUG # super-verbose PCI interrupt fixup
# PCI fixups, for both PCIBIOS and ACPI
#options PCI_ADDR_FIXUP # fixup PCI I/O addresses
#options PCI_BUS_FIXUP # fixup PCI bus numbering
#options PCI_INTR_FIXUP # fixup PCI interrupt routing
# System Controllers
elansc* at pci? dev ? function ? # AMD Elan SC520 System Controller

View File

@ -1,4 +1,4 @@
# $NetBSD: GENERIC.MPACPI,v 1.31 2005/06/21 02:23:13 kent Exp $
# $NetBSD: GENERIC.MPACPI,v 1.32 2005/06/21 08:19:25 sekiya Exp $
#
# GENERIC.MPACPI -- Generic, plus ACPI Multiprocessor support
#
@ -8,7 +8,7 @@ include "arch/i386/conf/std.i386"
options INCLUDE_CONFIG_FILE # embed config file in kernel binary
#ident "GENERIC-$Revision: 1.31 $"
#ident "GENERIC-$Revision: 1.32 $"
maxusers 32 # estimated number of users
@ -289,7 +289,7 @@ options MPACPI # configure CPUs and APICs using ACPI
#options MPACPI_SCANPCI # find PCI roots using MPACPI
acpi0 at mainbus0
#options ACPI_PCI_FIXUP # PCI interrupt routing via ACPI
#options ACPI_ACTIVATE_DEV # If set, activate inactive devices
#options ACPICA_PEDANTIC # force strict conformance to the Spec.
#options ACPI_DISABLE_ON_POWEROFF # disable acpi on power off
@ -358,9 +358,6 @@ pci* at ppb? bus ?
# Configure PCI using BIOS information
#options PCIBIOS # PCI BIOS support
#options PCIBIOSVERBOSE # PCI BIOS verbose info
#options PCIBIOS_ADDR_FIXUP # fixup PCI I/O addresses
#options PCIBIOS_BUS_FIXUP # fixup PCI bus numbering
#options PCIBIOS_INTR_FIXUP # fixup PCI interrupt routing
#options PCIBIOS_IRQS_HINT=0x0a00 # PCI interrupts hint. IRQ 9 or 11
#options PCIBIOS_INTR_GUESS # see pcibios(4)
#options PCIBIOS_LIBRETTO_FIXUP # this code makes the Toshiba Libretto
@ -368,6 +365,11 @@ pci* at ppb? bus ?
# on anything else.
#options PCIINTR_DEBUG # super-verbose PCI interrupt fixup
# PCI fixups, for both PCIBIOS and ACPI
#options PCI_ADDR_FIXUP # fixup PCI I/O addresses
#options PCI_BUS_FIXUP # fixup PCI bus numbering
#options PCI_INTR_FIXUP # fixup PCI interrupt routing
# System Controllers
elansc* at pci? dev ? function ? # AMD Elan SC520 System Controller

View File

@ -1,4 +1,4 @@
# $NetBSD: GENERIC_LAPTOP,v 1.141 2005/06/21 02:23:13 kent Exp $
# $NetBSD: GENERIC_LAPTOP,v 1.142 2005/06/21 08:19:25 sekiya Exp $
# From: NetBSD: GENERIC,v 1.414 2001/07/30 19:59:05 ad Exp
#
# GENERIC_LAPTOP -- GENERIC with cardbus and some USB devices enabled
@ -8,7 +8,7 @@ include "arch/i386/conf/std.i386"
#options INCLUDE_CONFIG_FILE # embed config file in kernel binary
#ident "GENERIC-$Revision: 1.141 $"
#ident "GENERIC-$Revision: 1.142 $"
maxusers 32 # estimated number of users
@ -250,9 +250,9 @@ apm0 at mainbus0 # Advanced power management
# Advanced Configuration and Power Interface
#acpi0 at mainbus0
#options ACPI_PCI_FIXUP # PCI interrupt routing via ACPI
#options ACPI_ACTIVATE_DEV # If set, activate inactive devices
acpi0 at mainbus0
options ACPI_ACTIVATE_DEV # If set, activate inactive devices
#options ACPICA_PEDANTIC # force strict conformance to the Spec.
#options ACPI_DISABLE_ON_POWEROFF # disable acpi on power off
@ -317,13 +317,15 @@ pci* at ppb? bus ?
# Configure PCI using BIOS information
options PCIBIOS # PCI BIOS support
options PCIBIOSVERBOSE # PCI BIOS verbose info
options PCIBIOS_ADDR_FIXUP # fixup PCI I/O addresses
options PCIBIOS_BUS_FIXUP # fixup PCI bus numbering
options PCIBIOS_INTR_FIXUP # fixup PCI interrupt routing
#options PCIBIOS_IRQS_HINT=0x0a00 # PCI interrupts hint. IRQ 9 or 11
options PCIBIOS_INTR_GUESS # see pcibios(4)
#options PCIINTR_DEBUG # super-verbose PCI interrupt fixup
# PCI fixups, for both PCIBIOS and ACPI
options PCI_ADDR_FIXUP # fixup PCI I/O addresses
options PCI_BUS_FIXUP # fixup PCI bus numbering
options PCI_INTR_FIXUP # fixup PCI interrupt routing
# PCI bridges
#ichlpcib* at pci? dev ? function ? # Intel ICH PCI-ISA w/ watchdog and
# SpeedStep support

View File

@ -1,4 +1,4 @@
# $NetBSD: INSTALL_LAPTOP,v 1.84 2005/03/25 23:28:44 cube Exp $
# $NetBSD: INSTALL_LAPTOP,v 1.85 2005/06/21 08:19:26 sekiya Exp $
#
# INSTALL - Installation kernel.
#
@ -211,13 +211,15 @@ pci* at ppb? bus ?
# Configure PCI using BIOS information
options PCIBIOS # PCI BIOS support
#options PCIBIOSVERBOSE # PCI BIOS verbose info
options PCIBIOS_ADDR_FIXUP # fixup PCI I/O addresses
options PCIBIOS_BUS_FIXUP # fixup PCI bus numbering
options PCIBIOS_INTR_FIXUP # fixup PCI interrupt routing
#options PCIBIOS_IRQS_HINT=0x0a00 # PCI interrupts hint. IRQ 9 or 11
options PCIBIOS_INTR_GUESS # see pcibios(4)
#options PCIINTR_DEBUG # super-verbose PCI interrupt fixup
# PCI fixups, for both PCIBIOS and ACPI
options PCI_ADDR_FIXUP # fixup PCI I/O addresses
options PCI_BUS_FIXUP # fixup PCI bus numbering
options PCI_INTR_FIXUP # fixup PCI interrupt routing
# PCI bridges
pchb* at pci? dev ? function ? # PCI-Host bridges
pcib* at pci? dev ? function ? # PCI-ISA bridges

View File

@ -1,4 +1,4 @@
# $NetBSD: IOPENER,v 1.60 2005/04/15 17:27:21 itohy Exp $
# $NetBSD: IOPENER,v 1.61 2005/06/21 08:19:26 sekiya Exp $
#
# IOPENER -- GENERIC-like kernel for the Netpliance i-opener
# from: GENERIC,v 1.358 2000/07/05 04:07:25 sommerfeld Exp
@ -8,7 +8,7 @@ include "arch/i386/conf/std.i386"
#options INCLUDE_CONFIG_FILE # embed config file in kernel binary
#ident "IOPENER-$Revision: 1.60 $"
#ident "IOPENER-$Revision: 1.61 $"
maxusers 32 # estimated number of users
@ -207,9 +207,9 @@ pci* at ppb? bus ?
# Configure PCI using BIOS information
#options PCIBIOS # PCI BIOS support
#options PCIBIOSVERBOSE # PCI BIOS verbose info
#options PCIBIOS_ADDR_FIXUP # fixup PCI I/O addresses
#options PCIBIOS_BUS_FIXUP # fixup PCI bus numbering
#options PCIBIOS_INTR_FIXUP # fixup PCI interrupt routing
#options PCI_ADDR_FIXUP # fixup PCI I/O addresses
#options PCI_BUS_FIXUP # fixup PCI bus numbering
#options PCI_INTR_FIXUP # fixup PCI interrupt routing
#options PCIBIOS_IRQS_HINT=0x0a00 # PCI interrupts hint. IRQ 9 or 11
#options PCIBIOS_INTR_GUESS # see pcibios(4)
#options PCIINTR_DEBUG # super-verbose PCI interrupt fixup

View File

@ -1,4 +1,4 @@
# $NetBSD: LAMB,v 1.50 2005/03/25 23:28:44 cube Exp $
# $NetBSD: LAMB,v 1.51 2005/06/21 08:19:26 sekiya Exp $
#
# LAMB - a complete kernel for wildlab LAMB, http://www.wildlab.com/
#
@ -252,9 +252,9 @@ cpu0 at mainbus0
# Configure PCI using BIOS information
#options PCIBIOS # PCI BIOS support
#options PCIBIOSVERBOSE # PCI BIOS verbose info
#options PCIBIOS_ADDR_FIXUP # fixup PCI I/O addresses
#options PCIBIOS_BUS_FIXUP # fixup PCI bus numbering
#options PCIBIOS_INTR_FIXUP # fixup PCI interrupt routing
#options PCI_ADDR_FIXUP # fixup PCI I/O addresses
#options PCI_BUS_FIXUP # fixup PCI bus numbering
#options PCI_INTR_FIXUP # fixup PCI interrupt routing
#options PCIBIOS_IRQS_HINT=0x0a00 # PCI interrupts hint. IRQ 9 or 11
#options PCIBIOS_INTR_GUESS # see pcibios(4)
#options PCIINTR_DEBUG # super-verbose PCI interrupt fixup

View File

@ -1,4 +1,4 @@
# $NetBSD: NET4501,v 1.33 2005/02/25 13:46:50 simonb Exp $
# $NetBSD: NET4501,v 1.34 2005/06/21 08:19:26 sekiya Exp $
#
# NET4501 -- kernel configuration for a Soekris Engineering net4501
# single-board computer.
@ -10,7 +10,7 @@ include "arch/i386/conf/std.i386"
#options INCLUDE_CONFIG_FILE # embed config file in kernel binary
#ident "NET4501-$Revision: 1.33 $"
#ident "NET4501-$Revision: 1.34 $"
maxusers 32 # estimated number of users
@ -189,9 +189,9 @@ pci* at mainbus? bus ?
# Configure PCI using BIOS information
#options PCIBIOS # PCI BIOS support
#options PCIBIOSVERBOSE # PCI BIOS verbose info
#options PCIBIOS_ADDR_FIXUP # fixup PCI I/O addresses
#options PCIBIOS_BUS_FIXUP # fixup PCI bus numbering
#options PCIBIOS_INTR_FIXUP # fixup PCI interrupt routing
#options PCI_ADDR_FIXUP # fixup PCI I/O addresses
#options PCI_BUS_FIXUP # fixup PCI bus numbering
#options PCI_INTR_FIXUP # fixup PCI interrupt routing
#options PCIBIOS_IRQS_HINT=0x0a00 # PCI interrupts hint. IRQ 9 or 11
#options PCIBIOS_INTR_GUESS # see pcibios(4)
#options PCIINTR_DEBUG # super-verbose PCI interrupt fixup

View File

@ -1,4 +1,4 @@
# $NetBSD: SWINGER,v 1.64 2005/04/15 17:27:21 itohy Exp $
# $NetBSD: SWINGER,v 1.65 2005/06/21 08:19:26 sekiya Exp $
# from NetBSD: GENERIC,v 1.325 2000/04/14 14:53:32 augustss Exp
#
# SWINGER -- thorpej's Abit BP6+dual Celeron
@ -8,7 +8,7 @@ include "arch/i386/conf/std.i386"
#options INCLUDE_CONFIG_FILE # embed config file in kernel binary
#ident "SWINGER-$Revision: 1.64 $"
#ident "SWINGER-$Revision: 1.65 $"
maxusers 64 # estimated number of users
@ -217,9 +217,9 @@ pci* at ppb? bus ?
# Configure PCI using BIOS information
options PCIBIOS # PCI BIOS support
options PCIBIOSVERBOSE # PCI BIOS verbose info
#options PCIBIOS_INTR_FIXUP # fixup PCI interrupt routing
#options PCI_INTR_FIXUP # fixup PCI interrupt routing
#options PCIINTR_DEBUG # super-verbose PCI interrupt fixup
#options PCIBIOS_BUS_FIXUP # fixup PCI bus numbering
#options PCI_BUS_FIXUP # fixup PCI bus numbering
# PCI bridges
pchb* at pci? dev ? function ? # PCI-Host bridges

View File

@ -1,4 +1,4 @@
# $NetBSD: VIRTUALPC,v 1.21 2005/06/09 14:43:30 tsutsui Exp $
# $NetBSD: VIRTUALPC,v 1.22 2005/06/21 08:19:26 sekiya Exp $
#
# VIRTUALPC machine description file --
#
@ -11,7 +11,7 @@ include "arch/i386/conf/std.i386"
options INCLUDE_CONFIG_FILE # embed config file in kernel binary
#ident "VIRTUALPC-$Revision: 1.21 $"
#ident "VIRTUALPC-$Revision: 1.22 $"
maxusers 32 # estimated number of users
@ -278,7 +278,7 @@ cpu* at mainbus?
#options MPACPI_SCANPCI # find PCI roots using MPACPI
#acpi0 at mainbus0
#options ACPI_PCI_FIXUP # PCI interrupt routing via ACPI
#options ACPI_ACTIVATE_DEV # If set, activate inactive devices
# ACPI devices
@ -312,9 +312,9 @@ pci* at mainbus? bus ?
# Configure PCI using BIOS information
#options PCIBIOS # PCI BIOS support
#options PCIBIOSVERBOSE # PCI BIOS verbose info
#options PCIBIOS_ADDR_FIXUP # fixup PCI I/O addresses
#options PCIBIOS_BUS_FIXUP # fixup PCI bus numbering
#options PCIBIOS_INTR_FIXUP # fixup PCI interrupt routing
#options PCI_ADDR_FIXUP # fixup PCI I/O addresses
#options PCI_BUS_FIXUP # fixup PCI bus numbering
#options PCI_INTR_FIXUP # fixup PCI interrupt routing
#options PCIBIOS_IRQS_HINT=0x0a00 # PCI interrupts hint. IRQ 9 or 11
#options PCIBIOS_INTR_GUESS # see pcibios(4)
#options PCIINTR_DEBUG # super-verbose PCI interrupt fixup

View File

@ -1,4 +1,4 @@
# $NetBSD: files.i386,v 1.263 2005/05/15 22:20:23 fvdl Exp $
# $NetBSD: files.i386,v 1.264 2005/06/21 08:19:26 sekiya Exp $
#
# new style config file for i386 architecture
#
@ -42,11 +42,13 @@ defflag COMPAT_OLDBOOT
# PCI BIOS options
defflag opt_pcibios.h PCIBIOS PCIBIOSVERBOSE
PCIBIOS_ADDR_FIXUP PCIBIOS_BUS_FIXUP
PCIBIOS_INTR_FIXUP PCIBIOS_INTR_FIXUP_FORCE
PCIBIOS_INTR_GUESS PCIINTR_DEBUG
defparam opt_pcibios.h PCIBIOS_IRQS_HINT
# PCI fixup options
defflag opt_pcifixup.h PCI_ADDR_FIXUP PCI_BUS_FIXUP
PCI_INTR_FIXUP PCI_INTR_FIXUP_FORCE
# Large page size
defflag LARGEPAGES
@ -157,16 +159,16 @@ include "dev/pci/files.pci"
include "dev/pci/files.agp"
file arch/i386/pci/agp_machdep.c agp
file arch/i386/pci/pcibios.c pcibios
file arch/i386/pci/pci_intr_fixup.c pcibios & pcibios_intr_fixup
file arch/i386/pci/piix.c pcibios & pcibios_intr_fixup
file arch/i386/pci/opti82c558.c pcibios & pcibios_intr_fixup
file arch/i386/pci/opti82c700.c pcibios & pcibios_intr_fixup
file arch/i386/pci/sis85c503.c pcibios & pcibios_intr_fixup
file arch/i386/pci/via82c586.c pcibios & pcibios_intr_fixup
file arch/i386/pci/amd756.c pcibios & pcibios_intr_fixup
file arch/i386/pci/ali1543.c pcibios & pcibios_intr_fixup
file arch/i386/pci/pci_bus_fixup.c pcibios & pcibios_bus_fixup
file arch/i386/pci/pci_addr_fixup.c pcibios & pcibios_addr_fixup
file arch/i386/pci/pci_intr_fixup.c pcibios & pci_intr_fixup
file arch/i386/pci/piix.c pcibios & pci_intr_fixup
file arch/i386/pci/opti82c558.c pcibios & pci_intr_fixup
file arch/i386/pci/opti82c700.c pcibios & pci_intr_fixup
file arch/i386/pci/sis85c503.c pcibios & pci_intr_fixup
file arch/i386/pci/via82c586.c pcibios & pci_intr_fixup
file arch/i386/pci/amd756.c pcibios & pci_intr_fixup
file arch/i386/pci/ali1543.c pcibios & pci_intr_fixup
file arch/i386/pci/pci_bus_fixup.c pci_bus_fixup
file arch/i386/pci/pci_addr_fixup.c pcibios & pci_addr_fixup
defparam PCI_CONF_MODE
file arch/i386/pci/pcic_pci_machdep.c pcic_pci

View File

@ -1,4 +1,4 @@
/* $NetBSD: mainbus.c,v 1.57 2005/06/01 16:49:14 drochner Exp $ */
/* $NetBSD: mainbus.c,v 1.58 2005/06/21 08:19:26 sekiya Exp $ */
/*
* Copyright (c) 1996 Christopher G. Demetriou. All rights reserved.
@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: mainbus.c,v 1.57 2005/06/01 16:49:14 drochner Exp $");
__KERNEL_RCSID(0, "$NetBSD: mainbus.c,v 1.58 2005/06/21 08:19:26 sekiya Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -57,6 +57,7 @@ __KERNEL_RCSID(0, "$NetBSD: mainbus.c,v 1.57 2005/06/01 16:49:14 drochner Exp $"
#include "opt_mpacpi.h"
#include "opt_mpbios.h"
#include "opt_pcifixup.h"
#include <machine/cpuvar.h>
#include <machine/i82093var.h>
@ -85,6 +86,12 @@ __KERNEL_RCSID(0, "$NetBSD: mainbus.c,v 1.57 2005/06/01 16:49:14 drochner Exp $"
#include <arch/i386/bios/vesabios.h>
#endif
#if NPCI > 0
#if defined(PCI_BUS_FIXUP)
#include <arch/i386/pci/pci_bus_fixup.h>
#endif
#endif
int mainbus_match(struct device *, struct cfdata *, void *);
void mainbus_attach(struct device *, struct device *, void *);
@ -175,6 +182,9 @@ mainbus_attach(parent, self, aux)
#endif
#ifdef MPBIOS
int mpbios_present = 0;
#endif
#if defined(PCI_BUS_FIXUP)
int pci_maxbus = 0;
#endif
int mpacpi_active = 0;
@ -189,6 +199,10 @@ mainbus_attach(parent, self, aux)
* ACPI needs to be able to access PCI configuration space.
*/
pci_mode = pci_mode_detect();
#if defined(PCI_BUS_FIXUP)
pci_maxbus = pci_bus_fixup(NULL, 0);
aprint_debug("PCI bus max, after pci_bus_fixup: %i\n", pci_maxbus);
#endif
#endif
#if NACPI > 0

View File

@ -1,4 +1,4 @@
/* $NetBSD: rbus_machdep.c,v 1.16 2005/06/21 06:51:29 sekiya Exp $ */
/* $NetBSD: rbus_machdep.c,v 1.17 2005/06/21 08:19:26 sekiya Exp $ */
/*
* Copyright (c) 1999
@ -31,9 +31,10 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: rbus_machdep.c,v 1.16 2005/06/21 06:51:29 sekiya Exp $");
__KERNEL_RCSID(0, "$NetBSD: rbus_machdep.c,v 1.17 2005/06/21 08:19:26 sekiya Exp $");
#include "opt_pcibios.h"
#include "opt_pcifixup.h"
#include <sys/param.h>
#include <sys/systm.h>
@ -51,7 +52,7 @@ __KERNEL_RCSID(0, "$NetBSD: rbus_machdep.c,v 1.16 2005/06/21 06:51:29 sekiya Exp
#include <dev/isa/isavar.h>
#include <dev/pci/pcivar.h>
#if defined(PCIBIOS_ADDR_FIXUP)
#if defined(PCI_ADDR_FIXUP)
#include <arch/i386/pci/pci_addr_fixup.h>
#endif
@ -81,7 +82,7 @@ rbus_pccbb_parent_mem(struct pci_attach_args *pa)
extern struct extent *iomem_ex;
struct extent *ex = iomem_ex;
#if defined(PCIBIOS_ADDR_FIXUP)
#if defined(PCI_ADDR_FIXUP)
if (pciaddr.extent_mem != NULL)
ex = pciaddr.extent_mem;
#endif
@ -120,7 +121,7 @@ rbus_pccbb_parent_io(struct pci_attach_args *pa)
extern struct extent *ioport_ex;
struct extent *ex = ioport_ex;
#if defined(PCIBIOS_ADDR_FIXUP)
#if defined(PCI_ADDR_FIXUP)
if (pciaddr.extent_port != NULL)
ex = pciaddr.extent_port;
#endif

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_intr_fixup.c,v 1.31 2005/02/03 21:35:44 perry Exp $ */
/* $NetBSD: pci_intr_fixup.c,v 1.32 2005/06/21 08:19:26 sekiya Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@ -67,9 +67,10 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: pci_intr_fixup.c,v 1.31 2005/02/03 21:35:44 perry Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_intr_fixup.c,v 1.32 2005/06/21 08:19:26 sekiya Exp $");
#include "opt_pcibios.h"
#include "opt_pcifixup.h"
#include <sys/param.h>
#include <sys/systm.h>
@ -726,7 +727,7 @@ pciintr_do_header_fixup(pci_chipset_tag_t pc, pcitag_t tag, void *context)
PCIBIOS_PRINTV((" fixed up\n"));
} else {
/* routed by BIOS, but inconsistent */
#ifdef PCIBIOS_INTR_FIXUP_FORCE
#ifdef PCI_INTR_FIXUP_FORCE
/* believe PCI IRQ Routing table */
PCIBIOS_PRINTV((" WARNING: overriding irq %d\n", irq));
#else

View File

@ -1,4 +1,4 @@
/* $NetBSD: pcibios.c,v 1.24 2005/06/21 06:51:29 sekiya Exp $ */
/* $NetBSD: pcibios.c,v 1.25 2005/06/21 08:19:26 sekiya Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@ -67,9 +67,10 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: pcibios.c,v 1.24 2005/06/21 06:51:29 sekiya Exp $");
__KERNEL_RCSID(0, "$NetBSD: pcibios.c,v 1.25 2005/06/21 08:19:26 sekiya Exp $");
#include "opt_pcibios.h"
#include "opt_pcifixup.h"
#include <sys/param.h>
#include <sys/systm.h>
@ -84,13 +85,13 @@ __KERNEL_RCSID(0, "$NetBSD: pcibios.c,v 1.24 2005/06/21 06:51:29 sekiya Exp $");
#include <dev/pci/pcidevs.h>
#include <i386/pci/pcibios.h>
#ifdef PCIBIOS_INTR_FIXUP
#ifdef PCI_INTR_FIXUP
#include <i386/pci/pci_intr_fixup.h>
#endif
#ifdef PCIBIOS_BUS_FIXUP
#ifdef PCI_BUS_FIXUP
#include <i386/pci/pci_bus_fixup.h>
#endif
#ifdef PCIBIOS_ADDR_FIXUP
#ifdef PCI_ADDR_FIXUP
#include <i386/pci/pci_addr_fixup.h>
#endif
@ -150,11 +151,11 @@ pcibios_init(void)
struct bios32_entry_info ei;
u_int32_t rev_maj, rev_min, mech1, mech2, scmech1, scmech2;
#if defined(PCIBIOS_ADDR_FIXUP)
#if defined(PCI_ADDR_FIXUP)
/*
* Initialize pointers used by rbus routines here. That way, if
* PCIBIOS initialization fails, the rbus code doesn't break
* spectacularly when PCIBIOS_ADDR_FIXUP is defined.
* spectacularly when PCI_ADDR_FIXUP is defined.
*/
pciaddr.extent_port = NULL;
@ -209,7 +210,7 @@ pcibios_init(void)
*/
pcibios_pir_init();
#ifdef PCIBIOS_INTR_FIXUP
#ifdef PCI_INTR_FIXUP
if (pcibios_pir_table != NULL) {
int rv;
u_int16_t pciirq;
@ -238,14 +239,14 @@ pcibios_init(void)
}
#endif
#ifdef PCIBIOS_BUS_FIXUP
#ifdef PCI_BUS_FIXUP
pcibios_max_bus = pci_bus_fixup(NULL, 0);
#ifdef PCIBIOSVERBOSE
printf("PCI bus #%d is the last bus\n", pcibios_max_bus);
#endif
#endif
#ifdef PCIBIOS_ADDR_FIXUP
#ifdef PCI_ADDR_FIXUP
pci_addr_fixup(NULL, pcibios_max_bus);
#endif
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: acpi.c,v 1.72 2005/06/20 12:21:36 sekiya Exp $ */
/* $NetBSD: acpi.c,v 1.73 2005/06/21 08:19:25 sekiya Exp $ */
/*-
* Copyright (c) 2003 The NetBSD Foundation, Inc.
@ -77,9 +77,10 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: acpi.c,v 1.72 2005/06/20 12:21:36 sekiya Exp $");
__KERNEL_RCSID(0, "$NetBSD: acpi.c,v 1.73 2005/06/21 08:19:25 sekiya Exp $");
#include "opt_acpi.h"
#include "opt_pcifixup.h"
#include <sys/param.h>
#include <sys/systm.h>
@ -96,7 +97,7 @@ __KERNEL_RCSID(0, "$NetBSD: acpi.c,v 1.72 2005/06/20 12:21:36 sekiya Exp $");
#include <dev/acpi/acpidevs_data.h>
#endif
#ifdef ACPI_PCI_FIXUP
#ifdef PCI_INTR_FIXUP
#include <dev/pci/pcidevs.h>
#endif
@ -152,10 +153,10 @@ static void acpi_build_tree(struct acpi_softc *);
static ACPI_STATUS acpi_make_devnode(ACPI_HANDLE, UINT32, void *, void **);
static void acpi_enable_fixed_events(struct acpi_softc *);
#ifdef ACPI_PCI_FIXUP
#ifdef PCI_INTR_FIXUP
void acpi_pci_fixup(struct acpi_softc *);
#endif
#if defined(ACPI_PCI_FIXUP) || defined(ACPI_ACTIVATE_DEV)
#if defined(PCI_INTR_FIXUP) || defined(ACPI_ACTIVATE_DEV)
static ACPI_STATUS acpi_allocate_resources(ACPI_HANDLE handle);
#endif
@ -316,7 +317,7 @@ acpi_attach(struct device *parent, struct device *self, void *aux)
/*
* Fix up PCI devices.
*/
#ifdef ACPI_PCI_FIXUP
#ifdef PCI_INTR_FIXUP
if ((sc->sc_quirks & (ACPI_QUIRK_BADPCI | ACPI_QUIRK_BADIRQ)) == 0)
acpi_pci_fixup(sc);
#endif
@ -1060,7 +1061,7 @@ acpi_enter_sleep_state(struct acpi_softc *sc, int state)
return ret;
}
#ifdef ACPI_PCI_FIXUP
#ifdef PCI_INTR_FIXUP
ACPI_STATUS acpi_pci_fixup_bus(ACPI_HANDLE, UINT32, void *, void **);
/*
* acpi_pci_fixup:
@ -1248,9 +1249,9 @@ acpi_pci_fixup_bus(ACPI_HANDLE handle, UINT32 level, void *context,
AcpiOsFree(buf.Pointer);
return AE_OK;
}
#endif /* ACPI_PCI_FIXUP */
#endif /* PCI_INTR_FIXUP */
#if defined(ACPI_PCI_FIXUP) || defined(ACPI_ACTIVATE_DEV)
#if defined(PCI_INTR_FIXUP) || defined(ACPI_ACTIVATE_DEV)
/* XXX This very incomplete */
static ACPI_STATUS
acpi_allocate_resources(ACPI_HANDLE handle)
@ -1335,4 +1336,4 @@ out1:
out:
return rv;
}
#endif /* ACPI_PCI_FIXUP || ACPI_ACTIVATE_DEV */
#endif /* PCI_INTR_FIXUP || ACPI_ACTIVATE_DEV */

View File

@ -1,8 +1,8 @@
# $NetBSD: files.acpi,v 1.31 2005/03/25 23:06:19 cube Exp $
# $NetBSD: files.acpi,v 1.32 2005/06/21 08:19:25 sekiya Exp $
include "dev/acpi/acpica/files.acpica"
defflag opt_acpi.h ACPIVERBOSE ACPI_DEBUG ACPI_PCI_FIXUP ACPI_ACTIVATE_DEV ACPI_DISABLE_ON_POWEROFF
defflag opt_acpi.h ACPIVERBOSE ACPI_DEBUG ACPI_ACTIVATE_DEV ACPI_DISABLE_ON_POWEROFF
device acpi { }: sysmon_power, sysmon_taskq
attach acpi at acpibus