[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 4/5] x86: Allow physical address bits to be set
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 4/5] x86: Allow physical address bits to be set |
Date: |
Thu, 16 Jun 2016 19:26:01 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 |
On 16/06/2016 19:12, Dr. David Alan Gilbert (git) wrote:
> if (env->features[FEAT_8000_0001_EDX] & CPUID_EXT2_LM) {
> - /* 64 bit processor */
> -/* XXX: The physical address space is limited to 42 bits in exec.c. */
> - *eax = 0x00003028; /* 48 bits virtual, 40 bits physical */
> + /* 64 bit processor, 48 bits virtual, configurable
> + * physical bits.
> + */
> + *eax = 0x00003000 + cpu->phys_bits;
This probably ought to be range checked in realize. I think you can
also implement the magic 0 value there and have a bit less indentation.
In addition, "-cpu host" should have phys-bits=0.
Otherwise looks great.
Paolo
> } else {
> if (env->features[FEAT_1_EDX] & CPUID_PSE36) {
> *eax = 0x00000024; /* 36 bits physical */
> @@ -3273,6 +3274,7 @@ static Property x86_cpu_properties[] = {
> DEFINE_PROP_BOOL("enforce", X86CPU, enforce_cpuid, false),
> DEFINE_PROP_BOOL("kvm", X86CPU, expose_kvm, true),
> DEFINE_PROP_BOOL("fill-mtrr-mask", X86CPU, fill_mtrr_mask, true),
> + DEFINE_PROP_UINT32("phys-bits", X86CPU, phys_bits, 40),
> DEFINE_PROP_UINT32("level", X86CPU, env.cpuid_level, 0),
> DEFINE_PROP_UINT32("xlevel", X86CPU, env.cpuid_xlevel, 0),
> DEFINE_PROP_UINT32("xlevel2", X86CPU, env.cpuid_xlevel2, 0),
> diff --git a/target-i386/cpu.h b/target-i386/cpu.h
> index 13d8501..fccba72 100644
> --- a/target-i386/cpu.h
> +++ b/target-i386/cpu.h
> @@ -1184,6 +1184,9 @@ struct X86CPU {
> /* if true fill the top bits of the MTRR_PHYSMASKn variable range */
> bool fill_mtrr_mask;
>
> + /* Number of physical address bits supported */
> + uint32_t phys_bits;
[Qemu-devel] [PATCH 5/5] x86: Set physical address bits based on host, Dr. David Alan Gilbert (git), 2016/06/16
[Qemu-devel] [PATCH 4/5] x86: Allow physical address bits to be set, Dr. David Alan Gilbert (git), 2016/06/16
- Re: [Qemu-devel] [PATCH 4/5] x86: Allow physical address bits to be set,
Paolo Bonzini <=
- Re: [Qemu-devel] [PATCH 4/5] x86: Allow physical address bits to be set, Eduardo Habkost, 2016/06/16
- Re: [Qemu-devel] [PATCH 4/5] x86: Allow physical address bits to be set, Dr. David Alan Gilbert, 2016/06/17
- Re: [Qemu-devel] [PATCH 4/5] x86: Allow physical address bits to be set, Paolo Bonzini, 2016/06/17
- Re: [Qemu-devel] [PATCH 4/5] x86: Allow physical address bits to be set, Gerd Hoffmann, 2016/06/17
- Re: [Qemu-devel] [PATCH 4/5] x86: Allow physical address bits to be set, Igor Mammedov, 2016/06/17
- Re: [Qemu-devel] [PATCH 4/5] x86: Allow physical address bits to be set, Gerd Hoffmann, 2016/06/17
- Re: [Qemu-devel] [PATCH 4/5] x86: Allow physical address bits to be set, Laszlo Ersek, 2016/06/17
- Re: [Qemu-devel] [PATCH 4/5] x86: Allow physical address bits to be set, Laszlo Ersek, 2016/06/17
- Re: [Qemu-devel] [PATCH 4/5] x86: Allow physical address bits to be set, Marcel Apfelbaum, 2016/06/19