Repository: https://github.com/toku-sa-n/ramen/tree/boot_with_uefi
My OS boots with UEFI. It runs under 64-bit mode. After exiting UEFI boot services, it changes paging settings and CR3 value. On my laptop, assigning a value to a valid virtual memory address succeeds. However, this action fails on my desktop PC.
Code: Select all
MOV RAX, 0xFFFFFFFF80200000
MOV QWORD[VRAM_PTR], RAX ; <--- crash on only my desktop PC.
Code: Select all
MOV RAX, QWORD[VRAM_PTR] ; <--- not crash.
Code: Select all
MOV RAX, PML4
MOV CR3, RAX ; <--- not crash.
Why does my OS crash on desktop PC?
Just in case: desktop PC
Code: Select all
%uname -a
Linux gentoo_desktop 5.5.11-gentoo #1 SMP Tue Mar 24 23:45:50 JST 2020 x86_64 Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz GenuineIntel GNU/Linux
Code: Select all
%uname -a
Linux laptop 5.4.12-gentoo #1 SMP Tue Jan 21 14:56:38 JST 2020 x86_64 Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz GenuineIntel GNU/Linux