From owner-freebsd-drivers@FreeBSD.ORG Tue Jul 29 17:07:18 2014 Return-Path: Delivered-To: freebsd-drivers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C81EE724 for ; Tue, 29 Jul 2014 17:07:18 +0000 (UTC) Received: from mail-ig0-x244.google.com (mail-ig0-x244.google.com [IPv6:2607:f8b0:4001:c05::244]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 9C0B9291A for ; Tue, 29 Jul 2014 17:07:18 +0000 (UTC) Received: by mail-ig0-f196.google.com with SMTP id l13so318072iga.3 for ; Tue, 29 Jul 2014 10:07:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=FEihstaGwljnCc9hcZuSWxf2FqqOYRJWQHfE2YhDAWE=; b=MCGPXKTabizo28ln3JQT6FOUm9XzbiqtMDqF2/9VM20KaRJzYC+BThGCYn+gb0z83i UGIxD7ICTUXA/8WyxqkF8iffefMGsUyXzO389w603++f6jA8P5Xie9+VAS9WJM+9cQW+ FtV7P9ZeQ+jMbpOFUH3gzbf+VItx6J1tqarMZ5fswBbyhIjDy6WQK25PcCR/uycpzP+7 buYTsnouVhvS2blxX4ftO8vdZ+L53es7zDQrXExMTqu1ktkmbZM1H2l1IHqH6MlL67vl +nDDNOmnuSE2qgNjOlORWF+BOcY42SC59EbDJsSvRVTNVSdOwUaWHle/o+HWDIGE8Jcd 7VEQ== MIME-Version: 1.0 X-Received: by 10.43.6.195 with SMTP id ol3mr7187095icb.86.1406653638020; Tue, 29 Jul 2014 10:07:18 -0700 (PDT) Received: by 10.64.239.212 with HTTP; Tue, 29 Jul 2014 10:07:17 -0700 (PDT) Date: Tue, 29 Jul 2014 10:07:17 -0700 Message-ID: Subject: sil3124 sata controller panics kernel From: Dieter BSD To: freebsd-drivers@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 X-BeenThere: freebsd-drivers@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Writing device drivers for FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 29 Jul 2014 17:07:18 -0000 FreeBSD 8.2 AMD64 Has been running with jmb363 and sil3132 sata controllers for years. siis(4) was last updated 2011-05-15. The 363 died (reason unknown). Bought 2 sil3124 cards Syba SY-PEX40008 PCIe-x1. (the slots only take x1 cards, and the 3124 has been recommended many times, I was expecting it to "just work") Boot to multiuser with 2 3124 cards and 1 3132 card (and 2 3726 PMs connected to the 3132). No drives connected to the 3124s. System running ok. Hotplug a drive's sata data cable into a 3124 port. (This works fine with 3132 with or without a PM.) 2-3 seconds later I see a timeout message (common from siis(4)), and then the kernel panics. Repeatable. The 3124 is unusable. I looked at the source code hoping to find a clue about the machine check trap, but no joy. What's going on? How do I fix this? port 0x9c00-0x9c0f mem 0xfe8ff000-0xfe8ff07f,0xfe8f0000-0xfe8f7fff irq 17 at device 4.0 on pci3 siis0: siis_resume() calling DELAY(10000) siis0: [ITHREAD] at channel 0 on siis0 siisch0: [ITHREAD] at channel 1 on siis0 siisch1: [ITHREAD] at channel 2 on siis0 siisch2: [ITHREAD] at channel 3 on siis0 siisch3: [ITHREAD] at device 12.0 on pci0 on pcib4 irq 16 at device 0.0 on pci4 on pcib5 port 0x8c00-0x8c0f mem 0xfe6ff000-0xfe6ff07f,0xfe6f0000-0xfe6f7fff irq 16 at device 4.0 on pci5 siis1: siis_resume() calling DELAY(10000) siis1: [ITHREAD] at channel 0 on siis1 siisch4: [ITHREAD] at channel 1 on siis1 siisch5: [ITHREAD] at channel 2 on siis1 siisch6: [ITHREAD] at channel 3 on siis1 siisch7: [ITHREAD] port 0x6c00-0x6c7f mem 0xfe2ff000-0xfe2ff07f,0xfe2f8000-0xfe2fbfff irq 18 at device 0.0 on pci7 siis2: siis_resume() calling DELAY(10000) siis2: [ITHREAD] at channel 0 on siis2 siisch8: [ITHREAD] at channel 1 on siis2 siisch9: [ITHREAD] siisch0: SIIS reset... siisch0: siis_devreset() calling DELAY(100) siisch0: siis_sata_connect() calling DELAY(100) siisch0: siis_sata_connect() calling DELAY(100) siisch0: siis_sata_connect() calling DELAY(100) [ ... ] siisch0: siis_sata_connect() calling DELAY(100) siisch0: SATA connect timeout time=10000us status=00000000 siisch0: SIIS reset done: phy reset found no device siisch1: SIIS reset... siisch1: siis_devreset() calling DELAY(100) siisch1: siis_sata_connect() calling DELAY(100) siisch1: siis_sata_connect() calling DELAY(100) [ ... ] siisch1: siis_sata_connect() calling DELAY(100) siisch1: SATA connect timeout time=10000us status=00000000 siisch1: SIIS reset done: phy reset found no device siisch2: SIIS reset... siisch2: siis_devreset() calling DELAY(100) siisch2: siis_sata_connect() calling DELAY(100) [ ... same again for sil3124 ports 3-7 ] siisch7: siis_sata_connect() calling DELAY(100) siisch7: SATA connect timeout time=10000us status=00000000 siisch7: SIIS reset done: phy reset found no device siisch8: siis_wait_ready() calling DELAY(1000) [ sil3132 ] siisch9: siis_wait_ready() calling DELAY(1000) [ sil3132 ] pmp0 at siisch8 bus 0 scbus8 target 15 lun 0 pmp0: ATA-0 device pmp0: 300.000MB/s transfers (SATA 2.x, NONE, PIO 8192bytes) pmp1 at siisch9 bus 0 scbus9 target 15 lun 0 pmp1: ATA-0 device pmp1: 300.000MB/s transfers (SATA 2.x, NONE, PIO 8192bytes) pmp0: 5 fan-out ports pmp1: 5 fan-out ports Fatal trap 28: machine check trap while in kernel mode instruction pointer = 0x20:0xffffffff80904c1b stack pointer = 0x28:0xffffff8000033a50 frame pointer = 0x28:0xffffff8000033a90 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags = interrupt enabled, IOPL = 0 current process = 12 (swi4: clock) trap number = 28 panic: machine check trap KDB: stack backtrace: #0 0xffffffff8030c93e at kdb_backtrace+0x5e #1 0xffffffff802de7cd at panic+0x18d #2 0xffffffff804e2380 at trap_fatal+0x260 #3 0xffffffff804e2965 at trap+0x115 #4 0xffffffff804cda74 at calltrap+0x8 #5 0xffffffff802f0de8 at softclock+0x2b8 #6 0xffffffff802b6ddb at intr_event_execute_handlers+0xfb #7 0xffffffff802b8446 at ithread_loop+0x96 #8 0xffffffff802b4d38 at fork_exit+0x118 #9 0xffffffff804cdf3e at fork_trampoline+0xe #0 doadump () at pcpu.h:224 224 pcpu.h: No such file or directory. in pcpu.h (kgdb) #0 doadump () at pcpu.h:224 #1 0xffffffff802de36a in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:419 #2 0xffffffff802de72b in panic (fmt=Variable "fmt" is not available. ) at /usr/src/sys/kern/kern_shutdown.c:592 #3 0xffffffff804e2380 in trap_fatal (frame=0x1c, eva=Variable "eva" is not available. ) at /usr/src/sys/amd64/amd64/trap.c:783 #4 0xffffffff804e2965 in trap (frame=0xffffff80000339a0) at /usr/src/sys/amd64/amd64/trap.c:592 #5 0xffffffff804cda74 in calltrap () at /usr/src/sys/amd64/amd64/exception.S:224 #6 0xffffffff80904c1b in siis_timeout (slot=0xffffff8000263bb0) at bus.h:241 #7 0xffffffff802f0de8 in softclock (arg=Variable "arg" is not available. ) at /usr/src/sys/kern/kern_timeout.c:430 #8 0xffffffff802b6ddb in intr_event_execute_handlers (p=Variable "p" is not available. ) at /usr/src/sys/kern/kern_intr.c:1220 #9 0xffffffff802b8446 in ithread_loop (arg=0xffffff0001831680) at /usr/src/sys/kern/kern_intr.c:1233 #10 0xffffffff802b4d38 in fork_exit ( callout=0xffffffff802b83b0 , arg=0xffffff0001831680, frame=0xffffff8000033c40) at /usr/src/sys/kern/kern_fork.c:845 #11 0xffffffff804cdf3e in fork_trampoline () at /usr/src/sys/amd64/amd64/exception.S:565 #12 0x0000000000000000 in ?? () #13 0x0000000000000000 in ?? () #14 0x0000000000000001 in ?? ()