Zum Inhalt springen

Privilegienstufe (CPU)/ARM

Aus Foxwiki

ARM

Auf den ARM-Architekturen werden die Privilegienstufen als Exception Levels, d. h. Ausnahmestufen, bezeichnet

  • Dies ist darin begründet, dass der Übergang zwischen Privilegienstufen nur mittels Auftreten einer Ausnahme oder Rückkehr von einer Ausnahmebehandlung möglich ist. Auf AArch64 (Armv8 und später) gibt es vier Exception Levels, die mit EL0 bis EL3 bezeichnet werden
  • Dabei ist EL0 das unprivilegierte Exception Level und die anderen Exception Levels sind privilegiert
  • Die virtuelle Speicherverwaltung weist den Speicherbereichen entsprechend privilegierte (für Zugriffe aus EL1-EL3) und unprivilegierte (für Zugriffe aus EL0) Zugriffsrechte zu
  • Jedem Systemregister ist ein kleinstes Exception Level zugewiesen, aus welchem der Zugriff auf dieses erlaubt ist
  • Dies ist auch im Registernamen angegeben, so beispielsweise VBAR_EL1 für die Startadresse der Ausnahmevektortabelle, auf die nur aus Exception Level 1 und höher zugegriffen werden kann

Je nach Implementierung können EL2 und EL3 auch nicht implementiert sein, nur EL0 und EL1 sind verpflichtend auf allen ARM-Plattformen

  • Falls EL3 nicht implementiert ist, besitzt der Prozessor einen nicht änderbaren Sicherheitszustand, da dieser nur aus EL3 geändert werden könnte

Exception Level 0

EL0 ist für Anwendungsprogramme vorgesehen

  • Der Zugriff auf die meisten Systemregister ist aus EL0 nicht möglich
  • EL0 teilt sich die MMU-Konfiguration mit EL1
  • Um Funktionen des Betriebssystems abzurufen (Systemaufruf), kann ein Programm unter EL0 eine synchrone Ausnahme mittels svc (Supervisor Call) auslösen, welche den Prozessor in EL1 versetzt und die EL1-Ausnahmebehandlung aufruft

Exception Level 1

EL1 ist für Betriebssysteme vorgesehen

  • EL1 kann seine eigene MMU-Konfiguration (entsprechend der MMU-Konfiguration von EL0) ändern und auf Systemregister zugreifen, die EL1 und EL0 beeinflussen
  • Zur Kommunikation mit einem Hypervisor in EL2 dient der hvc-Befehl

Exception Level 2

EL2 ist für Hypervisoren vorgesehen

  • EL2 hat Zugriff auf Konfigurationen zur Virtualisierung mehrerer Betriebssysteme
  • Es können Aufrufe an den Secure Monitor (via smc) aus EL1 abgefangen werden, um beispielsweise einen Secure Monitor zu emulieren

Exception Level 3 (ARM TrustZone)

EL3 ist für Firmware oder einen Secure Monitor vorgesehen

  • Aus EL3 kann der Sicherheitsmodus des Prozessors umgeschaltet werden, sodass Betriebssysteme und Hypervisoren verwaltet werden können, die im sicheren Modus ausgeführt werden (sogenannte ARM TrustZone)
  • EL3 selbst wird (außer auf manchen Armv9-Systemen) immer im sicheren Modus ausgeführt
  • Ist der sichere Modus implementiert, kann Software aus EL2 Funktionen des Secure Monitor mittels des smc-Befehls (Secure Monitor Call) abrufen