Hi, exports
I want to emulate intel x64 cpu with EMT64 tech. But when I use
x86_64_softmmu to compile for 64-bit CPU support, I found it is compatible for
AMD64, but EMT64. I check it from SMM part.
According to Intel spec, when support EMT64 for 64-bit, the SMM save
state map is started from SMBASE + FC00h with 0x400 bytes, and SMbase register
is located in SMBASE + FEF8h. However according to AMD, if support AMD64 for
64-bit, the SMM save state map is started from SMBASE + FE00h with 0x200 bytes,
and SMbase register is located in SMBASE + FF00h. I think this is 2 different
way for 64-bit support. But in Qemu 2.2.4, we just support AMD64 for 64-bit.
Eg: In Do_smm_enter() function,
#ifdef TARGET_X86_64
for (i = 0; i < 6; i++) {
dt = &env->segs[i];
offset = 0x7e00 + i * 16;
stw_phys(cs->as, sm_state + offset, dt->selector);
stw_phys(cs->as, sm_state + offset + 2, (dt->flags >> 8) & 0xf0ff);
stl_phys(cs->as, sm_state + offset + 4, dt->limit);
stq_phys(cs->as, sm_state + offset + 8, dt->base);
}
stl_phys(cs->as, sm_state + 0x7f00, env->smbase);
That’s to say, Does QEMU not support EMT64 for 64-bit? All 64-bit tech
is follow AMD64?
Thank you very much!
Best wishes,
Eric Song
Tel: 010- 82695388 Ext.892242 & 892701
E-mail: [email protected]<mailto:[email protected]>
本邮件仅针对指定的收件人发送并可能含有保密或专有内容。任何非指定收件人所为之查阅、转发或使用本信息是不被允许的。
如果您误收到本邮件,请立即告知发件人并删除本邮件及所有附件。谢谢!
The information transmitted in this e-mail is intended only for the addressee
and may contain confidential and/or privileged material. Any review,
retransmission, dissemination or other use of this information by persons or
entities other than the intended recipient is prohibited. If you received this
e-mail in error, please notify the sender immediately, and delete this e-mail
and any attachments. Thank you.