Hi,

I study Linux 2.6.16 kernel and ARM architectuer. At least, I am analyzing
paging_init() in init/main.c.
So, I have some question. The ARM920T exploits Level-1 discriptor and
Level-2 discriptor and 32-bit modifited virtual address is expolited.
The 32-bit modifiied virutal address consists of 12-bit Table index, 8-bit
Level-2 table index and 12-bit page index.
So, the number of Page Directory Entry is 4096 and the number of Page Tabel
Entry is 256 on Coarse Page Table(small page).

By the way, the Paging technique in Linux 2.6.16 kernel has some flags that
there are no in ARM920T MMU descriptor.
For example, dirty flag and young flag. So, the Linux 2.6 kernel makes to
add entry for Linux page flags in Page Table.

So, the number of Page Directory Entry is 2048 and the number of 512 as blow
figure. The Page Directory Entry includes 2 Level-1 descriptor.
You can refer to comment in "inclue/asm-arm/pagetable.h".

I can not understand how to operate ARM920T MMU in LInux 2.6.16 kernel and
translate from virtual address to physical address.
Please help me.

Thank you.


   pgd                 pte
|          |
+--------+ +0
|          |----->  +------------+ +0
+- - - - + +4    |  h/w pt 0  |
|          |----->  +------------+ +1024
+--------+ +8    |  h/w pt 1  |
|          |         +------------+ +2048
+- - - - +         | Linux pt 0 |
|          |         +------------+ +3072
+--------+         | Linux pt 1 |
|          |         +------------+ +4096

Reply via email to