-
Notifications
You must be signed in to change notification settings - Fork 676
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support full 48-bit PA on AArch64 #1175
Comments
How long before the first ARM system actually has more than 128 TB of SDRAM memory and this becomes a practical problem? Virtual address space size seems to be 52-bits in Aarch64, so there seems enough room to have a 48-bit PA. The actual problem is that seL4 artificially limits VA to 48-bits, see the comment in
So I think the better solution is to add support for more than 48-bit VA, not to shoehorn 48-bit PA on top of 48-bit VA, which happens to work for HYP. This would also make it possible to support future bigger PA spaces. If systems like that are actually used it wouldn't surprise me if 64k page support is wanted too. |
The 48 bit virtual addresses happen to match up with sizes on x64 and RISC-V 64 bit, which means that some of the generic bit field sizes (like those device untyped addresses) are shared and 48 bit wide. The sharing is mostly for convenience, it's probably possible to add another case there for 52, but we'd have to check if there is sufficient space in all caps for instance. Most look fine and have padding left, but With 3 cases for each pointer storage location it might be time to add an expression language to the bitfield generator, so that we can compute padding instead of having to add a preprocessor |
Currently the non-hyp AArch64 port only supports up to 47-bit Physical Address (PA) space due to how virtual memory mapping is implemented and a bitfield generator limitation with device untyped. It does not support 48-bit PAs accordingly. This issue was discussed in #1157 and #1163 when trying to add support for Morello platform that has 48-bit PA. The main (quoted) takeaways are:
capPtr
) even though they are not mapped.The text was updated successfully, but these errors were encountered: