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.

Reply via email to