FreeBSD and serial ata

Rumen Telbizov altares at e-card.bg
Mon Nov 3 01:42:05 PST 2003


Thanks for the fast reply Soren.
I do appreciate it.

On Mon, Nov 03, 2003 at 10:06:22AM +0100, Soren Schmidt wrote:
> 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.
> 
Great! 
Yes my drives ARE Serial ata. 
I tested the speed by copying from one drive to 
the other and I have a rough estimation of 32MBytes/s
transfer. (Softupdates enabled).
bonnie++ reports ~ 55MBytes/s sequential read/write
speed.

> > 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...

Yeah I know this is an ugly patch. I just thought it might be
usefull to make the OS stop weeping nothing else. Anyway.

What exactly do you mean by saying that -stable's ATA driver doesn't have
the infrastructure to handle SATA properly? How do my controlers
work now? Because of the legacy support in the BIOS?
If the controler is in legacy mode does it work with the full
speed as if it were in native (enhanced) mode?


Thank you.

Rumen Telbizov


More information about the freebsd-stable mailing list