Difference between revisions of "Quartz64 Development"

From PINE64
Jump to navigation Jump to search
m (→‎Upstreaming Status: Update patchset link to gpio-rockchip)
 
(30 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Under Construction!
+
This page documents the current status of software support for the [[Quartz64]] single-board computer, and provides links to resources to help prospective contributors get started. Information is kept current on a best-effort basis as various patches get accepted into the kernel.
  
 
== Overview ==
 
== Overview ==
  
[TODO]
+
=== Upstreaming Status ===
  
== Ressources ==
+
{| class="wikitable plainrowheaders" border="1"
 +
! scope="col" | Function
 +
! scope="col" colspan="2" | Status
 +
! scope="col" | Component
 +
! scope="col" | Notes
 +
|-
 +
! scope="row" | Video Output
 +
| colspan="2" style="background:#F99; text-align:center;"|Needs porting
 +
| <code>rockchipdrm/VOP-v2</code>
 +
|
 +
|-
 +
! scope="row" | 3D Acceleration
 +
| style="background:PaleGreen; text-align:center;"|Linux Mainline
 +
| style="background:PaleGreen; text-align:center;"|Upstream Mesa
 +
| <code>panfrost</code>
 +
|
 +
|-
 +
! scope="row" | Video Decode
 +
| style="background:LightYellow; text-align:center;"|Linux Staging
 +
| style="background:#F99; text-align:center;"|Not in ffmpeg<sup>[https://patchwork.ffmpeg.org/project/ffmpeg/list/?series=2898]</sup>
 +
| <code>hantro-vpu</code>, using <code>v4l2-requests</code>
 +
| Speculative status on this also being hantro, can't find rk35* in drivers/staging/media/
 +
|-
 +
! scope="row" rowspan="2" | Audio
 +
| colspan="2"  style="background:#F99; text-align:center;"|Needs porting
 +
| <code>snd-soc-rockchip-i2s?</code>
 +
|
 +
|-
 +
| colspan="2"  style="background:LightYellow; text-align:center;"|linux-next<sup>[https://lore.kernel.org/linux-devicetree/20210601140145.GH543307@dell/]</sup>
 +
| <code>rk817-codec</code>
 +
|
 +
|-
 +
! scope="row" | u-boot
 +
| colspan="2"  style="background:LightYellow; text-align:center;"|Waiting on ATF sources
 +
|
 +
|
 +
|-
 +
! scope="row" | Device Tree
 +
| colspan="2"  style="background:LightYellow; text-align:center;"|Early rk3568 dts in review
 +
|
 +
|
 +
|-
 +
! scope="row" rowspan="2"| Gigabit Ethernet
 +
| colspan="2"  style="background:LightYellow; text-align:center;"|In review<sup>[https://patchwork.kernel.org/project/linux-rockchip/patch/20210421203409.40717-4-ezequiel@collabora.com/]</sup>
 +
| <code>rk3566-gmac</code>
 +
|
 +
|-
 +
| colspan="2"  style="background:LightYellow; text-align:center;"|linux-next<sup>[https://git.kernel.org/netdev/net-next/c/48e8c6f1612b]</sup>
 +
| <code>yt8511-phy</code>
 +
|
 +
|-
 +
! scope="row" | IOMMU
 +
| colspan="2"  style="background:LightYellow; text-align:center;"|In review<sup>[https://patchwork.kernel.org/project/linux-rockchip/list/?series=488139]</sup>
 +
| <code>rockchip-iommu</code>
 +
|
 +
|-
 +
! scope="row" | GPIO
 +
| colspan="2"  style="background:LightYellow; text-align:center;"|In review<sup>[https://patchwork.kernel.org/project/linux-rockchip/list/?series=502977]</sup>
 +
| <code>gpio-rockchip</code>
 +
|
 +
|-
 +
! scope="row" | pinctrl
 +
| colspan="2"  style="background:PaleGreen; text-align:center;"|Linux Mainline
 +
|
 +
|
 +
|-
 +
! scope="row" | Thermal Regulation
 +
| colspan="2"  style="background:LightYellow; text-align:center;"|In review<sup>[https://patchwork.kernel.org/project/linux-rockchip/patch/20210421200445.32977-1-ezequiel@collabora.com/]</sup>
 +
| <code>rockchip-thermal</code>
 +
|
 +
|-
 +
! scope="row" | PCIe
 +
| colspan="2"  style="background:LightYellow; text-align:center;"|In review<sup>[https://patchwork.kernel.org/project/linux-rockchip/patch/20210506023448.169146-1-xxm@rock-chips.com/]</sup>
 +
| <code>pcie-dw-rockchip</code>
 +
|
 +
|-
 +
! scope="row" | Power Management
 +
| colspan="2"  style="background:LightYellow; text-align:center;"|linux-next<sup>[https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git/commit/?h=for-next&id=1782c87b44a0b1a527f01a6a184677c58ccbf9c7]</sup>
 +
| <code>rockchip-pm-domain</code>
 +
|
 +
|-
 +
! scope="row" | Voltage Control
 +
| colspan="2"  style="background:LightYellow; text-align:center;"|In review<sup>[https://patchwork.kernel.org/project/linux-rockchip/patch/20210527082453.1447484-3-jay.xu@rock-chips.com/]</sup>
 +
| <code>rk3568-pmu-io-voltage-domain</code>
 +
|
 +
|-
 +
! scope="row" rowspan="2" | SPI
 +
| colspan="2"  style="background:#F99; text-align:center;"|Needs a driver
 +
|
 +
|
 +
|}
 +
 
 +
== Current Status ==
 +
 
 +
The following sections give an overview over the current status of different parts of the board. Some parts are waiting on a driver to be written or ported, others only need various adjustments.
 +
 
 +
General performance is poor, this is likely due to the [https://en.wikipedia.org/wiki/Advanced_Microcontroller_Bus_Architecture AHB bus] running slow, and may require some major rework of the clock layout to get to acceptable speeds.
 +
 
 +
=== Working ===
 +
 
 +
* eMMC
 +
* SDMMC0 (SD cards)
 +
* GMAC (Gigabit Ethernet)
 +
* USB 2.0
 +
* SATA 2
 +
* SATA 3
 +
* UART
 +
** UART 0 (Pi-bus)
 +
** UART 1 (Bluetooth)
 +
** UART 2 (Pi-bus, debug)
 +
* Video Decode
 +
** VP8
 +
 
 +
=== Partially Working ===
 +
 
 +
* PCI-Express Controller &mdash; everything but devices that need cache coherency (e.g. dGPUs) should work
 +
* USB 3.0 &mdash; at 2.0 speeds only, appears to be due to a PHY configuration issue
 +
* SDMMC1 (Wi-Fi) &mdash; AP6256 working, BL602 needs some work to make it flash firmware
 +
* I<sup>2</sup>C &mdash; works but is not yet exposed to the Pi-bus
 +
 
 +
=== Confirmed Broken ===
 +
 
 +
* Nothing!
 +
 
 +
=== Needs Testing ===
 +
 
 +
* GPU &mdash; Need a VOP-v2 DRM driver to get display output
 +
* Battery
 +
* Audio &mdash; Needs I2S driver
 +
* E-Paper
 +
* SPI &mdash; Needs a driver
 +
 
 +
== Resources ==
 
=== Repositories ===
 
=== Repositories ===
  
 
* BSP based development effort for SPL/U-Boot and Linux
 
* BSP based development effort for SPL/U-Boot and Linux
 
** https://gitlab.com/pine64-org/quartz-bsp
 
** https://gitlab.com/pine64-org/quartz-bsp
 +
* Image CI pipeline aimed at developers
 +
** https://gitlab.com/pgwipeout/quartz64_ci/
 +
* Rockchip U-Boot
 +
** https://github.com/rockchip-linux/u-boot
 +
 +
=== Other ===
 +
 +
* Rockchip-SoC Patchwork Page
 +
** https://patchwork.kernel.org/project/linux-rockchip/list/
 +
* Rockchip Kernel Mailing List Archive
 +
** https://lore.kernel.org/linux-rockchip/
  
 
== Board/SoC Documentation ==
 
== Board/SoC Documentation ==
Line 23: Line 166:
 
... if this fails, the boot ROM will initialize the USB0 port and wait for a connection from the Rockchip
 
... if this fails, the boot ROM will initialize the USB0 port and wait for a connection from the Rockchip
 
flash/boot tools.
 
flash/boot tools.
 +
 +
==== Bootloader Flashing ====
 +
 +
As per pgwipeout's [https://gitlab.com/pine64-org/quartz-bsp/u-boot/-/commit/12d102b86813378af08b086f3b9c13ed8010754c commit message]:
 +
* Make a partition named <code>uboot</code> as partition number 1 at 8 MiB to 16 MiB
 +
* <code>dd if=idblock.bin of=/dev/''<mmc/sd>'' seek=64</code>
 +
* <code>dd if=uboot.img of=/dev/''<mmc/sd>''1</code>
  
 
==== BSP Image Layout ====
 
==== BSP Image Layout ====
 +
 +
[[Category:Quartz64]][[Category:Rockchip RK3566]]

Latest revision as of 15:12, 18 June 2021

This page documents the current status of software support for the Quartz64 single-board computer, and provides links to resources to help prospective contributors get started. Information is kept current on a best-effort basis as various patches get accepted into the kernel.

Overview

Upstreaming Status

Function Status Component Notes
Video Output Needs porting rockchipdrm/VOP-v2
3D Acceleration Linux Mainline Upstream Mesa panfrost
Video Decode Linux Staging Not in ffmpeg[1] hantro-vpu, using v4l2-requests Speculative status on this also being hantro, can't find rk35* in drivers/staging/media/
Audio Needs porting snd-soc-rockchip-i2s?
linux-next[2] rk817-codec
u-boot Waiting on ATF sources
Device Tree Early rk3568 dts in review
Gigabit Ethernet In review[3] rk3566-gmac
linux-next[4] yt8511-phy
IOMMU In review[5] rockchip-iommu
GPIO In review[6] gpio-rockchip
pinctrl Linux Mainline
Thermal Regulation In review[7] rockchip-thermal
PCIe In review[8] pcie-dw-rockchip
Power Management linux-next[9] rockchip-pm-domain
Voltage Control In review[10] rk3568-pmu-io-voltage-domain
SPI Needs a driver

Current Status

The following sections give an overview over the current status of different parts of the board. Some parts are waiting on a driver to be written or ported, others only need various adjustments.

General performance is poor, this is likely due to the AHB bus running slow, and may require some major rework of the clock layout to get to acceptable speeds.

Working

  • eMMC
  • SDMMC0 (SD cards)
  • GMAC (Gigabit Ethernet)
  • USB 2.0
  • SATA 2
  • SATA 3
  • UART
    • UART 0 (Pi-bus)
    • UART 1 (Bluetooth)
    • UART 2 (Pi-bus, debug)
  • Video Decode
    • VP8

Partially Working

  • PCI-Express Controller — everything but devices that need cache coherency (e.g. dGPUs) should work
  • USB 3.0 — at 2.0 speeds only, appears to be due to a PHY configuration issue
  • SDMMC1 (Wi-Fi) — AP6256 working, BL602 needs some work to make it flash firmware
  • I2C — works but is not yet exposed to the Pi-bus

Confirmed Broken

  • Nothing!

Needs Testing

  • GPU — Need a VOP-v2 DRM driver to get display output
  • Battery
  • Audio — Needs I2S driver
  • E-Paper
  • SPI — Needs a driver

Resources

Repositories

Other

Board/SoC Documentation

Booting

Boot Order

The RK3566 boot ROM will search for a valid ID BLOCK in the following order on the support boot media:

  • SPI NOR flash
  • SPI NAND flash
  • eMMC
  • SD-Card

... if this fails, the boot ROM will initialize the USB0 port and wait for a connection from the Rockchip flash/boot tools.

Bootloader Flashing

As per pgwipeout's commit message:

  • Make a partition named uboot as partition number 1 at 8 MiB to 16 MiB
  • dd if=idblock.bin of=/dev/<mmc/sd> seek=64
  • dd if=uboot.img of=/dev/<mmc/sd>1

BSP Image Layout