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