Re: [Soekris] Sandisk SDCFX-2048 in 4801

2007-05-29 Thread Chris Cappuccio
As DMA mode worked for you but Ultra-DMA mode did not, I would try
to keep DMA mode enabled in the wd driver.  That might be faster, or
at least less CPU intensive, than PIO mode.  Someone who cares to look
at the spec can tell you if the unwired lines are relevant to DMA,
Ultra-DMA, or both.

Emilio Perea [EMAIL PROTECTED] wrote:
 On Thu, May 10, 2007 at 01:11:26PM +0100, Stuart Henderson wrote:
  On 2007/05/10 13:51, Soren Kristensen wrote:
   The net4801 added support for DMA on the CompactFlash from PCB rev 3, 
   dated 040226. If you have an older board then you will need to tell the 
   ATA driver to disable DMA, as it will detect that the disk support DMA 
   but don't know it's not wired
  
  In OpenBSD, you do this with flags to the wd(4) driver.
  
  You can edit a kernel which is already built using the -e option
  to config(8);
  
  $ config -e -o newkernel bsd
  OpenBSD 4.1-current (GENERIC) #126: Mon May  7 12:43:41 MDT 2007
  [EMAIL PROTECTED]:/usr/src/sys/arch/i386/compile/GENERIC
  Enter 'help' for information
  ukc change wd
   42 wd* at wdc*|pciide* channel -1 flags 0x0
  change [n] y
  channel [-1] ? 
  flags [0] ? 0x0ff0
   42 wd* changed
   42 wd* at wdc*|pciide* channel -1 flags 0xff0
  ukc quit
  
  If you build your own custom kernel, you can change this in the
  configuration file.
  
  The flags value I show here, 0x0ff0, disables DMA and UltraDMA
  and uses whichever PIO mode the device claims to support.
 
 Thanks Stuart, Graham, Rod and Soren!  I didn't realize my board was not
 current.  I really appreciate all your help.
 
 Emilio
 ___
 Soekris-tech mailing list
 Soekris-tech@lists.soekris.com
 http://lists.soekris.com/mailman/listinfo/soekris-tech

-- 
It's beneficial to your health to try and believe a few impossible things
before breakfast. -- Lewis Carroll
___
Soekris-tech mailing list
Soekris-tech@lists.soekris.com
http://lists.soekris.com/mailman/listinfo/soekris-tech


Re: [Soekris] Sandisk SDCFX-2048 in 4801

2007-05-29 Thread Emilio Perea
On Tue, May 29, 2007 at 10:35:51AM -0700, Chris Cappuccio wrote:
 As DMA mode worked for you but Ultra-DMA mode did not, I would try
 to keep DMA mode enabled in the wd driver.  That might be faster, or
 at least less CPU intensive, than PIO mode.  Someone who cares to look
 at the spec can tell you if the unwired lines are relevant to DMA,
 Ultra-DMA, or both.

It seems like a great idea, but unfortunately I was not able to get it
to work using DMA without Ultra-DMA.  I'll try again next weekend...

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


Re: [Soekris] Sandisk SDCFX-2048 in 4801

2007-05-10 Thread RW
On Thu, 10 May 2007 18:00:00 +1000, Graham Menhennitt wrote:

Emilio Perea wrote:
 I've been using a 4801-50 with a SanDisk 1GB Ultra II CF card for a
 while now, using OpenBSD without any problems.  But I was looking for
 bigger, and preferably faster disk, and bought a Sandisk 2GB Extreme
 IV CF card.

 This is almost four times faster in write speed according to my tests in
 a laptop, which seemed great.  But in the 4801 I get disk errors.  I
 put the new and old dmesgs online on
  http://hermes.walkereng.com/fubar.new and
  http://hermes.walkereng.com/fubar.old, but these are the diffs:

 *--*
 29,31c29,31
  wd0 at pciide0 channel 0 drive 0: SanDisk SDCFH-1024
  wd0: 1-sector PIO, LBA, 977MB, 2001888 sectors
  wd0(pciide0:0:0): using PIO mode 4, DMA mode 2
 ---
   
 wd0 at pciide0 channel 0 drive 0: SanDisk SDCFX-2048
 wd0: 4-sector PIO, LBA, 1953MB, 4001760 sectors
 wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2
 
 58a59,98
   
 wd0(pciide0:0:0): timeout
 type: ata
 c_bcount: 8192
 c_skip: 0
 pciide0:0:0: bus-master DMA error: missing interrupt, status=0x21
 

I had the same problem with a 4GB Sandisk under FreeBSD. You need to
tell it to use PIO mode instead of DMA (which your old one seems to do
without needing to tell it). Under FreeBSD 6.2, you do this by adding a line
hw.ata.ata_dma=0
to /boot/loader.conf. I presume that OpenBSD has something similar.

Graham

Well FYI here are two readings of dmesg in a 4801 running OpenBSD:
(there's no hw.ata.ata_dma setting in sysctl)
wd0 at pciide0 channel 0 drive 0: SanDisk SDCFB-512
wd0: 1-sector PIO, LBA, 488MB, 1000944 sectors
wd0(pciide0:0:0): using PIO mode 2
That's a SanDisk

Here is an Apacer:
wd0 at pciide0 channel 0 drive 1: APACER CF SMI222AC
wd0: 1-sector PIO, LBA, 495MB, 1014048 sectors
wd0(pciide0:0:1): using PIO mode 4, DMA mode 2

No error messages with either.
We prefer the Apacers on the basis of speed and reliability (the latter
based on our own  limited thrash testing).

FWIW/YMMV/ACNR ;-)

Rod/
A consultant is someone who's called in when someone has painted himself into a 
corner.  He's expected to levitate his client out of that corner.

-The Sayings of Chairman Morrow. 1984.


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


Re: [Soekris] Sandisk SDCFX-2048 in 4801

2007-05-10 Thread Soren Kristensen
Hi Emilio,

Emilio Perea wrote:
 I've been using a 4801-50 with a SanDisk 1GB Ultra II CF card for a
 while now, using OpenBSD without any problems.  But I was looking for
 bigger, and preferably faster disk, and bought a Sandisk 2GB Extreme
 IV CF card.
 
 This is almost four times faster in write speed according to my tests in
 a laptop, which seemed great.  But in the 4801 I get disk errors.  I

The net4801 added support for DMA on the CompactFlash from PCB rev 3, 
dated 040226. If you have an older board then you will need to tell the 
ATA driver to disable DMA, as it will detect that the disk support DMA 
but don't know it's not wired


Best Regards,


Soren Kristensen

CEO  Chief Engineer
Soekris Engineering, Inc.





 put the new and old dmesgs online on
  http://hermes.walkereng.com/fubar.new and
  http://hermes.walkereng.com/fubar.old, but these are the diffs:
 
 *--*
 29,31c29,31
  wd0 at pciide0 channel 0 drive 0: SanDisk SDCFH-1024
  wd0: 1-sector PIO, LBA, 977MB, 2001888 sectors
  wd0(pciide0:0:0): using PIO mode 4, DMA mode 2
 ---
 wd0 at pciide0 channel 0 drive 0: SanDisk SDCFX-2048
 wd0: 4-sector PIO, LBA, 1953MB, 4001760 sectors
 wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 2
 58a59,98
 wd0(pciide0:0:0): timeout
 type: ata
 c_bcount: 8192
 c_skip: 0
 pciide0:0:0: bus-master DMA error: missing interrupt, status=0x21
 wd0a: device timeout reading fsbn 128 of 128-0 (wd0 bn 191; cn 0 tn 3 sn 2), 
 retrying
 wd0(pciide0:0:0): timeout
 type: ata
 c_bcount: 8192
 c_skip: 0
 pciide0:0:0: bus-master DMA error: missing interrupt, status=0x21
 wd0: transfer error, downgrading to Ultra-DMA mode 1
 wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 1
 wd0a: device timeout reading fsbn 128 of 128-0 (wd0 bn 191; cn 0 tn 3 sn 2), 
 retrying
 wd0(pciide0:0:0): timeout
 type: ata
 c_bcount: 8192
 c_skip: 0
 pciide0:0:0: bus-master DMA error: missing interrupt, status=0x21
 wd0: transfer error, downgrading to Ultra-DMA mode 0
 wd0(pciide0:0:0): using PIO mode 4, Ultra-DMA mode 0
 wd0a: device timeout reading fsbn 128 of 128-0 (wd0 bn 191; cn 0 tn 3 sn 2), 
 retrying
 wd0(pciide0:0:0): timeout
 type: ata
 c_bcount: 8192
 c_skip: 0
 pciide0:0:0: bus-master DMA error: missing interrupt, status=0x21
 wd0: transfer error, downgrading to DMA mode 2
 wd0(pciide0:0:0): using PIO mode 4, DMA mode 2
 wd0a: device timeout reading fsbn 128 of 128-0 (wd0 bn 191; cn 0 tn 3 sn 2), 
 retrying
 wd0: soft error (corrected)
 wd0(pciide0:0:0): timeout
 type: ata
 c_bcount: 8192
 c_skip: 0
 pciide0:0:0: bus-master DMA error: missing interrupt, status=0x21
 wd0: transfer error, downgrading to PIO mode 4
 wd0(pciide0:0:0): using PIO mode 4
 wd0a: device timeout reading fsbn 16 of 16-0 (wd0 bn 79; cn 0 tn 1 sn 16), 
 retrying
 wd0: soft error (corrected)
 *--*
 
 In both cases the card was partitioned and formatted by the OpenBSD
 setup program, choosing use the whole disk for OpenBSD.  Should I try
 again using different disk geometry, go back to the old card, or
 something else?  (I just upgraded the bios from 1.28 to 1.30, just in
 case, but it didn't make any difference.)
 ___
 Soekris-tech mailing list
 Soekris-tech@lists.soekris.com
 http://lists.soekris.com/mailman/listinfo/soekris-tech
 
 .
 
___
Soekris-tech mailing list
Soekris-tech@lists.soekris.com
http://lists.soekris.com/mailman/listinfo/soekris-tech


Re: [Soekris] Sandisk SDCFX-2048 in 4801

2007-05-10 Thread Stuart Henderson
On 2007/05/10 13:51, Soren Kristensen wrote:
 Emilio Perea wrote:
  I've been using a 4801-50 with a SanDisk 1GB Ultra II CF card for a
  while now, using OpenBSD without any problems.  But I was looking for
  bigger, and preferably faster disk, and bought a Sandisk 2GB Extreme
  IV CF card.
  
  This is almost four times faster in write speed according to my tests in
  a laptop, which seemed great.  But in the 4801 I get disk errors.  I
 
 The net4801 added support for DMA on the CompactFlash from PCB rev 3, 
 dated 040226. If you have an older board then you will need to tell the 
 ATA driver to disable DMA, as it will detect that the disk support DMA 
 but don't know it's not wired

In OpenBSD, you do this with flags to the wd(4) driver.

You can edit a kernel which is already built using the -e option
to config(8);

$ config -e -o newkernel bsd
OpenBSD 4.1-current (GENERIC) #126: Mon May  7 12:43:41 MDT 2007
[EMAIL PROTECTED]:/usr/src/sys/arch/i386/compile/GENERIC
Enter 'help' for information
ukc change wd
 42 wd* at wdc*|pciide* channel -1 flags 0x0
change [n] y
channel [-1] ? 
flags [0] ? 0x0ff0
 42 wd* changed
 42 wd* at wdc*|pciide* channel -1 flags 0xff0
ukc quit

If you build your own custom kernel, you can change this in the
configuration file.

The flags value I show here, 0x0ff0, disables DMA and UltraDMA
and uses whichever PIO mode the device claims to support.

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


Re: [Soekris] Sandisk SDCFX-2048 in 4801

2007-05-10 Thread Emilio Perea
On Thu, May 10, 2007 at 01:11:26PM +0100, Stuart Henderson wrote:
 On 2007/05/10 13:51, Soren Kristensen wrote:
  The net4801 added support for DMA on the CompactFlash from PCB rev 3, 
  dated 040226. If you have an older board then you will need to tell the 
  ATA driver to disable DMA, as it will detect that the disk support DMA 
  but don't know it's not wired
 
 In OpenBSD, you do this with flags to the wd(4) driver.
 
 You can edit a kernel which is already built using the -e option
 to config(8);
 
 $ config -e -o newkernel bsd
 OpenBSD 4.1-current (GENERIC) #126: Mon May  7 12:43:41 MDT 2007
 [EMAIL PROTECTED]:/usr/src/sys/arch/i386/compile/GENERIC
 Enter 'help' for information
 ukc change wd
  42 wd* at wdc*|pciide* channel -1 flags 0x0
 change [n] y
 channel [-1] ? 
 flags [0] ? 0x0ff0
  42 wd* changed
  42 wd* at wdc*|pciide* channel -1 flags 0xff0
 ukc quit
 
 If you build your own custom kernel, you can change this in the
 configuration file.
 
 The flags value I show here, 0x0ff0, disables DMA and UltraDMA
 and uses whichever PIO mode the device claims to support.

Thanks Stuart, Graham, Rod and Soren!  I didn't realize my board was not
current.  I really appreciate all your help.

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