After setting up my pagination (1-Gbyte page frame) with success, I tried to read high address and I am stuck at reading a 8-Gbyte address position, the CPU does a reset maybe a Page Fault.
Address below 8-Gbyte was readable.
So I am wondering if it's a matter of RAM stick management, I have two of 8 GB and maybe I have to know how can I reach the 2nd RAM stick.
How can I fix that issue.
[SOLVED] Cannot reach address over 8-GByte
[SOLVED] Cannot reach address over 8-GByte
Last edited by Rukog on Sun Aug 22, 2021 3:55 am, edited 2 times in total.
-
- Member
- Posts: 5563
- Joined: Mon Mar 25, 2013 7:01 pm
Re: Cannot reach address over 8 GB
You don't know what kind of fault it is? You should set up exception handlers.Rukog wrote:maybe a Page Fault.
Use the firmware's memory map to find usable RAM.Rukog wrote:So I am wondering if it's a matter of RAM stick management, I have two of 8 GB and maybe I have to know how can I reach the 2nd RAM stick.
Re: Cannot reach address over 8 GB
Also I have made a discovery about mapping page frame, normally we are talking about storing physical address page frame inside page tables right.
But for the 1-GByte paging there was a problem, how can we map 256-TByte of address with only a 20-bit capable physical address inside a PDPTE, it was mission impossible.
So Ive tried another storing method and Ive just did a simple incrementation of page number, assuming it was the CPU that does the translation based on RAM divided into n× 1GB frame
1st page refer to the 1st GByte, 2nd to the second and so on.
Not sure if it does apply the same for other page mapping.
Update:
Ok so ive found the bug and it was a mistype of offset in the code, so just a coincidence
So it's working, I have now access to the upper 8 GB RAM
But for the 1-GByte paging there was a problem, how can we map 256-TByte of address with only a 20-bit capable physical address inside a PDPTE, it was mission impossible.
So Ive tried another storing method and Ive just did a simple incrementation of page number, assuming it was the CPU that does the translation based on RAM divided into n× 1GB frame
1st page refer to the 1st GByte, 2nd to the second and so on.
Not sure if it does apply the same for other page mapping.
Update:
Ok so ive found the bug and it was a mistype of offset in the code, so just a coincidence
So it's working, I have now access to the upper 8 GB RAM
Last edited by Rukog on Sun Aug 22, 2021 4:18 am, edited 1 time in total.
Re: [SOLVED] Cannot reach address over 8-GByte
Note that you are only going to want to use 1GB pages in very specific, limited circumstances. Otherwise you lose most of the advantages of paying and will likely waste huge amounts of RAM.
-
- Member
- Posts: 5563
- Joined: Mon Mar 25, 2013 7:01 pm
Re: Cannot reach address over 8 GB
The PDPTE only holds the upper bits of the physical address. 20 bits is more than enough for 256 TiB.Rukog wrote:But for the 1-GByte paging there was a problem, how can we map 256-TByte of address with only a 20-bit capable physical address inside a PDPTE, it was mission impossible.