krfkeith / fpos

Automatically exported from code.google.com/p/fpos
GNU General Public License v2.0
0 stars 0 forks source link

Paging mode ENABLE glitch from C devs #17

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
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 frazzled...@gmail.com on 2 Sep 2011 at 3:26

GoogleCodeExporter commented 9 years ago
qemu screenshot is attached. THIS IS SUPPOSED TO HAPPEN. 

Original comment by frazzled...@gmail.com on 2 Sep 2011 at 3:45

Attachments:

GoogleCodeExporter commented 9 years ago
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 frazzled...@gmail.com on 2 Sep 2011 at 3:48

GoogleCodeExporter commented 9 years ago
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 frazzled...@gmail.com on 2 Sep 2011 at 4:26

Attachments:

GoogleCodeExporter commented 9 years ago
Solved with ASM sources. User mode and kernel mode memory are in wrong position.

Original comment by frazzled...@gmail.com on 11 Oct 2013 at 10:43