はじめに
Google Tensor G2 の Edge TPU のデバイスドライバからわかったこと!(その4)
にて、Google Tensor G1の Edge TPU のデバイスドライバ (Android 12)の中の mailbox のこの部分に
/* mailbox types */ #define EDGETPU_EXT_MAILBOX_TYPE_TZ 1 #define EDGETPU_EXT_MAILBOX_TYPE_GSA 2 #define EDGETPU_EXT_MAILBOX_TYPE_DSP 3
のように、TZ/GSA/DSP の3つがあったが、Google Tensor G1 & Android 13 では、
/* External mailbox types */ #define EDGETPU_EXT_MAILBOX_TYPE_TZ 1 #define EDGETPU_EXT_MAILBOX_TYPE_GSA 2
のように、DSPは無くなっています。Google Tensor G2 & Android 13 でも同じでした。
GSA ってなんだ?
GSA って何だろうと思って、いろいろと調べたところ、
- Google Security Anchor のこと
GSAの中で、TPUのFirmwareのダウンロードやAOCのFirmwareのダウンロードができるようになっています。
また、gsa_tz.{h,c} にて、Arm Trust Zone (trusty) を使っています。trusty は本家のLinux kernelには入っていなくて、Android の kernel/gs の drivers/trusty の中にあります。Arm/Arm64のSMCを使って、Arm Trust Zone の世界に入ります。
おわりに
GSAがどんなことをするのかがちょこっとわかりました。また、GSAの中では、Arm Trust Zone を使っているものわかりました。