Howto で出来ること
Armadillo に搭載される EdgeLock SE050 にアクセスするために Deep Power-down モードを解除する。
Howto の概要
- Sysfs を利用して GPIO を制御して EdgeLock SE050 の Deep Power-down モードを解除する
EdgeLock SE050
NXP Semiconductors 製 EdgeLock SE050 (以下「SE050」という) は IoT アプリケーション向けのセキュアエレメントです。様々なアルゴリズムに対応した暗号エンジン、セキュアストレージを搭載します。内部処理は秘密鍵を露出させることなくセキュアに暗号処理を行うことができます。外部インターフェースは I2C を採用して GlobalPlatform が規定する Secure Channel Protocol 03 に準拠し、バスレベル暗号化 (AES)、ホストとカードの相互認証 (CMAC ベース) を行うことも可能です。また、SE050 はターンキーソリューションとして利用を開始してすぐにクラウドサービスなど PKI を基にしたサービスに接続することができます。チップ固有の X.509証明書などが事前にプロビジョニングされた状態で出荷されます。
SE050 を有効にする
Armadillo は消費電力の削減のため SE050 を Deep Power-down モードに設定してパワーゲーティングしている。Deep Power-down モードを解除して SE050 を利用するためには、i.MX 8M Plus に接続されている SE050 の ENA ピンをアサートする必要があります。
SE050 ena pin
Product | SE050 PIN name | SoC PAD name | initial SoC port status |
---|---|---|---|
Armadillo-IoT G4 | ENA | GPIO1_IO12 | GPIO input |
Armadillo-IoT G4 の例として、sysfs を利用して GPIO1_IO12 を出力ポートに変更して high にする。
[armadillo ~]# echo 12 > /sys/class/gpio/export
[armadillo ~]# echo "out" > /sys/class/gpio/gpio12/direction
[armadillo ~]# echo 1 > /sys/class/gpio/gpio12/value
SE050 の動作を確認する
以下のコマンドで I2C 接続が有効であるかどうかを確認できます。
[armadillo ~]# i2cdetect -y 2
コンソール出力
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --