Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-1-5]: src/share/man/man4/man4.i386 Pullup 1.5-1.8 [soda, hubertf]:
details: https://anonhg.NetBSD.org/src/rev/821ef0fa666f
branches: netbsd-1-5
changeset: 490150:821ef0fa666f
user: tv <tv%NetBSD.org@localhost>
date: Sun Nov 05 01:09:49 2000 +0000
description:
Pullup 1.5-1.8 [soda, hubertf]:
Add documentation of several PCIBIOS options; see log.
diffstat:
share/man/man4/man4.i386/pcibios.4 | 194 +++++++++++++++++++++++++++++++++---
1 files changed, 176 insertions(+), 18 deletions(-)
diffs (237 lines):
diff -r 33d6f71352c6 -r 821ef0fa666f share/man/man4/man4.i386/pcibios.4
--- a/share/man/man4/man4.i386/pcibios.4 Sun Nov 05 01:06:55 2000 +0000
+++ b/share/man/man4/man4.i386/pcibios.4 Sun Nov 05 01:09:49 2000 +0000
@@ -1,6 +1,6 @@
-.\" $NetBSD: pcibios.4,v 1.4 2000/06/11 01:13:44 augustss Exp $
+.\" $NetBSD: pcibios.4,v 1.4.2.1 2000/11/05 01:09:49 tv Exp $
.\"
-.\" Copyright (c) 1999 The NetBSD Foundation, Inc.
+.\" Copyright (c) 1999, 2000 The NetBSD Foundation, Inc.
.\" All rights reserved.
.\"
.\" This code is derived from software contributed to The NetBSD Foundation
@@ -34,7 +34,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd February 27, 2000
+.Dd July 22, 2000
.Dt PCIBIOS 4
.Os
.Sh NAME
@@ -42,12 +42,14 @@
.Nd introduction to PCI BIOS support
.Sh SYNOPSIS
.Cd "options PCIBIOS"
-.Cd "#options PCIBIOSVERBOSE"
+.Cd "options PCIBIOSVERBOSE"
+.Cd "options PCIBIOS_ADDR_FIXUP"
+.Cd "options PCIBIOS_BUS_FIXUP"
.Cd "options PCIBIOS_INTR_FIXUP"
-.Cd "#options PCIBIOS_IRQS_HINT=""0x0a00"" #IRQ 9,11"
+.Cd "#options PCIBIOS_IRQS_HINT=0x0a00 #IRQ 9,11"
+.Cd "#options PCIBIOS_INTR_FIXUP_FORCE"
+.Cd "options PCIBIOS_INTR_GUESS"
.Cd "#options PCIINTR_DEBUG"
-.Cd "options PCIBIOS_BUS_FIXUP"
-.Cd "options PCIBIOS_ADDR_FIXUP"
.Pp
.Sh INTRODUCTION
.Nx
@@ -62,25 +64,176 @@
boots.
.Pp
Options:
-.Bl -tag -width PCIBIOS_INTR_FIXUP -offset 3n -compact
+.Bl -tag -width PCIBIOS_INTR_FIXUP -offset 3n
+
.It Nm PCIBIOS
turn on the PCI BIOS support.
+
.It Nm PCIBIOSVERBOSE
make the setup procedure verbose.
-.It Nm PCIBIOS_INTR_FIXUP
-fixup PCI interrupt routing.
-.It Nm PCIBIOS_IRQS_HINT
-hint for IRQ use.
-When the PCI BIOS support cannot
-guess an adequate IRQ for a device the hint is used.
-.It Nm PCIINTR_DEBUG
-super-verbose PCI interrupt fixup.
+
+.It Nm PCIBIOS_ADDR_FIXUP
+fixup PCI I/O and memory addresses.
+.Pp
+Some BIOS implementations don't allocate I/O space and
+memory space for some PCI devices. Especially, a BIOS
+which is
+.Qq PnP OS mode enabled
+shows this behavior.
+Since necessary space isn't allocated, those devices
+will not work without special handling.
+
+This option allocates I/O space and memory space
+instead of relying upon the BIOS to do so.
+
+If necessary space is already correctly assigned to the devices,
+this option leaves the space as is.
+
+Although many BIOS implementations leave CardBus bridges'
+space unallocated, the CardBus bridge device driver doesn't
+require this option, since the driver allocates necessary space
+by itself.
+
.It Nm PCIBIOS_BUS_FIXUP
fixup PCI bus numbering; needed for many
.Xr cardbus 4
bridges.
-.It Nm PCIBIOS_ADDR_FIXUP
-fixup PCI I/O and memory addresses.
+.Pp
+Each PCI bus and CardBus should have a unique bus number.
+But some BIOS implementations don't assign a bus number
+for subordinate PCI buses. And many BIOS implementations
+don't assign a bus number for CardBuses.
+
+A typical symptom of this is the following boot message:
+.D1 Sy cardbus0 at cardslot0: bus 0 device 0...
+Please note that this cardbus0 has a bus number
+.Sq 0 ,
+but normally the bus number 0 is used by the machine's
+primary PCI bus. Thus, this bus number for cardbus is
+incorrect
+.Pq not assigned .
+In this situation, a device located in cardbus0 doesn't
+show correct device ID,
+because its bus number 0 incorrectly refers to the primary
+PCI bus, and a device ID in the primary PCI bus is shown
+in the boot message instead of the device's ID in the cardbus0.
+
+This option assigns bus numbers for all subordinate
+PCI buses and CardBuses.
+
+Since this option renumbers all PCI buses and CardBuses,
+all bus numbers of subordinate buses become different
+when this option is enabled.
+
+.It Nm PCIBIOS_INTR_FIXUP
+fixup PCI interrupt routing.
+.Pp
+Some BIOS implementations don't assign an interrupt for
+some devices.
+
+This option assigns an interrupt for such devices instead
+of relying upon the BIOS to do so.
+
+If the BIOS has already assigned an interrupt to a device, this
+option leaves the interrupt as is.
+
+.It Nm PCIBIOS_IRQS_HINT
+hint for IRQ use.
+When the
+.Em PCIBIOS_INTR_FIXUP
+cannot guess an adequate IRQ for a device, the hint is used.
+.Pp
+The value is a logical or of power-of-2s of allowable interrupts:
+.Bl -column "XX-0xffff" "XX-0xffff" "XX-0xffff" "XX-0xffff" -compact -offset 2n
+.It Em "IRQ Value" Em "\tIRQ Value" Em "\tIRQ Value" Em "\tIRQ Value"
+.It "\& 0 0x0001" "\t 4 0x0010" "\t 8 0x0100" "\t12 0x1000"
+.It "\& 1 0x0002" "\t 5 0x0020" "\t 9 0x0200" "\t13 0x2000"
+.It "\& 2 0x0004" "\t 6 0x0040" "\t10 0x0400" "\t14 0x4000"
+.It "\& 3 0x0008" "\t 7 0x0080" "\t11 0x0800" "\t15 0x8000"
+.El
+For example,
+.Qq Sy options PCIBIOS_IRQS_HINT=0x0a00
+allows IRQ 9 and IRQ 11.
+
+The kernel global variable
+.Va pcibios_irqs_hint
+holds this value,
+so a user can override this value without kernel recompilation.
+For example:
+.Bl -bullet -compact
+.It
+To specify this value on the fly, type the following command
+at the boot prompt to drop into DDB (the in-kernel debugger;
+you have to specify
+.Qq Sy options DDB
+to make kernel with DDB):
+.Dl Ic boot -d
+And type the following command on
+.Qq Sy db>
+prompt:
+.Dl Ic write pcibios_irqs_hint 0x0a00
+Then type the following to continue to boot:
+.Dl Ic c
+.It
+To modify kernel image without kernel recompilation,
+run the following command on shell:
+.Dl Ic gdb --write /netbsd
+And type the following commands at the
+.Qq Sy (gdb)
+prompt:
+.Dl Ic set pcibios_irqs_hint=0xa00
+.Dl Ic quit
+.El
+
+.It Nm PCIBIOS_INTR_FIXUP_FORCE
+.Pp
+Some buggy BIOS implementations provide inconsistent
+information between the PCI Interrupt Configuration Register
+and the PCI Interrupt Routing table. In such case,
+the PCI Interrupt Configuration Register takes precedence
+by default. If this happens, a kernel with
+.Em PCIBIOSVERBOSE
+shows
+.Qq Sy WARNING: preserving irq XX
+in the PCI routing table.
+
+If
+.Em PCIBIOS_INTR_FIXUP_FORCE
+is specified in addition to the
+.Em PCIBIOS_INTR_FIXUP ,
+the PCI Interrupt Routing table takes precedence.
+In this case, a kernel with
+.Em PCIBIOSVERBOSE
+shows
+.Qq Sy WARNING: overriding irq XX
+in the PCI routing table.
+
+The necessity of this option is doubtful, and we may
+remove this option in the future. If you find that this
+option is worth preserving, please report it with send-pr.
+
+.It Nm PCIBIOS_INTR_GUESS
+make
+.Em PCIBIOS_INTR_FIXUP
+work with unknown interrupt router.
+.Pp
+If a PCI interrupt router is not known, normally interrupt
+configuraion will not be touched.
+
+But if
+.Em PCIBIOS_INTR_GUESS
+is specified in addition to the
+.Em PCIBIOS_INTR_FIXUP ,
+and if a PCI interrupt routing table entry indicates that only
+one IRQ is available for the entry, the IRQ is assumed to be already
+connected to the device, and corresponding PCI Interrupt
+Configuration Register will be configured accordingly.
+
+.It Nm PCIINTR_DEBUG
+make the
+.Em PCIBIOS_INTR_FIXUP
+procedure verbose.
+
.El
.Sh SEE ALSO
.Xr cardbus 4 ,
@@ -90,3 +243,8 @@
.Nm
code appeared in
.Nx 1.5 .
+.Sh BUGS
+The
+.Em PCIBIOS_ADDR_FIXUP
+option may conflict with the PCI CardBus driver's own
+address fixup.
Home |
Main Index |
Thread Index |
Old Index