Vengineerの妄想

人生を妄想しています。

Pixel Visual CoreのASIC内では、Headless Androidが走っている!

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった

昨日のPixel Visual Coreの詳細に対するデバイスドライバがあるかどうかを調べてみたら、ありました。これ!です。

android.googlesource.com

このドライバは、URLを見てもらうとわかるのですが、

です。Androidなのに、intel-linux とかになっていますよね。

どうしてなんでしょうか?

と思っていたら、Twitterでのメンションで、どうやら、Pixel Visual Core内のA53上では、Headless Androidというものが動いているようです。

 

www.slideshare.net

によると、Javaを使うレイヤーを除いた部分、つまり、普通のLinuxみたいなCUIベースのAndroidって感じですかね。

 

Intelが付いているAndoroidは、他にもろいろあります。ね。

android.googlesource.com

があるようです。Android 8.1/9 があるので、easel が Pixel 2に対応するのでしょうね。となると、blueとamberが Pixel 3関連なんですかね。

デバイスドライバは、paintbox ですね。

https://android.googlesource.com/kernel/arm64/+/refs/heads/android-amber-intel-linux-4.7-android10/drivers/misc/paintbox/

などに関係するファイルがありますね。

また、paintbox-fpga.{h,c} というファイルもあります。内部を見ると、FPGAへのリセットコマンドのみですね。Pixel 2にFPGAが載っているんですかね。?

 

それで、Headless Androidということで、Linux Kernel の dts は、

https://android.googlesource.com/kernel/arm64/+/refs/heads/android-amber-intel-linux-4.7-android10/arch/arm64/boot/dts/intel/mnh.dts

で、mnh.dts になります。mhn 、そう、水曜日に書いた Pixel 2/3 側のデバイスドライバの名前です。

  • モデル名:Monette Hil (intel,mnh)
  • CPU:Cortex-A53x1コア(L2付き、PMU付き)
  • メモリ:512MB
  • TIMER:(arm - armv8-timer), (Synopsys - dw-apb-timer)
  • CLOCK:(Synopsys - dw-apb-timer)
  • DMA:(Synopsys - dma-spear1340)
  • Paintbox:64KB
  • EASEL:
  • MIPI:TXx2、RXx3 (Synopsys - mipicsi_host)
  • PCIe:(Synopsys - dw_pcie_ep)
  • SPI:(Synopsys - dw-apb-ssi)
  • GPIO:(Synopsys - dw-apb-gpio)
  • I2C:x4 (Synopsys - designware-i2c)
  • UART:x2 (Synopsys - dw-apb-uart)
  • Perfomance Monitor:Intel - perf_mon
  • Thermal:Intel - mnh_thermal
  • Frequency Cooling:intel - mnh_freq_cooling
  • Power Management:intel - mnh_pm

そして、カーネルの defconfig が mnh_defconfig

https://android.googlesource.com/kernel/arm64/+/refs/heads/android-amber-intel-linux-4.7-android10/arch/arm64/configs/mnh_defconfig

  • CONFIG_ARCH_MNH=y
  • CONFIG_GOOGLE_EASEL=y
  • CONFIG_PAINTBOX=y
  • CONFIG_PAINTBOX_DEBUG=y
  • CONFIG_PAINTBOX_TEST_SUPPORT=y
  • # CONFIG_PAINTBOX_IOMMU_ENABLED is not set
  • CONFIG_PAINTBOX_TEST_CMA=y
  • CONFIG_PAINTBOX_IOMMU=y
  • CONFIG_MNH_THERMAL=y
  • CONFIG_MNH_FREQ_COOLING=y
  • CONFIG_ANDROID=y