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.bet...@hanse.de>
Hamburg, Germany          <s...@freebsd.org>



To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to