zephyr/arch
Andy Ross 9cb8dcbf84 arch/x86_64: Use modern CR0 assembly
The 16 bit bootstrap code for SMP CPUs was using the 286-era "lmsw"
instruction (load machine status word) to set the protected bit in CR0
(which is the modern evolution of the same register), presumably
because this is 16 bit code and we can't move a dword into CR0.

But that's wrong, because the full instruction set *is* available in
real mode on a 386, you just have to use a operand size prefix to get
to it, which the assembler emits for you automatically when you use
the .code16 directive.

Write this conventionally and use modern (e.g. 1986-era) instructions.
It also has the advantage of not confusing much more modern
hypervisors like ACRN by issuing instructions they (and I!) never knew
existed.

Fixes #35076

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2021-06-03 20:07:50 -05:00
..
arc arch: arc: _reset and _start section fix 2021-05-26 04:43:06 -05:00
arm arch: arm: cortex-m: add support for clearing NXP MPU regions at boot 2021-05-26 18:14:03 -05:00
arm64 arch: arm64: Fix the assertion failed when MP_NUM_CPUS >= 3 2021-05-26 04:42:49 -05:00
common arch: common: Fix 10.4 violations 2021-04-10 09:59:37 -04:00
nios2 arch: nios2: Fix 10.4 violations 2021-04-10 09:59:37 -04:00
posix arch: replace power/power.h with pm/pm.h 2021-05-05 18:35:49 -04:00
riscv arch: riscv: Fix 10.4 violations 2021-04-10 09:59:37 -04:00
sparc SPARC: add the Flush windows software trap 2021-05-28 06:32:36 -05:00
x86 arch/x86_64: Use modern CR0 assembly 2021-06-03 20:07:50 -05:00
xtensa xtensa: fix booting secondary cores on the dummy thread 2021-05-03 17:13:01 -04:00
CMakeLists.txt cmake: fix include directories to work with out-of-tree arch 2020-08-05 08:06:07 -04:00
Kconfig kernel: mmu: z_backing_store* to k_mem_paging_backing_store* 2021-05-28 11:33:22 -04:00