kern/130018: Marvell 6145 ata controller gets detected as PATA,
but is SATA
Jan Forsmark
jan at forsmark.dk
Mon Dec 29 02:00:14 PST 2008
>Number: 130018
>Category: kern
>Synopsis: Marvell 6145 ata controller gets detected as PATA, but is SATA
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Dec 29 10:00:09 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator: Jan Forsmark
>Release: FreeBSD 7.1-RC2 amd64
>Organization:
>Environment:
FreeBSD agnosis.thedump.dk 7.1-RC2 FreeBSD 7.1-RC2 #19: Mon Jan 1 03:43:40 UTC 2007 ping at agnosis.thedump.dk:/usr/src/sys/amd64/compile/agnosis amd64
(dont mind the compiletime..clock was wrong when compiled)
>Description:
The driver for Marvell 6145 ata controller thinks its a PATA controller, but in fact it is a SATA controller (maybe it is both, i dont know).
output from dmesg:
<snip>
atapci0: <Marvell 88SX6145 UDMA133 controller> port 0xdc00-0xdc07,0xd880-0xd883,0xd800-0xd807,0xd480-0xd483,0xd400-0xd40f mem 0xfddffc00-0xfddfffff irq 16 at device 0.0 on pci5
atapci0: [ITHREAD]
ata2: <ATA channel 0> on atapci0
ata2: [ITHREAD]
ata3: <ATA channel 1> on atapci0
ata3: [ITHREAD]
pcib9: <ACPI PCI-PCI bridge> irq 17 at device 28.1 on pci0
pci4: <ACPI PCI bus> on pcib9
atapci1: <Marvell 88SX6145 UDMA133 controller> port 0xcc00-0xcc07,0xc880-0xc883,0xc800-0xc807,0xc480-0xc483,0xc400-0xc40f mem 0xfdcffc00-0xfdcfffff irq 17 at device 0.0 on pci4
atapci1: [ITHREAD]
ata4: <ATA channel 0> on atapci1
ata4: [ITHREAD]
ata5: <ATA channel 1> on atapci1
ata5: [ITHREAD]
</snip>
I have tried various patches to correct the problem, but none seems to help.
Changing the line in ata-chipset.c to
{ ATA_M88SX6145, 0, 4, MV60XX, ATA_SA300, "88SX6145" },
instead of
{ ATA_M88SX6145, 0, 2, MV61XX, ATA_UDMA6, "88SX6145" },
Using the above "patch", I can get it to show SATA300, and 4 channels, but it didnt change anything functionally, it still didnt show any disks, and the last 2 channels of each controller made the kernel panic if i did a atacontrol reinit on them
The machine in question has 2 of these controllers, with 4 ports each, as you can see below with pciconf -lv.
No disks gets detected on it, and i know it works, since i can boot off it, until it tries to load the driver, at which point it cannot see the disks anymore.
atapci0 at pci0:5:0:0: class=0x01048f card=0x82201043 chip=0x614511ab rev=0xa1 hdr=0x00
vendor = 'Marvell Semiconductor (Was: Galileo Technology Ltd)'
device = '? Add-on IC to provide 4x SATA Ports, attached to ICH7 (SthBridge?) via PCI-Express.'
class = mass storage
subclass = RAID
atapci1 at pci0:4:0:0: class=0x01048f card=0x82201043 chip=0x614511ab rev=0xa1 hdr=0x00
vendor = 'Marvell Semiconductor (Was: Galileo Technology Ltd)'
device = '? Add-on IC to provide 4x SATA Ports, attached to ICH7 (SthBridge?) via PCI-Express.'
class = mass storage
subclass = RAID
The board is a Asus DSEB-DG, which has 2 of these chips, each with 4 sata ports, and i know there are other boards with this controller on it too.
>How-To-Repeat:
Buy a board with the controller, attach disks, and boot :)
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list