Armadilloフォーラム

Armadillo IoT G3 M1 M の SE050の i2c バスとアドレスは何番でしょうか?

sshida

2020年10月4日 20時12分

Armadillo IoT G3 M1 M の SE050の i2c バストアドレスを確認して、まずは反応を確認したいです。
i2cdetect では製品マニュアルにある番号が表示されましたが、SE050らしいアドレスは表示されませんでした。

Armadillo IoT G3 M1 M での SE050 の i2c バスとアドレスは何番でしょうか?

$ sudo /usr/sbin/i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x03-0x77.
Continue? [Y/n] y   
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
 
$ sudo /usr/sbin/i2cdetect 3
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-3.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- UU UU -- -- -- -- -- -- 
10: 10 UU UU UU UU 15 UU 17 -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --          

i2cバスとアドレスの一覧表: 表7.4 I2Cデバイス
Armadillo IoT G3, 製品マニュアル, 第7章 Linuxカーネル仕様, 7.3.17. I2C
https://manual.atmark-techno.com/armadillo-iot-g3/armadillo-iotg-g3_pro…

SE050 data sheet には default slave address is 0x48 とありましたが、i2c bus 0, i2c bus 3 ともに "Error: Read failed" と表示されました。
https://www.nxp.com/docs/en/data-sheet/SE050-DATASHEET.pdf

$ sudo /usr/sbin/i2cget -y 0 0x48 0x0f
Error: Read failed
$ sudo /usr/sbin/i2cget -y 3 0x48 0x0f
Error: Read failed
コメント

at_koseki

2020年10月5日 10時48分

古関です。

情報の開示が足りず申し訳ありません。

以下のようにコマンドを実行すると
SE050のスレーブアドレス: 0x48が見えるはずです。

echo 73 > /sys/class/gpio/export
echo high > /sys/class/gpio/gpio73/direction
i2cdetect -y 3

SE050のリセットピンがSoCのGPIOに接続されており、
highにしないとリセット解除されません。

よろしくお願いいたします。

sshida

2020年10月5日 14時49分

手順をありがとうございます。

ちなみに、IoT G3 M1 M の SE050 は u-boot の実行中に有効にする方法はあるでしょうか?

at_koseki

2020年10月6日 21時53分

古関です。

> ちなみに、IoT G3 M1 M の SE050 は u-boot の実行中に有効にする方法はあるでしょうか?
はい。

添付のパッチを当てればU-Boot起動時 SE050のリセット解除ができます。
ただし、リセット解除ができるだけで
U-Boot内にSE050を使うためのインターフェースは準備していません。

・ブートローダーからSE050へのアクセスをすることが目的でしょうか。
・それともカーネル起動後GPIO sysfsを使わずにSE050へアクセスすることが目的でしょうか。
(echo 73 > /sys/class/gpio/export... をするのが手間)

目的が後者であればdevice treeでやる方が良いです。
(こちら作成中です。。お待ちください)

よろしくお願いいたします。

ファイル ファイルの説明
u-boot_secure_element.patch

sshida

2020年10月7日 11時55分

u-boot のパッチをありがとうございます。
SE050 を使うインターフェースがないというのは、u-boot では i2c を使えない(?)ためでしょうか?

u-boot で SE050 を使ってセキュアブートする可能性を考えていました。
そのため u-boot から SE050 をアクセスできるか確認したいです。

Linux kernel 起動後は sysfs の操作がやや手間ですが、まだだいじょうぶです。

at_koseki

2020年10月7日 16時37分

古関です。

> SE050 を使うインターフェースがないというのは、
> u-boot では i2c を使えない(?)ためでしょうか?

いいえ。

i2cを使って直接アクセスする関数等はU-Boot内にあり、
SE050にコマンドなど送ることはできます。

それ以上は自前て作る必要があるという意味で書きました。

ミスリード起きる書き方してしまいました。
ごめんなさい。