rizxt wrote:
I've tested this on my computer and it works perfectly fine, and it boots in QEMU perfectly fine, with OVMF (no CSM).
Please forgive me, but seeing things like
this makes me sceptical:
Code:
setupPaging:
; Fetch the pointer to the paging directory
mov rax, [rsp + 4]
mov cr3, rax
There's no way this won't crash really badly.
This popa also guaranteed to crash. And calling pusha will do exactly nothing.
Not to mention the hardcoded, unaligned, arbitrary addresses like
this:
Code:
uint32_t *buffer = (uint32_t *)0xB00B1E5;
What was your intention, anyway? What if that address is not free and used by an UEFI run-time service on a real machine?
eekee wrote:
microNET might perhaps use Mono code. I don't know whether it's efficient or not, but I assume it can't be bad.
They might want to take a look at
https://www.nanoframework.net/ (I'm not sure how portable that is, but at least there's a
ChibiOS port and its .NET interpreter is MIT licensed).
Cheers,
bzt