[haiku-commits] Re: r37068 - haiku/trunk/src/system/kernel/arch/x86

  • From: Ingo Weinhold <ingo_weinhold@xxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 09 Jun 2010 23:37:00 +0200

On 2010-06-09 at 14:12:33 [+0200], Axel Dörfler <axeld@xxxxxxxxxxxxxxxx> 
wrote:
> Ingo Weinhold <ingo_weinhold@xxxxxx> wrote:
> > Drivers in our repository can be adjusted, of course, and, from what
> > I've
> > seen, quite a few have to be. I've also seen that some hardware only
> > seems
> > to support 32 bit physical addresses, which also has to be dealt with
> > somehow. These are tasks necessary for the x86_64 as well, BTW.
> 
> Apart from the earliest 64 bit machines, all of the current ones should
> have a dedicated MMU for PCI devices.

That would be helpful indeed. Haven't spotted it in the specs yet, though.

> If that isn't available, and the
> pages used lie outside the 4 GB range, a bounce buffer has to be used.
> Our DMAResource implementation should be able to deliver this all one
> day, but it will have to be used by all drivers that need its
> functionality.

ATM I don't see how you intend to extend DMAResource that it can be used 
for e.g. audio and network drivers. Those seem to mostly allocate 
contiguous RAM and write its physical address into some hardware 
register(s), which might only be 32 bit wide. The only thing that I can 
imagine to help (besides the dedicated MMU) is to somehow make sure that no 
memory beyond the 4 GB limit is allocated.

CU, Ingo

Other related posts: