mirror of https://github.com/xqemu/xqemu.git
target-i386: allow any alignment for SMBASE
Processors up to the Pentium (says Bochs---I do not have old enough manuals) require a 32KiB alignment for the SMBASE, but newer processors do not need that, and Tiano Core will use non-aligned SMBASE values. Reported-by: Michael D Kinney <michael.d.kinney@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
147482ae35
commit
dd75d4fcb4
|
@ -266,7 +266,7 @@ void helper_rsm(CPUX86State *env)
|
|||
|
||||
val = x86_ldl_phys(cs, sm_state + 0x7efc); /* revision ID */
|
||||
if (val & 0x20000) {
|
||||
env->smbase = x86_ldl_phys(cs, sm_state + 0x7f00) & ~0x7fff;
|
||||
env->smbase = x86_ldl_phys(cs, sm_state + 0x7f00);
|
||||
}
|
||||
#else
|
||||
cpu_x86_update_cr0(env, x86_ldl_phys(cs, sm_state + 0x7ffc));
|
||||
|
@ -319,7 +319,7 @@ void helper_rsm(CPUX86State *env)
|
|||
|
||||
val = x86_ldl_phys(cs, sm_state + 0x7efc); /* revision ID */
|
||||
if (val & 0x20000) {
|
||||
env->smbase = x86_ldl_phys(cs, sm_state + 0x7ef8) & ~0x7fff;
|
||||
env->smbase = x86_ldl_phys(cs, sm_state + 0x7ef8);
|
||||
}
|
||||
#endif
|
||||
if ((env->hflags2 & HF2_SMM_INSIDE_NMI_MASK) == 0) {
|
||||
|
|
Loading…
Reference in New Issue