diff options
Diffstat (limited to 'dev/ZBA/Sources')
| -rw-r--r-- | dev/ZBA/Sources/HEL/AMD64/BootJump.S | 8 | ||||
| -rw-r--r-- | dev/ZBA/Sources/HEL/AMD64/BootMain.cxx | 2 |
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(); } // ---------------------------------------------------- // |
