[prev in list] [next in list] [prev in thread] [next in thread]
List: openbsd-tech
Subject: MPI driver causing vmware to crash on boot
From: "Jason Crawford" <jasonrcrawford () gmail ! com>
Date: 2006-06-30 15:17:59
Message-ID: 5d6838280606300817s31c6a95aob56ce5b1159ce7f () mail ! gmail ! com
[Download RAW message or body]
Recent changes to the MPI driver are now causing vmware to crash on
boot, and the virtual shuts down. I haven't been able to get any debug
information because the virtual instantly shuts down, and I'm not sure
how to get it to just drop me to a ddb. However, I have found the
exact changes to mpi.c and mpireg.h that make the difference between
vmware booting properly and vmware crashing on boot. A working dmesg
of current sources with last working mpi.c and mpireg.h versions
follows, as well as a diff between the working mpi.c and mpireg.h and
the crashing mpi.c and mpireg.h files.
OpenBSD 3.9-current (GENERIC.RT) #6: Fri Jun 30 11:06:59 EDT 2006
jason@tweak.hcpnet.org:/usr/src/sys/arch/i386/compile/GENERIC.RT
cpu0: Intel(R) Pentium(R) 4 CPU 3.20GHz ("GenuineIntel" 686-class) 3.20 GHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,SSE3,DS-CPL
real mem = 267939840 (261660K)
avail mem = 237871104 (232296K)
using 3296 buffers containing 13500416 bytes (13184K) of memory
mainbus0 (root)
bios0 at mainbus0: AT/286+(6f) BIOS, date 04/21/04, BIOS32 rev. 0 @
0xfd880, SMBIOS rev. 2.31 @ 0xe4010 (45 entries)
bios0: VMware, Inc. VMware Virtual Platform
apm0 at bios0: Power Management spec V1.2
apm0: AC on, battery charge unknown
apm0: flags 30102 dobusy 0 doidle 1
pcibios0 at bios0: rev 2.1 @ 0xfd880/0x780
pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xfdf30/176 (9 entries)
pcibios0: PCI Interrupt Router at 000:07:0 ("Intel 82371FB ISA" rev 0x00)
pcibios0: PCI bus #1 is the last bus
bios0: ROM list: 0xc0000/0x8000 0xc8000/0x1a00! 0xca000/0x1000
0xdc000/0x4000! 0xe4000/0x4000!
cpu0 at mainbus0
pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
pchb0 at pci0 dev 0 function 0 "Intel 82443BX AGP" rev 0x01
ppb0 at pci0 dev 1 function 0 "Intel 82443BX AGP" rev 0x01
pci1 at ppb0 bus 1
pcib0 at pci0 dev 7 function 0 "Intel 82371AB PIIX4 ISA" rev 0x08
pciide0 at pci0 dev 7 function 1 "Intel 82371AB IDE" rev 0x01: DMA,
channel 0 configured to compatibility, channel 1 configured to
compatibility
pciide0: channel 0 ignored (disabled)
atapiscsi0 at pciide0 channel 1 drive 0
scsibus0 at atapiscsi0: 2 targets
cd0 at scsibus0 targ 0 lun 0: <NECVMWar, VMware IDE CDR10, 1.00> SCSI0
5/cdrom removable
cd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 2
piixpm0 at pci0 dev 7 function 3 "Intel 82371AB Power" rev 0x08: SMBus disabled
vga1 at pci0 dev 15 function 0 "VMware Virtual SVGA II" rev 0x00
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
mpi0 at pci0 dev 16 function 0 "Symbios Logic 53c1030" rev 0x01: irq 9
scsibus1 at mpi0: 16 targets
sd0 at scsibus1 targ 0 lun 0: <VMware,, VMware Virtual S, 1.0> SCSI2
0/direct fixed
sd0: 6144MB, 6144 cyl, 64 head, 32 sec, 512 bytes/sec, 12582912 sec total
mpi0: target 0 Sync at 160MHz width 16bit offset 127 QAS 1 DT 1 IU 1
pcn0 at pci0 dev 17 function 0 "AMD 79c970 PCnet-PCI" rev 0x10,
Am79c970A, rev 0: irq 10, address 00:0c:29:da:7a:ac
isa0 at pcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pmsi0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pmsi0 mux 0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: <PC speaker>
spkr0 at pcppi0
lpt0 at isa0 port 0x378/4 irq 7
npx0 at isa0 port 0xf0/16: using exception 16
pccom0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
pccom1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
biomask eb65 netmask ef65 ttymask ffe7
pctr: user-level cycle counter enabled
mpi0: xs cmd: 0x1b len: 0 error: 0x01 flags 0x1a8
mpi0: target_id: 0 bus: 0 msg_length: 8 function: 0x00
mpi0: cdb_length: 6 sense_buf_length: 0 msg_flags: 0x00
mpi0: msg_context: 0x0000000f
mpi0: scsi_status: 0x02 scsi_state: 0x01 ioc_status: 0x0000
mpi0: ioc_loginfo: 0x00000000
mpi0: transfer_count: 0
mpi0: sense_count: 18
mpi0: response_info: 0x00000000
mpi0: tag: 0x0000
mpi0: xs error: 0x01 xs status: 2
mpi0: xs cmd: 0x1a len: 255 error: 0x01 flags 0x828
mpi0: target_id: 0 bus: 0 msg_length: 8 function: 0x00
mpi0: cdb_length: 6 sense_buf_length: 0 msg_flags: 0x00
mpi0: msg_context: 0x00000013
mpi0: scsi_status: 0x02 scsi_state: 0x01 ioc_status: 0x0000
mpi0: ioc_loginfo: 0x00000000
mpi0: transfer_count: 0
mpi0: sense_count: 18
mpi0: response_info: 0x00000000
mpi0: tag: 0x0000
mpi0: xs error: 0x01 xs status: 2
mpi0: xs cmd: 0x5a len: 255 error: 0x01 flags 0x828
mpi0: target_id: 0 bus: 0 msg_length: 8 function: 0x00
mpi0: cdb_length: 10 sense_buf_length: 0 msg_flags: 0x00
mpi0: msg_context: 0x00000014
mpi0: scsi_status: 0x02 scsi_state: 0x01 ioc_status: 0x0000
mpi0: ioc_loginfo: 0x00000000
mpi0: transfer_count: 0
mpi0: sense_count: 18
mpi0: response_info: 0x00000000
mpi0: tag: 0x0000
mpi0: xs error: 0x01 xs status: 2
dkcsum: sd0 matches BIOS drive 0x80
root on sd0a
mpi0: xs cmd: 0x1b len: 0 error: 0x01 flags 0x188
mpi0: target_id: 0 bus: 0 msg_length: 8 function: 0x00
mpi0: cdb_length: 6 sense_buf_length: 0 msg_flags: 0x00
mpi0: msg_context: 0x00000018
mpi0: scsi_status: 0x02 scsi_state: 0x01 ioc_status: 0x0000
mpi0: ioc_loginfo: 0x00000000
mpi0: transfer_count: 0
mpi0: sense_count: 18
mpi0: response_info: 0x00000000
mpi0: tag: 0x0000
mpi0: xs error: 0x01 xs status: 2
mpi0: xs cmd: 0x1a len: 255 error: 0x01 flags 0x828
mpi0: target_id: 0 bus: 0 msg_length: 8 function: 0x00
mpi0: cdb_length: 6 sense_buf_length: 0 msg_flags: 0x00
mpi0: msg_context: 0x0000001c
mpi0: scsi_status: 0x02 scsi_state: 0x01 ioc_status: 0x0000
mpi0: ioc_loginfo: 0x00000000
mpi0: transfer_count: 0
mpi0: sense_count: 18
mpi0: response_info: 0x00000000
mpi0: tag: 0x0000
mpi0: xs error: 0x01 xs status: 2
mpi0: xs cmd: 0x5a len: 255 error: 0x01 flags 0x828
mpi0: target_id: 0 bus: 0 msg_length: 8 function: 0x00
mpi0: cdb_length: 10 sense_buf_length: 0 msg_flags: 0x00
mpi0: msg_context: 0x0000001d
mpi0: scsi_status: 0x02 scsi_state: 0x01 ioc_status: 0x0000
mpi0: ioc_loginfo: 0x00000000
mpi0: transfer_count: 0
mpi0: sense_count: 18
mpi0: response_info: 0x00000000
mpi0: tag: 0x0000
mpi0: xs error: 0x01 xs status: 2
rootdev=0x400 rrootdev=0xd00 rawdev=0xd02
mpi0: xs cmd: 0x1b len: 0 error: 0x01 flags 0x1a8
mpi0: target_id: 0 bus: 0 msg_length: 8 function: 0x00
mpi0: cdb_length: 6 sense_buf_length: 0 msg_flags: 0x00
mpi0: msg_context: 0x00000020
mpi0: scsi_status: 0x02 scsi_state: 0x01 ioc_status: 0x0000
mpi0: ioc_loginfo: 0x00000000
mpi0: transfer_count: 0
mpi0: sense_count: 18
mpi0: response_info: 0x00000000
mpi0: tag: 0x0000
mpi0: xs error: 0x01 xs status: 2
mpi0: xs cmd: 0x1a len: 255 error: 0x01 flags 0x828
mpi0: target_id: 0 bus: 0 msg_length: 8 function: 0x00
mpi0: cdb_length: 6 sense_buf_length: 0 msg_flags: 0x00
mpi0: msg_context: 0x00000024
mpi0: scsi_status: 0x02 scsi_state: 0x01 ioc_status: 0x0000
mpi0: ioc_loginfo: 0x00000000
mpi0: transfer_count: 0
mpi0: sense_count: 18
mpi0: response_info: 0x00000000
mpi0: tag: 0x0000
mpi0: xs error: 0x01 xs status: 2
mpi0: xs cmd: 0x5a len: 255 error: 0x01 flags 0x828
mpi0: target_id: 0 bus: 0 msg_length: 8 function: 0x00
mpi0: cdb_length: 10 sense_buf_length: 0 msg_flags: 0x00
mpi0: msg_context: 0x00000025
mpi0: scsi_status: 0x02 scsi_state: 0x01 ioc_status: 0x0000
mpi0: ioc_loginfo: 0x00000000
mpi0: transfer_count: 0
mpi0: sense_count: 18
mpi0: response_info: 0x00000000
mpi0: tag: 0x0000
mpi0: xs error: 0x01 xs status: 2
mpi0: xs cmd: 0x1b len: 0 error: 0x01 flags 0x188
mpi0: target_id: 0 bus: 0 msg_length: 8 function: 0x00
mpi0: cdb_length: 6 sense_buf_length: 0 msg_flags: 0x00
mpi0: msg_context: 0x00000028
mpi0: scsi_status: 0x02 scsi_state: 0x01 ioc_status: 0x0000
mpi0: ioc_loginfo: 0x00000000
mpi0: transfer_count: 0
mpi0: sense_count: 18
mpi0: response_info: 0x00000000
mpi0: tag: 0x0000
mpi0: xs error: 0x01 xs status: 2
mpi0: xs cmd: 0x1a len: 255 error: 0x01 flags 0x828
mpi0: target_id: 0 bus: 0 msg_length: 8 function: 0x00
mpi0: cdb_length: 6 sense_buf_length: 0 msg_flags: 0x00
mpi0: msg_context: 0x0000002c
mpi0: scsi_status: 0x02 scsi_state: 0x01 ioc_status: 0x0000
mpi0: ioc_loginfo: 0x00000000
mpi0: transfer_count: 0
mpi0: sense_count: 18
mpi0: response_info: 0x00000000
mpi0: tag: 0x0000
mpi0: xs error: 0x01 xs status: 2
mpi0: xs cmd: 0x5a len: 255 error: 0x01 flags 0x828
mpi0: target_id: 0 bus: 0 msg_length: 8 function: 0x00
mpi0: cdb_length: 10 sense_buf_length: 0 msg_flags: 0x00
mpi0: msg_context: 0x0000002d
mpi0: scsi_status: 0x02 scsi_state: 0x01 ioc_status: 0x0000
mpi0: ioc_loginfo: 0x00000000
mpi0: transfer_count: 0
mpi0: sense_count: 18
mpi0: response_info: 0x00000000
mpi0: tag: 0x0000
mpi0: xs error: 0x01 xs status: 2
Index: mpi.c
===================================================================
RCS file: /cvs/src/sys/dev/ic/mpi.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- mpi.c 19 Jun 2006 21:06:22 -0000 1.48
+++ mpi.c 29 Jun 2006 08:35:08 -0000 1.49
@@ -1,4 +1,4 @@
-/* $OpenBSD: mpi.c,v 1.48 2006/06/19 21:06:22 miod Exp $ */
+/* $OpenBSD: mpi.c,v 1.49 2006/06/29 08:35:08 dlg Exp $ */
/*
* Copyright (c) 2005, 2006 David Gwynne <dlg@openbsd.org>
@@ -976,13 +976,13 @@
switch (xs->flags & (SCSI_DATA_IN | SCSI_DATA_OUT)) {
case SCSI_DATA_IN:
- io->control = htole32(MPI_SCSIIO_DATA_DIR_READ);
+ io->direction = MPI_SCSIIO_DIR_READ;
break;
case SCSI_DATA_OUT:
- io->control = htole32(MPI_SCSIIO_DATA_DIR_WRITE);
+ io->direction = MPI_SCSIIO_DIR_WRITE;
break;
default:
- io->control = htole32(MPI_SCSIIO_DATA_DIR_NONE);
+ io->direction = MPI_SCSIIO_DIR_NONE;
break;
}
Index: mpireg.h
===================================================================
RCS file: /cvs/src/sys/dev/ic/mpireg.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- mpireg.h 29 Jun 2006 08:23:26 -0000 1.18
+++ mpireg.h 29 Jun 2006 08:35:08 -0000 1.19
@@ -1,4 +1,4 @@
-/* $OpenBSD: mpireg.h,v 1.18 2006/06/29 08:23:26 dlg Exp $ */
+/* $OpenBSD: mpireg.h,v 1.19 2006/06/29 08:35:08 dlg Exp $ */
/*
* Copyright (c) 2005 David Gwynne <dlg@openbsd.org>
@@ -619,7 +619,7 @@
u_int8_t cdb_length;
u_int8_t sense_buf_len;
- u_int8_t reserved;
+ u_int8_t reserved1;
u_int8_t msg_flags;
#define MPI_SCSIIO_EEDP 0xf0
#define MPI_SCSIIO_CMD_DATA_DIR (1<<2)
@@ -632,19 +632,19 @@
u_int16_t lun[4];
- u_int32_t control;
-#define MPI_SCSIIO_ADDITIONAL_CDB_LEN (0xf<<26)
-#define MPI_SCSIIO_DATA_DIR (0x3<<24)
-#define MPI_SCSIIO_DATA_DIR_NONE (0x0<<24)
-#define MPI_SCSIIO_DATA_DIR_WRITE (0x1<<24)
-#define MPI_SCSIIO_DATA_DIR_READ (0x2<<24)
-#define MPI_SCSIIO_TASK_ATTR (0x7<<8)
-#define MPI_SCSIIO_TASK_ATTR_SIMPLE_Q (0x0<<8)
-#define MPI_SCSIIO_TASK_ATTR_HEAD_OF_Q (0x1<<8)
-#define MPI_SCSIIO_TASK_ATTR_ORDERED_Q (0x2<<8)
-#define MPI_SCSIIO_TASK_ATTR_ACA_Q (0x4<<8)
-#define MPI_SCSIIO_TASK_ATTR_UNTAGGED (0x5<<8)
-#define MPI_SCSIIO_TASK_ATTR_NO_DISCONNECT (0x7<<8)
+ u_int8_t reserved2;
+ u_int8_t tagging;
+#define MPI_SCSIIO_ATTR_SIMPLE_Q (0x0)
+#define MPI_SCSIIO_ATTR_HEAD_OF_Q (0x1)
+#define MPI_SCSIIO_ATTR_ORDERED_Q (0x2)
+#define MPI_SCSIIO_ATTR_ACA_Q (0x4)
+#define MPI_SCSIIO_ATTR_UNTAGGED (0x5)
+#define MPI_SCSIIO_ATTR_NO_DISCONNECT (0x7)
+ u_int8_t direction;
+#define MPI_SCSIIO_DIR_NONE (0x0)
+#define MPI_SCSIIO_DIR_WRITE (0x1)
+#define MPI_SCSIIO_DIR_READ (0x2)
+ u_int8_t extra_cdb_len;
#define MPI_CDB_LEN 16
u_int8_t cdb[MPI_CDB_LEN];
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic