Hi, > > > 2) Existing SmBase configuration is different between the AMD & OVMF. > > > OVMF: > > > AmdCpuState->x64.SMBASE = (UINT32)mSmBaseForAllCpus[CpuIndex]; > > > > > > AMD: > > > if ((CpuSaveState->x86.SMMRevId & 0xFFFF) == 0) { > > > CpuSaveState->x86.SMBASE = (UINT32)mSmBaseForAllCpus[CpuIndex]; > > > } else { > > > CpuSaveState->x64.SMBASE = (UINT32)mSmBaseForAllCpus[CpuIndex]; > > > }
> I don't the background why AMD and OVMF has such difference. Maybe OVFM > doesn't not support the MSR "EFER_ADDRESS". It surely does, it's a rather essential MSR for x64 CPUs. > > The SmBase configuration for OVMF looks suspicious to me. I'm wondering > > whenever the OVMF code actually works in Ia32 builds ... Tested OvmfPkg/OvmfPkgIa32.dsc with SMM_REQUIRE == TRUE (master branch). Doesn't boot. The difference above (where the OVMF code does not consider the 32bit case) could very well explain why 32bit support is broken. Switching to the AMD code might actually fix that. Is the SmmRelocationLib approach supposed to work with mixed mode firmware where PEI is running in ia32 mode and dxe/smm is running in x64 mode (i.e. OvmfPkg/OvmfPkgIa32X64.dsc)? take care, Gerd -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#117877): https://edk2.groups.io/g/devel/message/117877 Mute This Topic: https://groups.io/mt/105441992/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-