FreeBSD and serial ata
Soren Schmidt
sos at spider.deepcore.dk
Mon Nov 3 01:06:27 PST 2003
It seems Rumen Telbizov wrote:
> any answers the first time.
>
> I have P4P800-VM motherboard with serial ata
> controlers (ICH5) and serial ata discs. I managed
> to install FreeBSD 4.9-STABLE on this box when
> setting the IDE controller in legacy mode.
> Everything works normal except when booting,
> the drives are set into UDMA33 mode:
>
> atapci0: <Intel ICH5 SATA150 controller> port
> 0xfc00-0xfc0f,0-0x3,0-0x7,0-0x3,0-
> 0x7 irq 0 at device 31.2 on pci0
> ata0: at 0x1f0 irq 14 on atapci0
> ata1: at 0x170 irq 15 on atapci0
>
> ad0: DMA limited to UDMA33, non-ATA66 cable or device
> ad0: 76319MB <ST380013AS> [155061/16/63] at ata0-master UDMA33
> ad1: DMA limited to UDMA33, non-ATA66 cable or device
> ad1: 76319MB <ST380013AS> [155061/16/63] at ata0-slave UDMA33
>
> I read somewhere that this message is a hoax and that
> the drive should actually work in UDMA150. Is this my case?
Yes, there are no "modes" on SATA (so far) its just SATA-150 in this
case and the drives (if true SATA drives not PATA with converters)
run SATA-150 over the inteface as soon as youselect any DMA mode.
> I also checked the source of ata-dma.c:
> Here is the section.
>
> #if 1
> if (udmamode > 2 && !atadev->param->hwres_cblid) {
> ata_prtdev(atadev,"DMA limited to UDMA33, non-ATA66 cable or device\n");
> udmamode = 2;
> }
> #endif
>
>
> Maybe this should sound like:
> if ( (udmamode > 2) && (udmamode < 5) && (!atadev->param->hwres_cblid) ) {
> ata_prtdev(atadev,"DMA limited to UDMA33, non-ATA66 cable or device\n");
> udmamode = 2;
> }
>
> All comments are wellcome.
That wont work..
The problem here is that -stable's ATA driver doesn't have the infrastructure
to handle SATA properly, so what you have here is a crude hack to get some
controllers working, but you will have to live with the fallout above...
-Søren
More information about the freebsd-stable
mailing list