Skip to content

board: rk3588: switch reComputer RK3588 to Panthor open-source GPU stack - #10320

Open
Mkiring wants to merge 4 commits into
armbian:mainfrom
Seeed-Studio:feat/rk3588-enable-panthor-gpu-stack
Open

board: rk3588: switch reComputer RK3588 to Panthor open-source GPU stack#10320
Mkiring wants to merge 4 commits into
armbian:mainfrom
Seeed-Studio:feat/rk3588-enable-panthor-gpu-stack

Conversation

@Mkiring

@Mkiring Mkiring commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

The proprietary Mali/Bifrost GPU driver (mali-valhall-g610 / libmali) has poor compatibility with newer Debian releases and desktop environments, causing the desktop to fail to start. Switch the reComputer RK3588 DevKit to the upstream Panthor DRM driver + Mesa userspace stack.

Changes:

  • Kernel: enable CONFIG_DRM_PANTHOR, disable all Mali/Bifrost configs
  • Boot: add RECOMPUTER_GPU_STACK="panthor" and load the panthor DT overlay
  • Rootfs: skip proprietary libmali, install Mesa from bookworm-backports
  • Firmware: ship mali_csffw.bin required by Panthor
  • Cleanup: remove Mali EGL/GBM wrapper leftovers when using Panthor

Summary by CodeRabbit

  • New Features
    • Added Panthor GPU stack support for the RK3588 development kit.
    • Enabled the Panthor graphics driver and Mesa userspace components.
    • Added automatic installation and inclusion of required GPU firmware.
    • Improved graphics support through updated kernel and userspace components.
  • Bug Fixes
    • Prevented legacy Mali libraries and configuration from conflicting with Panthor.
    • Preserved existing Mali graphics behavior for non-Panthor configurations.

The proprietary Mali/Bifrost GPU driver (mali-valhall-g610 / libmali)
has poor compatibility with newer Debian releases and desktop
environments, causing the desktop to fail to start. Switch the
reComputer RK3588 DevKit to the upstream Panthor DRM driver + Mesa
userspace stack.

Changes:
- Kernel: enable CONFIG_DRM_PANTHOR, disable all Mali/Bifrost configs
- Boot: add RECOMPUTER_GPU_STACK="panthor" and load the panthor DT overlay
- Rootfs: skip proprietary libmali, install Mesa from bookworm-backports
- Firmware: ship mali_csffw.bin required by Panthor
- Cleanup: remove Mali EGL/GBM wrapper leftovers when using Panthor
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: c3f5808f-4d5e-44be-a4e3-3acc39f3b059

📥 Commits

Reviewing files that changed from the base of the PR and between 06f20c9 and 83b94a5.

📒 Files selected for processing (2)
  • config/kernel/linux-seeed-rk3588-vendor.config
  • config/sources/vendors/seeed-studio/recomputer-rk35xx-common.inc
🚧 Files skipped from review as they are similar to previous changes (2)
  • config/kernel/linux-seeed-rk3588-vendor.config
  • config/sources/vendors/seeed-studio/recomputer-rk35xx-common.inc

📝 Walkthrough

Walkthrough

The RK3588 board configuration now supports the Panthor GPU stack. It enables the Panthor kernel driver, installs Mesa packages, removes conflicting Mali userspace files, selects Mesa GBM, and embeds required firmware in initramfs images.

Changes

Panthor GPU stack

Layer / File(s) Summary
Kernel and board Panthor selection
config/kernel/linux-seeed-rk3588-vendor.config, config/boards/recomputer-rk3588-devkit.conf
The kernel enables CONFIG_DRM_PANTHOR and disables the legacy Mali configuration. The board selects the Panthor device-tree overlay and skips Mali installation when Panthor is enabled.
Mesa userspace integration
config/boards/recomputer-rk3588-devkit.conf, config/sources/vendors/seeed-studio/recomputer-rk35xx-common.inc
Bookworm builds install Mesa packages from backports. Panthor builds remove Mali userspace files, refresh ldconfig, skip the Mali EGL override, and select Mesa GBM.
Panthor firmware initramfs integration
config/boards/recomputer-rk3588-devkit.conf
The build locates mali_csffw.bin, installs it in the ARM Mali firmware path, and adds an executable initramfs hook that copies the firmware into generated images.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant BoardConfig as RK3588 board configuration
  participant KernelConfig as Kernel configuration
  participant DebianRootfs as Debian rootfs
  participant Initramfs as Initramfs builder

  BoardConfig->>KernelConfig: Enable CONFIG_DRM_PANTHOR and disable legacy Mali options
  BoardConfig->>DebianRootfs: Install Mesa packages from Bookworm backports
  DebianRootfs->>DebianRootfs: Remove Mali userspace files and select Mesa GBM
  BoardConfig->>Initramfs: Locate mali_csffw.bin and install the firmware hook
  Initramfs->>Initramfs: Embed Panthor firmware in generated images
Loading

Possibly related PRs

  • armbian/build#9719: Modifies the same RK3588 board configuration and Seeed RK35xx common include used for Mali handling.
  • armbian/build#10150: Modifies related RK3588 Panthor kernel and device-tree handling.
  • armbian/build#10357: Modifies the same RK3588 board configuration for another board-specific feature.

Suggested labels: Framework, Patches

Suggested reviewers: igorpecovnik, superkali, amazingfate

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: switching the reComputer RK3588 to the Panthor open-source GPU stack.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added 08 Milestone: Third quarter release size/medium PR with more then 50 and less then 250 lines Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... labels Aug 3, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@config/boards/recomputer-rk3588-devkit.conf`:
- Around line 97-108: Update the generated panthor-firmware hook script to
handle the mkinitramfs prereqs invocation before sourcing hook functions or
copying firmware: when $1 is prereqs, print the hook’s prerequisites (none) and
exit successfully. Keep the existing firmware installation flow for normal
invocations.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: e61d6e40-a5fd-4a90-8bf0-763282c830b1

📥 Commits

Reviewing files that changed from the base of the PR and between 7edcf62 and bb072a4.

📒 Files selected for processing (3)
  • config/boards/recomputer-rk3588-devkit.conf
  • config/kernel/linux-seeed-rk3588-vendor.config
  • config/sources/vendors/seeed-studio/recomputer-rk35xx-common.inc

Comment thread config/boards/recomputer-rk3588-devkit.conf
Mkiring and others added 2 commits August 3, 2026 16:53
mkinitramfs calls each hook first with $1=prereqs to query
dependencies, then again to perform the actual work. Add the
standard prereqs guard so the hook prints an empty dependency
list and exits before running mkdir/cp.

The previous form worked in practice — mkinitramfs exports
DESTDIR before the prereqs query (verified against
initramfs-tools 0.151, and confirmed by the built initrd
containing mali_csffw.bin), so the cp did not fail. But it
relied on that invariant and ran side effects during a
metadata-only call. Following the documented hook contract
makes the behavior explicit and forward-compatible.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

08 Milestone: Third quarter release Hardware Hardware related like kernel, U-Boot, ... Needs review Seeking for review size/medium PR with more then 50 and less then 250 lines

Development

Successfully merging this pull request may close these issues.

1 participant