Skip to content

Introduce RK3562 family and KICKPI K3B - #16197

Merged
dmanlfc merged 2 commits into
batocera-linux:masterfrom
retro98boy:kickpi-k3b
Sep 18, 2026
Merged

dmanlfc merged 2 commits into
batocera-linux:masterfrom
retro98boy:kickpi-k3b

Conversation

@retro98boy

Copy link
Copy Markdown
Contributor

This PR introduces Batocera support for the RK3562 family (found in low-cost retro gaming handhelds), with the KICKPI K3B serving as the first supported RK3562 SBC.

About KICKPI K3B

Product Page: https://www.kickpi.com/product/k3b/

WIKI: https://doc.kickpi.com/products/introduction/kickpi_k3b/

Batocera System

The serial boot log can be found here

Since the KICKPI K3B only features a MIPI DSI display interface, using a DSI panel is necessary. Utilizing a DTBO to support various DSI panels is a practical approach. This PR provides reference support for an 800x1280 10.1-inch MIPI 45-pin screen.

Compress_20260804_214641_1634 Compress_20260804_214641_1785 Compress_20260804_214641_1921 Compress_20260804_214642_2067 Compress_20260804_214642_2186

How to Install

Method 1: microSD Card

Flash the batocera.img to a microSD card and insert it into the board to boot.

Method 2: MaskROM Mode (eMMC Flashing)

Press the MaskROM button while connecting the board to your PC via a USB Type-A to Type-C cable. Then, use Rockchip's rkdeveloptool to flash batocera.img directly into the eMMC. You may need a loader during this process, which can be obtained as follows:

git clone https://github.com/rockchip-linux/rkbin.git
cd rkbin
sed -i 's/rk3562_ddr_1332MHz_v1.09.bin/rk3562_ddr_1056MHz_v1.09.bin/' RKBOOT/RK3562MINIALL.ini
./tools/boot_merger RKBOOT/RK3562MINIALL.ini .
ls rk3562_spl_loader_v1.09.107.bin

Note: After flashing via MaskROM, you must switch the power supply to a phone adapter or a DC power source for proper booting. The maximum output current from a PC's USB Type-A port is insufficient to power the KICKPI K3B during normal startup.

@retro98boy

Copy link
Copy Markdown
Contributor Author

retro98boy force-pushed the kickpi-k3b branch from ef6c074 to b977a6c 10 minutes ago

Rebased on the latest upstream/master, mainly resolving conflicts introduced by this PR.

@retro98boy

Copy link
Copy Markdown
Contributor Author

retro98boy force-pushed the kickpi-k3b branch from b977a6c to c78c755 13 minutes ago

PR v2

U-Boot

Increase the RK817 USB input current limit to 3A

Kernel

Migrated to kernel 7.1. Currently supported peripherals:

  • USB Type-A

  • GbE (RK3562 GMAC + MAXIO PHY)

  • DSI Display (a demo DSI panel dtbo)

  • RK817 Sound (Speaker + Headphones)

  • eMMC and microSD

  • Mali G52 (Panfrost)

Due to unsuccessful attempts to get the SDIO WiFi module recognized under kernel 7.1, SWT6621S WiFi/BT is currently unsupported.

Rootfs

Used the official rk817_int configuration from alsa-ucm-conf; however, an issue in its HiFi.conf prevents volume adjustment, so an overlay with a modified HiFi.conf has been added.

图片

@retro98boy

Copy link
Copy Markdown
Contributor Author

I noticed that some Rockchip U-Boot packages use EXTRA_DOWNLOADS to download a specific version of rkbin for BL31 and the DDR binaries. This results in the same rkbin repository being downloaded multiple times.

zhenlin@MS-7E32 ~/workspace/games/batocera.linux kickpi-k3b-addon*
❯ grep EXTRA_DOWNLOADS -r package/batocera/boot 
package/batocera/boot/uboot-rk3588/uboot-rk3588.mk:UBOOT_RK3588_EXTRA_DOWNLOADS = \
package/batocera/boot/uboot-visionfive2/uboot-visionfive2.mk:UBOOT_VISIONFIVE2_EXTRA_DOWNLOADS = visionfive2_fw_payload.img
package/batocera/boot/uboot-rk356x/uboot-rk356x.mk:UBOOT_RK356X_EXTRA_DOWNLOADS = \
package/batocera/boot/uboot-rk3576/uboot-rk3576.mk:UBOOT_RK3576_EXTRA_DOWNLOADS = \
package/batocera/boot/uboot-anbernic-h700/uboot-anbernic-h700.mk:UBOOT_ANBERNIC_H700_EXTRA_DOWNLOADS = \

Would it be possible to extract the required rkbin files into a separate BR2 package, and let the Rockchip U-Boot packages that need them depend on that package?

I can see two possible approaches.

  1. Use rockchip-linux/rkbin directly.

    However, I do not think that repository accepts external PRs, and older binaries may be removed as the repository is updated. Some devices may only work reliably with a specific rkbin version, or even with binaries modified by a third party.

    Also, for most devices, updating rkbin does not necessarily bring any performance or feature improvements. On the contrary, every rkbin version bump may require additional validation and regression testing.

  2. Maintain a separate batocera-rkbin repository.

    I think this may be the better approach. We could collect and maintain all the already validated rkbin versions currently used by batocera.linux in a dedicated batocera-rkbin repository. Rockchip U-Boot packages could then depend on the corresponding validated binaries from this repository instead of downloading their own copies through EXTRA_DOWNLOADS.

@dmanlfc What do you think of this proposal? If you agree with this approach, I would be happy to take care of the implementation and submit a PR in the future.

@retro98boy

Copy link
Copy Markdown
Contributor Author

retro98boy force-pushed the kickpi-k3b branch from c78c755 to e03d10f 1 minute ago

just rebase against latest upstream/master

@retro98boy

Copy link
Copy Markdown
Contributor Author

retro98boy force-pushed the kickpi-k3b branch from e03d10f to 1a660f8 4 minutes ago

PR v3

  • Borrow 0001-libsanitizer-remove-linux-scc-h.patch from rk3588-mainline to fix a host GCC build failure.
  • Load the DSI panel driver proactively.
  • Fix the new-lg4ff build.
  • Update the Linux 7.1 patches and DTS files, and bump the kernel version to 7.1.13.
  • Set the getty baud rate to BR2_TARGET_GENERIC_GETTY_BAUDRATE_KEEP.
  • Add preliminary support for KICKPI K3B to batocera-Changelog.md.

@retro98boy
retro98boy marked this pull request as ready for review September 12, 2026 08:37
@dmanlfc

dmanlfc commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

Looks better. I will have to give it a proper check when I can.

@dmanlfc
dmanlfc merged commit 4ab4286 into batocera-linux:master Sep 18, 2026
2 checks passed
@retro98boy
retro98boy deleted the kickpi-k3b branch September 20, 2026 05:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants