Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Aug 2004 09:52:02 -0700 (PDT)
From:      Rostislav Krasny <rosti_bsd@yahoo.com>
To:        Dan Nelson <dnelson@allantgroup.com>
Cc:        freebsd-arch@freebsd.org
Subject:   Re: adv(4) bandaid [Was Re: again question about "IRQ 2 problem"]
Message-ID:  <20040811165202.51422.qmail@web14822.mail.yahoo.com>
In-Reply-To: <20040811022753.GD6474@dan.emsphone.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--- Dan Nelson <dnelson@allantgroup.com> wrote:
> In the last episode (Aug 10), Rostislav Krasny said:
> > unknown: <PNP0303> can't assign resources (port)
> > unknown: <PNP0303> at port 0x60 on isa0
> > unknown: <PNP0800> failed to probe at port 0x61 on isa0
> > unknown: <PNP0a03> can't assign resources (port)
> > unknown: <PNP0a03> at port 0x4d0-0x4d1 on isa0
> > unknown: <PNP0c02> can't assign resources (port)
> > unknown: <PNP0c02> at port 0x208-0x20f on isa0
> > unknown: <PNP0501> can't assign resources (port)
> > unknown: <PNP0501> at port 0x3f8-0x3ff on isa0
> > unknown: <PNP0700> can't assign resources (port)
> > unknown: <PNP0700> at port 0x3f2-0x3f5 on isa0
> > unknown: <PNP0401> can't assign resources (port)
> > unknown: <PNP0401> at port 0x378-0x37f on isa0
> > unknown: <PNP0501> can't assign resources (port)
> > unknown: <PNP0501> at port 0x2f8-0x2ff on isa0
> > 
> > P.S. What are these "unknown: <PNPXXXX>..." messages? I don't have
> > so many PnP devices. And my speaker (port 0x61) is working
> > properly. I even can run 'kldload -v /boot/kernel/speaker.ko' and
> > then 'morse -p -e -w 23 I am a 5.2-CURRENT, test me.' :-)
> 
> PNP* devices are standard motherboard resources, like the keyboard
> (PNP0303) and serial port (PNP0501).  There's a table at
> http://www.plasma-online.de/english/identify/serial/pnp_id_pnp.html
> that lists a lot of them.  My -current kernel correctly matches these
> up to known devices, though:
> 
> $ devinfo -v | grep PNP0303
>     atkbdc0 pnpinfo _HID=PNP0303 _UID=0 at
handle=\_SB_.PCI0.ISA_.KBC_

After a little googling I've found that PNPXXXX strings are "Microsoft
PnP Device Identification Codes". According to
http://www.mclibrary.edu.mn/itbooks/repair_pcs/Chapter_35.pdf all
devices in PnP compatable system should have such a code:

==== start of citation ====
For the PC to recognize and configure a PnP device, each and every
device must be able to identify itself and its resource requirements to
the system—even motherboard busses and devices must be able to identify
themselves. Identification is accomplished through a seven-character
code. Each manufacturer is assigned a three-character prefix, the
following character identifies the device type, and the remaining three
characters identify the particular device. For example, the PnP code
PNP0907 identifies a “Western Digital VGA” device adapter. Microsoft
reserves the code “PNP” for itself, but other manufacturers are
assigned their own codes (e.g., Creative Labs uses the “CTL” prefix).
The advantage of Microsoft’s prefixes is that they are “generic,” and
you can usually identify a device adequately by utilizing the Microsoft
generic equivalent.
===== end of citation =====

In my system the output of 'devinfo -v | grep PNP0303' is nothing. But
output of 'devinfo -v | grep pnpinfo' is as following:

# devinfo -v | grep pnpinfo
        hostb0 pnpinfo vendor=0x8086 device=0x7100 subvendor=0x0000
subdevice=0x0000 class=0x060000 at slot=0 function=0
        isab0 pnpinfo vendor=0x8086 device=0x7110 subvendor=0x0000
subdevice=0x0000 class=0x060100 at slot=7 function=0
        atapci0 pnpinfo vendor=0x8086 device=0x7111 subvendor=0x0000
subdevice=0x0000 class=0x010180 at slot=7 function=1
        uhci0 pnpinfo vendor=0x8086 device=0x7112 subvendor=0x0000
subdevice=0x0000 class=0x0c0300 at slot=7 function=2
        piix0 pnpinfo vendor=0x8086 device=0x7113 subvendor=0x0000
subdevice=0x0000 class=0x068000 at slot=7 function=3
        xl0 pnpinfo vendor=0x10b7 device=0x9200 subvendor=0x10b7
subdevice=0x1000 class=0x020000 at slot=17 function=0
        unknown pnpinfo vendor=0x1002 device=0x4755 subvendor=0x1002
subdevice=0x4755 class=0x030000 at slot=19 function=0

What is the prospective behaviour of FreeBSD 5.2-CURRENT with those
PNP* devices like PNP0303 and PNP0800? This is an old Pentium MMX
200MHz, based on Intel 430TX chipset, system.


BTW I think I've found a bug in devinfo(8). Try following scenario on
your system:

1. log in as a root and make sure that 'speaker.ko' isn't loaded
automatically during boot
2. run 'kldload -v /boot/kernel/speaker.ko'
3. run 'kldunload speaker'
4. run devinfo -v

After the last step I've got following on the console:

Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0xc17429b7
fault code              = supervisor read, page not present
instruction pointer     = 0x8:0xc06597f0
stack pointer           = 0x10:0x857da18
frame pointer           = 0x10:0x857da24
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         = 492 (devinfo)
[thread 100059]
Stopped at      strlcpy+0x1c:   movb   0(%edx),%al
db> trace
strlcpy(c857da60,c17429b7,20) at strlcpy+0x1c
sysctl_devices(c084d9c0,c857dc90,2,c857dc08,c084d9c0) at
sysctl_devices()+0xb8
sysctl_root(0,c857dc84,5,c857dc08,c146e580) at sysctl_root()+0x11b
userland_sysctl(c146e580,c857dc84,5,bfbfeaf0,bfbfea50) at
userland_sysctl()+0xec
__sysctl(c146e580,c857dd14,6,9,292) at __sysctl()+0x71
syscall(2f,2f,2f,5,bfbfea50) at syscall()+0x217
Xint80_syscall() at Xint80_syscall()+0x1f
--- syscall (202, FreeBSD ELF32, __sysctl), eip = 0x280c3723, esp =
0xbfbfe9dc, ebp = 0xbfbfea18 ---
db> 


		
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - Send 10MB messages!
http://promotions.yahoo.com/new_mail 



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