Re: [Soekris] Sandisk SDCFX-2048 in 4801
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
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
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
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
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
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