summaryrefslogtreecommitdiffhomepage
path: root/dev/ZBA/Sources
diff options
context:
space:
mode:
Diffstat (limited to 'dev/ZBA/Sources')
-rw-r--r--dev/ZBA/Sources/HEL/AMD64/BootJump.S8
-rw-r--r--dev/ZBA/Sources/HEL/AMD64/BootMain.cxx2
2 files changed, 4 insertions, 6 deletions
diff --git a/dev/ZBA/Sources/HEL/AMD64/BootJump.S b/dev/ZBA/Sources/HEL/AMD64/BootJump.S
index de474c96..f9943ecf 100644
--- a/dev/ZBA/Sources/HEL/AMD64/BootJump.S
+++ b/dev/ZBA/Sources/HEL/AMD64/BootJump.S
@@ -21,8 +21,6 @@ rt_jump_to_address:
ret
-.code16
-
rt_reset_hardware:
/* dont raise any interrupts. (except ofc NMIs.) */
cli
@@ -41,9 +39,9 @@ wait_gate2:
mov al,0x0FE
out 0x60,al
- /* trigger triple fault */
+ /* trigger triple fault, by writing to cr4 */
- xor eax,eax
- mov cr3,eax
+ xor rax,rax
+ mov cr4,rax
reset_wait:
jmp reset_wait
diff --git a/dev/ZBA/Sources/HEL/AMD64/BootMain.cxx b/dev/ZBA/Sources/HEL/AMD64/BootMain.cxx
index 6925a05a..c8cbe6a7 100644
--- a/dev/ZBA/Sources/HEL/AMD64/BootMain.cxx
+++ b/dev/ZBA/Sources/HEL/AMD64/BootMain.cxx
@@ -222,7 +222,7 @@ EFI_EXTERN_C EFI_API Int Main(EfiHandlePtr ImageHandle,
checkPart.Format("ZKA (A:)", &root, 1);
- EFI::Stop();
+ rt_reset_hardware();
}
// ---------------------------------------------------- //