SmartLynqの解析
SmartLynqを分解したら、UARTとJTAGと思われるコネクタにUARTとJTAGを接続しましょう。
今回はTrenzElectronic社のTE0790-03を使いました。TE0790-03はUARTとJTAGの両方が1つのUSBで作れるから便利ですし、MITOUJTAGからも使うことができます。
さて、起動してからUARTに表示される文字を見てみると、
なんとベアメタルなアプリケーションで作られているようです。
Linuxではない。U-Bootすら使っていないようです。
それなのに、EthernetもUSBも実装するとは、なかなかやるな。
起動が速いから、2秒くらいでOLEDに文字が表示されるわけだ。
さて、JTAGをつないだらMITOUJTAGをつないで見てみましょう。BGAの端子がViaに出ているので、JTAG信号のピン配置を見つけるのはそれほど苦労しませんでした。
ちゃんと、ZYNQの動作が見える🤔
ZYNQが起動した直後のMIOの波形を解析したところ、
UARTの表示からはEMMC BOOTという文字が見えますが、JTAGロジックアナライザの解析結果では、
- リセット時のMIO[8:2] = 1101000 → QSPIブート。MIO電圧=1.8V
- MIO[6:1]→QSPI
- MIO[9:8]→UART1
- MIO[27:16]→Ether0
- MIO[39:28]→USB0
- MIO[45:40]→SD0
- MIO[53:52]→I2C1 (OLED用か?)
となっていることが分かりました。いずれ、このピン配置でZYNQのデザインを作ってオリジナルのブートファイルに書き換えてみましょう。
なお、詳しくは書きませんがMIOとPLの端子が相互に接続されている箇所(もしかするとプロテクト?)らしき箇所も発見できました。
それから、一昨日の記事を訂正します。
USBを差し込んでもドライバのインストールが始まらないと書きましたが、どうやら知らないところでUSBのドライバがインストールされ、このSmartLynqはUSBイーサネットとして認識されていたようです。
だから、LANケーブルをつながなくても、USBだけで使えるのです。
OLEDに表示されていた「10.0.0.2 U」という表示は、このUSBイーサネットのIPアドレス意味していたようですね。
USBで接続すると、SmartLynqがDHCPサーバになって、ホストPCに対してネットワークアドレスを割り当てるようです。
想像以上にすごいぞ!SmaryLynq!!
そのときのUARTに表示されたログを示します。
Loaded MAC Address from EEPROM
TCF 21:51:52.031: Cannot read config.ini: No such file or directory
TCF 21:51:52.031: property get ip-mac (default)
TCF 21:51:52.031: property get ip-gw-mac (default)
TCF 21:51:52.031: property get ip-address (default)
TCF 21:51:52.032: property get ip-gateway (default)
TCF 21:51:52.032: property get usb-mac (default)
TCF 21:51:52.032: property get usb-gw-mac (default)TCF 21:51:52.032: property get usb-address (default)
Setting up Ethernet link.
ETH MAC address: 00:0a:35:XX:XX:XX
TCF 21:51:52.032: property get jtag-clock-frequency (default)
TCF 21:51:52.032: property get jtag-clock-skew (default)
TCF 21:51:52.083: Cannot create HTTP server: Invalid transport name
USB serial number 8672503XXXXX-XXXXX
USB: set interface: 0 1
USB: set interface: 1 1
USB: link up, DHCP 0
Interface un1 is up, IP address: 10.0.0.2
TCF 21:51:52.595: DHCPS: REQUEST 10.0.0.1
TCF 21:51:52.595: DHCPS: ACK 10.0.0.1
なお、TCFというのは、XILINXのJTAGサーバ(hwserver)のことです。
USBイーサとか、GigabitEtherとか、作りこみが凄すぎます。
| 固定リンク








コメント