From owner-freebsd-mobile Fri Dec 1 6:16:45 2000 Delivered-To: freebsd-mobile@freebsd.org Received: from sunpal1.mit.edu (SUNPAL1.MIT.EDU [18.62.1.15]) by hub.freebsd.org (Postfix) with ESMTP id 542E837B400 for ; Fri, 1 Dec 2000 06:16:35 -0800 (PST) Received: (from wjc@localhost) by sunpal1.mit.edu (8.9.0/8.9.0) id JAA09509; Fri, 1 Dec 2000 09:16:32 -0500 (EST) Date: Fri, 1 Dec 2000 09:16:32 -0500 (EST) Message-Id: <200012011416.JAA09509@sunpal1.mit.edu> From: Bill Chiarchiaro To: freebsd-mobile@freebsd.org Subject: -STABLE PNPBIOS / PC Card / Sound problem on IBM 600E Reply-To: wjc@work.cleartech.com Sender: owner-freebsd-mobile@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org I've run into a problem going from 4.1-RELEASE to -STABLE on my IBM 600E. The machine is experiencing hangs, apparently related to the PNPBIOS kernel option. Under 4.1-RELEASE, I had included 'options PNPBIOS' and 'device pcm' in my kernel conf file to get the sound hardware to work. Sound worked well, except for the known problems of non-deterministic probing, driver confusion across an APM suspend / resume cycle, and low record volume (I've seen Jonathan Chen's sys/conf/files patch for the first problem, and I've found fixes from the Linux folks for the other two). A nearly full set of sample rate, data format, and mono / stereo capabilities was reported by 'mpg123 -vv'. On November 13, I started to track -STABLE. I used my existing conf file to build a new kernel. The updated system booted to multi-user, I logged in, and it hanged after about 30 seconds. When this problem occurs, there is no panic or other message. The system does not respond to the keyboard; I can't even drop into the kernel debugger. However, some interrupt processing still takes place. If I pull a PC Card, a removal message is printed on the console. I power cycled the system and booted single-user. I built another kernel using the -STABLE GENERIC conf file. The system worked fine single-user, and it worked fine multi-user with the GENERIC kernel. I began trimming the conf file and adding back the features I needed. I most recently synced with -STABLE on November 28, and the problem is still present. Here's what I've been able to determine: The problem happens only if 'options PNPBIOS' is in the kernel conf. The problem is stimulated by PC Card activities. The PC Cards I'm using are a 3Com 3CXM556 modem and a 3Com 3C589D NIC. The guilty activities have changed as I've varied the kernel conf file or made other changes to the source. At first, the guilty activities were: Booting with PC Cards installed. Removing or inserting a card once the system was running. Trying to use a card (e.g. invoking kermit on the modem). As of now, the only guilty activity is booting with the cards installed. If I insert them after the system is up, the problem does not occur (I can remove and insert repeatedly and make use of the cards). I have applied Jonathan Chen's sys/conf/files patch, and pcm0 is being found at boot time. Unfortunately, the set of capabilities as reported by 'mpg123 -vv' is now very meager --- just mono at 8,000 and 11,025 samples/second. This is with 'options PNPBIOS' and 'device pcm' in the kernel conf. The behavior is the same whether or not 'device csa' is also in the conf. I wondered if the hanging problem is due to an interrupt conflict, but why wouldn't it have been a problem under 4.1-RELEASE? Appended below are a cat of /dev/sndstat, the output of 'vmstat -i', my current kernel conf, and a recent /var/run/dmesg.boot. This kernel conf and the dmesg.boot are with 'device csa'. The system was booted without the CD-ROM drive installed (which uses ata1 / irq15 when installed). Suggestions, anyone? Thanks, Bill Chiarchiaro wjc@work.cleartech.com FreeBSD Audio Driver (newpcm) Nov 30 2000 17:06:32 Installed devices: pcm0: at io 0x530 irq 5 drq 1:0 (1p/1r channels duplex) interrupt total rate stray irq10 2 0 ata0 irq14 57052 1 fdc0 irq6 3 0 atkbd0 irq1 17333 0 psm0 irq12 84900 1 pcic0 irq3 22 0 sio0 irq4 2333 0 ppc0 irq7 1 0 pcm0 irq5 270 0 clk irq0 4743370 99 rtc irq8 6071836 127 ep0 irq10 734543 15 sio4 irq9 317 0 Total 11711982 246 # # ROSENECK -- IBM ThinkPad 600E kernel configuration file for FreeBSD/i386 # # For more information on this file, please read the handbook section on # Kernel Configuration Files: # # http://www.FreeBSD.org/handbook/kernelconfig-config.html # # The handbook is also available locally in /usr/share/doc/handbook # if you've installed the doc distribution, otherwise always see the # FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the # latest information. # # An exhaustive list of options and more detailed explanations of the # device lines is also present in the ./LINT configuration file. If you are # in doubt as to the purpose or necessity of a line, check first in LINT. # # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.20 2000/10/31 23:16:07 n_hibma Exp $ machine i386 cpu I686_CPU ident ROSENECK maxusers 32 options DDB options INCLUDE_CONFIG_FILE #Include this file in kernel options INET #InterNETworking options INET6 #IPv6 communications protocols options IPSEC #IP security options IPSEC_ESP #IP security (crypto; define w/ IPSEC) options FFS #Berkeley Fast Filesystem options FFS_ROOT #FFS usable as root device [keep this!] options SOFTUPDATES #Enable FFS soft updates support options MFS #Memory Filesystem options MD_ROOT #MD is a potential root device options NFS #Network Filesystem options NFS_ROOT #NFS usable as root device, NFS required options MSDOSFS #MSDOS Filesystem options CD9660 #ISO 9660 Filesystem options CD9660_ROOT #CD-ROM usable as root, CD9660 required options PROCFS #Process filesystem options KERNFS #Kernel filesystem options CODA #CODA 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 SYSVSHM #SYSV-style shared memory options SYSVMSG #SYSV-style message queues options SYSVSEM #SYSV-style semaphores options P1003_1B #Posix P1003_1B real-time extensions options _KPOSIX_PRIORITY_SCHEDULING options _KPOSIX_VERSION=199309L options PERFMON options ICMP_BANDLIM #Rate limit bad replies options KBD_INSTALL_CDEV # install a CDEV entry in /dev options IPFILTER #ipfilter support options IPFILTER_DEFAULT_BLOCK options IPFILTER_LOG #ipfilter logging options IPSTEALTH #support for stealth forwarding options TCP_DROP_SYNFIN #drop TCP packets with SYN+FIN options TCP_RESTRICT_RST #restrict emission of TCP RST options PERFMON device isa device pci # Floppy drives device fdc0 at isa? port IO_FD1 irq 6 drq 2 device fd0 at fdc0 drive 0 # ATA and ATAPI devices device ata device atadisk # ATA disk drives device atapicd # ATAPI CDROM drives options ATA_STATIC_ID #Static device numbering options ATA_ENABLE_ATAPI_DMA #Enable DMA on ATAPI devices # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc0 at isa? port IO_KBD device atkbd0 at atkbdc? irq 1 flags 0x1 device psm0 at atkbdc? irq 12 device vga0 at isa? # splash screen/screen saver pseudo-device splash # syscons is the default console driver, resembling an SCO console device sc0 at isa? flags 0x100 options SC_DISABLE_REBOOT # disable reboot key sequence # Floating point support - do not disable. device npx0 at nexus? port IO_NPX irq 13 # Power management support (see LINT for more options) device apm0 at nexus? # Advanced Power Management # PCCARD (PCMCIA) support device card device pcic0 at isa? # Serial (COM) ports device sio0 at isa? port IO_COM1 flags 0x10 irq 4 device sio1 at isa? disable device sio2 at isa? disable device sio3 at isa? disable # Parallel port device ppc0 at isa? irq 7 port 0x3bc flags 0x8 device ppbus # Parallel port bus (required) device lpt # Printer device plip # TCP/IP over parallel device ppi # Parallel port interface device # ISA Ethernet NICs. device ed0 at isa? port 0x280 irq 10 iomem 0xd8000 device ep # WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really # exists only as a PCMCIA device, so there is no ISA attatement needed # and resources will always be dynamically assigned by the pccard code. device wi # Pseudo devices - the number indicates how many units to allocated. pseudo-device loop # Network loopback pseudo-device ether # Ethernet support pseudo-device sl 1 # Kernel SLIP pseudo-device ppp 2 # Kernel PPP pseudo-device tun # Packet tunnel. pseudo-device pty # Pseudo-ttys (telnet etc) pseudo-device md # Memory "disks" pseudo-device gif 4 # IPv6 and IPv4 tunneling pseudo-device faith 1 # IPv6-to-IPv4 relaying (translation) pseudo-device stf 1 #6to4 IPv6 over IPv4 encapsulation pseudo-device vn #Vnode driver (turns a file into a device) pseudo-device snp 3 #Snoop device - to look at pty/vty/etc.. pseudo-device vcoda 4 #coda minicache <-> venus comm. # The `bpf' pseudo-device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! pseudo-device bpf #Berkeley packet filter # USB support #device uhci # UHCI PCI->USB interface #device ohci # OHCI PCI->USB interface #device usb # USB Bus (required) #device ugen # Generic #device uhid # "Human Interface Devices" #device ukbd # Keyboard #device ulpt # Printer #device ums # Mouse #device uscanner # Scanners options PNPBIOS device pcm device csa #device pcm0 at isa? port 0x530 irq 5 drq 1 flags 0x10 #device snd #device sb0 at isa? port 0x220 irq 5 drq 1 Copyright (c) 1992-2000 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 4.2-STABLE #5: Thu Nov 30 18:00:52 EST 2000 wjc@roseneck.cleartech.com:/home/wjc/FreeBSD-T-RELENG_4/src/sys/compile/ROSENECK Timecounter "i8254" frequency 1193182 Hz CPU: Pentium II/Pentium II Xeon/Celeron (363.96-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x66a Stepping = 10 Features=0x183f9ff real memory = 134021120 (130880K bytes) config> di sio1 config> di sn0 No such device: sn0 Invalid command or syntax. Type `?' for help. config> di lnc0 No such device: lnc0 Invalid command or syntax. Type `?' for help. config> di le0 No such device: le0 Invalid command or syntax. Type `?' for help. config> di ie0 No such device: ie0 Invalid command or syntax. Type `?' for help. config> di fe0 No such device: fe0 Invalid command or syntax. Type `?' for help. config> di ed0 config> di cs0 No such device: cs0 Invalid command or syntax. Type `?' for help. config> di bt0 No such device: bt0 Invalid command or syntax. Type `?' for help. config> di ata1 No such device: ata1 Invalid command or syntax. Type `?' for help. config> di aic0 No such device: aic0 Invalid command or syntax. Type `?' for help. config> di aha0 No such device: aha0 Invalid command or syntax. Type `?' for help. config> di adv0 No such device: adv0 Invalid command or syntax. Type `?' for help. config> en pcic0 config> po pcic0 0x3e0 config> ir pcic0 3 config> iom pcic0 0xd0000 config> f pcic0 0 config> q avail memory = 126664704 (123696K bytes) Preloaded elf kernel "kernel" at 0xc03c6000. Preloaded userconfig_script "/boot/kernel.conf" at 0xc03c609c. Pentium Pro MTRR support enabled md0: Malloc disk apm0: on motherboard apm: found APM BIOS v1.2, connected at v1.2 npx0: on motherboard npx0: INT 16 interface pcib0: on motherboard pci0: on pcib0 pcib1: at device 1.0 on pci0 pci1: on pcib1 pci1: at 0.0 irq 11 pcic-pci0: mem 0x50102000-0x50102fff irq 11 at device 2.0 on pci0 pcic-pci0: TI12XX PCI Config Reg: [ring enable][speaker enable][pwr save][CSC parallel isa irq] pcic-pci1: mem 0x50101000-0x50101fff irq 11 at device 2.1 on pci0 pcic-pci1: TI12XX PCI Config Reg: [ring enable][speaker enable][pwr save][CSC parallel isa irq] csa0: mem 0x50000000-0x500fffff,0x50100000-0x50100fff irq 11 at device 6.0 on pci0 device_probe_and_attach: csa0 attach returned 6 isab0: at device 7.0 on pci0 isa0: on isab0 atapci0: port 0xfcf0-0xfcff at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 pci0: at 7.2 irq 11 chip1: port 0xefa0-0xefaf at device 7.3 on pci0 fdc0: at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold atkbdc0: at port 0x60,0x64 on isa0 atkbd0: flags 0x1 irq 1 on atkbdc0 kbd0 at atkbd0 psm0: irq 12 on atkbdc0 psm0: model Generic PS/2 mouse, device ID 0 vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> pcic0: at port 0x3e0 iomem 0xd0000 irq 3 drq 0 on isa0 pcic0: management irq 3 pccard0: on pcic0 pccard1: on pcic0 sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A ppc0: at port 0x3bc-0x3bf irq 7 flags 0x8 on isa0 ppc0: Generic chipset (ECP-only) in ECP mode ppc0: FIFO with 16/16/8 bytes threshold lpt0: on ppbus0 lpt0: Interrupt-driven port ppi0: on ppbus0 plip0: on ppbus0 unknown: can't assign resources unknown: can't assign resources unknown: can't assign resources unknown: can't assign resources unknown: can't assign resources unknown: can't assign resources pcm0: at port 0x530-0x537,0x388-0x38b,0x220-0x233 irq 5 drq 1,0 on isa0 unknown: can't assign resources unknown: can't assign resources unknown: can't assign resources unknown: can't assign resources IPsec: Initialized Security Association Processing. IP Filter: v3.4.8 initialized. Default = block all, Logging = enabled ad0: 11513MB [23392/16/63] at ata0-master UDMA33 Mounting root from ufs:/dev/ad0s1a To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-mobile" in the body of the message