Skip to content

k3: enable TI Rogue GPU acceleration - #10271

Open
Grippy98 wants to merge 1 commit into
armbian:mainfrom
Grippy98:k3-gpu-rogue-update
Open

k3: enable TI Rogue GPU acceleration#10271
Grippy98 wants to merge 1 commit into
armbian:mainfrom
Grippy98:k3-gpu-rogue-update

Conversation

@Grippy98

@Grippy98 Grippy98 commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Enable the TI Rogue GPU stack for BeagleY-AI, BeaglePlay, and BeagleBone AI-64 when GPU_SUPPORT=yes, including target-ABI DKMS builds and required GPU DT patches.

For performance reasons also blacklist upstream PowerVR driver.

Assisted w/Codex Sol 5.6 Extra High

How Has This Been Tested?

  • Tested on BeagleY-AI with Linux 7.2.0-rc4: pvrsrvkm bound successfully, Vulkan hardware acceleration and PVR tests passed.

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules

Summary by CodeRabbit

  • New Features

    • Enabled GPU support for BeagleBone AI-64, BeaglePlay, and BeagleY-AI images.
    • Added GPU support for TI J721E and J722S platforms.
    • Added Rogue GPU driver and DKMS setup when GPU support is enabled.
    • Configured GPU clocks and module loading for supported boards.
  • Bug Fixes

    • Improved TI package repository detection and handling when compatible packages are unavailable.
    • Prevented unnecessary Rogue GPU packages from being installed on systems without GPU support.

Gate target-ABI Rogue DKMS builds and module policy on GPU_SUPPORT plus the matching TI driver package. Enable the packaged Rogue stack for BeagleY-AI, BeaglePlay, and BeagleBone AI-64, and carry the J722S GPU node and clock assignments required by the 7.2 kernel.
@coderabbitai

coderabbitai Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Changes

TI GPU enablement

Layer / File(s) Summary
Kernel GPU bindings and nodes
patch/kernel/archive/k3-7.2/0001-FROMLIST-arm64-dts..., patch/kernel/archive/k3-7.2/0002-FROMLIST-arm64-dts..., patch/kernel/archive/k3-beagle-7.2/0022-FROMLIST...
Adds J721E and J722S GPU device-tree nodes and extends the PowerVR Rogue binding schema.
Board GPU configuration
config/boards/*.conf, patch/kernel/archive/k3-beagle-7.2/dt/...
Enables GPU_SUPPORT on three boards and assigns an 800 MHz GPU clock for BeagleY-AI.
TI Rogue package and DKMS flow
extensions/ti-debpkgs.sh
Discovers TI suites, conditionally installs Rogue packages, builds DKMS modules, and configures module loading and blacklisting.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant ImageBuild
  participant TIRepository
  participant TargetChroot
  participant RogueDKMS
  ImageBuild->>TIRepository: Probe candidate suite Release files
  TIRepository-->>ImageBuild: Return available suite
  ImageBuild->>TargetChroot: Install filtered TI packages
  ImageBuild->>RogueDKMS: Run dkms autoinstall
  RogueDKMS-->>TargetChroot: Provide pvrsrvkm.ko
  ImageBuild->>TargetChroot: Configure module loading and powervr blacklist
Loading

Possibly related PRs

  • armbian/build#10112: Modifies the same TI package installation flow and BeagleBoard GPU configuration.

Suggested reviewers: jonaswood01, glneo

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: enabling TI Rogue GPU acceleration for k3-based boards.
✨ 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 Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... Framework Framework components Patches Patches related to kernel, U-Boot, ... size/large PR with 250 lines or more 08 Milestone: Third quarter release labels Jul 24, 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.

🧹 Nitpick comments (2)
extensions/ti-debpkgs.sh (2)

42-53: 🔒 Security & Privacy | 🔵 Trivial | 💤 Low value

Predictable tmp path is used for the downloaded sources file.

Static analysis flags $SDCARD/tmp/ti-debpkgs.sources as a predictable path; a symlink pre-planted there before the wget could redirect the write. The blast radius here is bounded by $SDCARD typically being a per-build sandbox directory, but using mktemp under $SDCARD/tmp is a cheap hardening.

🛡️ Proposed fix using mktemp
-	run_host_command_logged "mkdir -p \"$SDCARD/tmp\""
-	run_host_command_logged "wget -qO $SDCARD/tmp/ti-debpkgs.sources https://raw.githubusercontent.com/TexasInstruments/ti-debpkgs/main/ti-debpkgs.sources"
+	run_host_command_logged "mkdir -p \"$SDCARD/tmp\""
+	local ti_sources_tmp
+	ti_sources_tmp="$(mktemp "$SDCARD/tmp/ti-debpkgs.sources.XXXXXX")"
+	run_host_command_logged "wget -qO ${ti_sources_tmp} https://raw.githubusercontent.com/TexasInstruments/ti-debpkgs/main/ti-debpkgs.sources"
🤖 Prompt for 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.

In `@extensions/ti-debpkgs.sh` around lines 42 - 53, Replace the predictable
`$SDCARD/tmp/ti-debpkgs.sources` download path in the `wget` and subsequent
`chroot_sdcard` commands with a unique temporary file created via `mktemp` under
`$SDCARD/tmp`. Reuse that generated path consistently for editing, validation,
copying, and cleanup, while preserving the existing source-file workflow.

Source: Linters/SAST tools


132-155: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Make the DKMS build target the Rogue module explicitly.

target_kver matches the Armbian vendor module path IMAGE_INSTALLED_KERNEL_VERSION-${BRANCH}-${LINUXFAMILY}, which the existing r8125 DKMS path uses too, but dkms autoinstall --kernelver ${target_kver} still rebuil any installed DKMS module registered for older/current kernel revisions. Use dkms install -m ti-img-rogue-driver -k ${target_kver} after installing Rogue packages so an unrelated DKMS failure cannot abort the Rogue GPU build path.

🤖 Prompt for 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.

In `@extensions/ti-debpkgs.sh` around lines 132 - 155, Update
build_ti_rogue_dkms_for_image to replace the broad `dkms autoinstall --kernelver
${target_kver}` invocation with an explicit `dkms install` targeting module
`ti-img-rogue-driver` and kernel `${target_kver}`. Keep the existing environment
handling and subsequent module verification and depmod steps unchanged.
🤖 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.

Nitpick comments:
In `@extensions/ti-debpkgs.sh`:
- Around line 42-53: Replace the predictable `$SDCARD/tmp/ti-debpkgs.sources`
download path in the `wget` and subsequent `chroot_sdcard` commands with a
unique temporary file created via `mktemp` under `$SDCARD/tmp`. Reuse that
generated path consistently for editing, validation, copying, and cleanup, while
preserving the existing source-file workflow.
- Around line 132-155: Update build_ti_rogue_dkms_for_image to replace the broad
`dkms autoinstall --kernelver ${target_kver}` invocation with an explicit `dkms
install` targeting module `ti-img-rogue-driver` and kernel `${target_kver}`.
Keep the existing environment handling and subsequent module verification and
depmod steps unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 3ff1a25b-a762-4d06-9a36-291c53c7a7a4

📥 Commits

Reviewing files that changed from the base of the PR and between 6e101ef and 8e79c1a.

📒 Files selected for processing (8)
  • config/boards/beaglebone-ai64.conf
  • config/boards/beagleplay.conf
  • config/boards/beagley-ai.conf
  • extensions/ti-debpkgs.sh
  • patch/kernel/archive/k3-7.2/0001-FROMLIST-dt-bindings-gpu-img-Add-J721E-compatible.patch
  • patch/kernel/archive/k3-7.2/0002-FROMLIST-arm64-dts-ti-k3-j721e-Add-GPU-node.patch
  • patch/kernel/archive/k3-beagle-7.2/0022-FROMLIST-arm64-dts-ti-add-J722S-GPU-node.patch
  • patch/kernel/archive/k3-beagle-7.2/dt/k3-am67a-beagley-ai-armbian.dtsi

@glneo

glneo commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

All the FALLBACK_SUITES stuff feels really messy. We should work on keeping our package repo up-to-date with the all the supported suites. It shouldn't be too difficult to add the Ubuntu suites to [0] and have proper builds for them added to the package repo. @jonaswood01 is this something you might be able to take up?

[0] https://github.com/TexasInstruments/debian-repos

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

08 Milestone: Third quarter release Framework Framework components Hardware Hardware related like kernel, U-Boot, ... Needs review Seeking for review Patches Patches related to kernel, U-Boot, ... size/large PR with 250 lines or more

Development

Successfully merging this pull request may close these issues.

2 participants