Via SPI aufs TPM (Trusted Platform Module)?

OP #6334252
Lesenswert?
• ▲
▼
Hallo,

ich möchte ein TPM (Trusted Platform Module) via SPI an einen uC 
anschließen.
Ich finde eine Unmenge an Beschreibungen der Kommandos und Antworten auf

https://trustedcomputinggroup.org/resources/?

aber ich finde nicht, wie ich diese auf SPI verpacken muss.
Ich gehe davon aus, dass ich das Kommando wie bei einer SD-Karte
an das TPM sende. Aber wie erhalte ich die Antwort?
Oder wann ist die Antwort bereit? Oder wann soll ich diese Abfragen?

Ich senden z.B. bei einem TPM_CC_Startup mit 12 Bytes an das TPM.
Die Antwort scheint aber nur 10 Bytes lang zu sein.
Also scheint schon mal auszuscheiden, dass bei jedem gesendeten
Kommandobyte einem Byte empfangen wird. Vermute auch,
dass das Kommando erst komplett durch sein muss, das TPM es verarbeitet,
bevor das TPM eine Antwort generieren und zurücksenden kann.
Einfach CS selektiert lassen und CLK weiter toggeln?
Oder CS loslassen und neue Übertragung starten (mit lauter 0x00?),
um die 10 Byte abzuholen?

Gibt es vielleicht sogar eine Spec. oder ein Datenblatt, in dem dies
beschrieben ist?

Vielen Dank im Voraus!

Schöne Grüße,

Marie
OP #6393587
Lesenswert?
• ▲
▼
Marie M. schrieb:
> Ich senden z.B. bei einem TPM_CC_Startup mit 12 Bytes an das TPM.

Die Kunst ist, nicht die 12 Bytes in einem Stück via SPI zu senden,
sondern jedes der 12 Bytes einzeln in einem "WriteByte" (o.ä.) Command,
d.h. es gibt einen zusätzlichen Layer, der Register nachbildet,
die man dann einzeln beschreiben/lesen kann.

Beispiel Lesen:
Man schickt 5 Bytes runter (0x80, 3 Bytes Adresse, 1 Dummy Byte)
und erhält mit dem Senden des Dummy Bytes das zu lesende Byte
zurück. Es gibt auch einen Flow Control Mechanismus (wird in den
Eingabe-Daten beim Senden des letzten niedrigsten Adressbytes 
signalisiert), den ich aber nicht näher angeschaut habe. Für meinen 
kleinen Test ging es auch ohne.
(Ich konnte z.B. von Adresse 0xD40030 ein Byte lesen).

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.