Commit Graph

435 Commits

Author SHA1 Message Date
Trevor Woerner
0d426ab146 nanopi-r4s: enable r8169 built-in
Since the Realtek RTL8169 is part of this board, enable it unconditionally in
the kernel.

Acked-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2025-09-05 08:34:18 -04:00
Trevor Woerner
30cd0214fc nanopi-r4s: remove 2nd eth work-around
Pre-6.16.y linux kernels needed a kludge in order for the second ethernet the
work out of the box. With the update to the 6.16.y kernel the kludge no longer
applies. Fixing up the kludge so that it does apply does not seem to bring up
the second interface. However with the kludge removed altogether, the second
interface comes up without issue.

    # lspci
    00:00.0 PCI bridge: Rockchip Electronics Co., Ltd RK3399 PCI Express Root Port
    01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller (rev 15)

Acked-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2025-09-05 08:33:37 -04:00
Trevor Woerner
4d5fb02587 xf86-input-mouse: drop
oe-core has dropped this recipe, therefore drop it here too.

Link: oe-core: 7c86172b7353 ("xf86-input-vmmouse, xf86-input-mouse: drop recipes")
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2025-09-03 10:13:16 -04:00
Trevor Woerner
23fbaeb342 kernel overrides
Add a :rockchip override to the kernel SRC_URI appends to play nicely when
multiple BSP layers are used together in the same build.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2025-09-02 09:06:32 -04:00
Trevor Woerner
307ea1d4f3 nanopc-t6: use non -dev kernel
Now that 6.16.y is the preferred version of the linux-yocto kernel, the
nanopc-t6 machine that had been using the linux-yocto-dev kernel can be
switched to using the linux-yocto kernel instead.

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2025-09-01 08:42:51 -04:00
Trevor Woerner
27d0b95f6c orangepi-5-plus: use non -dev kernel
Now that 6.16.y is the preferred version of the linux-yocto kernel, the
orangepi-5-plus machine that had been using the linux-yocto-dev kernel can
be switched to using the linux-yocto kernel instead.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2025-09-01 08:39:24 -04:00
Trevor Woerner
02dd265fa2 radxa-zero-3: use non -dev kernel
Now that 6.16.y is the preferred version of the linux-yocto kernel, the
radxa-zero-3 machine that had been using the linux-yocto-dev kernel can be
switched to using the linux-yocto kernel instead.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2025-09-01 08:39:06 -04:00
Trevor Woerner
169d0436ca linux-yocto bbappend: sort
Separate the entires into lists of 32 vs 64 bit machines, then sort each
list.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2025-09-01 08:37:04 -04:00
Scott Murray
4fdc16878e nanopc-t6: add
The FriendlyElec NanoPC-T6 is a one-for-all high performance open
source platform for edge computing, designed and developed by the
FriendlyElec team.

Website:
    https://www.friendlyelec.com/index.php?route=product/product&path=69&product_id=292

Wiki:
    https://wiki.friendlyelec.com/wiki/index.php/NanoPC-T6

Specs:
- Rockchip RK3588 (4x ARM Cortex-A76 + 4x Cortex-A55)
- ARM Mali-G610 MP4 (OpenGLES 1.1, 2.0, and 3.2, OpenCL up to 2.2 and Vulkan 1.2)
- 4GB/8GB/16GB LPDDR4X
- µSD
- 32GB/64GB/256GB eMMC
- 32MB SPI NOR Flash
- 2x PCIe 2.5G Ethernet
- 1x USB 3.0 Type A, 1x USB Type C
- 2x USB 2.0 Type A (LTS model)
- 1x HDMI (4Kp60) in
- 2x HDMI (HDMI2.1, HDMI2.0, and HDMI1.4, 1x 8Kp60, 1x 4Kp60) out
- 2x 4-lane MIPI-CSI
- 2x 4-lane MIPI-DSI
- 1x M.2 M-Key connector with PCIe 3.0 x4
- 1x M.2 E-key connector with PCIe 2.1 x1 and USB2.0 Host
- 1x Mini PCIe for 3G/4G module (non-LTS model)
- 40-pin 2.54mm header (up to 2x SPIs, 6x UARTs, 1x I2Cs, 8x PWMs, 2x I2Ss, 28x GPIO)
- 110 x 80 mm

Upstream kernel support for the T6 has matured enough to be usable, so
add a machine configuration to allow people to migrate off of the older
bits in the Rockchip BSP layer.  Note that there are two variants of
the board, original and a newer "LTS" version that drops the MiniPCIe
slot for a modem for two extra USB 2.0 ports and adds a USB-C connector
for the debug UART.  Devicetrees for both are shipped.

Reviewed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
2025-08-05 17:42:41 -04:00
Quentin Schulz
696c2b69c1 mesa: add support for RK3588(S)
The Mali G610 found in the RK3588(S) SoC still requires a blob coming
from a linux-firmware package to work.
Therefore, recommend that package when building mesa for rk3588(s).

Reviewed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-07-03 15:28:12 -04:00
Quentin Schulz
1ab02d57a0 mesa: rework bbappend to default to panfrost
Let's assume most Rockchip SoCs to come will be based on an Arm Mali GPU
supported by Panfrost so let's always add panfrost drivers to mesa.

Make the Mali-400/450 SoC such as RK3066, RK3188 and RK3328 use lima
instead.

Finally, do not add any mesa mali (panfrost or lima) driver for GPU-less
SoC like RK3308.

This means we will not need to touch this recipe every time we add support
for a new SoC with GPU supported by Mesa Panfrost.

This also **almost** brings support for the GPU found on RK3588.

Note that some GPUs (gen10; Valhall; Panthor; like on RK3588) still
require additional firmware (CSFFW).

Reviewed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-07-03 15:27:06 -04:00
Quentin Schulz
0c1186040e mesa: enable lima for RK3188 boards
lima is the open-source implementation for the GPU found on RK3188,
the Mali 400, so let's enable it for RK3188 boards by default.

Not tested.

Reviewed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-07-03 15:27:00 -04:00
Quentin Schulz
848e87e19a mesa: enable lima for RK3066 boards
lima is the open-source implementation for the GPU found on RK3066,
the Mali 400, so let's enable it for RK3066 boards by default.

Not tested.

Reviewed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-07-03 15:26:54 -04:00
Quentin Schulz
16e79c187e mesa: add libclc to PACKAGECONFIG for Panfrost-supported SoCs
Panfrost mesa drivers do not compile without libclc support anymore, I
assume since commit 20970bcd9652 ("panfrost: Add base of OpenCL C
infrastructure") merged in 25.1.0.

So this adds the missing libclc PACKAGECONFIG to Panfrost-supported
SoCs.

Note that mesa recipe in OE-Core will be updated to not build panfrost
if libclc PACKAGECONFIG is missing.

Reported-by: Trevor Woerner <twoerner@gmail.com>
Reviewed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-07-03 15:25:05 -04:00
Quentin Schulz
dda191abf2 mesa: remove kmsro from PACKAGECONFIG
Mesa has dropped[1] support for a separate kmsro option to the
gallium-drivers.

It is therefore not necessary to pass it to PACKAGECONFIG anymore,
especially since the kmsro PACKAGECONFIG doesn't exit in the mesa recipe
anymore[2].

[1] 89863a050b
[2] https://git.openembedded.org/openembedded-core/commit/?id=3d9ec347e651e05d0246a8723ca4038bb1f5b765

Reviewed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-07-03 15:25:05 -04:00
Trevor Woerner
fe7cfa748b fitimage rework
oe-core has completely re-written the fitImage support starting roughly at
commit [1], update meta-rockchip to match.

Most of the MACHINEs in meta-rockchip use a fitImage for the kernel, but
some don't. Create a boolean variable (RK_KERNEL_FITIMAGE), enabled by
default, to keep track of which ones do and which ones don't. Use this
variable to decide how to configure various image-related fields.

Build tested with all meta-rockchip MACHINEs both with and without RAUC.

Run tested on the following with RAUC configured:
	- nanopi-m4b
	- nanopi-r2s
	- radxa-zero-3e
	- rock-pi-4b
	- rock-pi-e
	- rock-pi-s

Run tested on the following without RAUC:
	- radxa-zero-3e
	- rock-pi-e
	- rock-pi-s

[1] oe-core: 3442d9297dca ("oe-selftest: fitimage: test external dtb")
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2025-06-27 10:52:37 -04:00
Quentin Schulz
61505560d4 bsp: rkbin-native: fix build since ${WORKDIR} isn't allowed in S anymore
Since commit 46480a5e6674 ("insane/do_qa_unpack: add checks that ensure
S is set correctly") it is not allowed to have S refer to WORKDIR
directly and we should instead use UNPACKDIR.

The default path of S is ${UNPACKDIR}/${BP} which is where the git
fetcher will unpack the sources. However, we want to go into the tools/
directory, hence S being ${UNPACKDIR}/${BP}/tools now.

Reviewed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-06-25 11:44:07 -04:00
Quentin Schulz
e59f6fcb66 bsp: rkbin: fix build since S = "${WORKDIR}/git" is implied by OE-Core
S = "${WORKDIR}/git" is now implied when using the git fetcher and since
commit 46480a5e6674 ("insane/do_qa_unpack: add checks that ensure S is
set correctly") the build fails if it is set to such a value.

Therefore, let's remove the line in rkbin to make the build of those
recipes successful again.

Reviewed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-06-25 11:43:24 -04:00
Trevor Woerner
961768ccd1 layer.conf: update for whinlatter
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2025-06-20 10:18:15 -04:00
Trevor Woerner
6fb06caf78 trusted-firmware-a: remove no-longer-required patches
The two patches being carried in this layer for tf-a are no longer required
and can be dropped since they have been merged upstream.

upstream tf-a: https://review.trustedfirmware.org/TF-A/trusted-firmware-a.git
upstream tf-a: f86c230ab02c ("fix(rk3399): dram: Fix build with gcc 11")
upstream tf-a: 7f25d3cc7823 ("fix(rockchip): pmu: Do not mark already defined functions as weak")

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2025-06-13 11:03:54 -04:00
Trevor Woerner
8936083292 rauc-conf: adjust PACKAGE_ARCH only when using the demo
Make setting the PACKAGE_ARCH occur only when the user has enabled the
rk-rauc-demo feature.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2025-06-03 15:59:26 -04:00
Quentin Schulz
1ebf40b409 bsp: rkbin: bump to latest commit in master branch
This bumps rkbin to be using the last public blobs.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-05-26 12:11:14 -04:00
Quentin Schulz
7f6584f4ee bsp: rkbin: factor out do_deploy and RKBIN_BINDIR variable
do_deploy is now identical for all recipes including rockchip-rkbin.inc
so let's simply move it to the .inc file to avoid duplication.

While at it, RKBIN_BINDIR is also identical so can also be moved to the
.inc, so do it.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-05-26 12:11:14 -04:00
Quentin Schulz
c002bdcf2e bsp: rkbin: tf-a: factor out do_deploy to be SoC-agnostic
The do_deploy task is essentially the same for all SoCs, install a file
from a specific path to another one.

No magic involved, so let's rather have one generic do_deploy task. For
this to work nicely, we check that all necessary variables are set and
notify the developer otherwise. This may be useful whenever a new SoC
will be supported by this recipe.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-05-26 12:11:14 -04:00
Quentin Schulz
68afa1d772 bsp: rkbin: optee-os: factor out do_deploy to be SoC-agnostic
The do_deploy task is essentially the same for all SoCs, install a file
from a specific path to another one.

No magic involved, so let's rather have one generic do_deploy task. For
this to work nicely, we check that all necessary variables are set and
notify the developer otherwise. This may be useful whenever a new SoC
will be supported by this recipe.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-05-26 12:11:14 -04:00
Quentin Schulz
a86ac2f239 bsp: rkbin: ddr: factor out do_deploy to be SoC-agnostic
The do_deploy task is essentially the same for all SoCs, install a file
from a specific path to another one.

No magic involved, so let's rather have one generic do_deploy task. For
this to work nicely, we check that all necessary variables are set and
notify the developer otherwise. This may be useful whenever a new SoC
will be supported by this recipe.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-05-26 12:11:14 -04:00
Quentin Schulz
22d34ac570 bsp: rkbin: ddr: allow to customize DDR bin blob
Rockchip provides a tool to customize the DDR bin blob which can prove
to be extremely useful, for example if your HW doesn't follow the HW
reference design and uses a different UART controller or UART mux for
the serial console, or use a different baudrate.

If RKBIN_DDR_RECONFIGURE is set to 1 for a machine, a ddrbin_params.txt
needs to be provided for said machine and ddrbin_tool.py will be run
against it to generate a new custom binary with the desired config.

Note that future implementations may allow to provide configuration
through a different mechanism than a simple and difficult to
maintain/modify file. E.g. this doesn't really work well when one wants
to have this in sync with SERIAL_CONSOLES for example. But that may be
much harder to support as the serial controller index in
SERIAL_CONSOLES does not necessarily match the hardware index expected
by ddrbin_params.txt. It also doesn't provide the UART mux.

In any case, I believe this is a decent start at allowing customization
of the DDR bin blob without having to provide a blob directly in-tree.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-05-26 12:11:14 -04:00
Quentin Schulz
49b8163828 bsp: rkbin: add native recipe for tools (ddrbin_tool.py)
This will allow us to use tools from rkbin repo destined to be used on
the host in recipes for the target. For example, ddrbin_tool.py which
is used to modify the configuration of the DDR bin blob.

This has limited usefulness for ddrbin_tool.py as it is a python script
with no external dependencies and could be run directly from
rockchip-ddr-bin recipe. However, this is required so we can decouple
the version of the git repo used for rockchip-ddr-bin DDR bin blob from
the version of the git repo used for ddrbin_tool.py (which is very
recent).

This recipe will be used in a later commit to modify the DDR bin blob if
need be.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-05-26 12:11:14 -04:00
Quentin Schulz
60b3fecc19 bsp: rkbin: ddr: make deployed name configurable
This will also allow us to generate an SoC-agnostic do_deploy instead of
duplicating it for each SoC.

Additionally, it allows users to pick a different name for the deployed
binary.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-05-26 12:11:14 -04:00
Quentin Schulz
086f71eeba bsp: rkbin: ddr: store directory path for the DDR bin blob in a variable
This will be used in a later commit when an SoC-agnostic do_configure will
call ddrbin_tool.py with the DDR bin blob as input.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-05-26 12:11:14 -04:00
Trevor Woerner
0aba79e479 rauc-conf: set arch to machine
Since this bbappend is modifying the rauc config file with a MACHINE-specific
search-and-replace, the architecture setting of the package needs to be
MACHINE-specific as well. Otherwise if multiple images are built for the same
SoC, the sstate mechanism will use the first-built SoC copy of the
rauc/system.conf file, which may or may not match this device's MACHINE
setting.

At runtime this leads to compatible mismatch issues:

	# rauc install <bundle>
	...
	LastError: Compatible mismatch: Expected 'nanopi-r2s' but bundle manifest has 'rock-pi-e'

These errors can be worked around by using the "--ignore-compatible" cmdline
switch to the "rauc install" command. Or can be fixed by updating the
on-device /etc/rauc/system.conf file and restarting the rauc.service systemd
service unit. This patch, however, is the more correct, build-time, fix,
rather than having to fix the issue at run-time.

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2025-02-28 08:26:38 -05:00
Quentin Schulz
92b2b1c894 bsp: trusted-firmware-a: remove already merged patch
2.12.0 already has this patch, see 52cdebbcc5d1 ("fix(rockchip): fix
"unexpected token" error with clang"), so let's remove it.

Build-tested-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2025-01-11 10:40:09 -05:00
Trevor Woerner
1cdcb49603 u-boot: use upstream for radxa-zero-3{e|w}
Upstream U-Boot 2024.10 (the latest release supported by Yocto) has support
for radxa-zero-3{e|w}. Therefore switch away from the fork where the initial
U-Boot development for this board had been added.

Reported-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
Reviewed-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
Signed-off-by: Trevor Woerner <trevor.woerner@amd.com>
2024-12-15 23:11:15 -05:00
Trevor Woerner
08f9c34e10 layer.conf: update to walnascar only
The next patch (involving changes for radxa-zero-3) only applies to master
(walnascar) and not styhead.

Signed-off-by: Trevor Woerner <trevor.woerner@amd.com>
2024-12-15 23:10:47 -05:00
Trevor Woerner
fcaa154e82 radxa-zero-3: switch to yocto-dev kernel
The radxa-zero-3{e|w} devices are not supported in the current yocto kernel,
but they are supported in the yocto-dev kernel. Switch to yocto-dev until
support is available in the yocto kernel.

Reported-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
Reviewed-by: Oleksii Kurochko<oleksii.kurochko@gmail.com>
Signed-off-by: Trevor Woerner <trevor.woerner@amd.com>
2024-12-15 23:07:28 -05:00
Trevor Woerner
94e7e69d49 u-boot: switch to upstream SRCREV for rk-u-boot-env
When the rk-u-boot-env feature was implemented, in order for it to work the
build needed a version of U-Boot that was slightly newer than 2024.04 (the
current release supported by Yocto at that time). Now that 2024.10 is out,
remove the SRCREV pin since the necessary code is now part of this release.

Run tested both with and without RK_RAUC_DEMO on:
	nanopi-m4-2gb
	nanopi-m4b
	nanopi-r2s
	rock-3a
	rock-5a
	rock-5b
	rock-pi-4b
	rock-pi-e
	rock-pi-s
	rock64

Signed-off-by: Trevor Woerner <trevor.woerner@amd.com>
2024-12-15 22:58:09 -05:00
Quentin Schulz
80d4039b1b bsp: rkbin: bump to latest commit in master branch
This seems to be fixing random RCU stalls, system hangs or resets while
running upstream Linux kernel on RK3588 boards.

License-Update: Fixing typos c.f. 385bf9f1700c ("license: typo fix")

Before and after run-tested on:
	rk3308  rock-pi-s (with and without RKBIN_RK3308_LATEST)
	rk3566  radxa-zero-3e
	rk3568  rock-3a
	rk3588  rock-5a
	rk3588s rock-5b

Run-tested-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-12-15 22:51:26 -05:00
Quentin Schulz
ca38f7cea5 bsp: rkbin: rkbin-ddr: use version and file variables for path matching
By using variables to give the path where to find the file to install,
it is easier for users to have a different SRCREV for their own machine.

Additionally, because glob patterns are now not used by default, it is
guaranteed only to match a single file.

The glob pattern for rk3308 has been hardcoded with the only file that
matches in the rkbin git repository at the currently used commit.

Reviewed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-12-15 22:51:10 -05:00
Trevor Woerner
5958fb41f7 rk3308: add provider for trusted firmware-a
A PREFERRED_PROVIDER entry was missed for rk3308 builds:

	NOTE: Multiple providers are available for trusted-firmware-a (rk3308-rkbin, rockchip-rkbin-tf-a)
	Consider defining a PREFERRED_PROVIDER entry to match trusted-firmware-a

This allows the RKBIN_RK3308_LATEST knob to work in all cases again.

Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Trevor Woerner <trevor.woerner@amd.com>
2024-12-15 22:42:58 -05:00
Paul M. B. Bendixen
3a8be31581 SOQuartz: add
The SOQuartz is a RK3566 based compute module and parts of Quartz64 series
The Model-A base board is one possible board that supports it

Website:
	https://pine64.org/devices/soquartz/
Wiki:
	https://wiki.pine64.org/wiki/SOQuartz

Specs:
- Rockchip RK3566 Quad-core ARM Cortex-A55@1.8GHz
- Mali-G52 2EE Bifrost GPU@800MHz
- Raspberry Pi 4 CM form factor
- RAM Memory Variants: 2GB, 4GB, 8GB LPDDR4.
- optional eMMC from 8GB to 128GB
- optional 128Mb SPI Flash
- 10/100/1000Mbps Ethernet
- WiFi 802.11 b/g/n/ac with Bluetooth 5.0

Exposed preripherals:
- 1x HDMI
- 2x DSI
- 1x eDP
- 1x LVDS
- 1x CSI 4-line
- 1x Ethernet
- 1x USB 2.0 OTG
- 1x SD
- 1x PCIe 1-line
- 28x GPIO

Model-A baseboard:
- 1x microSD - bootable
- 1x HDMI Port
- 2x USB A 2.0 Host
- 1x USB C 2.0 Host
- 1x 5 pin USB expansion
- 1x Ethernet w. PoE
- 1x 40 pole Pi2 compatible GPIO
- 1x MiPi-CSI 2 lanes
- 1x MiPi-CSI 4 lanes
- 1x MiPi-DSI 2 lanes
- 1x MiPi-DSI 4 lanes
- 1x PCIe open ended

Reviewed-by: Trevor Woerner <twoerner@gmail.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: Paul M. B. Bendixen <pbe@trifork.com>
2024-11-21 13:39:35 -05:00
Quentin Schulz
f895d0c1e2 rk3588(s): add support for upstream TF-A
Upstream TF-A > 2.11 (no release available yet) has initial support for
the RK3588 (and thus RK3588S).

This was boot tested on an RK3588 Jaguar, the modified baudrate is taken
into account as well.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-11-01 14:51:31 -04:00
Quentin Schulz
67aeda3896 rk356x: add support for upstream TF-A
Upstream TF-A > 2.11 (no release available yet) has initial support for
the RK3566 and RK3568. They both share the same code base.

This was not tested as I do not own RK356x boards.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-11-01 14:51:31 -04:00
Quentin Schulz
60354969f0 bsp: rkbin: do not add default DEPENDS dependencies
Nothing needs to be done for rkbin recipes except taking a file and
putting in do_deploy, therefore there's no need for the default typical
DEPENDS dependencies to be pulled in. As such, set INHIBIT_DEFAULT_DEPS
to avoid having them pulled in.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-11-01 14:51:18 -04:00
Quentin Schulz
e2d1876f02 bsp: rkbin: split optee-os, tf-a and ddr init from rkbin into separate recipes
Having one common recipe for optee-os, TF-A and DDR init blobs coming
from rkbin is nice for maintenance but it doesn't allow for having e.g.
TF-A come from another recipe and optee-os and DDR init from this one.

Now that upstream TF-A has initial support for RK356x and RK3588, but
there's still no open OP-TEE OS or DDR init, it'd be nice to allow users
to have upstream TF-A.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-11-01 14:51:18 -04:00
Quentin Schulz
56ac8facb1 bsp: rkbin: add .inc for factoring out reusable pieces
In future commits, the rkbin recipe will be split into multiple ones:
- one for TPL DRAM init
- one for TF-A blob (BL31)
- one for OP-TEE OS blob (BL32)

Since in most cases those three blobs will be coming from the exact same
commit hash and repo, let's have a .inc so some duplication can be
avoided.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-11-01 14:51:17 -04:00
Trevor Woerner
24a411a17f abd-partition: add runtime dependency
The rauc demo implementation provided by this layer uses ext4-formatted
partitions. Therefore the tool required to format ext4 partitions is required
otherwise the repartitioning will fail.

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2024-09-21 08:14:47 -04:00
Trevor Woerner
ae59945bfe remove upstreamed rk3328 patch
oe-core recently bumped linux-yocto to v6.10.8 which already contains this
patch to fix the pinctrl driver for the rk3328-based Rockchip SoCs (which
enables SPI to work again).

oe-core: 48ac41fdc02c ("linux-yocto/6.10: update to v6.10.8")
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2024-09-10 12:08:02 -04:00
Martin Jansa
74aec6e83d layer.conf: Update to styhead release name series
oe-core switched to styhead only in:
https://git.openembedded.org/openembedded-core/commit/?h=styhead&id=b4cf6d5236a3eacaf56ca2f805b006efac65b26c

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
2024-09-06 14:39:38 -04:00
Trevor Woerner
d4ef1c2e43 linux-torvalds-next: bump to next-20240904
Bump kernel to tag "next-20240904".

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
2024-09-06 09:24:37 -04:00
Quentin Schulz
91a694e250 enable HW VPU decoding for SoCs that have stateless VPUs
v4l2codecs is the gstreamer plugin for V4L2 stateless video hardware
decoding. The Rockchip SoCs that have a VPU all seems to be based on
Hantro, RKVDEC or RKVDECv2, all stateless encoding/decoding VPUs.

Therefore, let's enable VPU decoding in Gstreamer whenever possible,
when the SoC supports it.

PX30, RK3066, RK3188, RK3288, RK3328, RK3399, RK356x and RK3588(s) all
have at least one Hantro VPU.

RK3328, RK3399, RK356x and RK3588(s) all have at least one
RKVDEC/RKVDECv2 VPU (though not necessarily supported in the upstream
kernel just yet).

=== PX30
Tested on PX30 Ringneck with with Haikou+Haikou Video Demo adapter:

$ gst-launch-1.0 filesrc location=$FILE ! parsebin ! v4l2slh264dec ! waylandsink

with FILE storing the path to any h264 file, e.g.
https://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_720p_h264.mov
https://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_h264.mov

Needed packages are:
- weston
- gstreamer1.0-plugins-bad (for waylandsink and v4l2slh264dec)
- gstreamer1.0-plugins-base (for parsebin)

A few frames are dropped every other second for 1080p but otherwise
smooth.

=== RK3399
Tested on RK3399 Puma with Haikou:

$ gst-launch-1.0 filesrc location=$FILE ! parsebin ! v4l2slh264dec ! waylandsink

with FILE storing the path to any h264 file, e.g.
https://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_h264.mov
https://download.blender.org/demo/movies/BBB/bbb_sunflower_2160p_30fps_normal.mp4.zip

Needed packages are:
- weston
- gstreamer1.0-plugins-bad (for waylandsink and v4l2codecs)
- gstreamer1.0-plugins-base (for parsebin)

=== RK3588

Tested on a RK3588 Tiger with Haikou+Haikou Video Demo adapter - on a
downstream v6.6 (upstream-based, not Rockchip BSP-based) with DSI
patches - :

$ gst-launch-1.0 filesrc location=$FILE ! parsebin ! v4l2slav1dec ! fakesink

with FILE storing the path to any AV1 file, e.g.
http://download.opencontent.netflix.com.s3.amazonaws.com/AV1/cmaf/spark-8b-59.94fps/spark_606kbps_432p.mp4
https://woolyss.com/f/av1-nosound-chimera.mp4
https://woolyss.com/f/av1-opus-sita.webm

Needed packages are:
- gstreamer1.0-plugins-bad (for fakesink and v4l2slav1dec)
- gstreamer1.0-plugins-base (for parsebin)

For some reason though, waylandsink is very choppy. Combining
fpsdisplaysink with fakesink shows a ~60fps when decoding the 432p file,
~24fps for the two others.
Note that 10b-depth isn't supported (at least in my setup).

Reviewed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
2024-08-29 19:27:56 -04:00