Bochs SVM:which processor support nRIP?
Posted: Tue Dec 18, 2012 4:14 pm
Hi all,
I see that Bochs SVM NRIP support is only for Generic (AMD?)processor.
anish-mac:bochs-2.6 akgupt3$ grep -nr SVM_NRIP cpu
cpu/cpuid.h:433:#define BX_CPUID_SVM_NRIP_SAVE (1 << 3)
cpu/generic_cpuid.cc:644: leaf->edx = BX_CPUID_SVM_NESTED_PAGING | BX_CPUID_SVM_NRIP_SAVE;
cpu/generic_cpuid.cc BX_CPUID_SVM_NRIP_SAVE;
cpu/svm.cc:582: if (BX_SUPPORT_SVM_EXTENSION(BX_CPUID_SVM_NRIP_SAVE))
PhenomX3 8650 doesn't support nRIP, I verified using FreeBSD and checked CPUID Fn8000_000A using a kernel module.
I am not sure how to specify to use Generic AMD core in bochsrc file, for Phenom, I specified model=phenom_8650_toliman but for Generic, I had it as vendor_string=AuthenticAMD but bochs didn't start, error us "cpu directive is malformed".
Looks like Phenom also doesn't support instruction decode(SVM CPUID capability), I wonder how can hypervisor increment RIP w/o nRIP and instruction decode.
I see that Bochs SVM NRIP support is only for Generic (AMD?)processor.
anish-mac:bochs-2.6 akgupt3$ grep -nr SVM_NRIP cpu
cpu/cpuid.h:433:#define BX_CPUID_SVM_NRIP_SAVE (1 << 3)
cpu/generic_cpuid.cc:644: leaf->edx = BX_CPUID_SVM_NESTED_PAGING | BX_CPUID_SVM_NRIP_SAVE;
cpu/generic_cpuid.cc BX_CPUID_SVM_NRIP_SAVE;
cpu/svm.cc:582: if (BX_SUPPORT_SVM_EXTENSION(BX_CPUID_SVM_NRIP_SAVE))
PhenomX3 8650 doesn't support nRIP, I verified using FreeBSD and checked CPUID Fn8000_000A using a kernel module.
I am not sure how to specify to use Generic AMD core in bochsrc file, for Phenom, I specified model=phenom_8650_toliman but for Generic, I had it as vendor_string=AuthenticAMD but bochs didn't start, error us "cpu directive is malformed".
Looks like Phenom also doesn't support instruction decode(SVM CPUID capability), I wonder how can hypervisor increment RIP w/o nRIP and instruction decode.