Subject: Re: [Alacrityvm-devel] [PATCH v3 3/6] vbus: add a "vbus-proxy" bus model for vbus_driver objects

From: Avi Kivity <[email-masked]>
Date: Wed, 19 Aug 2009 08:26:37 +0300

On 08/19/2009 03:44 AM, Ira W. Snyder wrote:
>> You don't need in fact a third mode.  You can mmap the x86 address space
>> into your ppc userspace and use the second mode.  All you need then is
>> the dma engine glue and byte swapping.
>>
>>      
> Hmm, I'll have to think about that.
>
> The ppc is a 32-bit processor, so it has 4GB of address space for
> everything, including PCI, SDRAM, flash memory, and all other
> peripherals.
>
> This is exactly like 32bit x86, where you cannot have a PCI card that
> exposes a 4GB PCI BAR. The system would have no address space left for
> its own SDRAM.
>    

(you actually can, since x86 has a 36-40 bit physical address space even 
with a 32-bit virtual address space, but that doesn't help you).

> On my x86 computers, I only have 1GB of physical RAM, and so the ppc's
> have plenty of room in their address spaces to map the entire x86 RAM
> into their own address space. That is exactly what I do now. Accesses to
> ppc physical address 0x80000000 "magically" hit x86 physical address
> 0x0.
>    

So if you mmap() that, you could work with virtual addresses.  It may be 
more efficient to work with physical addresses directly though.

-- 
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.