Vengineerの戯言

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

Google Tensor G1/G2の Ttrusty OS って何?

はじめに

Google Tensor G1/G2用の Android 13 の kernel を眺めていたら、Trustyなるデバイスドライバを見つけました。Linuxのdriversの下には trusty は無いので Android 独自なのかな?と思っていました。

色々とGoogle君に聞いたら、下記のGoogle Blogを見つけました。この中で、Google Tensor G1 (Pixel 6 & Android 12) にて、Private Compute Core/Arm TrustZone/Trusty OS/Tensor Security Coreというものを導入したようです。

developers-jp.googleblog.com

下図は上のブログにあるものです。説明のために引用します。

通常は、Android OS が Tensor SoC (G1/G2) の中の Main Application Processor (Cortex-X1/A76/A55) にて動いています。これに、

  • Priate Compute Core
  • Secure (TrustZone) にて動作する Trusty OS
  • Tensor Security Core

が追加された感じです。

Trusty

Trusty は、ここ に説明があります。下図は、Trustyのサイトから説明のために引用します。

Trusty のデバイスドライバは、ここ にあります。

Trusty そのものは、ここ にあります。

Arm版だけでなく、Intel版は Intel のサイトにあります。

Private Compute Core

codezine.jp

www.xda-developers.com

www.zdnet.com

どこに使われているのか?

どうらや、gsa というデバイスドライバが関係しているっぽい。Kconfig の 中で pKVM が使われている。

config GSA
    tristate "GSA driver"
    default n

config GSA_PKVM
    bool "Support pKVM"
    depends on GSA
    depends on PKVM_S2MPU
    default n

config GSA_GSC
    tristate "GSC Proxy"
    depends on GSA
    default n

gsa_tz.c では、TrustZone へのアクセスをしている。また、trusty のコードもあります。

#include <linux/trusty/trusty_ipc.h>

このコードの中で、trusty なるものがある。

#define HWMGR_TPU_PORT "com.android.trusty.gsa.hwmgr.tpu"
#define HWMGR_AOC_PORT "com.android.trusty.gsa.hwmgr.aoc"

おわりに

Google Tensor G1/G2 って、これを実現するために、SoCにしたんですかね。。。