Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add initial support for Orangepi 5 Ultra #7856

Closed
wants to merge 9 commits into from
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fixups
  • Loading branch information
EvilOlaf committed Feb 23, 2025
commit 09daa13b937a519e0e163b00499a994e3b6d3419
13 changes: 10 additions & 3 deletions config/boards/orangepi5-ultra.csc
Original file line number Diff line number Diff line change
@@ -4,8 +4,8 @@ BOARDFAMILY="rockchip-rk3588"
BOARD_MAINTAINER=""
BOOTCONFIG="orangepi-5-ultra-rk3588_defconfig" # vendor name, not standard, see hook below, set BOOT_SOC below to compensate
BOOT_SOC="rk3588"
KERNEL_TARGET="current"
KERNEL_TEST_TARGET="current"
KERNEL_TARGET="current,edge"

Choose a reason for hiding this comment

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

Minor quirks about the Ultra.

This Ultra only has a HDMI1, however, the patch/kernel/archive/rockchip64-6.12 does not have patches to enable HDMI1.

patch/kernel/archive/rockchip64-6.13 does have the extra patches to use basic HDMI1, but I think you also need to have a copy of the DT in patch/kernel/archive/rockchip64-6.13/dt for this to be built in "edge"?
https://github.com/armbian/build/blob/main/patch/kernel/archive/rockchip64-6.13/rk3588-0130-add-hdmi1-support.patch

side note: in mainline HDMI1 support is going in 6.15-rc1, so the Ultra won't be useable for most people in mainline until then. Most people don't want to be stuck using only UART or SSH to control their board.

Copy link
Member Author

@EvilOlaf EvilOlaf Feb 23, 2025

Choose a reason for hiding this comment

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

It is expected that the 5 Ultra will only partially work on 6.12. That's fine. Good enough for server applications. If there are too many complains we can drop current (6.12.y to say) support and keep pushing for egde (following latest mainline).
Of course having rk3588 features being back-ported to 6.12.y would be awesome but nobody here will deal with this. Too much effort to maintain so many patches. It is painful enough for allwinner which is I think our most heavily patched soc family.

KERNEL_TEST_TARGET="current,edge"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3588-orangepi-5-ultra.dtb"
@@ -16,6 +16,13 @@ IMAGE_PARTITION_TABLE="gpt"
#enable_extension "bcmdhd"
BCMDHD_TYPE="sdio"

function post_family_config_branch_edge__orangepi5-ultra_use_custom_source() {
KERNEL_MAJOR_MINOR="6.14" # Major and minor versions of this kernel.
KERNELSOURCE='https://github.com/jimmyhon/linux.git'
KERNELBRANCH='branch:integrate-6.15'
KERNELPATCHDIR='integrate-6.15'
}

function post_family_tweaks__orangepi5ultra_naming_audios() {
display_alert "$BOARD" "Renaming orangepi5ultra audios" "info"

@@ -45,4 +52,4 @@ function post_family_tweaks__orangepi5ultra_enable_bluetooth_service() {
display_alert "$BOARD" "Enabling ap6611s-bluetooth.service" "info"
chroot_sdcard systemctl enable ap6611s-bluetooth.service
return 0
}
}
37 changes: 37 additions & 0 deletions patch/kernel/integrate-6.15/0000.patching_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
config: # This is file 'patch/kernel/archive/rockchip64-6.8/0000.patching_config.yaml'

# Just some info stuff; not used by the patching scripts
name: integrate-6.15
kind: kernel
type: mainline # or: vendor
branch: linux-6.14.y
last-known-good-tag: v6.14
maintainers:
- { github: rpardini, name: Ricardo Pardini, email: ricardo@pardini.net, armbian-forum: rpardini }
- { github: paolosabatino, name: Paolo Sabatino, email: paolo.sabatino@gmail.com, armbian-forum: jock }

# .dts files in these directories will be copied as-is to the build tree; later ones overwrite earlier ones.
# This is meant to provide a way to "add a board DTS" without having to null-patch them in.
dts-directories:
- { source: "dt", target: "arch/arm64/boot/dts/rockchip" }

# every file in these directories will be copied as-is to the build tree; later ones overwrite earlier ones
# This is meant as a way to have overlays, bare, in a directory, without having to null-patch them in.
# @TODO need a solution to auto-Makefile the overlays as well
overlay-directories:
- { source: "overlay", target: "arch/arm64/boot/dts/rockchip/overlay" }

# the Makefile in each of these directories will be magically patched to include the dts files copied
# or patched-in; overlay subdir will be included "-y" if it exists.
# No more Makefile patching needed, yay!
auto-patch-dt-makefile:
- { directory: "arch/arm64/boot/dts/rockchip", config-var: "CONFIG_ARCH_ROCKCHIP" }

# configuration for when applying patches to git / auto-rewriting patches (development cycle helpers)
patches-to-git:
do-not-commit-files:
- "MAINTAINERS" # constant churn, drop them. sorry.
- "Documentation/devicetree/bindings/arm/rockchip.yaml" # constant churn, conflicts on every bump, drop it. sorry.
do-not-commit-regexes: # Python-style regexes
- "^arch/([a-zA-Z0-9]+)/boot/dts/([a-zA-Z0-9]+)/Makefile$" # ignore DT Makefile patches, we've an auto-patcher now

Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jianfeng Liu <liujianfeng1994@gmail.com>
Date: Sun, 16 Feb 2025 17:51:46 +0800
Subject: tools/Makefile: remove pci target

---
tools/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/Makefile b/tools/Makefile
index 111111111111..222222222222 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -172,7 +172,7 @@ acpi_clean:
cpupower_clean:
$(call descend,power/cpupower,clean)

-counter_clean hv_clean firewire_clean bootconfig_clean spi_clean usb_clean virtio_clean mm_clean wmi_clean bpf_clean iio_clean gpio_clean objtool_clean leds_clean pci_clean firmware_clean debugging_clean tracing_clean:
+counter_clean hv_clean firewire_clean bootconfig_clean spi_clean usb_clean virtio_clean mm_clean wmi_clean bpf_clean iio_clean gpio_clean objtool_clean leds_clean firmware_clean debugging_clean tracing_clean:
$(call descend,$(@:_clean=),clean)

libapi_clean:
@@ -219,7 +219,7 @@ clean: acpi_clean counter_clean cpupower_clean hv_clean firewire_clean \
perf_clean selftests_clean turbostat_clean bootconfig_clean spi_clean usb_clean virtio_clean \
mm_clean bpf_clean iio_clean x86_energy_perf_policy_clean tmon_clean \
freefall_clean build_clean libbpf_clean libsubcmd_clean \
- gpio_clean objtool_clean leds_clean wmi_clean pci_clean firmware_clean debugging_clean \
+ gpio_clean objtool_clean leds_clean wmi_clean firmware_clean debugging_clean \
intel-speed-select_clean tracing_clean thermal_clean thermometer_clean thermal-engine_clean \
sched_ext_clean

--
Armbian