7 on Soekris net4801?
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 18.104.22.168:
> > 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
:) 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)?
More information about the freebsd-stable