Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Mar 2000 14:44:11 +0200
From:      sthaug@nethelp.no
To:        imp@village.org
Cc:        sanpei@sanpei.org, freebsd-mobile@FreeBSD.ORG
Subject:   Re: HEADSUP: CARDBUS BRIDGE PUT INTO LEGACY MODE NOW
Message-ID:  <90495.954074651@verdi.nethelp.no>
In-Reply-To: Your message of "Sat, 25 Mar 2000 13:32:16 -0700"
References:  <200003252032.NAA73353@harmony.village.org>

next in thread | previous in thread | raw e-mail | index | archive | help
> I have just commited a (hopefully) improved version of this patch.
> This patch turned out to be a superset of what I had done before, and
> didn't contain some of the bugs that my earlier patches had.
> 
> Please let me know if this impacts your ability to use the laptop.  I
> took the extraordinary step of always trying to place the cardbus
> bridge into legacy mode.

I have an Acer Extensa 390 with TI 1250 cardbus bridges, which normally
runs 3.2-PAO. I had tried 4.0 earlier without much success, and decided
to give it a whirl after this change. Unfortunately, not much success
this time either. I get the following crash while booting - I have no
idea whether this is related to your changes or not:

...
pcic0 at port 0x30 iomem 0xd0000 irq 11 on isa0
pcic ident regs: 0x84 0x84 0x00 0x00
pcic0: controller 0 (Intel 82365SL Revision 1) has sockets A and B
pcic_attach_card h 0xc07d9048 h->dev 0xc07dae80
pccard0: pccard_card_attach

Fatal trap 12: page fault while in kernel mode
fault virtual address	= 0x128
fault code		= supervisor write, page not present
instruction pointer	= 0x8:0xc011dc0e
stack pointer		= 0x10:0xc0279b08
frame pointer		= 0x10:0xc0279b10
code segment		= base 0x0, limit 0xfffff, type 0x1b
			= DPL 0, pres 1, def32 1, gran 1
processor eflags	= interrupt enabled, resume, IOPL = 0
current process		= 0 (swapper)
interrupt mask		= net tty bio cam
kernel: type 12 trap, code=0
Stopped at	pccard_card_attach+0x2a:	movl	$0,0x128(%ebx)
db> t
pccard_card_attach(c07dae80, ...) at pccard_card_attch+0x2a
pcic_attach_card(c07d9048, ...) at pcic_attach_card+0x2f
pcic_init_socket(c07d9048, ...) at pcic_init_socket+0xac
...

Looking at the code in pccard_card_attach(), since it never gets to

	DEVPRINTF((dev, "chip_socket_enable\n"));

I assume it crashes at this line:

	STAILQ_INIT(&sc->card.pf_head);

This is the kernel config I'm using:

machine		i386
cpu		I586_CPU
ident		CARRIE
maxusers	32

makeoptions	DEBUG=-g		#Build kernel with gdb(1) debug symbols

options 	MATH_EMULATE		#Support for x87 emulation
options 	INET			#InterNETworking
options 	FFS			#Berkeley Fast Filesystem
options 	FFS_ROOT		#FFS usable as root device [keep this!]
options 	PROCFS			#Process filesystem
options 	COMPAT_43		#Compatible with BSD 4.3 [KEEP THIS!]
options 	UCONSOLE		#Allow users to grab the console
options 	USERCONFIG		#boot -c editor
options 	VISUAL_USERCONFIG	#visual boot -c editor
options 	KTRACE			#ktrace(1) support
options		DDB

device		isa
device		pci
device		pccard

device		fdc0	at isa? port IO_FD1 irq 6 drq 2
device		fd0	at fdc0 drive 0

device		ata0	at isa? port IO_WD1 irq 14
device		ata1	at isa? port IO_WD2 irq 15
device		ata
device		atadisk			# ATA disk drives

device		atkbdc0	at isa? port IO_KBD
device		atkbd0	at atkbdc? irq 1
device		psm0	at atkbdc? irq 12
device		vga0	at isa?
device		sc0	at isa?
device		npx0	at nexus? port IO_NPX irq 13
device		apm0    at nexus? flags 0x20 # Advanced Power Management
device		pcic0	at isa? port 0x3e0 irq 11 iomem 0xd0000
device		sio0	at isa? port IO_COM1 flags 0x10 irq 4
device		sio1	at isa? port IO_COM2 irq 3

device		ep

pseudo-device	loop		# Network loopback
pseudo-device	ether		# Ethernet support
pseudo-device	pty		# Pseudo-ttys (telnet etc)

For reference, below is the 3.2-PAO configuration and the corresponding
messages from a verbose boot.

Steinar Haug, Nethelp consulting, sthaug@nethelp.no
----------------------------------------------------------------------
#	From: $Id: GENERIC,v 1.143.2.15 1999/06/19 21:37:44 wpaul Exp $

machine		"i386"
cpu		"I586_CPU"
ident		GENERIC
maxusers	32

options		MATH_EMULATE		#Support for x87 emulation
options		INET			#InterNETworking
options		FFS			#Berkeley Fast Filesystem
options		FFS_ROOT		#FFS usable as root device [keep this!]
options		NFS			#Network Filesystem
options		NFS_ROOT		#NFS usable as root device, "NFS" req'ed
options		MSDOSFS			#MSDOS Filesystem
options		"EXT2FS"
options		"CD9660"		#ISO 9660 Filesystem
options		"CD9660_ROOT"		#CD-ROM usable as root. "CD9660" req'ed
options		PROCFS			#Process filesystem
options		"COMPAT_43"		#Compatible with BSD 4.3 [KEEP THIS!]
options		UCONSOLE		#Allow users to grab the console
options		USERCONFIG		#boot -c editor
options		VISUAL_USERCONFIG	#visual boot -c editor
options		KTRACE			#kernel tracing
options		SYSVSHM
options		SYSVMSG
options		MSGBUF_SIZE=32768
options		INCLUDE_CONFIG_FILE	# Include this file in kernel
options		DDB
options		SOFTUPDATES

# You may need to reset all pccards after resuming
options		PCIC_RESUME_RESET

# PAO Enhanced PCI-PCIC support (experimental)
#options	CB_TEST
#options	FORCE_IRQ_ROUTING

config		kernel	root on wd0

controller	isa0
controller	pnp0
controller	pci0

# Dont remove these two lines!
pseudo-device	card	1

device		pcic0   at isa? port 0x3e0 irq 11
device		pcic0   at isa? port 0x3e4 irq 11

controller	fdc0	at isa? port "IO_FD1" bio irq 6 drq 2
disk		fd0	at fdc0 drive 0

options		"CMD640"	# work around CMD640 chip deficiency
controller	wdc0	at isa? port "IO_WD1" bio irq 14 flags 0xa0ffa0ff
disk		wd0	at wdc0 drive 0
controller	wdc1	at isa? port "IO_WD2" bio irq 15 flags 0xa0ffa0ff
options		ATAPI		#Enable ATAPI support for IDE bus
options		ATAPI_STATIC	#Don't do it as an LKM
device		acd0		#IDE CD-ROM

controller	atkbdc0	at isa? port IO_KBD tty
device		atkbd0	at isa? tty irq 1
device		psm0	at isa? tty irq 12
device		vga0	at isa? port ? conflicts
device		sc0	at isa? tty
device		npx0	at isa? port IO_NPX irq 13
device		apm0    at isa?		# Advanced Power Management
device		sio0	at isa? port "IO_COM1" flags 0x10 tty irq 4
device		sio1	at isa? port "IO_COM2" tty irq 3

device		ppc0	at isa? port? flags 0x40 net irq 7
controller	ppbus0
device		lpt0	at ppbus?
device		plip0	at ppbus?
device		ppi0	at ppbus?

device		pcm0	at isa? port? tty irq 5 drq 0 flags 0x17 vector pcmintr

device ed0 at isa? port 0x280 net irq 10 iomem 0xd8000
device ep0 at isa? port 0x300 net irq 10

pseudo-device	loop
pseudo-device	ether
pseudo-device	ppp	1
pseudo-device	tun	1
pseudo-device	pty	16
pseudo-device	gzip		# Exec gzipped a.out's
pseudo-device	bpfilter 4	#Berkeley packet filter
----------------------------------------------------------------------
Copyright (c) 1992-1999 FreeBSD Inc.
Copyright (c) 1982, 1986, 1989, 1991, 1993
	The Regents of the University of California. All rights reserved.
FreeBSD 3.2-STABLE #0: Mon Jun 21 23:37:24 CEST 1999
    sthaug@carrie.nethelp.no:/local/freebsd/src/sys/compile/CARRIE_PAO
Calibrating clock(s) ... TSC clock: 166645297 Hz, i8254 clock: 1193265 Hz
CLK_USE_I8254_CALIBRATION not specified - using default frequency
Timecounter "i8254"  frequency 1193182 Hz
CLK_USE_TSC_CALIBRATION not specified - using old calibration method
CPU: Pentium/P55C (166.63-MHz 586-class CPU)
  Origin = "GenuineIntel"  Id = 0x543  Stepping=3
  Features=0x8001bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX>
real memory  = 50331648 (49152K bytes)
Physical memory chunk(s):
0x00001000 - 0x0009efff, 647168 bytes (158 pages)
0x002d1000 - 0x02ff7fff, 47345664 bytes (11559 pages)
avail memory = 46153728 (45072K bytes)
Found BIOS32 Service Directory header at 0xc00f0280
Entry = 0xf0210 (0xc00f0210)  Rev = 0  Len = 1
PCI BIOS entry at 0x0
Other BIOS signatures found:
ACPI: 00000000
$PnP: 000f53e0
Preloaded elf kernel "kernel" at 0xc02bc000.
Math emulator present
pci_open(1):	mode 1 addr port (0x0cf8) is 0x00000000
pci_open(1a):	mode1res=0x80000000 (0x80000000)
pci_cfgcheck:	device 0 [class=060000] [hdr=00] is there (id=153110b9)
Probing for devices on PCI bus 0:
found->	vendor=0x10b9, dev=0x1531, revid=0xb3
	class=06-00-00, hdrtype=0x00, mfdev=0
	subordinatebus=0 	secondarybus=0
chip0: <Host to PCI bridge (vendor=10b9 device=1531)> rev 0xb3 on pci0.0.0
found->	vendor=0x10b9, dev=0x1533, revid=0x07
	class=06-01-00, hdrtype=0x00, mfdev=0
	subordinatebus=0 	secondarybus=0
chip1: <AcerLabs M1533 portable PCI-ISA bridge> rev 0x07 on pci0.2.0
found->	vendor=0x104c, dev=0xac16, revid=0x02
	class=06-07-00, hdrtype=0x02, mfdev=1
	subordinatebus=0 	secondarybus=0
	intpin=a, irq=9
pcic0: <TI PCI-1250 PCI-CardBus Bridge> rev 0x02 int a irq 9 on pci0.5.0
bus = 0, slot = 5, func = 0
TI12XX PCI Config Reg: [ring enable][pwr save][CSC parallel isa irq]
pcic0, Legacy PC-card 16bit I/O address [0x3e0]
PCI Config space:
00:  ac16104c 02100007 06070002 00822000
10:  00000000 020000a0 00000000 00000000
20:  00000000 00000000 00000000 00000000
30:  00000000 00000000 00000000 03c00109
40:  00000000 000003e1 00000000 00000000
50:  00000000 00000000 00000000 00000000
60:  00000000 00000000 00000000 00000000
70:  00000000 00000000 00000000 00000000
80:  08449060 00000000 01898181 f0ba9597
90:  616280c0 00000000 00000000 00000000
a0:  7e210001 00808000 00000000 00000000
b0:  00000000 00000000 00000000 00000000
c0:  00000000 00000000 00000000 00000000
d0:  00000000 00000000 00000000 00000000
e0:  00000000 00000000 00000000 00000000
f0:  00000000 00000000 00000000 00000000
found->	vendor=0x104c, dev=0xac16, revid=0x02
	class=06-07-00, hdrtype=0x02, mfdev=1
	subordinatebus=0 	secondarybus=0
	intpin=b, irq=9
pcic1: <TI PCI-1250 PCI-CardBus Bridge> rev 0x02 int b irq 9 on pci0.5.1
bus = 0, slot = 5, func = 1
TI12XX PCI Config Reg: [ring enable][pwr save][CSC parallel isa irq]
PCI Config space:
00:  ac16104c 02100003 06070002 00822000
10:  00000000 020000a0 00000000 00000000
20:  00000000 00000000 00000000 00000000
30:  00000000 00000000 00000000 03c00209
40:  00000000 000003e1 00000000 00000000
50:  00000000 00000000 00000000 00000000
60:  00000000 00000000 00000000 00000000
70:  00000000 00000000 00000000 00000000
80:  08449060 00000000 01898181 f0ba9597
90:  616280c0 00000000 00000000 00000000
a0:  7e210001 00800000 00000000 00000000
b0:  00000000 00000000 00000000 00000000
c0:  00000000 00000000 00000000 00000000
d0:  00000000 00000000 00000000 00000000
e0:  00000000 00000000 00000000 00000000
f0:  00000000 00000000 00000000 00000000
found->	vendor=0x102c, dev=0x00e5, revid=0xc6
	class=03-00-00, hdrtype=0x00, mfdev=0
	subordinatebus=0 	secondarybus=0
	map[0]: type 1, range 32, base 04000000, size 24
vga0: <Chips & Technologies model 00e5 VGA-compatible display device> rev 0xc6 on pci0.6.0
found->	vendor=0x10b9, dev=0x5229, revid=0x20
	class=01-01-8a, hdrtype=0x00, mfdev=0
	subordinatebus=0 	secondarybus=0
	intpin=a, irq=255
	map[0]: type 4, range 32, base 0000f000, size  4
ide_pci0: <Acer Aladdin IV/V (M5229) Bus-master IDE controller> rev 0x20 int a irq 255 on pci0.11.0
found->	vendor=0x10b9, dev=0x7101, revid=0x00
	class=06-80-00, hdrtype=0x00, mfdev=0
	subordinatebus=0 	secondarybus=0
	map[0]: type 4, range 32, base 00000000, size  6
	map[1]: type 4, range 32, base 00000000, size  5
chip2: <PCI to 0x80 bridge (vendor=10b9 device=7101)> rev 0x00 on pci0.12.0
Initializing PnP override table
Probing for PnP devices:
Trying Read_Port at 203
CSN 1 Vendor ID: YMH0800 [0x0008a865] Serial 0xffffffff Comp ID: @@@0000 [0x00000000]
Called nullpnp_probe with tag 0x00000001, type 0x0008a865
port 0x0000 0x0000 0x0000 0x0000 irq 0:0 drq 4:4 en 0
This is a Yamaha YMF719 OPL-SA3, but LDN 0 is disabled
Probing for devices on the ISA bus:
atkbd: the current kbd controller command byte 0065
atkbd: keyboard ID 0x54ab (3)
kbdc: RESET_KBD return code:00fa
kbdc: RESET_KBD status:00aa
sc0 on isa
sc0: fb0 kbd0
sc0: VGA color <16 virtual consoles, flags=0x0>
ed0 not found at 0x280
atkbdc0 at 0x60-0x6f on motherboard
atkbd0 irq 1 on isa
kbd0: atkbd0, generic (3), config:0x0, flags:0x3d0000
psm0: current command byte:0065
kbdc: TEST_AUX_PORT status:0000
kbdc: RESET_AUX return code:00fa
kbdc: RESET_AUX status:00aa
kbdc: RESET_AUX ID:0000
psm: status 00 02 64
psm: status 00 00 64
psm: status 00 03 64
psm: status 00 03 64
psm: status 10 00 64
psm: data 08 00 00
psm: data 08 00 00
psm: status 00 02 64
psm0 irq 12 on isa
psm0: model Generic PS/2 mouse, device ID 0, 2 buttons
psm0: config:00000000, flags:00000000, packet size:3
psm0: syncmask:c0, syncbits:00
sio0: irq maps: 0x1 0x11 0x1 0x1
sio0 at 0x3f8-0x3ff irq 4 flags 0x10 on isa
sio0: type 16550A
sio1: irq maps: 0x1 0x9 0x1 0x1
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
mss_probe: no address supplied, try default 0x530
mss_detect error, busy still set (0xff)
sb_probe: no address supplied, try defaults (0x220,0x240)
pcm0 not found
fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa
fdc0: FIFO enabled, 8 bytes threshold
fd0: 1.44MB 3.5in
wdc0 at 0x1f0-0x1f7 irq 14 flags 0xa0ffa0ff on isa
wdc0: unit 0 (wd0): <HITACHI_DK226A-21U>, 32-bit, multi-block-16
wd0: 2061MB (4221504 sectors), 4188 cyls, 16 heads, 63 S/T, 512 B/S
wd0: ATA INQUIRE valid = 0007, dmamword = 0407, apio = 0003, udma = 0007
wdc1 at 0x170-0x177 irq 15 flags 0xa0ffa0ff on isa
wdc1: unit 0 (atapi): <UJDA110/1.05>, removable, accel, dma, iordy
acd0: drive speed 2416KB/sec, 128KB cache
acd0: supported read types: CD-DA
acd0: Audio: play, 16 volume levels
acd0: Mechanism: ejectable tray
acd0: Medium: no/blank disc inside, unlocked
ppc: parallel port found at 0x378
ppc: chipset forced to generic
ppc0: ECP SPP ECP+EPP SPP
ppc0 at 0x378 irq 7 flags 0x40 on isa
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/8 bytes threshold
lpt0: <generic printer> on ppbus 0
lpt0: Interrupt-driven port
ppi0: <generic parallel i/o> on ppbus 0
plip: irq 7
plip0: <PLIP network interface> on ppbus 0
bpf: lp0 attached
ep0 not found at 0x300
PCIC ID = 0x84
PCIC ID = 0x84
PCIC ID = 0x00
PCIC ID = 0x00
pcic0 at 0x3e0-0x3e1 irq 11 on isa
PC-Card ctlr(0) TI PCI-1250 [CardBus bridge mode] (5 mem & 2 I/O windows)
pcic0: slot 0 controller I/O address 0x3e0
pcic0: slot 1 controller I/O address 0x3e0
vga0 at 0x3b0-0x3df maddr 0xa0000 msize 131072 on isa
fb0: vga0, vga, type:VGA (5), flags:0x7007f
fb0: port:0x3b0-0x3df, crtc:0x3d4, mem:0xa0000 0x20000
fb0: init mode:24, bios mode:3, current mode:24
fb0: window:0xc00b8000 size:32k gran:32k, buf:0x0 size:0k
VGA parameters upon power-up
50 18 10 00 00 00 03 00 02 67 5f 4f 50 82 55 81 
bf 1f 00 4f 0d 0e 00 00 07 80 9c 8e 8f 28 1f 96 
b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 
3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff 
VGA parameters in BIOS for mode 24
50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 55 81 
bf 1f 00 4f 0d 0e 00 00 00 00 9c 8e 8f 28 1f 96 
b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 
3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff 
EGA/VGA parameters to be used for mode 24
50 18 10 00 10 00 03 00 02 67 5f 4f 50 82 55 81 
bf 1f 00 4f 0d 0e 00 00 00 00 9c 8e 8f 28 1f 96 
b9 a3 ff 00 01 02 03 04 05 14 07 38 39 3a 3b 3c 
3d 3e 3f 0c 00 0f 08 00 00 00 00 00 10 0e 00 ff 
npx0 on motherboard
npx0: INT 16 interface
i586_bzero() bandwidth = 174185681 bytes/sec
bzero() bandwidth = 751879699 bytes/sec
apm0 on isa
apm: found APM BIOS version 1.2
imasks: bio c008c040, tty c003101a, net c0060080
	device combination doesn't support shared irq3
	intr_connect(irq3) failed, result=-1
	device combination doesn't support shared irq4
	intr_connect(irq4) failed, result=-1
	device combination doesn't support shared irq7
	intr_connect(irq7) failed, result=-1
	device combination doesn't support shared irq11
	intr_connect(irq11) failed, result=-1
	device combination doesn't support shared irq12
	intr_connect(irq12) failed, result=-1
	device combination doesn't support shared irq14
	intr_connect(irq14) failed, result=-1
	device combination doesn't support shared irq15
	intr_connect(irq15) failed, result=-1
BIOS Geometries:
 0:00000000 0..0=1 cylinders, 0..0=1 heads, 1..0=0 sectors
 1:00000000 0..0=1 cylinders, 0..0=1 heads, 1..0=0 sectors
 2:00000000 0..0=1 cylinders, 0..0=1 heads, 1..0=0 sectors
 3:00000000 0..0=1 cylinders, 0..0=1 heads, 1..0=0 sectors
 4:00000000 0..0=1 cylinders, 0..0=1 heads, 1..0=0 sectors
 5:00000000 0..0=1 cylinders, 0..0=1 heads, 1..0=0 sectors
 6:00000000 0..0=1 cylinders, 0..0=1 heads, 1..0=0 sectors
 7:00000000 0..0=1 cylinders, 0..0=1 heads, 1..0=0 sectors
 0 accounted for
Device configuration finished.
Intel Pentium detected, installing workaround for F00F bug
bpf: tun0 attached
bpf: ppp0 attached
new masks: bio c008c040, tty c003101a, net c007109a
bpf: lo0 attached
Considering FFS root f/s.
changing root device to wd0s2a
wd0s1: type 0x6, start 63, end = 943487, size 943425 : OK
wd0s2: type 0xa5, start 943488, end = 4221503, size 3278016 : OK
start_init: trying /sbin/init
Card inserted, slot 0
ffs_mountfs: superblock updated for soft updates
ffs_mountfs: superblock updated for soft updates
ffs_mountfs: superblock updated for soft updates
card0: assign ep0 iobase 0x240 irq 10
ep0: utp/bnc[*UTP*] address 00:10:5a:2d:23:48
bpf: ep0 attached


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-mobile" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?90495.954074651>