How to operate Paging in Linux 2.6.16 kernelbased on ARM920T?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux