kern/70315: asr(4) broken on ia64 (not 64bit safe?)

Joerg Pulz Joerg.Pulz at frm2.tum.de
Wed Aug 11 10:00:48 PDT 2004


>Number:         70315
>Category:       kern
>Synopsis:       asr(4) broken on ia64 (not 64bit safe?)
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Aug 11 17:00:48 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Joerg Pulz
>Release:        FreeBSD 5.2-CURRENT ia64
>Organization:
TU-Munich / ZWE FRM-II
>Environment:
System: FreeBSD ia64-1.admin.frm2 5.2-CURRENT FreeBSD 5.2-CURRENT #6: Wed Aug 11 16:27:52 CEST 2004 admin at ia64-1.admin.frm2:/usr/obj/usr/src/sys/IA64 ia64
	kern.osreldate: 502128

	
>Description:
	asr(4) driver is broken on ia64 and maybe other 64bit archs

	i use several Adaptec SCSI RAID 3210S cards with i386 UP and SMP
	without any problems.
	a try on ia64 comes with the "boot -v" output in the Fix section.
	i inserted some "printf's" to get the exact conditions of the error.

	as the driver is working perfect on i386 it seems to be an 64bit arch
	related problem.
>How-To-Repeat:
	- ia64 arch + Adaptec SCSI RAID 3210S
	- boot either 5.2.1-RELEASE-ia64-miniinst.iso or
		      5.2-20040810-SNAP-ia64-miniinst.iso
>Fix:

	this is the captured 'boot -v' process

--- ia64_asr.cap begins here ---
PAL Proc at 0xe00000003ff48010
SAL Procat 0xe00000003fec380, GP at0xe0000003ff24b60
SAL: P wake-up vetor: 0xf
Platform lock frequeny 13326368 Hz
Procesor rati 12/2, Bus atio 1/1, IT ratio 122
ptc.e base=0x0, count1=1, count2=1, stride1=0x0, stride2=0x0
Processor supports 18 Region ID bits
Trying VHPT size 0x400000
Putting VHPT at 0x400000
Splitting [0x100000-0x4000000]
GDB: no debug ports present
KDB: debugger backends: ddb
KDB: current backend: ddb
Using ACPI2.0 table at 0xe2000
Copyright (c) 1992-2004 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 5.2-CURRENT #6: Wed Aug 11 16:27:52 CEST 2004
    admin at ia64-1.admin.frm2:/usr/obj/usr/src/sys/IA64
UNWIND: table added: base=e000000004000000, start=e000000004816068, end=e000000004840260
Preloaded elf kernel "/boot/kernel/kernel" at 0xe0000000049c8000.
CPU: Merced (799.58-Mhz Itanium)
  Origin = "GenuineIntel"  Revision = 6
  Features = 0x0
real memory  = 1056538624 (1007 MB)
Physical memory chunk(s):
0x00054000 - 0x00087fff, 212992 bytes (26 pages)
0x00100000 - 0x003fffff, 3145728 bytes (384 pages)
0x00800000 - 0x03ffffff, 58720256 bytes (7168 pages)
0x049ca000 - 0x3e0f9fff, 963837952 bytes (117656 pages)
0x3f010000 - 0x3f013fff, 16384 bytes (2 pages)
avail memory = 1017888768 (970 MB)
FPSWA Revision = 0x10009, Entry = 0xe00000003f16e050
Table 'FACP' at 0xe00000003ffd8070
Table 'APIC' at 0xe00000003ffda000
	Local APIC address=0xfee00000
	Local APIC entry
	Local APIC entry
	I/O APIC entry
	Interrupt source override entry
		Bus=0, Source=9, Irq=0x31
	Local SAPIC entry
		ProcessorId=0x0, Id=0x0, Eid=0x0
	Local SAPIC entry
		ProcessorId=0x1, Id=0x3, Eid=0x0
	I/O SAPIC entry
		Id=0x2, InterruptBase=0x0, Address=0xfec00000
MCA: allocated 16384 bytes for state info.
SMP: waking up cpu1
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
cpu0: SAPIC Id=0, SAPIC Eid=0 (BSP)
cpu1: SAPIC Id=3, SAPIC Eid=0
mem: <memory>
null: <null device, zero device>
random: <entropy source, Software, Yarrow>
acpi0: <Intel W460GXBS> on motherboard
acpi0: [GIANT-LOCKED]
AcpiOsDerivePciId: bus 0 dev 16 func 0
AcpiOsDerivePciId: bus 5 dev 18 func 1
acpi0: Power Button (fixed)
AcpiOsDerivePciId: bus 5 dev 16 func 0
AcpiOsDerivePciId: bus 5 dev 18 func 0
AcpiOsDerivePciId: bus 5 dev 19 func 0
AcpiOsDerivePciId: bus 5 dev 20 func 0
AcpiOsDerivePciId: bus 5 dev 20 func 1
ACPI timer looks BAD  min = 2, max = 6, width = 4
ACPI timer looks BAD  min = 2, max = 6, width = 4
ACPI timer looks BAD  min = 2, max = 6, width = 4
ACPI timer looks BAD  min = 2, max = 6, width = 4
ACPI timer looks BAD  min = 2, max = 6, width = 4
ACPI timer looks BAD  min = 2, max = 6, width = 4
ACPI timer looks BAD  min = 2, max = 6, width = 4
ACPI timer looks BAD  min = 2, max = 6, width = 4
ACPI timer looks BAD  min = 2, max = 6, width = 4
ACPI timer looks BAD  min = 2, max = 6, width = 4
Timecounter "ACPI-safe" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0xa08-0xa0b on acpi0
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
ACPI PCI link initial configuration:
ACPI PCI link before setting link priority:
ACPI PCI link before fixup for boot-disabled links:
ACPI PCI link after fixup for boot-disabled links:
ACPI PCI link arbitrated configuration:
pci0: <ACPI PCI bus> on pcib0
pci0: physical bus=0
found->	vendor=0x8086, dev=0x123d, revid=0x01
	bus=0, slot=0, func=0
	class=08-00-20, hdrtype=0x00, mfdev=0
	cmdreg=0x0106, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x08 (2000 ns), maxlat=0x08 (2000 ns)
found->	vendor=0x8086, dev=0x7600, revid=0x01
	bus=0, slot=3, func=0
	class=06-01-00, hdrtype=0x00, mfdev=1
	cmdreg=0x000f, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	map[20]: type 4, range 32, base 00001070, size  4, enabled
found->	vendor=0x8086, dev=0x7601, revid=0x01
	bus=0, slot=3, func=1
	class=01-01-80, hdrtype=0x00, mfdev=0
	cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	map[20]: type 4, range 32, base 00001040, size  5, enabled
pcib0: matched entry for 0.3.INTD (src )
pcib0: device is hardwired to IRQ 47
found->	vendor=0x8086, dev=0x7602, revid=0x01
	bus=0, slot=3, func=2
	class=0c-03-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0005, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=d, irq=47
	map[20]: type 4, range 32, base 00001060, size  4, enabled
pcib0: matched entry for 0.3.INTB (src )
pcib0: device is hardwired to IRQ 46
found->	vendor=0x8086, dev=0x7603, revid=0x01
	bus=0, slot=3, func=3
	class=0c-05-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0001, statreg=0x0280, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=b, irq=46
	map[10]: type 1, range 32, base fddee000, size 12, enabled
	map[14]: type 1, range 32, base fddf0000, size 16, enabled
pcib0: matched entry for 0.4.INTA (src )
pcib0: device is hardwired to IRQ 45
found->	vendor=0x1013, dev=0x6005, revid=0x01
	bus=0, slot=4, func=0
	class=04-01-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0006, statreg=0x0210, cachelnsz=0 (dwords)
	lattimer=0x20 (960 ns), mingnt=0x04 (1000 ns), maxlat=0x18 (6000 ns)
	intpin=a, irq=45
	powerspec 2  supports D0 D1 D2 D3  current D0
	map[10]: type 1, range 32, base fddef000, size 12, enabled
	map[14]: type 4, range 32, base 00001000, size  6, enabled
	map[18]: type 1, range 32, base fdf00000, size 20, enabled
pcib0: matched entry for 0.5.INTA (src )
pcib0: device is hardwired to IRQ 44
found->	vendor=0x8086, dev=0x1229, revid=0x08
	bus=0, slot=5, func=0
	class=02-00-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0007, statreg=0x0290, cachelnsz=16 (dwords)
	lattimer=0x20 (960 ns), mingnt=0x08 (2000 ns), maxlat=0x38 (14000 ns)
	intpin=a, irq=44
	powerspec 2  supports D0 D1 D2 D3  current D0
found->	vendor=0x8086, dev=0x84e0, revid=0x03
	bus=0, slot=16, func=0
	class=06-00-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0000, statreg=0x0000, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
pci0: <base peripheral, interrupt controller> at device 0.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 3.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH UDMA66 controller> port 0x1070-0x107f,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 3.1 on pci0
atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0x1070
atapci0: Reserved 0x8 bytes for rid 0x10 type 4 at 0x1f0
atapci0: Reserved 0x1 bytes for rid 0x14 type 4 at 0x3f6
ata0: reset tp1 mask=03 ostat0=50 ostat1=00
ata0-master: stat=0x50 err=0x01 lsb=0x00 msb=0x00
ata0-slave:  stat=0x00 err=0x01 lsb=0x00 msb=0x00
ata0: reset tp2 stat0=50 stat1=00 devices=0x1<ATA_MASTER>
ata0: at 0x1f0 irq 14 on atapci0
ata0: [MPSAFE]
atapci0: Reserved 0x8 bytes for rid 0x18 type 4 at 0x170
atapci0: Reserved 0x1 bytes for rid 0x1c type 4 at 0x376
ata1: reset tp1 mask=03 ostat0=50 ostat1=50
ata1-master: stat=0x00 err=0x01 lsb=0x14 msb=0xeb
ata1-slave:  stat=0x00 err=0x01 lsb=0x14 msb=0xeb
ata1: reset tp2 stat0=00 stat1=00 devices=0xc<ATAPI_SLAVE,ATAPI_MASTER>
ata1: at 0x170 irq 15 on atapci0
ata1: [MPSAFE]
uhci0: <Intel 82372FB/82468GX USB controller> port 0x1040-0x105f irq 47 at device 3.2 on pci0
uhci0: Reserved 0x20 bytes for rid 0x20 type 4 at 0x1040
uhci0: [GIANT-LOCKED]
usb0: <Intel 82372FB/82468GX USB controller> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhub1: Standard Microsystems USB Hub, class 9/0, rev 1.10/0.00, addr 2
uhub1: 4 ports with 4 removable, self powered
ichsmb0: <SMBus controller> port 0x1060-0x106f irq 46 at device 3.3 on pci0
ichsmb0: Reserved 0x10 bytes for rid 0x20 type 4 at 0x1060
ichsmb0: [GIANT-LOCKED]
pcm0: <Crystal Semiconductor CS4281> mem 0xfddf0000-0xfddfffff,0xfddee000-0xfddeefff irq 45 at device 4.0 on pci0
pcm0: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xfddee000
pcm0: Reserved 0x10000 bytes for rid 0x14 type 3 at 0xfddf0000
pcm0: [GIANT-LOCKED]
pcm0: <Cirrus Logic CS4297A AC97 Codec (id = 0x43525914)>
pcm0: Codec features headphone, 20 bit DAC, 18 bit ADC, 6 bit master volume, Crystal Semi 3D Stereo Enhancement
pcm0: Primary codec extended features AMAP
pcm0: sndbuf_setmap 3dad6000, 4000; 0xa000000019d3e000 -> 3dad6000
pcm0: sndbuf_setmap 3daba000, 4000; 0xa000000019d42000 -> 3daba000
fxp0: <Intel 82559 Pro/100 Ethernet> port 0x1000-0x103f mem 0xfdf00000-0xfdffffff,0xfddef000-0xfddeffff irq 44 at device 5.0 on pci0
fxp0: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xfddef000
fxp0: using memory space register mapping
fxp0: PCI IDs: 8086 1229 8086 000c 0008
fxp0: Dynamic Standby mode is disabled
miibus0: <MII bus> on fxp0
inphy0: <i82555 10/100 media interface> on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp0: bpf attached
fxp0: Ethernet address: 00:03:47:c6:18:78
fxp0: [GIANT-LOCKED]
pci0: <bridge, HOST-PCI> at device 16.0 (no driver attached)
pcib1: <ACPI Host-PCI bridge> on acpi0
ACPI PCI link initial configuration:
ACPI PCI link before setting link priority:
ACPI PCI link before fixup for boot-disabled links:
ACPI PCI link after fixup for boot-disabled links:
ACPI PCI link arbitrated configuration:
pci1: <ACPI PCI bus> on pcib1
pci1: physical bus=1
	map[10]: type 1, range 32, base fbffff00, size  8, enabled
found->	vendor=0x8086, dev=0x123f, revid=0x01
	bus=1, slot=15, func=0
	class=08-04-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0002, statreg=0x0200, cachelnsz=16 (dwords)
	lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=255
pci1: <base peripheral> at device 15.0 (no driver attached)
pcib2: <ACPI Host-PCI bridge> on acpi0
ACPI PCI link initial configuration:
ACPI PCI link before setting link priority:
ACPI PCI link before fixup for boot-disabled links:
ACPI PCI link after fixup for boot-disabled links:
ACPI PCI link arbitrated configuration:
pci2: <ACPI PCI bus> on pcib2
pci2: physical bus=2
	map[10]: type 3, range 32, base f6000000, size 25, enabled
pcib2: matched entry for 2.1.INTA (src )
pcib2: device is hardwired to IRQ 31
found->	vendor=0x1044, dev=0xa501, revid=0x01
	bus=2, slot=1, func=0
	class=0e-00-01, hdrtype=0x00, mfdev=1
	cmdreg=0x0106, statreg=0x04b0, cachelnsz=16 (dwords)
	lattimer=0x20 (960 ns), mingnt=0x01 (250 ns), maxlat=0x01 (250 ns)
	intpin=a, irq=31
	powerspec 2  supports D0 D3  current D0
found->	vendor=0x1044, dev=0xa500, revid=0x01
	bus=2, slot=1, func=1
	class=06-04-00, hdrtype=0x01, mfdev=1
	cmdreg=0x0006, statreg=0x04b0, cachelnsz=16 (dwords)
	lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	map[10]: type 1, range 32, base f3ff7f00, size  8, enabled
found->	vendor=0x8086, dev=0x123f, revid=0x01
	bus=2, slot=15, func=0
	class=08-04-00, hdrtype=0x00, mfdev=0
	cmdreg=0x0002, statreg=0x0200, cachelnsz=16 (dwords)
	lattimer=0x20 (960 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=255
asr0: <Adaptec Caching SCSI RAID> mem 0xf6000000-0xf7ffffff irq 31 at device 1.0 on pci2
asr0: Reserved 0x2000000 bytes for rid 0x10 type 3 at 0xf6000000
-> ASR_resetIOP called
-> ASR_initiateCp called
-> ASR_initiateCp after DELAY
-> ASR_initiateCp before asr_set_frame
-> ASR_initiateCp before asr_set_intr
-> ASR_initiateCp before asr_set_ToFIFO
-> ASR_initiateCp finished
-> ASR_getStatus before ASR_initiateCp
-> ASR_initiateCp called
-> ASR_initiateCp after DELAY
-> ASR_initiateCp before asr_set_frame

fatal kernel trap (cpu 0):

    trap vector = 0x1e (Unaligned Reference)
    cr.iip      = 0xe0000000041a7600
    cr.ipsr     = 0x1010080a2010 (mfl,ic,dt,dfh,rt,cpl=0,it,ri=0,bn)
    cr.isr      = 0x200000000 (code=0,vector=0,w,ei=0)
    cr.ifa      = 0xc0000001f5ffffff
    curthread   = 0xe0000000048c9a60
        pid = 0, comm = swapper

[thread 0]
Stopped at      ASR_initiateCp+0x2f0:   [M0]    st4.rel [r15]=r14
db> where
ASR_initiateCp(0xe0000000008d9000, 0xe00000000485d384) at ASR_initiateCp+0x2f0
ASR_getStatus(0xe0000000008d9000, 0xe000000000964300, 0xff, 0xe000000000964383, 0x1, 0xe0000000041ac750, 0x818, 0xe0000000008d9000) at ASR_getStatus+0xd0
asr_attach(0xe0000000001a4700, 0xe00000000090dd00, 0xe000000000964300, 0xe00000000486cec8, 0xff, 0xe00000000485d44c, 0xe0000000008d9018, 0xf6000000) at asr_attach+0xb50
device_attach(0xe0000000001a4700) at device_attach+0x4c0
bus_generic_attach(0xe0000000001a4700, 0xe0000000041985e0, 0x38d, 0xe0000000047d8f00) at bus_generic_attach+0x40
acpi_pci_attach(0xe00000000090dd00, 0xe0000000001a4600, 0xe00000000485e320, 0xe00000000485d478, 0xe0000000043e2aa0, 0x797, 0xe000000004aa0d20) at acpi_pci_attach+0x250
device_attach(0xe00000000090dd00) at device_attach+0x4c0
bus_generic_attach(0xe00000000090dd00, 0xe00000000419b1d0, 0x50e, 0x0) at bus_generic_attach+0x40
acpi_pcib_attach(0xe0000000001a4600, 0xe0000000008c2fa0, 0x2, 0xe0000000001a2000, 0xe00000000485e320) at acpi_pcib_attach+0x1a0
acpi_pcib_acpi_attach(0xe0000000001a4600, 0xe0000000008c2f94, 0xe00000000485d4a8, 0xe0000000008c2f98, 0xe0000000008c2f88, 0xe0000000008c2f80, 0xe0000000043e2aa0, 0x797) at acpi_pcib_acpi_attach+0x370
device_attach(0xe0000000001a4600) at device_attach+0x4c0
bus_generic_attach(0xe0000000001a4600, 0xe0000000041878f0, 0xa9d, 0xe00000000485e0a0) at bus_generic_attach+0x40
acpi_attach(0xe0000000001a2000, 0x4, 0xe0000000048647b8, 0xe00000000485d4e8, 0xe00000000485d4d8, 0xe000000000900248, 0xe000000004794ab0, 0xe000000004786808) at acpi_attach+0xae0
device_attach(0xe0000000001a2000) at device_attach+0x4c0
bus_generic_attach(0xe0000000001a2000) at bus_generic_attach+0x40
nexus_attach(0xe0000000001a2200, 0xe0000000043e2aa0, 0x797, 0xe0000000043e2a70) at nexus_attach+0xd0
device_attach(0xe0000000001a2200) at device_attach+0x4c0
root_bus_configure(0xe0000000001a2200, 0xe000000004728be0, 0x186) at root_bus_configure+0x50
configure(0xe000000004350a60, 0x48b) at configure+0x60
mi_startup(0xe0000000047d2ad0, 0xe0000000048ca280, 0xe0000000048ca288, 0x1, 0xe0000000048ca278, 0xe0000000048ca290, 0xe0000000047448f0, 0x899) at mi_startup+0x2c0
ia64_init(0xe0000000048c9c10) at ia64_init+0xc80
__start() at __start+0xa0
db> 
--- ia64_asr.cap ends here ---


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list