Vengineerの戯言

人生は短いけど、長いです。人生を楽しみましょう!

Google Tensor G2 の Edge TPU のデバイスドライバからわかったこと!(その4)

はじめに

Google Tensor G2 の Edge TPU のデバイスドライバからわかったこと!(その4)

vengineer.hatenablog.com

にて、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 を使っているものわかりました。