Downsides of Rockchip
Documentation
- In both the RK3399 and RK3588, exactly 67% of subsystems1 on the chip are documented2
- RK3399 TRM only covers 33 out of 49 subsystems
- RK3588 TRM only covers 89 out of 132 subsystems
- Rockchip's SGRF3 is the most important register file that is undocumented. Configuring it is necessary in order to enable shared memory, which is needed in order to get a framebuffer working.
- RK3399 eMMC documentation is missing
CMD_INDEXfield from the EMMCCORE_CMD register (which is the most important field in the whole IP) - Samsung HDMI/eDP Combo PHY docs are missing a lot of registers from the register map4
Design
- RK3588 GRF, CRU, and PMU is split into a dozen different register files and not organized in any way or set up for strided access
- Offsets and bitfields have to be hardcoded in a map in order to setup PLLs and change iomux settings
- Why does VOP2 need 2 different layer systems? What does 'ESMART' stand for? Why is the TRM so vague?
- It's impossible to configure iomux for a rockchip i2c controller to be used for HDMI. Instead, a completely separate DesignWare I2C driver has to be written specifically for HDMI
- HDMI 2.1 DesignWare IP is used - supports a lot of features and is difficult to get working
- RK3588 has a ton of variants and derivatives (RK3588S/RK3588J/RK3576...) and supporting them all is difficult
Ecosystem
- Joshua Reik burned out from working on ubuntu-rockchip for various reasons, but mainly because he couldn't get in touch with Rockchip for assistance5, after working on Rockchip boards for free
- edk2-rk3588 maintainer (Mario) moved on from the project because:
- Rockchip refuses to adopt standards properly or upstream hardware support
- Board vendors refuse to offer assistance to the community working on their hardware for free
- Most board vendors do the bare minimum for people to buy their product and leave their customers in the dark after that
- "I was told Rockchip no longer considers RK3588 to be an “open source” chip. In practice, that means Rockchip no longer contributes RK3588 code to open-source projects and they also decided not to sell RK3588 directly to SBC vendors."8
- Rockchip is still consistently contributing RK3588 code to the kernel
- Rockchip has refused to make any documentation at all available for the RK3588 9
- Opinion: Rockchip is insane if they ever considered RK3588 'open source' in the first place
- Rockchip and their vendors (Orange Pi, Banana Pi, Radxa, Cool-Pi, etc) release boards and products with subpar hardware support
- Some boards require custom kernels and bootloaders
- Some boards use nonstandard hardware that requires additional kernel work to get working
- Rockchip employees are still working on upstreaming support for RK3588, years after release 6
- Rockchip is shifting focus to Edge AI, Automotive, Robotics, and smart audio solutions 7
-
I count each separate register file as a 'subsystem', excluding duplicates ↩
-
'documented' only means it has the register file defined. It may not have all the information needed to write a driver. ↩
-
Secure General Register File. There are multiple of these register files on the RK3588. ↩
-
check cmn regs such as offset
0x0148,0x0158,0x01b4,0x01b8... ↩ -
https://www.jeffgeerling.com/blog/2024/popular-rockchip-sbc-distro-limbo-after-maintainer-burns-out, https://web.archive.org/web/20241112102432/https://github.com/Joshua-Riek/ubuntu-rockchip/discussions/1104 ↩
-
https://lore.kernel.org/all/?q=rock-chips.com, https://www.collabora.com/news-and-blog/news-and-events/rockchip-rk3588-upstream-support-progress-future-plans.html ↩
-
https://www.myirtech.com/news_list.asp?id=930 ↩
-
https://x.com/geerlingguy/status/1870959892242342030 ↩
-
Search 'rk3588' on https://opensource.rock-chips.com/ ↩