2. Google Pixel シリーズ
https://developers.google.com/android/images
floral :"coral" for Pixel 4 XL, "flame" for Pixel 4
:"bonito" for Pixel 3a XL, "sargo" for Pixel 3a
wahoo :"crosshatch" for Pixel 3 XL, "blueline" for Pixel 3
:"taimen" for Pixel 2 XL, "walleye" for Pixel 2
:"marlin" for Pixel XL, "sailfish" for Pixel
3. Google Pixel 2 / 3 : Pixel Visual Core
2017年10月発売のGoogle Pixel 2 / 2 XL に初めて搭載された Pixel Visual
Core (ASICとして)は、翌年2018年発売の Pixel 3 / 3 XLにも搭載されている。な
お、Pixel 3a (2019年5月発売)には搭載されていない。
Pixel Visual Coreは、FabはTSMC 28nm(下記のHotchip 2018の資料に明記)
で、開発にはIntelが関わっている。
Hotchip 2018 : Pixel Visual Core: Google's Fully Programmable Image,
Vision, and AI Processor For Mobile Devices
Google worked with Intel on a custom A.I. chip for its Pixel phones
The Real Mystery of Intel's Monette Hill
Intel And HCL Collaborating For New Coprocessor With Enhanced Image Processing.
The Pixel 2’s custom camera SoC uses Intel technology
4. Pixel 2側のデバイスドライバ名は、mnh (intel)
Pixel 2 側 (Snapdragon 835のCPUコアが動くという意味で)でのデバイスドライ
バ (Android 8.1) は、mnh (Monette-Hill Co-processor), Intel製
https://android.googlesource.com/kernel/msm/+/refs/heads/android-msm-wahoo-4.4-oreo-dr1/
drivers/misc/mnh/
mnh-sm-ion.c (このファイルのみ、Google製)には、下記のように、ホスト側から
Pixel Visual Coreで動作するKernel等をコピーしている
* mnh_ion_fw_copy - Copy data to ION buffer and flush cache
* Return 0 on success
* -ENOMEMif exceeding totoal buffer size
* mnh_ion_fw_copy must be called in slot incrementing order:
* 1. MNH_FW_SLOT_SBL, 2. MNH_FW_SLOT_KERNEL,
* 3. MNH_FW_SLOT_DTB, 4. MNH_FW_SLOT_RAMDISK
7. Pixel Visual Coreのデバイスドライバ名は、paintbox
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
https://android.googlesource.com/kernel/arm64/+/refs/heads/android-easel-intel-linux-4.7-oreo-
dr1/drivers/misc/paintbox/
https://android.googlesource.com/kernel/arm64/+/refs/heads/android-easel-intel-linux-4.7-oreo-
dr1/include/uapi/paintbox.h
8. Pixel Visual Coreは、FPGA Prototypeされていた?
https://android.googlesource.com/kernel/arm64/+/refs/heads/android-amber-intel-linux-4
.7-android10/drivers/misc/paintbox/paintbox.c#547
val = readl(pb->reg_base + IPU_VERSION);
major = (val & IPU_VERSION_MAJOR_MASK) >> IPU_VERSION_MAJOR_SHIFT;
minor = (val & IPU_VERSION_MINOR_MASK) >> IPU_VERSION_MAJOR_SHIFT;
build = val & IPU_VERSION_INCR_MASK;
is_fpga = !!(val & IPU_VERSION_FPGA_BUILD_MASK);
9. Google Easel デバイスドライバ
Android/Easel coprocessor communication hardware access to the PCIe/EP
driver on the local side of the link (AP or Easel), used by the common and
link-partner-specific code.
https://android.googlesource.com/kernel/msm/+/refs/heads/android-msm-wahoo-4.4-oreo-dr1/driv
ers/misc <= Pixel 2側
https://android.googlesource.com/kernel/arm64/+/refs/heads/android-easel-intel-linux-4.7-oreo-dr1
/drivers/misc/ <= Pixel Visual Core側
google-easel-common.c, google-easel-common-shared.h, google-easel-common-private.h,
google-easel-common-hw.c, google-easel-common-dma.c
Android側からアクセスするときのライブラリ(HDR+ service)
:https://android.googlesource.com/platform/hardware/google/easel/
10. GOOGLE_EASEL
config GOOGLE_EASEL
tristate "Google Easel/Paintbox Coprocessor Support"
---help---
Say 'y' if platform has the Paintbox IPU on an Easel
coprocessor, aka MonetteHill.
config GOOGLE_EASEL_AP
bool "Local system is Application Processor / Android"
depends on GOOGLE_EASEL
---help---
Say 'y' if this kernel is for the AP/Android side of the link. Say
'n' if this kernel is for the Easel/MonetteHill side of the link.