Fix address of IDT in real-mode entry
In a case of CS & 0x0fff != 0x0, lidt memory operand does not point
to nullidt, this can raise an exception and shutdown the CPU.
When an AP CPU receives 8-bit Start-Up IPI vector yzH, it starts
execute at physical address 000yz000H. Seems this translates to
either yz00:0000 or y000:z000 (CS:IP), depending of the CPU model.
With the change entry16.inc is relocatable as the commentary suggests
and can be used as ap_sipi_vector on SMP systems.
Signed-off-by: Kyösti Mälkki <email@example.com>
Tested-by: build bot (Jenkins)
Reviewed-by: Idwer Vollering <firstname.lastname@example.org>
Reviewed-by: Ronald G. Minnich <email@example.com>
Reviewed-by: Patrick Georgi <firstname.lastname@example.org>
1 file changed