arch-x86: Fix some settings installed by the init interrupt.
VMX requires that the present bit of the LDT and the TR are set, and that the unusable bit of the TR is zero. Change-Id: I4c4feba38d4fef11ad3b804d41dacb69cc3e6bd5 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/57051 Maintainer: Gabe Black <gabe.black@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu> Maintainer: Bobby Bruce <bbruce@ucdavis.edu>
This commit is contained in:
@@ -256,7 +256,7 @@ InitInterrupt::invoke(ThreadContext *tc, const StaticInstPtr &inst)
|
||||
|
||||
SegAttr tslAttr = 0;
|
||||
tslAttr.unusable = 1;
|
||||
tslAttr.present = 0;
|
||||
tslAttr.present = 1;
|
||||
tslAttr.type = 2; // LDT
|
||||
tc->setMiscReg(MISCREG_TSL, 0);
|
||||
tc->setMiscReg(MISCREG_TSL_BASE, 0);
|
||||
@@ -264,8 +264,8 @@ InitInterrupt::invoke(ThreadContext *tc, const StaticInstPtr &inst)
|
||||
tc->setMiscReg(MISCREG_TSL_ATTR, tslAttr);
|
||||
|
||||
SegAttr trAttr = 0;
|
||||
trAttr.unusable = 1;
|
||||
trAttr.present = 0;
|
||||
trAttr.unusable = 0;
|
||||
trAttr.present = 1;
|
||||
trAttr.type = 3; // Busy 16-bit TSS
|
||||
tc->setMiscReg(MISCREG_TR, 0);
|
||||
tc->setMiscReg(MISCREG_TR_BASE, 0);
|
||||
|
||||
Reference in New Issue
Block a user