[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [RFC] change provided physical RAM map to add EBDA



On Thu, 2007-03-15 at 08:45 +0000, Guillaume Thouvenin wrote:
> On Wed, Mar 14, 2007 at 12:25:07PM +0000, Ian Campbell wrote:
> > > 
> > >  Does it make sense to add support for EBDA in dom0 by changing the 
> > > physical map? 
> > > If not, what is the more appropriate solution to get information found in 
> > > EBDA area 
> > > from dom0?
> > 
> > Isn't the EBDA region at a known location? bios_ebda.h suggests that it
> > is always at 0x40e0. In which case can't you just ioremap it?
> 
> Yes I think you're right, EBDA seems always located at 0x40E in physical
> memory.

That's segment 0x40e I think -- therefore address 0x40e0.

>  I don' think that I can use ioremap because it is used to remap
> I/O memory into kernel address space and it's not exactly what I need
> here.

I think it is precisely what you need here. You want to map a machine
physical region of memory into the kernel. Because we register I/O
resources base on machine_e820 (i.e. the real physical e820 map) in
domain 0 ioremap will map real physical regions as required.

> > If not then have a look at machine_e820 in i386 setup-xen.c (e820-xen.c
> > on x86_64 I think) -- this is the real underlying e820 which is used to
> > register the real physical memory resources in domain 0. Does this
> > already contain the region you are talking about? 
> 
> It contains the region in linux but when it is compiled for xen (I mean
> with CONFIG_XEN defined) all ebda stuff is just removed. So, as far as I 
> understand, in domain0 the ebda is not set. 

The only stuff I see which is commented out is quirk handling for
certain Dell machines which don't correctly reserve the EBDA area in the
e820. If you have such a machine then you will need to re-enable this
and make it act on machine_e820 instead of the regular e820. For all
other machines it shouldn't matter.

> > Or do you mean to
> > create a completely artificial region that doesn't exist on real
> > hardware?
> 
> My idea is to map the real memory region that contains EBDA to dom0. So
> dom0 will see the real machine memory region under 640Ko (0xa0000) in is
> own physical map. 

This map already exits -- it is the machine_e820 map.

Ian.



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.