Seminar / Training
Das Seminar führt von der SMC Calling Convention bis zu einem eigenen, sicher implementierten EL3-Laufzeitdienst. Registrierung, Initialisierung, Dispatch, Kontextverwaltung, Nebenläufigkeit und Schnittstellenhärtung werden anhand des TF-A-Frameworks praktisch umgesetzt. Dadurch entsteht ein klares Verständnis dafür, welche Dienste in EL3 gehören, welche Daten als nicht vertrauenswürdig gelten und wie stabile Firmware-ABIs gestaltet werden.
Inhaltsübersicht
- SMC und SMCCC-Grundlagen
- EL3-Runtime-Service-Framework
- SMC-Dispatch und Parameterfluss
- Kontextmanagement und World Switch
- SiP- und OEM-Dienste entwerfen
- Nebenläufigkeit und Sperrkonzept
- Interrupts und asynchrone Ereignisse
- Schnittstellenhärtung
- Eigener EL3-Dienst als Abschlusslabor
Lernziele
- SMC Calling Convention, Owner-Bereiche und Aufruftypen korrekt anwenden.
- EL3-Laufzeitdienste registrieren, initialisieren und über Dispatch-Funktionen bereitstellen.
- Kontextwechsel und Zustandsverwaltung zwischen Sicherheitszuständen nachvollziehen.
- SiP- oder OEM-Dienste mit robuster Parameterprüfung und Fehlersemantik implementieren.
- Nebenläufigkeit, Interrupts, ABI-Stabilität und Angriffsflächen systematisch prüfen.
Seminarinhalte
1. SMC und SMCCC-Grundlagen
- Schritt 1: SMC-Instruktion, Funktions-ID, Aufrufkonvention und Rückgaberegister werden zerlegt.
- Schritt 2: Fast Calls, Yielding Calls, 32- und 64-Bit-Konventionen sowie Owner-Bereiche werden unterschieden.
- Schritt 3: Versionierung, Discovery und standardisierte Fehlercodes werden als ABI-Bausteine eingeordnet.
Praxis: Mehrere SMC-Funktions-IDs werden dekodiert und auf Konsistenz geprüft.
2. EL3-Runtime-Service-Framework
- Schritt 1: Service-Deskriptoren, Initialisierungsfunktionen und Handler werden im Quellbaum lokalisiert.
- Schritt 2: Registrierungsreihenfolge und Überlappungen von Owner-Bereichen werden kontrolliert.
- Schritt 3: Initialisierungsfehler werden so behandelt, dass kein unvollständiger Dienst aktiv bleibt.
Praxis: Ein minimaler Dienst wird registriert und beim Start mit einer eindeutigen Statusmeldung bestätigt.
3. SMC-Dispatch und Parameterfluss
- Schritt 1: Eingangsregister werden ohne ungeprüfte Pointer-Nutzung in interne Werte überführt.
- Schritt 2: Funktionsauswahl, Berechtigungsprüfung und Rückgabe werden in klar getrennte Schritte aufgeteilt.
- Schritt 3: Unbekannte Aufrufe, falsche Breite und ungültige Kombinationen erhalten deterministische Fehlerantworten.
Praxis: Ein Handler mit mehreren Funktionen und vollständiger Negativprüfung wird implementiert.
4. Kontextmanagement und World Switch
- Schritt 1: Gespeicherte Registergruppen und per-Welt-Kontexte werden analysiert.
- Schritt 2: Eintritts- und Rückkehrpfade zwischen Non-secure, Secure und optional Realm werden verfolgt.
- Schritt 3: Zusätzliche Architekturregister werden nur bei aktivierten Features in den Kontext aufgenommen.
Praxis: Ein Weltwechsel wird mit Registermarkierungen und kontrollierter Rückgabe nachvollzogen.
5. SiP- und OEM-Dienste entwerfen
- Schritt 1: Plattformspezifische Funktionen werden von standardisierten Architekturdiensten getrennt.
- Schritt 2: Funktionsgruppen, Versionen und optionale Capability-Abfragen werden festgelegt.
- Schritt 3: Zugriff auf Geräte, Speicher und Schlüsselmaterial wird über minimale, prüfbare Operationen gekapselt.
Praxis: Für einen Plattformdienst wird eine kompakte ABI mit Versions- und Feature-Abfrage entworfen.
6. Nebenläufigkeit und Sperrkonzept
- Schritt 1: Per-CPU- und globale Zustände werden identifiziert.
- Schritt 2: Spinlocks, atomare Operationen, Bakery Locks und Unterbrechbarkeit werden nach Kontext gewählt.
- Schritt 3: Reentrancy und Aufrufverschachtelung werden durch Zustandsautomaten oder explizite Ablehnung kontrolliert.
Praxis: Ein gemeinsamer Dienstzustand wird unter parallelen Aufrufen getestet und abgesichert.
7. Interrupts und asynchrone Ereignisse
- Schritt 1: Synchroner SMC-Dispatch und asynchrone Interrupt-Behandlung werden sauber getrennt.
- Schritt 2: Routing und Prioritäten werden mit dem aktiven Sicherheitszustand abgestimmt.
- Schritt 3: Lange Operationen werden so entworfen, dass Latenz und Blockierung beherrschbar bleiben.
Praxis: Ein Dienst wird unter gleichzeitigem Interrupt-Ereignis auf korrekten Zustand geprüft.
8. Schnittstellenhärtung
- Schritt 1: Alle Registerparameter, Adressen, Größen und Zustandsübergänge werden vor der Nutzung validiert.
- Schritt 2: Fehlertexte und Logs werden auf Informationsabfluss geprüft.
- Schritt 3: ABI-Kompatibilität, Deprecation und sichere Erweiterbarkeit werden in einem Versionsplan festgehalten.
Praxis: Ein vorhandener Handler wird anhand einer Härtungscheckliste überarbeitet.
9. Eigener EL3-Dienst als Abschlusslabor
- Schritt 1: Anforderungen, Funktions-IDs, Datenmodell und Berechtigungen werden vor der Implementierung festgelegt.
- Schritt 2: Dienst, Build-Integration, Client-Aufruf und Tests werden schrittweise umgesetzt.
- Schritt 3: Positive, negative und parallele Aufrufe werden protokolliert und bewertet.
Praxis: Ein vollständiger SiP-Beispieldienst wird gebaut, aufgerufen und mit Regressionstests abgesichert.
Zielgruppe
Firmware- und Security-Entwickler, SoC-Integratoren, BSP-Entwickler und Entwickler plattformspezifischer EL3-Dienste.
Voraussetzungen
Gute C- und Arm-A-Kenntnisse, TF-A-Architekturgrundlagen, Verständnis von Exception Levels, Interrupts und Nebenläufigkeit.
Praxisumgebung
Linux-Arbeitsplatz mit TF-A-Quellbaum, AArch64-Toolchain, QEMU oder FVP und einem kleinen Non-secure Testclient.
Fachbereichsleiter / Leiter der Trainer / Ihre Ansprechpartner
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 3 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 1.797 zzgl. MwSt. Inhaus: € 5.100 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | Firmware- und Security-Entwickler, SoC-Integratoren, BSP-Entwickler und Entwickler plattformspezifischer EL3-Dienste. |
| Voraussetzungen: | Gute C- und Arm-A-Kenntnisse, TF-A-Architekturgrundlagen, Verständnis von Exception Levels, Interrupts und Nebenläufigkeit. |
| Standorte: | Stream Live, Inhaus/Firmenseminar, Berlin, Bremen, Darmstadt, Dresden, Erfurt, Essen, Flensburg, Frankfurt, Freiburg, Friedrichshafen, Hamburg, Hamm, Hannover, Jena, Kassel, Köln, Konstanz, Leipzig, Luxemburg, Magdeburg, Mainz, München, Münster, Nürnberg, Paderborn, Potsdam, Regensburg, Rostock, Stuttgart, Trier, Ulm, Wuppertal, Würzburg |
| Methoden: | Vortrag, Quellcodeanalyse, Demonstrationen, praktische Übungen am System und kontrollierte Fehlerfälle |
| Seminararten: | Öffentlich, Webinar, Inhaus, Workshop - Alle Seminare mit Trainer vor Ort, Webinar nur wenn ausdrücklich gewünscht |
| Durchführungsgarantie: | ja, ab 2 Teilnehmern |
| Sprache: | Deutsch - bei Firmenseminaren ist auch Englisch möglich |
| Seminarunterlage: | Dokumentation auf Datenträger oder als Download |
| Teilnahmezertifikat: | ja, selbstverständlich |
| Verpflegung: | Kalt- / Warmgetränke, Mittagessen (wahlweise vegetarisch) |
| Support: | 3 Anrufe im Seminarpreis enthalten |
| Barrierefreier Zugang: | an den meisten Standorten verfügbar |
| Weitere Informationen unter + 49 (221) 74740055 |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
