|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [PATCH] hvmloader: pci range cache policy
The code is correct as it is. The frame number goes into bits 12 upwards of
the MSR, and this is equivalent to writing the full address into bits 0
upwards.
-- Keir
On 23/5/08 15:58, "Jean Guyader" <jean.guyader@xxxxxxxxxxxxx> wrote:
>
> hvmloader: pci range cache policy
>
> Use frame number instead address when we write the msr for the mtrr of
> the pci range.
>
> Signed-off-by: Jean Guyader <jean.guyader@xxxxxxxxxxxxx>
>
> diff -r ef7525e87030 tools/firmware/hvmloader/cacheattr.c
> --- a/tools/firmware/hvmloader/cacheattr.c Fri May 23 11:58:08 2008 +0100
> +++ b/tools/firmware/hvmloader/cacheattr.c Fri May 23 15:53:32 2008 +0100
> @@ -89,9 +89,9 @@ void cacheattr_init(void)
> if ( nr_var_ranges != 0 )
> {
> /* A single UC range covering PCI space. */
> - wrmsr(MSR_MTRRphysBase(0), PCI_MEMBASE);
> + wrmsr(MSR_MTRRphysBase(0), PCI_MEMBASE >> PAGE_SHIFT);
> wrmsr(MSR_MTRRphysMask(0),
> - ((uint64_t)(int32_t)PCI_MEMBASE & addr_mask) | (1u << 11));
> + (((uint64_t)(int32_t)PCI_MEMBASE & addr_mask) | (1u << 11)) >>
> PAGE_SHIFT);
> printf("var MTRRs ... ");
> }
>
> diff -r ef7525e87030 tools/firmware/hvmloader/util.h
> --- a/tools/firmware/hvmloader/util.h Fri May 23 11:58:08 2008 +0100
> +++ b/tools/firmware/hvmloader/util.h Fri May 23 15:53:32 2008 +0100
> @@ -9,6 +9,8 @@
>
> #undef NULL
> #define NULL ((void*)0)
> +
> +#define PAGE_SHIFT 12
>
> void __assert_failed(char *assertion, char *file, int line)
> __attribute__((noreturn));
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|