Date: Sun, 02 May 1999 19:32:08 +0200 From: Stefan Bethke <stefan.bethke@hanse.de> To: freebsd-current@freebsd.org Cc: sos@freebsd.org Subject: panic in nexus_setup_intr+0x13 with new ata driver Message-ID: <14289515.3134662328@monster.transit-a.hanse.de>
next in thread | raw e-mail | index | archive | help
I'm currently trying to get a Promise Ultra/33 to work with Sørens new ata
drivers.
The kernel config is as per LINT:
machine "i386"
cpu "I486_CPU"
ident DEV
maxusers 40
options INET #InterNETworking
options NETATALK
options FFS #Berkeley Fast Filesystem
options NFS #Network Filesystem
options MFS
options "CD9660" #ISO 9660 Filesystem
options "CD9660_ROOT" #CD-ROM usable as root device
options FFS_ROOT #FFS usable as root device [keep
this!]
options NFS_ROOT #NFS usable as root device
options PROCFS #Process filesystem
options SOFTUPDATES
options "COMPAT_43" #Compatible with BSD 4.3 [KEEP
THIS!]
options SCSI_DELAY=3000 #Be pessimistic about Joe SCSI
device
options UCONSOLE #Allow users to grab the console
options FAILSAFE #Be conservative
options USERCONFIG #boot -c editor
options VISUAL_USERCONFIG #visual boot -c editor
config kernel root on sa0 dumps on sa0
controller isa0
controller eisa0
controller pci0
controller pnp0
controller fdc0 at isa? port IO_FD1 irq 6 drq 2
disk fd0 at fdc0 drive 0
disk fd1 at fdc0 drive 1
# ATA and ATAPI devices
# This is work in progress, use at your own risk.
# It currently reuses the majors of wd.c and friends.
# It cannot co-exist with the old system in one kernel.
# You only need one "controller ata0" for it to find all
# PCI devices on modern machines.
controller ata0
device atadisk0 # ATA disk drives
#device atapicd0 # ATAPI CDROM drives
#device atapifd0 # ATAPI floppy drives
#device atapist0 # ATAPI tape drives
options DDB
makeoptions DEBUG=-g
makeoptions COPTFLAGS="-O -DATA_DEBUG -DAD_DEBUG"
controller ncr0
#controller ahc0
controller scbus0
device da0
device sa0
device cd0
device pass0
controller atkbdc0 at isa? port IO_KBD
device atkbd0 at atkbdc? irq 1
device psm0 at atkbdc? irq 12
device vga0 at isa? port ? conflicts
# splash screen/screen saver
pseudo-device splash
# syscons is the default console driver, resembling an SCO console
device sc0 at isa?
device npx0 at nexus? port IO_NPX irq 13
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
device sio1 at isa? port IO_COM2 irq 3
device ed0 at pci?
pseudo-device loop
pseudo-device ether
pseudo-device ppp 4
pseudo-device tun 4
pseudo-device bpfilter 4
pseudo-device pty 16
pseudo-device gzip # Exec gzipped a.out's
pseudo-device vn 4
pseudo-device ccd 4
#options KTRACE #kernel tracing
options SYSVSHM
options SYSVSEM
options SYSVMSG
options "VM86"
options VESA
#device pcm0 at isa? disable port ? tty irq 10 drq 1 flags 0x0
I've written down the following:
ata-pci0: <Promise Ultra/33 IDE controller> at device 5.0 on pci0
ata-pci0: type4d33105a class=01 subclass=04 cmd=02000007
ata-pci0: Busmastering DMA supported
ata0: iobase=0xa000 altiobase=0xa100
ata0: mask=03 status0=50 status1=00
ata0: mask=03 status0=50 status1=00
ata0: devices = 0x1
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x14
fault code = supervisor read, page not present
instruction pointer = 0x8:0xc02012fb
stack pointer = 0x10:0xc02dad44
frame pointer = 0x10:0xc02dad74
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1 def32 1, gran 1
processor flags = interrupt enabled, resume, IOPL = 0
current process = 0
interrupt mask = net tty bio cam
kernel: type 12 trap, code=0
Stopped at nexus_setup_intr+0x13: pushl 0x14(%edx)
db> trace,8
nexus_setup_intr(c0689a40,c06895c0,0,c01e9d44,c068bd00) at
next_setup_intr+0x13
BUS_SETUP_INTR(c0689a40,c06895c0,0,c01e9d44,c068bd00) at BUS_SETUP_INTR+0x34
bus_generic_setup_intr(c0689800,c06895c0,0,c011e9d44,c068bd00) at
bus_generic_setup_intr+0x2b
BUS_SETUP_INTR(c0689800,c06895c0,0,c01e9d44,c068bd00) at BUS_SETUP_INTR+0x34
bus_generic_setup_intr(c0689740,c06895c0,0,c01e9d44,c068db00) at
bus_generic_setup_intr+0x2b
BUS_SETUP_INTR(c0689740,c06895c0,0,c01e9d44,c068bd00) at BUS_SETUP_INTR+0x34
bus_setup_intr(c06895c0,0,c01e9d44,c068bd00,c02dae88) at bus_setup_intr+0x21
ata_pciattach(c06895c0,c02daed0,c0148ce3,c06895c0,c06895c0) at
ata_pciattach+0x439
db> x/ia nexus_setup_intr,10
nexus_setup_intr: pushl %ebp
nexus_setup_intr+0x1: movl %esp,%ebp
nexus_setup_intr+0x3: subl $0x24,%esp
nexus_setup_intr+0x6: pushl %edi
nexus_setup_intr+0x7: pushl %esi
nexus_setup_intr+0x8: pushl %ebx
nexus_setup_intr+0x9: movl 0xc(%ebp),%ebx
nexus_setup_intr+0xc: testl %ebx,%ebx
nexus_setup_intr+0xe: jz nexus_setup_intr+0x24
nexus_setup_intr+0x10: movl 0x10(%ebp),%edx
nexus_setup_intr+0x13: pushl 0x14(%edx)
nexus_setup_intr+0x16: pushl $0xc024bd96
nexus_setup_intr+0x1b: pushl %ebx
nexus_setup_intr+0x1c: call device_printf
nexus_setup_intr+0x21: addl $0xc,%esp
nexus_setup_intr+0x24: movl 0x1c(%ebp),%edx
db> x/s $0xc024bd96
__set_sysintit_set_sym_nexus_rootmodule_sys_init+0x11e: interrupting at irq
%d\012
db> show reg
cs 0x8
ds 0x10
es 0x10
fs 0x10
ss 0x10
eax 0xc02012e8 nexus_setup_intr
ecx 0xc0689a40
edx 0
ebx 0xc06895c0
esp 0xc02dad44
epb 0xc02dad74
esi 0x5
edi 0xc06896c0
eip 0xc02012fb nexus_setup_intr+0x13
efl 0x10286
This is with a -current from about three days ago.
Unfortunatly, I don't understand enought about the new bus stuff to really
understand where the null pointer gets into the game.
Ah, if it matters: the Promise currently has the EPROM removed.
Any hints appreciated,
Stefan
--
Stefan Bethke
Muehlendamm 12 Phone: +49-40-256848, +49-177-3504009
D-22087 Hamburg <stefan.bethke@hanse.de>
Hamburg, Germany <stb@freebsd.org>
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?14289515.3134662328>
