[ previous ] [ next ] [ threads ]
 From:  "Jomar McDonald" <JMcDonald at aidschicago dot org>
 To:  "krt" <kkrrtt at gmail dot com>
 Cc:  <m0n0wall at lists dot m0n0 dot ch>
 Subject:  RE: [m0n0wall] ATA drivers differences between FreeBSD 4.11 and 6.2?
 Date:  Tue, 13 Mar 2007 10:46:46 -0500
I've tried disabling DMA at the login prompt for both disk and atapi
devices and it does force PIO on the cdrom but still does not pick up
the microdrive.  I began to think that maybe it's the CF reader because
I was able to write the microdrive fine with my CF reader in my home PC.
Both m0n0 1.22, 1.3b2 and pfsense 1.01 are able to boot and pick up the
microdrive fine on my home PC using the built in CF reader.

But what's confusing is that the CF reader here at work does pick up the
microdrive using m0n0 1.22 but doesn't with anything freebsd 6.x based
which makes me think maybe its not really the reader, but some kind of
driver or timing issue?  I would have tried replacing the CF reader in
the server here but it has very limited power options so I'm trying to
come up with some kind of quick fix.  



-----Original Message-----
From: krt [mailto:kkrrtt at gmail dot com] 
Sent: Monday, March 12, 2007 2:05 PM
To: Jomar McDonald
Cc: m0n0wall at lists dot m0n0 dot ch
Subject: Re: [m0n0wall] ATA drivers differences between FreeBSD 4.11 and

> 1.9.1. Preparing loader.rc
> loader.rc is the file that the loader reads and interprets. For
m0n0wall, it is used to disable ATA DMA (to increase compatibility with
odd hardware, especially since CF/HD performance isn't very important in
m0n0wall) and load the kernel and the MFS root file system.
> Create the file $BOOTDIR/loader.rc with the following contents:
> set hw.ata.atapi_dma="0"
> set hw.ata.ata_dma="0"
> load /kernel
> load -t mfs_root /mfsroot
> boot
> If you're building for a platform that only has a serial console, add
the flag "-h" (without the quotes) to the "boot" command on the last

> http://doc.m0n0.ch/dev/image-guide-bootloader.html

That might help you somewhat.  1.22 has DMA disabled by default. 
FreeBSD 6.1 and 6.2 do not, and this definitely causes issues with many 
CF devices.

> http://m0n0.ch/wall/list/showmsg.php?id=304/15

that's a post from a previous discussion on the topic

1.3b2 and later fix this by default.

Jomar McDonald wrote:
> I'm having a hell of a time configuring a Seagate 4GB ST640211CF
> Microdrive with m0n0wall/pfsense based on FreeBSD 6.x... For some
> reason, the ata driver in m0n0 1.22 reads the drive and allows me to
> it, with some errors, but FreeBSD 6.1 nor 6.2 will read the drive.
> is the m0n0 1.22 log entry for the drive:
> ad0:  timeout waiting for interrupt
> ad0:  enabling readahead cache failed
> ad0:  timeout waiting for interrupt
> ad0:  enabling write cache failed
> ad0:  READ command timeout tag=0 serv=0 - resetting
> ata0:  resetting devices .. done
> ad0:  3906MB <ST640211CF> [7936/16/63] at ata0-master PIO4
> So it forces PIO, which is fine.. But if I disable DMA at boot time
> m0n0 1.3b2 or pfsense 1.01, it doesn't pick up the drive.  Does anyone
> know what could have possibly changed or what could be causing this?
> The BIOS and bootloader see the drive, but the freebsd kernel/ata
> is having trouble with it.  I'm familiar with Linux so recompiling the
> kernel doesn't scare me so I'm wondering if I recompile m0n0 or
> using the 4.11 ata.c, etc files, will that create a whole other list
> dependency issues?  Can I recompile the older ata drivers under
> 6.x?  I'd really like to use these drives since we've already expensed
> them but I read somewhere that Hitachi Microdrives work better for
> reason or another.  If anyone has 4.11 compiled ata driver kernel
> objects that would be helpful also, but I can recompile if
> Thanks in advance
> Jomar

To unsubscribe, e-mail: m0n0wall dash unsubscribe at lists dot m0n0 dot ch
For additional commands, e-mail: m0n0wall dash help at lists dot m0n0 dot ch