Net5501 and SATA disk on FreeBSD

View: New views
5 Messages — Rating Filter:   Alert me  

Net5501 and SATA disk on FreeBSD

by Patrick Lamaizière-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello dears,

I'm running FreeBSD 7-STABLE on a net5501 with a SATA dik attached
(primary), no CF card.

I'm asking why the ata driver doesn't found a compatible ATA66 cable :

atapci0: <AMD CS5536 UDMA100 controller> port
ata0: <ATA channel 0> on atapci0 ata0: [ITHREAD]
ad0: DMA limited to UDMA33, device found non-ATA66 cable
ad0: 238475MB <WDC WD2500BEVS-00UST0 01.01A01> at ata0-master UDMA33

If I understand well, the CS5536 chipset can do only PATA and
there is a litle chipset PATA<>SATA on the board (a Marvell 88SA8040)

The Marvell chipset seems able to handle UDMA100.

I would like to know if this is a bug on FreeBSD (so I will fill a PR)
or a problem with the board. And if we can work-around this problem with
a patch on the ata driver.

Thanks, regards.
 
_______________________________________________
Soekris-tech mailing list
Soekris-tech@...
http://lists.soekris.com/mailman/listinfo/soekris-tech

Re: Net5501 and SATA disk on FreeBSD

by Poul-Henning Kamp :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

In message <20080430181832.7b9c91d3@...>, Patrick =?
ISO-8859-15?Q?Lamaizi=E8re?= writes:

>I would like to know if this is a bug on FreeBSD (so I will fill a PR)
>or a problem with the board. And if we can work-around this problem with
>a patch on the ata driver.

The UDMA33/UDMA66 cable recognition depends on one particular wire to
be not connected as far as I recall.  My guess is that soren connected
that.

Now, you could either find the offending wire on the pcb and cut it,
or you can hack the freebsd driver to ignore the test (I don't think
the chip checks autonomously) but that does not give you a guarantee
that UDMA66 will actually work.

I havn't tried it.

--
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk@...         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.
_______________________________________________
Soekris-tech mailing list
Soekris-tech@...
http://lists.soekris.com/mailman/listinfo/soekris-tech

Re: Net5501 and SATA disk on FreeBSD

by Martin K. Petersen :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

>>>>> "phk" == Poul-Henning Kamp <phk@...> writes:

phk> The UDMA33/UDMA66 cable recognition depends on one particular
phk> wire to be not connected as far as I recall.  My guess is that
phk> soren connected that.

It's up to the system BIOS to configure this depending on whether pin
34 in the cable connector is grounded or not.

Last I looked Søren returned 0 in both config register bits for
80-wire cable (IDE_CFG[17:16]).

Assuming the wiring is in place on the board, the correct solution
would be for comBIOS to set the appropriate bit to 1 when the SATA
bridge is being used.

--
Martin K. Petersen      http://mkp.net/
_______________________________________________
Soekris-tech mailing list
Soekris-tech@...
http://lists.soekris.com/mailman/listinfo/soekris-tech

Re: Net5501 and SATA disk on FreeBSD

by Patrick Lamaizière-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Le Wed, 30 Apr 2008 13:32:23 -0400,
"Martin K. Petersen" <mkp@...> :

Hello,

> >>>>> "phk" == Poul-Henning Kamp <phk@...> writes:
>
> phk> The UDMA33/UDMA66 cable recognition depends on one particular
> phk> wire to be not connected as far as I recall.  My guess is that
> phk> soren connected that.
>
> It's up to the system BIOS to configure this depending on whether pin
> 34 in the cable connector is grounded or not.
>
> Last I looked Søren returned 0 in both config register bits for
> 80-wire cable (IDE_CFG[17:16]).
>
> Assuming the wiring is in place on the board, the correct solution
> would be for comBIOS to set the appropriate bit to 1 when the SATA
> bridge is being used.

I think this is the problem.

The wiring on the board seems ok. I removed the check of the cable in
the FreeBSD ata driver and i'm able to use UDMA100 without any problem
(the box survived to a 'make buildworld' and some copies of large
files).

A quick test with dd shows me some improvements, around 26 MB/s in
UDMA33, 33 MB/s in UDMA66/UDMA100.

Many thanks for yours replies.
Best regards.

------ FreeBSD 7-STABLE sys/dev/ata/ata-chipset.c

--- ata-chipset.c.bak 2008-04-30 19:30:49.000000000 +0200
+++ ata-chipset.c 2008-04-30 19:44:16.000000000 +0200
@@ -5821,6 +5821,7 @@ ata_check_80pin(device_t dev, int mode)
 {
     struct ata_device *atadev = device_get_softc(dev);
 
+    return mode;
     if (mode > ATA_UDMA2 && !(atadev->param.hwres & ATA_CABLE_ID)) {
  ata_print_cable(dev, "device");
  mode = ATA_UDMA2;

_______________________________________________
Soekris-tech mailing list
Soekris-tech@...
http://lists.soekris.com/mailman/listinfo/soekris-tech

Re: Net5501 and SATA disk on FreeBSD

by Karl O. Pinc :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On 05/01/2008 04:42:56 AM, Patrick Lamaizière wrote:
> The wiring on the board seems ok. I removed the check of the cable in
> the FreeBSD ata driver and i'm able to use UDMA100 without any problem
> (the box survived to a 'make buildworld' and some copies of large
> files).
>
> A quick test with dd shows me some improvements, around 26 MB/s in
> UDMA33, 33 MB/s in UDMA66/UDMA100.

This debian bug may or may not be relevant.

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=479217

Karl <kop@...>
Free Software:  "You don't pay back, you pay forward."
                  -- Robert A. Heinlein
_______________________________________________
Soekris-tech mailing list
Soekris-tech@...
http://lists.soekris.com/mailman/listinfo/soekris-tech
LightInTheBox - Buy quality products at wholesale price!