Subject: panic: npxdna vector not initialized on INSTALL_TINY-current
To: None <port-i386@netbsd.org>
From: Martin Weber <Ephaeton@gmx.net>
List: port-i386
Date: 02/12/2002 22:23:09
Heya, I try to install NetBSD on my old Laptop, which was running with MS DOS
till now. It's a T(oshiba)3400 with a 486 DX (66 mhz), 4 MB RAM and a cute 120 MB
wd. Now I keep on having a panic when I try to disklabel the wd for the installation.
I'm not sure if this is due to too few memory, or if there is a bug in the npx code
for small kernels. I hope you can give me a pointer if it's the former, because then
I'll try to get some more memory.
     
The machine, booted using a INSTALL_TINY kernel:
NetBSD 1.5ZA (INSTALL_TINY) #2: Fri Feb  8 20:27:46 CET 2002
    root@phaeton.entropie.net:/usr/obj/sys/arch/i386/compile/INSTALL_TINY
cpu0: Intel 486DX (486-class)
total memory = 3964 KB
avail memory = 1232 KB
using 20 buffers containing 81920 of memory
mainbus0 (root)
isa0 at mainbus0
wdc0 at isa0 port 0x1f0-0x1f7 irq 14 drq
wd0 at wdc0 channel 0 drive 0: <TOSHIBA MK1522FCV>
wd0: drive supports 32-sector PIO transfers, chs addressing
wd0: 120 MB, 812 cyl, 8 head, 38 sec, 512 bytes/sect x 246848 sectors
pc0 at isa0 port 0x60-0x6f irq 1: color 
pc0: console
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB, 80 cyl, 2 head, 18 sec
pcic0 at isa0 port 0x3e0-0x3e1 iomem 0xd0000-0xdffff irq
pcic0: controller 0 (Intel 82365SL Revision 1) has socket A only
pcic0: controller 1 (Intel 82365SL Revision 1) has no sockets
pcmcia0 at pcic0 controller 0 socket 0
biomask fffd netmask fffd ttymask ffff 
pcic0: controller 0 detecting irqs with mask 0xde00:..9..10..11..15
pcic0: using irq 9 for socket events
md0: internal 1440 KB image area
boot device: fd0
root on md0a dumps on md0b
WARNING: clock time much less than file system time
WARNING: using file system time
WARNING: CHECK AND RESET THE DATE!
root file system type: ffs

It finds no npx (although that's a possibility due to the INSTALL_TINY :
 
     205 # Math Coprocessor support
     206 npx0    at isa? port 0xf0 irq 13        # x86 math coprocessor
 
It has Soft float emu, too:
 
      31 # CPU-related options.
      32 options         MATH_EMULATE    # floating point emulation
 
This is the soft emulation of a fpu, isn't it ?
 
I can boot the thing into the rescue-tiny or even run sysinst on the
boot-tiny image (NetBSD-current). But during sysinst it suddenly coughs out:
 
panic : npxdna vector not initialized
 
Plus something about it can't dump (sure, where to should it ? Can I dump on a
floppy ?), then it reboots. With the rescue-tiny I could track it to the use of
disklabel (due to the lack of script(1) on the image I had to copy this by fingers
and mind):
 
# disklabel -i -I wd0
>a
FS type ? : 4.2BSD
-> Panic (same message as above)
 
I was searching for the message in the sources:

sys/arch/i386/isa/npx.c:
 
     129 static int
     130 npxdna_notset(struct proc *p)
     131 {
     132
     133         panic("npxdna vector not initialized");
     134 }
     135
     136 int     (*npxdna_func)(struct proc *) = npxdna_notset;

Later in npx.c:

     256 /*
     257  * Common attach routine.
     258  */
     259 void
     260 npxattach(struct npx_softc *sc)
     261 {
[...]
     275 #ifdef I686_CPU
     276         if (i386_use_fxsave)
     277                 npxdna_func = npxdna_xmm;
     278         else
     279 #endif /* I686_CPU */
     280                 npxdna_func = npxdna_s87;
     281 }

I686_CPU is not defined, thus I'd expected npxdna_func to
point on npxdna_s87 lateron. Now, as that does not happen, I expect
that npxattach does not get called. Is that so when there is no npx ?
If yes, shouldn't the soft float emu be called instead in whichever way ?

Well, hoping you can help me,

-Martin Weber

P.S.: That's all with fresh sources supped tonight