« XILINXのSmartLynqを分解してみた | トップページ | アンチエイリアシングフィルタ用のLPFの研究 »

2020.08.08

SmartLynqの解析

SmartLynqを分解したら、UARTとJTAGと思われるコネクタにUARTとJTAGを接続しましょう。

Smljtag

今回はTrenzElectronic社のTE0790-03を使いました。TE0790-03はUARTとJTAGの両方が1つのUSBで作れるから便利ですし、MITOUJTAGからも使うことができます。

 

さて、起動してからUARTに表示される文字を見てみると、

なんとベアメタルなアプリケーションで作られているようです。

Linuxではない。U-Bootすら使っていないようです。

それなのに、EthernetもUSBも実装するとは、なかなかやるな。

Uart_20200809052001

起動が速いから、2秒くらいでOLEDに文字が表示されるわけだ。

 

さて、JTAGをつないだらMITOUJTAGをつないで見てみましょう。BGAの端子がViaに出ているので、JTAG信号のピン配置を見つけるのはそれほど苦労しませんでした。

ちゃんと、ZYNQの動作が見える🤔

Mj_slq

ZYNQが起動した直後のMIOの波形を解析したところ、

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だけで使えるのです。

Smj

OLEDに表示されていた「10.0.0.2 U」という表示は、このUSBイーサネットのIPアドレス意味していたようですね。

USBで接続すると、SmartLynqがDHCPサーバになって、ホストPCに対してネットワークアドレスを割り当てるようです。

Dhcp

想像以上にすごいぞ!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とか、作りこみが凄すぎます。

|

« XILINXのSmartLynqを分解してみた | トップページ | アンチエイリアシングフィルタ用のLPFの研究 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« XILINXのSmartLynqを分解してみた | トップページ | アンチエイリアシングフィルタ用のLPFの研究 »