fpos
fpos copied to clipboard
Paging mode ENABLE glitch from C devs
What steps will reproduce the problem?
'or' the paging BIT, AHEM BIT...by 8.
--affects all versions posted.
CORRECT FIX:
'or' the bit by 1. You cannot set a 0/1(binary) value to 8. This confuses the
processor and causes a triple fault.It also sets an incorrect value.These are
INTERNAL FLAGS, not LONGWORDS here people...
This did not dawn on me until I looked at WikiDocumentation.
NOTE: Under emulation this will cause QEMU to issue "executing beyond end of
ram" error. This is expected as we are now working/loading HIGH at pageDir 768
address space ~ @ C000 0000, which you probably do not have 3GB or more
allocated to QEMU. This is why this error trips. Its a nonsence error for
machines with less then 3GB to begin with.
Would recommend loading at another address, such as PageDir0 [otherwise 1:1
map] instead.To resolve this "new" error.
So, higher-half loading is out for the moment...
Note: you can 'map' in the kernel with the 'map' routine inside a repeat..until
loop by setting va to the page directory and pa to where we want the kernel
mapped to inside of the paging structure. I have done this and it otherwise
works.
Original issue reported on code.google.com by [email protected] on 2 Sep 2011 at 3:26
qemu screenshot is attached. THIS IS SUPPOSED TO HAPPEN.
Original comment by [email protected] on 2 Sep 2011 at 3:45
Attachments:
- [supposed to happen.png](https://storage.googleapis.com/google-code-attachments/fpos/issue-17/comment-1/supposed to happen.png)
The screenshot is from the thigher half loader/linker with the kernel halting
once code reaches the kernel.Obviously we never make it to PASCALMAIN(__main
for the C devs) as there is no RAM allocated to QEMU at that location. CR0
NEVER takes a longword entry.CR3 DOES however...
Original comment by [email protected] on 2 Sep 2011 at 3:48
proposed low-level loading FIX(some routines may need beta testing, will adjust
later if need be and re-upload. This file was pulled from sources here, and is
not MY modified version.Will double check that one with PAE modes later
on..lets use what works.
Original comment by [email protected] on 2 Sep 2011 at 4:26
Attachments:
Solved with ASM sources. User mode and kernel mode memory are in wrong position.
Original comment by [email protected] on 11 Oct 2013 at 10:43