NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/52126: mvsata Marvell 88SX6081 panics on boot



>Number:         52126
>Category:       kern
>Synopsis:       mvsata Marvell 88SX6081 panics on boot
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Mar 31 15:35:00 +0000 2017
>Originator:     Patrick Welche
>Release:        NetBSD-7.99.66/amd64
>Organization:
>Environment:
>Description:
First reported in

http://mail-index.netbsd.org/current-users/2017/02/20/msg031172.html

quoting:

mvsata0 at pci5 dev 1 function 0: Marvell 88SX6081 SATA II (rev. 0x09)
mvsata0: interrupting at ioapic1 pin 1
mvsata0: GenII, 2hc, 4port/hc

mvsata0:0:0: unable to stop EDMA
panic: EDMA enabled


but it took me a while to realise that kgdb works much better if you
boot -1

(gdb) bt
#0  0xffffffff80215455 in breakpoint ()
#1  0xffffffff8082c0c8 in vpanic (
    fmt=fmt@entry=0xffffffff80edac77 "EDMA enabled", 
    ap=ap@entry=0xffffffff81645818) at ../../../../kern/subr_prf.c:340
#2  0xffffffff8082c185 in panic (
    fmt=fmt@entry=0xffffffff80edac77 "EDMA enabled")
    at ../../../../kern/subr_prf.c:258
#3  0xffffffff804b6d21 in mvsata_pmp_select (mvport=0xfffffe811d78d810, 
    pmpport=0) at ../../../../dev/ic/mvsata.c:241
#4  0xffffffff804b80e1 in mvsata_wdc_cmd_start (chp=0xfffffe811d78d810, 
    xfer=0xfffffe811dc60f60) at ../../../../dev/ic/mvsata.c:1586
#5  0xffffffff804b7100 in mvsata_exec_command (drvp=<optimized out>, 
    ata_c=0xffffffff81645978) at ../../../../dev/ic/mvsata.c:677
#6  0xffffffff8026e356 in ata_get_params (drvp=0xfffffe811dcb2e80, 
    flags=<optimized out>, prms=0xfffffe811dcb358c)
    at ../../../../dev/ata/ata.c:762
#7  0xffffffff8026a5a1 in wd_get_params (wd=0xfffffe811dcb3008, 
    flags=<optimized out>, params=0xfffffe811dcb358c)
    at ../../../../dev/ata/wd.c:1776
#8  0xffffffff8026ae08 in wdopen (dev=<optimized out>, flag=<optimized out>, 
    fmt=24576, l=<optimized out>) at ../../../../dev/ata/wd.c:990
#9  0xffffffff808194b4 in bdev_open (dev=3, flag=1073741825, devtype=24576, 
    l=0xffffffff812764e0 <lwp0>) at ../../../../kern/subr_devsw.c:716
#10 0xffffffff8089b03d in spec_open (v=0xffffffff81645b20)
    at ../../../../miscfs/specfs/spec_vnops.c:609
#11 0xffffffff8088f25c in VOP_OPEN (vp=0xfffffe811dc5fd20, 
    mode=mode@entry=1073741825, cred=cred@entry=0xffffffffffffffff)
    at ../../../../kern/vnode_if.c:238
#12 0xffffffff80668c71 in rf_find_raid_components ()
    at ../../../../dev/raidframe/rf_netbsdkintf.c:2874
#13 0xffffffff8066a1ec in rf_autoconfig (self=<optimized out>)
    at ../../../../dev/raidframe/rf_netbsdkintf.c:445
#14 0xffffffff808137d4 in config_finalize ()
    at ../../../../kern/subr_autoconf.c:2166
#15 0xffffffff80b7d9a1 in main () at ../../../../kern/init_main.c:613
(gdb) frame 4
#4  0xffffffff804b80e1 in mvsata_wdc_cmd_start (chp=0xfffffe811d78d810, 
    xfer=0xfffffe811dc60f60) at ../../../../dev/ic/mvsata.c:1586
1586            mvsata_pmp_select(mvport, drive);
(gdb) print *xfer
$1 = {c_flags = 16, c_chp = 0xfffffe811d78d810, c_drive = 0, 
  c_cmd = 0xffffffff81645978, c_databuf = 0xfffffe8125788c88, c_bcount = 512, 
  c_skip = 0, c_dscpoll = 0, c_lenoff = 0, c_xferchain = {tqe_next = 0x0, 
    tqe_prev = 0xfffffe811d78de80}, 
  c_start = 0xffffffff804b806b <mvsata_wdc_cmd_start>, 
  c_intr = 0xffffffff804b7d9f <mvsata_wdc_cmd_intr>, 
  c_kill_xfer = 0xffffffff804b795a <mvsata_wdc_cmd_kill_xfer>}
(gdb) print {struct ata_command}xfer->c_cmd
$3 = {r_lba = 0, r_count = 0, {r_features = 0, r_error = 0 '\000'}, {
    r_command = 236 '\354', r_status = 236 '\354'}, r_device = 0 '\000', 
  r_st_bmask = 64 '@', r_st_pmask = 8 '\b', flags = 9, timeout = 3000, 
  data = 0xfffffe8125788c88, bcount = 512, callback = 0x0, callback_arg = 0x0}

flags = 9 = AT_READ | AT_WAIT

r_command = 236 = 0xEC = WDCC_IDENTIFY

so mvsata just seems to be trying to identify the drives on boot. What is EDMA?
>How-To-Repeat:

>Fix:



Home | Main Index | Thread Index | Old Index