qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [4239] x86/x86-64 MMU PAE fixes


From: Paul Brook
Subject: Re: [Qemu-devel] [4239] x86/x86-64 MMU PAE fixes
Date: Tue, 22 Apr 2008 23:29:36 +0100
User-agent: KMail/1.9.9

On Tuesday 22 April 2008, Stuart Brady wrote:
> On Tue, Apr 22, 2008 at 09:57:12PM +0100, Paul Brook wrote:
> > On Tuesday 22 April 2008, Aurelien Jarno wrote:
> > > -#define PHYS_ADDR_MASK 0xfffff000
> > > +#define PHYS_ADDR_MASK (~0xfff)
> >
> > I think this is wrong. According to my docs physical addresses have an
> > architectural limit of 52 bits. Bits 52-62 of a PTE are reserved (must be
> > zero), and bit 63 is the NX bit.
>
> The documentation I'm using:
>
> "Intel 64 and IA-32 Architectures Software Development Manual,
>  Volume 3A: System Programming Guide, Part 1"
>
> "3.8 36-Bit Physical Addressing Using The PAE Paging Mechanism"
>
>   Lists bits 36-63 as "must be zero".

This disagrees with the AMD docs, which allow full 52-bit addresses in legacy 
mode. This may be a historical thing.

> "3.10 PAE-Enabled Paging in IA-32e Mode"
>
>   Lists bits 40-51 as "must be zero".

The AMD docs define a 52-bit physical address space. I'm not sure what the 
behavior is on CPUs that only implement a smaller physical address bus.

>   Lists bits 52 to 62 as "available".

The AMD docs, and some versions of the Intel docs list these as must be zero.
This may be annother case of Intel screwing up the architecture. I wouldn't be 
surprised if future CPUs define these bits to have some meaning.

Paul




reply via email to

[Prev in Thread] Current Thread [Next in Thread]