[ previous ] [ next ] [ threads ]
 
 From:  krt <kkrrtt at gmail dot com>
 To:  Jomar McDonald <JMcDonald at aidschicago dot org>
 Cc:  m0n0wall at lists dot m0n0 dot ch
 Subject:  Re: [m0n0wall] ATA drivers differences between FreeBSD 4.11 and 6.2?
 Date:  Mon, 12 Mar 2007 12:05:08 -0700
> 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 line.



> 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 use
> it, with some errors, but FreeBSD 6.1 nor 6.2 will read the drive.  Here
> 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 for
> 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 driver
> 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 pfsense
> using the 4.11 ata.c, etc files, will that create a whole other list of
> dependency issues?  Can I recompile the older ata drivers under freebsd
> 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 some
> reason or another.  If anyone has 4.11 compiled ata driver kernel
> objects that would be helpful also, but I can recompile if necessary...
> 
>  
> 
>  
> 
> Thanks in advance
> 
>  
> 
>  
> 
> Jomar
> 
>  
> 
>