Date: Fri, 22 Oct 2004 09:43:56 -0700 (PDT) From: luke@prgmr.com To: Doug White <dwhite@gumbysoft.com> Cc: luke@prgmr.com Subject: Re: FreeBSD 4.10 + PAE + SunFire v40z (Newisys 4100) Message-ID: <20041022092517.T4440@prgmr.com> In-Reply-To: <20041021184743.G41366@carver.gumbysoft.com> References: <20041020125520.P29221@prgmr.com> <20041021184743.G41366@carver.gumbysoft.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 21 Oct 2004, Doug White wrote: > On Wed, 20 Oct 2004 luke@prgmr.com wrote: > >> >> I have this SunFire v40z (as far as I can tell, it is a rebadged >> Newisys 4100. Sopposedly, sun manufactured it, but I can't find any ... > Why are you running this in i386 mode? Running an opteron in i386 mode + > PAE is a waste of a perfectly good 64 bit box :) Well, yes, but I can not run -STABLE in amd64 mode... I have to move to the 5.x branch for that. I do so at home, but for this application, I don't feel comfortable with anything less than -STABLE. Even so, the thing is faster than xeons, due to the superior memory archetecture, especially when using four processors. >> mpt0: <LSILogic 1030 Ultra4 Adapter> port 0x2000-0x20ff mem \ >> 0xe5820000-0xe582fff f,0xe5830000-0xe583ffff irq 19 at device 4.0 on pci2 >> mpt0: error 16 creating per-cmd DMA maps >> mpt0: Could not allocate DMA memory > > 16 is EBUSY, whicih makes no sense whatsoever because it never sets error > to EBUSY. It would only ever set it to ENOMEM or succeed. I suspect nasty > bad memory corruption. Can the mpt device probe correctly if you drop it > below 4GB? Hmm... well, Luoqi Chen emailed me a bit ago with an answer that fixed my problem. I made the suggested changes, recompiled, and the thing seems to work ok now. I have pasted the relivant bits below: From: Luoqi Chen <lchen@briontech.com> ... It's a bug in bus_dmamap_create() code, which has been fixed in -current. The fix is rather simple, in i386/i386/busdma_machdep.c, replace the line error = alloc_bounce_pages(dmat, pages); with if (alloc_bounce_pages(dmat, pages) < pages) error = ENOMEM; -lq
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041022092517.T4440>