Linux-kernel-ARM-Übersetzung-Tabelle base (TTB0 und TTB1)

Kompilierte Linux-kernel 2.6.34.3 für ARMv7 (Cortex-a8)

Schaute ich in den kernel-code, und es sieht aus wie der Linux-kernel stellt die hardware-Seite Tabellen für den kernel-Adressraum (alles über 0xC0000000)auf TTB1 (translation table base) und der Benutzer-Prozess auf ttb0 (alles unter 0xC0000000), die änderungen für jeden Prozess-Kontext wechseln. Ist das richtig? Ich bin immer noch verwirrt, wie die MMU weiß, das ttb zu sehen für übersetzungen?

Habe ich gelesen, dass die TTBCR (translation table base-control-register) bestimmt, die von der ttb registrieren zu gehen, wenn eine MVA ist nicht gefunden, aber das register liest immer 0 immer verwenden TTBR0 in den ARM architecture reference manual. Wie ist das möglich? Kann jemand mir erklären, wie der Linux-kernel verwendet diese zwei ttbs?

Ich Lesen, wie die ttb-Werke von dieser Website https://www.cs.rutgers.edu/~pxk/416/notes/10-paging.html, aber ich immer noch nicht verstehen, wie der Kern mit den zwei ttbs

(Doppelt überprüft den kernel-code aus irgendeinem Grund beide ttb0 und ttb1 gesetzt, aber es scheint, wie ttb1 nie verwendet, habe ich die TTB1 register auf 0 und der Linux-kernel weiterhin wie gewohnt ausgeführt)

  • Auf den link, den Sie umschlossen, TTBR0 will still contain the memory map for the operating system and memory-mapped I/O. ich vermute, Sie wollte sagen TTBR1 will still contain the memory map for the operating system and memory-mapped I/O., das macht viel mehr Sinn, in Richtung der 3G/1G (2G/2G) Arbeitsspeicher aufgeteilt. TTBR0 Karten-Prozess ALS mit-Adresse von 0 bis 0xbfffffff, TTBR0 geschaltet ist, während jeder Prozess wechseln. TTBR1 nie geändert werden, da es enthält den link zu den kernel (ab 0xc000000 auf ein Linux mit einem 3G/1G-split).
  • Vielen Dank für die Antwort, also ist es korrekt, dass für jede Tabelle gehen die hardware verwendet NUR TTB0? Die hardware nicht die TTBCR zu bestimmen, welche der ttb-register zu gehen? So TTB1 ist nur zum kopieren einer OS-Seiten, um die Prozess-Seiten?
InformationsquelleAutor MrGigu | 2013-01-22
Schreibe einen Kommentar