From: Sebastian H. <he...@gm...> - 2008-11-18 23:09:50
|
Sebastian Herbszt wrote: > Stanislav wrote: >> I fixed the I/O APIC reset issue in CVS but this is not enough. >> Now, after second reset you enter SMM and never exit ... >> Looks like perfect BIOS issue, you should be an expert ! > > This problem is not related to the IO-APIC fix. > On a reset we do enter smm_init() in rombios32.c, but since > APMC_EN is still set we exit and not enter SMM. This is > somewhat described in my post "CPU reset and SMBASE", > but i will send a new email with a proper description. I think > DEVACTB should get reset on bx_acpi_ctrl_c::reset(). Just to clarify this: Bochs start ... 00000000000i[SYS ] bx_pc_system_c::Reset(HARDWARE) called 00000000000i[CPU0 ] cpu hardware reset ... 00001492788i[BIOS ] smm_init 00001493236i[BIOS ] smm_init for real 00001493273i[PCI ] setting SMRAM control register to 0x4a 00001657421i[CPU0 ] Enter to System Management Mode ... Linux start ... 00272971621i[CPU0 ] Enter to System Management Mode 00272971631i[CPU0 ] RSM: Resuming from System Management Mode ... 00335940000i[WGUI ] system RESET callback 00335940000i[SYS ] bx_pc_system_c::Reset(HARDWARE) called 00335940000i[CPU0 ] cpu hardware reset ... 00337442748i[BIOS ] smm_init ... Linux start ... 00624897299i[CPU0 ] Enter to System Management Mode and there is no return from SMM. Since there is no "smm_init for real" after the reset SMBASE is not relocated and when SMM is entered code is run from 0x38000 and this is not smm_code from rombios32start.S. - Sebastian |