Subject: Re: PCIBIOS in 1.5ALPHA/i386
To: Tracy J. Di Marco White <gendalia@iastate.edu>
From: John Hawkinson <jhawk@MIT.EDU>
List: current-users
Date: 07/29/2000 13:21:04
| I'm playing with a Dell Inspiron 5000.  The USB, Cardbus and audio are not
| configured at boot using an install floppy I've built using the CARDBUS
| config file.  When I uncomment PCIBIOS, the USB, Cardbus and audio are
| found, but not configured because of lack of interrupt.  If I uncomment
| PCIBIOS_INTR_FIXUP as far as I can tell, the USB and Cardbus are found
| (don't recall for the audio, but I don't think it is), but instead of
| going into sysinst, the screen goes nuts.  (Flashing bits all over the
| screen, various colors, not very useful.)

I finally had a chance to play with a friend's Inspiron [but only briefly,
and I'm out of town for the next week so won't be able to do so there.]

I note that:

  pcmcia doesn't seem to work in the INSTALL kernel. It's probed,
but nothing happens when a card is inserted. Bad sign.

  I built a CARDBUS kernel with all the fixups uncommented (I believe
that is recommended). Cardbus is found and works fine for a tlp, but
kills the machine (endless scrolling w/ garbage in col 1) with an
orinco wavelan silver.

| I'm not sure which options would be best suited for this machine, is
| there something that does slightly less than PCIBIOS_INTR_FIXUP, so
| the display doesn't go nuts, but will still find everything?

You should probably try process-of-elimination. What does your
kernel probe look like? Here's what I get (below). [Hmm, we need
to do something about making the pcibios verbose displays
more readable. Sigh...]

--jhawk

NetBSD 1.5B (CARDBUS) #10: Fri Jul 28 23:25:21 EDT 2000
    jhawk@zorkmid.mit.edu:/usr/local/netbsd-current/src/sys/arch/i386/compile/CARDBUS
cpu0: family 6 model 8 step 1
cpu0: Intel Pentium III (E) (686-class)
total memory = 255 MB
avail memory = 230 MB
using 3296 buffers containing 13184 KB of memory
BIOS32 rev. 0 found at 0xfd890
PCI BIOS rev. 2.1 found at 0xfd9ae
pcibios: config mechanism [1][x], special cycles [x][x], last bus 1
PCI IRQ Routing Table rev. 1.0 found at 0xfdf50, size 144 bytes (7 entries)
PCI Interrupt Router at 000:07:0 (Intel 82371FB PCI-to-ISA Bridge (PIIX))
PIR Entry 0:
	Bus: 0  Device: 7
		INTA: link 0x00 bitmap 0xdef8
		INTB: link 0x00 bitmap 0xdef8
		INTC: link 0x00 bitmap 0xdef8
		INTD: link 0x63 bitmap 0x0020
PIR Entry 1:
	Bus: 0  Device: 4
		INTA: link 0x60 bitmap 0x0800
		INTB: link 0x61 bitmap 0x0800
		INTC: link 0x00 bitmap 0xdef8
		INTD: link 0x00 bitmap 0xdef8
PIR Entry 2:
	Bus: 0  Device: 8
		INTA: link 0x63 bitmap 0x0020
		INTB: link 0x00 bitmap 0xdef8
		INTC: link 0x00 bitmap 0xdef8
		INTD: link 0x00 bitmap 0xdef8
PIR Entry 3:
	Bus: 0  Device: 16
		INTA: link 0x63 bitmap 0x0020
		INTB: link 0x61 bitmap 0x0800
		INTC: link 0x00 bitmap 0xdef8
		INTD: link 0x00 bitmap 0xdef8
PIR Entry 4:
	Bus: 0  Device: 13
		INTA: link 0x61 bitmap 0x0800
		INTB: link 0x63 bitmap 0x0020
		INTC: link 0x00 bitmap 0xdef8
		INTD: link 0x00 bitmap 0xdef8
PIR Entry 5:
	Bus: 0  Device: 1
		INTA: link 0x60 bitmap 0x0800
		INTB: link 0x00 bitmap 0xdef8
		INTC: link 0x00 bitmap 0xdef8
		INTD: link 0x00 bitmap 0xdef8
PIR Entry 6:
	Bus: 1  Device: 0
		INTA: link 0x60 bitmap 0x0800
		INTB: link 0x00 bitmap 0xdef8
		INTC: link 0x00 bitmap 0xdef8
		INTD: link 0x00 bitmap 0xdef8
pciintr_link_fixup: PIRQ 0x00 already connected to IRQ 11
pciintr_link_fixup: PIRQ 0x03 already connected to IRQ 5
pciintr_link_fixup: PIRQ 0x01 not connected, assigning IRQ 11
pciintr_link_route: route of PIRQ 0x00 -> IRQ 11 preserved BIOS setting
pciintr_link_route: route of PIRQ 0x03 -> IRQ 5 preserved BIOS setting
------------------------------------------
  device vendor product pin PIRQ IRQ stage
------------------------------------------
000:04:0 0x104c 0xac1c   A  0x00  11  0    fixed up
000:04:1 0x104c 0xac1c   A  0x00  11  0    fixed up
000:07:2 0x8086 0x7112   D  0x03   5  0    already assigned
000:08:0 0x125d 0x1978   A  0x03   5  0    already assigned
001:00:0 0x1002 0x4c4d   A  0x00  11  0    already assigned
------------------------------------------
PCI bridge 0: primary 0, secondary 1, subordinate 1
PCI bridge 1: primary 0, secondary 2, subordinate 2
PCI bridge 2: primary 0, secondary 3, subordinate 3
PCI bus #3 is the last bus
[System BIOS Setting]-----------------------
  device vendor product
  register space address    size
--------------------------------------------
000:00:0 0x8086 0x7190 
	10h mem  0xe0000000 0x04000000
		[OK]
000:01:0 0x8086 0x7191 
		[OK]
000:04:0 0x104c 0xac1c 
	10h mem  0x00000000 0x00001000
		[NG]
000:04:1 0x104c 0xac1c 
	10h mem  0x00000000 0x00001000
		[NG]
000:07:0 0x8086 0x7110 
		[OK]
000:07:1 0x8086 0x7111 
	20h port 0x00001050 0x00000010
		[OK]
000:07:2 0x8086 0x7112 
	20h port 0x00001060 0x00000020
		[OK]
000:07:3 0x8086 0x7113 
		[OK]
000:08:0 0x125d 0x1978 
	10h port 0x00001400 0x00000100
		[OK]
--------------------------[  2 devices bogus]
 Physical memory end: 0x0ffed000
 PCI memory mapped I/O space start: 0x10000000
[PCIBIOS fixup stage]-----------------------
  device vendor product
  register space address    size
--------------------------------------------
000:00:0 0x8086 0x7190 
	10h mem  0xe0000000 0x04000000
		[OK]
000:01:0 0x8086 0x7191 
		[OK]
000:04:0 0x104c 0xac1c new address 0x10000000

	10h mem  0x10000000 0x00001000
		[OK]
000:04:1 0x104c 0xac1c new address 0x10001000

	10h mem  0x10001000 0x00001000
		[OK]
000:07:0 0x8086 0x7110 
		[OK]
000:07:1 0x8086 0x7111 
	20h port 0x00001050 0x00000010
		[OK]
000:07:2 0x8086 0x7112 
	20h port 0x00001060 0x00000020
		[OK]
000:07:3 0x8086 0x7113 
		[OK]
000:08:0 0x125d 0x1978 
	10h port 0x00001400 0x00000100
		[OK]
--------------------------[  0 devices bogus]
mainbus0 (root)
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled
pchb0 at pci0 dev 0 function 0
pchb0: Intel 82443BX Host Bridge/Controller (rev. 0x03)
ppb0 at pci0 dev 1 function 0: Intel 82443BX AGP Interface (rev. 0x03)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
vga1 at pci1 dev 0 function 0: ATI Technologies Mach64 LM (rev. 0x64)
wsdisplay0 at vga1: console (80x25, vt100 emulation)
cbb0 at pci0 dev 4 function 0: Texas Instruments PCI1225 PCI-CardBus Bridge (rev. 0x01)
cbb1 at pci0 dev 4 function 1: Texas Instruments PCI1225 PCI-CardBus Bridge (rev. 0x01)
pcib0 at pci0 dev 7 function 0
pcib0: Intel 82371AB PCI-to-ISA Bridge (PIIX4) (rev. 0x02)
pciide0 at pci0 dev 7 function 1: Intel 82371AB IDE controller (PIIX4) (rev. 0x01)
pciide0: bus-master DMA support present
pciide0: primary channel wired to compatibility mode
wd0 at pciide0 channel 0 drive 0: <IBM-DARA-212000>
wd0: drive supports 16-sector pio transfers, lba addressing
wd0: 11513 MB, 16383 cyl, 16 head, 63 sec, 512 bytes/sect x 23579136 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 4
pciide0: primary channel interrupting at irq 14
wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2 (using DMA data transfers)
pciide0: secondary channel wired to compatibility mode
pciide0: disabling secondary channel (no drives)
uhci0 at pci0 dev 7 function 2: Intel 82371AB USB Host Controller (PIIX4) (rev. 0x01)
uhci0: interrupting at irq 5
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
Intel 82371AB Power Management Controller (PIIX4) (miscellaneous bridge, revision 0x03) at pci0 dev 7 function 3 not configured
ESS Technology Inc Maestro 2E PCI Audio Accelerator (audio multimedia, revision 0x10) at pci0 dev 8 function 0 not configured
cbb0: interrupting at irq 11
cbb0: cacheline 0x0 lattimer 0x20
cbb0: bhlc 0x821000 lscp 0x20020200
cardslot0 at cbb0 slot 0 flags 0
cardbus0 at cardslot0: bus 2 device 0 cacheline 0x0, lattimer 0x20
pcmcia0 at cardslot0
cbb1: interrupting at irq 11
cbb1: cacheline 0x0 lattimer 0x20
cbb1: bhlc 0x821000 lscp 0x20030300
cardslot1 at cbb1 slot 1 flags 0
cardbus1 at cardslot1: bus 3 device 0 cacheline 0x0, lattimer 0x20
pcmcia1 at cardslot1
isa0 at pcib0
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pms0 mux 0
lpt0 at isa0 port 0x378-0x37b irq 7
pcppi0 at isa0 port 0x61
midi0 at pcppi0: PC speaker
sysbeep0 at pcppi0
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
npx0 at isa0 port 0xf0-0xff: using exception 16
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
isapnp0: no ISA Plug 'n Play devices found
biomask ef6d netmask ef6d ttymask ffef
md0: internal 2048K image area
wd0: no disk label
boot device: fd0
root on md0a dumps on md0b
root file system type: ffs
tlp0 at cardbus0 dev 0 function 0: Xircom X3201-3 Ethernet, pass 0.3
tlp0: Ethernet address 00:10:a4:c1:fa:29
tqphy0 at tlp0 phy 0: 78Q2120 10/100 media interface, rev. 10
tqphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
com3 at cardbus0 dev 0 function 1: Xircom CardBus Ethernet 10/100 + Modem 56
com3: ns16550a, working fifo
tlp0: interrupting at 11