Vengineerの妄想(準備期間)

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

Zynq MPSoCのLinux関連


昨日のXilinxのGitHubの続き。

Zynq MPSoCは、ARM Cortex-A53x4の他に、GPUとしてARM Mali-T400MP2@400MHzが載っています。
このマニュアルの69頁に、Mali-400MP2とありましたので修正しました(2016.01.17)。
このGPUはグラフィックス用でOpenCLはサポートしていません。
基本的には、OpenGL ESのアクセラレータとして使います。

ARMから提供されるGPUなので、ARMが提供しているデバイスドライバを使う必要があります。
ただし、HWに依存する部分があるので、その部分はXilinx側で変更する必要があります。

で、Xilinx MALI Driverにそこんところが詳しく書いてあります。
これはあくまでもGPUデバイスドライバのみです。

そして、Xilinx DRM KMS driverが表示系のドライバ。

あとは、OpenGL ESのライブラリですが、こちらはうーん。

追記)2016.01.17
U-Bootのコード見ていたら、Device TreeにGPUのエントリが入っていました。
zynqmp.dtsi
Linuxでも同じでした。
	gpu: gpu@fd4b0000 {
		status = "disabled";
		compatible = "arm,mali-400", "arm,mali-utgard";
		reg = <0x0 0xfd4b0000 0x30000>;
		interrupt-parent = <&gic>;
		interrupts = <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>, <0 132 4>;
	        interrupt-names = "IRQGP", "IRQGPMMU", "IRQPP0", "IRQPPMMU0", "IRQPP1", "IRQPPMMU1";
		};

このDevice Treeから次のことがわかります。
 ・NANDコントローラ(arasan,nfc-v3p10)は、Arasan IP
 ・GbEコントローラ(cdns,gem)は、Cadence IP (Zynqと同じ)
 ・I2Cコントローラ(cdns,i2c-r1p10)は、Cadence IP (Zynqと同じ)
 ・PCIeコントローラ(xlnx,nwl-pcie-2.11)は、Northwest Logic IP
 ・SATAコントローラ(ceva,ahci-1v84)は、Ceva IP
 ・SDHCコントローラ(arasan,sdhci-8.9a)は、Arasan IP (Zynqと同じ)
 ・SPIコントローラ(cdns,spi-r1p6)は、Cadence IP (たぶん、Zynqと同じ)
 ・Timer(cdns,ttc)は、Cadence IP (Zynqと同じ)
 ・UART(cdns,uart-r1p12)は、Cadence IP (Zynqと同じ)
 ・USB Hostコントローラ(snps,dwc3)は、Synopsys IP
 ・Watch Dog Timer(cdns,wdt-r1p2)は、Cadence IP (Zynqと同じ)

Zynqとほぼ同じで、Cadence IPベースですね。

P.S
土曜日に都内のどこかで Zynq MPSoC の勉強会をやりたいと思っています。
確定したら、connpass立てたいと思います。