amd64/135040: FreeBSD/amd64 does not (always) detect disk on SB600/AliveXFire eSata 2

Ralf Folkerts ralf.folkerts at gmx.de
Sat May 30 16:02:51 UTC 2009


Hi,

first, thanks for the "64bit-DMA-disbale" hint and the Link to the 
Linux-Thread. While reading the Ticket that's mentioned on the thread

http://bugzilla.kernel.org/show_bug.cgi?id=9412

I got somewhat confused, though...

Well, after the Box seems to run fine (well, I did lose JDK15 and JDK16 
during Portupgrade but that might have been a MAKE_JOB... Problem; the 
Filesystems were clean and I didn't notice the lose of any "User Data") 
I just booted Kubuntu (9.04) on that Box to check the SB600 Status (it's 
Kernel 2.6.28-12):

[    1.157946] ahci 0000:00:12.0: version 3.0
[    1.157964] ahci 0000:00:12.0: PCI INT A -> GSI 22 (level, low) -> IRQ 22
[    1.158000] ahci 0000:00:12.0: controller can't do 64bit DMA, forcing 
32bit
[    1.158114] ahci 0000:00:12.0: AHCI 0001.0100 32 slots 4 ports 3 Gbps 
0xf impl SATA mode
[    1.158116] ahci 0000:00:12.0: flags: ncq sntf ilck led clo pmp pio 
slum part
[    1.158577] scsi0 : ahci
[    1.158710] scsi1 : ahci
[    1.158771] scsi2 : ahci
[    1.158835] scsi3 : ahci
[    1.158905] ata1: SATA max UDMA/133 abar m1024 at 0xfe9ff800 port 
0xfe9ff900 irq 22
[    1.158908] ata2: SATA max UDMA/133 abar m1024 at 0xfe9ff800 port 
0xfe9ff980 irq 22
[    1.158911] ata3: SATA max UDMA/133 abar m1024 at 0xfe9ff800 port 
0xfe9ffa00 irq 22
[    1.158914] ata4: SATA max UDMA/133 abar m1024 at 0xfe9ff800 port 
0xfe9ffa80 irq 22
[    1.640021] ata1: softreset failed (device not ready)
[    1.640067] ata1: failed due to HW bug, retry pmp=0
[    1.804031] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    1.808892] ata1.00: ATA-7: SAMSUNG HD160JJ, ZM100-41, max UDMA7
[    1.808894] ata1.00: 312581808 sectors, multi 16: LBA48 NCQ (depth 31/32)
[    1.808907] ata1.00: SB600 AHCI: limiting to 255 sectors per cmd
[    1.840783] ata1.00: SB600 AHCI: limiting to 255 sectors per cmd

So, they (Linux) disable 64bit DMA and limit the number of Sectors per 
Command.

I had a look at ata_ahci_dmainit() in ata-chipset.c and might easily 
disable 64bit DMA as Alexander suggested. However, I didn't find any 
place where the Number of Sectors/Command could/would be limited. I saw 
that it will be disabled under some condition for nvidia but didn't find 
a limit.

If I got the Linux-BZ-Ticket correctly, the Limit of the Sectors / 
Command is mandatory/a documented Chip-Bug while the DMA-Limit seems to 
be solved on more recent Chips (or BIOSses?) but requires the BIOS to do 
something (but what) for it to work.

Now, does anyone (here) have some Contacts to AMD? I'd like to know if 
my Chip is supposed to be able to do 64bit DMA - and if it is what I 
have to write to ASRock to politely ask to put into the BIOS (well, I'm 
afraid they'll ignore but I'd like to do anyway).

If not I'd try to contact the Poster of the Linux-Patch as he obviously 
knows whats getting on...

As always, thanks in advance for any hints!

Cheers,
_ralf_



More information about the freebsd-amd64 mailing list