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