7 on Soekris net4801?

Ian Smith smithi at nimnet.asn.au
Fri Nov 9 20:53:04 PST 2007


On Thu, 8 Nov 2007, Søren Schmidt wrote:
 > Ian Smith wrote:
 > > On Sat, 3 Nov 2007, Henrik Brix Andersen wrote:
 > >  > On Sun, Nov 04, 2007 at 02:59:36AM +1100, Ian Smith wrote:
 > >  > > any particular/new issues with RELENG_7 on the Soekris net4801?
 > >  > > 
 > >  > > Thought I should check before upgrading my T23 as a build platform ..
 > >  > > I haven't done this before, and will be relying on the howtos for 6.X
 > >  > 
 > >  > I recently upgraded two of my net4801s to RELENG_7 - the only problem
 > >  > I have seen so far, is that savecore(8) attempts to do non-aligned DMA
 > >  > transfers and fails. I haven't had time to dig further into this issue
 > >  > yet, though.
 > >
 > > Thanks, Brix.  I'm wondering if that's still (again?) to do with item 3
 > > at http://www.soekris.com/Issue0003.htm ? I've no idea whether a similar
 > > 'quick-fix' to that given for FreeBSD 4.X to /sys/dev/ata/ata-dma.c
 > > would work with the 5.5-S and 6.1-R code I have here, noting that the
 > > alignment is now specified in bytes rather than the earlier bytes-1, so
 > > '4' is presumably the value needed for dword alignment.
 > >
 > > Hmm, ok, trying to dig a little deeper .. rev 1.118 notes say:
 > >
 > >   Add support for a the National Geode SC1100. Thanks to Soekris engineering
 > >   for sponsoring a Soekris 4801 to make this support.
 > >
 > > but I couldn't find anywhere in 1.118 or in later versions up to 1.147
 > > (RELENG_7, HEAD) that does anything other than 'ch->dma->alignment = 2;'
 > >
 > > (Not that me not finding it means much :)  I also noticed at 1.137.2.2: 
 > >
 > >   Add support for using DMA on dump, greatly speeds up the dump process.
 > >
 > > Copying Soren in case he may have a bead on this, but it hardly seems
 > > any impediment to preparation or building for it when the box arrives.
 > >
 > >   
 > Actually aligment is set to 16 but a bit untraditionally in 
 > ata_national_setmode().

:)  Thanks for the pointer.

 > I should change that to do it in an ata_national_allocate() function 
 > which now can contain just a few lines.
 > 
 > I'd figure that the problem is that the geode chip doesn't support 128 
 > sector writes just up to 126, that is not honered from the dump rutine IIRC.

So it's the "can't do 64K DMA transfers" problem biting?  I poked around
through savecore.c and kerneldump.h but couldn't figure out where it
might set anything like that up; it's all a bit far over my head.

What might be needed to fix this?  Using 32K (64 sectors) for the Geode
instead (and perhaps the/some cyrix, as it sets up for 126 sectors too)? 

Cheers, Ian



More information about the freebsd-stable mailing list