Skip to content

Paging mode ENABLE glitch from C devs #17

@GoogleCodeExporter

Description

@GoogleCodeExporter
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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions