Page 3 of 3

Re: Raspberry Pi 4

Posted: Thu Feb 10, 2022 4:57 pm
by Octocontrabass
A lot of it applies, but the specifics for setting up AArch64 paging are different. In AArch64, page tables have at least three levels, and the table at each level will fill one whole page (except the top level, which may be smaller). If you're still using 4kB pages, your page tables will have at least four levels.

If you've set up paging on x64 before, this will all look very familiar.

Here's a link to a manual that covers AArch64 paging.

Re: Raspberry Pi 4

Posted: Thu Feb 10, 2022 7:07 pm
by zap8600
Hi. I think I will do so because it seem like I will be able to be faster.

Re: Raspberry Pi 4

Posted: Thu Feb 10, 2022 7:25 pm
by zap8600
Hi. So which memory model do I use? Application, System, or Virtual Memory?

Re: Raspberry Pi 4

Posted: Thu Feb 10, 2022 8:25 pm
by Octocontrabass
I'm not sure what you're asking. The ARM memory model is part of the ARM architecture, you can't not use it.

If you're looking for information about the page tables, that's covered in chapter D5, "The AArch64 Virtual Memory System Architecture".

Re: Raspberry Pi 4

Posted: Thu Feb 10, 2022 8:35 pm
by zap8600
Hi. This is a little side question. How do I fix the self test for gcc 7.1.0? It gives me the error "nul: invalid argument". How do I fix this?

Re: Raspberry Pi 4

Posted: Thu Feb 10, 2022 10:21 pm
by Octocontrabass
You'll have to explain in more detail what you're doing when you get that error.

Re: Raspberry Pi 4

Posted: Sun Feb 13, 2022 4:17 pm
by zaval
Octocontrabas wrote: If you're still using 4kB pages, your page tables will have at least four levels.
not necessarily. if you don't need all the 49 bit address space (both parts combined), you can shrink one level, by appropriate setting those SZ fields and making TTBRx point to the level 1 page table. then you have 512GB+512GB address space, which is not that small, but you have 3-level translation. I do exactly this. :)