diff mbox series

[meta-rockchip] orange-pi-5-plus: Support Xunlong Orange Pi 5 Plus single-board computer

Message ID 20231215153051.6848-1-abhisit.sangjan@gmail.com
State New
Headers show
Series [meta-rockchip] orange-pi-5-plus: Support Xunlong Orange Pi 5 Plus single-board computer | expand

Commit Message

Abhisit Sangjan Dec. 15, 2023, 3:30 p.m. UTC
Orange Pi 5 Plus is RK3588 based SBC featuring:
- 2x 2.5G ethernet ports – onboard NIC hooked to PCIe 2.0 interface
- 2x USB 2.0 host ports
- 2x USB 3.0 host ports (exposed over USB 3.0 hub)
- Type-C port featuring USB 2.0/3.0 and Alt-DP mode
- PCIe 2.0/USB 2.0/I2S/I2C/UART on E.KEY socket
- RTC
- ES8388 on-board sound codec – jack in/out, onboard mic, speaker amplifier
- SPI NOR flash
- RGB LED (R is always on)
- IR receiver
- PCIe 3.0 on the bottom for NVMe, etc.
- 40pin GPIO header (with gpio, I2C, SPI, PWM, UART)
- Power, recovery and Mask ROM buttons
- 2x HDMI out, 1x HDMI in
- Slots/connectors for eMMC, uSD card, fan, MIPI CSI/DSI
- 4 GB, 8 GB, 16 GB and 32 GB of RAM

Signed-off-by: Abhisit Sangjan <abhisit.sangjan@gmail.com>
---
 README                                        |  3 ++-
 conf/machine/include/rk3588.inc               |  4 +---
 conf/machine/orange-pi-5-plus.conf            | 14 ++++++++++++++
 recipes-bsp/rkbin/rockchip-rkbin_git.bb       | 10 ++++++++++
 recipes-bsp/u-boot/u-boot%.bbappend           |  5 +++++
 recipes-bsp/u-boot/u-boot_2024.01.bb          |  5 +++++
 recipes-kernel/linux/linux-yocto-dev.bbappend |  5 +++++
 7 files changed, 42 insertions(+), 4 deletions(-)
 create mode 100644 conf/machine/orange-pi-5-plus.conf
 create mode 100644 recipes-bsp/u-boot/u-boot_2024.01.bb

Comments

Trevor Woerner Dec. 18, 2023, 11:36 p.m. UTC | #1
On Fri 2023-12-15 @ 10:30:51 PM, Abhisit Sangjan wrote:
> Orange Pi 5 Plus is RK3588 based SBC featuring:
> - 2x 2.5G ethernet ports – onboard NIC hooked to PCIe 2.0 interface
> - 2x USB 2.0 host ports
> - 2x USB 3.0 host ports (exposed over USB 3.0 hub)
> - Type-C port featuring USB 2.0/3.0 and Alt-DP mode
> - PCIe 2.0/USB 2.0/I2S/I2C/UART on E.KEY socket
> - RTC
> - ES8388 on-board sound codec – jack in/out, onboard mic, speaker amplifier
> - SPI NOR flash
> - RGB LED (R is always on)
> - IR receiver
> - PCIe 3.0 on the bottom for NVMe, etc.
> - 40pin GPIO header (with gpio, I2C, SPI, PWM, UART)
> - Power, recovery and Mask ROM buttons
> - 2x HDMI out, 1x HDMI in
> - Slots/connectors for eMMC, uSD card, fan, MIPI CSI/DSI
> - 4 GB, 8 GB, 16 GB and 32 GB of RAM
> 
> Signed-off-by: Abhisit Sangjan <abhisit.sangjan@gmail.com>
> ---
>  README                                        |  3 ++-
>  conf/machine/include/rk3588.inc               |  4 +---
>  conf/machine/orange-pi-5-plus.conf            | 14 ++++++++++++++
>  recipes-bsp/rkbin/rockchip-rkbin_git.bb       | 10 ++++++++++
>  recipes-bsp/u-boot/u-boot%.bbappend           |  5 +++++
>  recipes-bsp/u-boot/u-boot_2024.01.bb          |  5 +++++
>  recipes-kernel/linux/linux-yocto-dev.bbappend |  5 +++++
>  7 files changed, 42 insertions(+), 4 deletions(-)
>  create mode 100644 conf/machine/orange-pi-5-plus.conf
>  create mode 100644 recipes-bsp/u-boot/u-boot_2024.01.bb
> 
> diff --git a/README b/README
> index e5beaa0..4d1a83e 100644
> --- a/README
> +++ b/README
> @@ -31,6 +31,7 @@ Status of supported boards:
>  		firefly-rk3288
>  		nanopi-r4s
>  		rock-5b
> +		orange-pi-5-plus
>  		nanopi-r2s
>  		nanopi-m4b
>  		rock-pi-s

The list is "sorted" from earliest inclusion in meta-rockchip to latest.
Therefore the most recent addition should be added at the bottom of the list.

> @@ -57,7 +58,7 @@ Notes:
>  	initializer from rkbin, simply set:
>  
>  		RKBIN_RK3308_LATEST = "1"
> -	
> +

Remove spurious edits.

>  	in the configuration (e.g. conf/local.conf).
>  
>  Maintenance:
> diff --git a/conf/machine/include/rk3588.inc b/conf/machine/include/rk3588.inc
> index 34f0627..46ac2ba 100644
> --- a/conf/machine/include/rk3588.inc
> +++ b/conf/machine/include/rk3588.inc
> @@ -1,6 +1,4 @@
>  MACHINEOVERRIDES =. "rk3588:"
>  
> -# the rk3588s is a "stripped-down" version of the rk3588
> -# in the kernel's device-tree the rk3588 builds on top of the rk3588s
> -# so anything that is valid for the rk3588s is valid for the rk3588
> +# The rk3588 is a "full" version of the rk3588 series
>  require conf/machine/include/rk3588s.inc

You don't understand how we're using rk3588 and rk3588s in meta-rockchip. From
meta-rockchip's point of view their the same so instead of having two
identical include files, we simply reference one from the other. The comment
was placed there on purpose to point this out to the user.

> diff --git a/conf/machine/orange-pi-5-plus.conf b/conf/machine/orange-pi-5-plus.conf
> new file mode 100644
> index 0000000..a222c84
> --- /dev/null
> +++ b/conf/machine/orange-pi-5-plus.conf
> @@ -0,0 +1,14 @@
> +#@TYPE: Machine
> +#@NAME: Xunlong Orange Pi 5 Plus
> +#@DESCRIPTION: It is the 5th generation of single-board computer designed by Kunlong.
> +#http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-5-plus-32GB.html
> +
> +require conf/machine/include/rk3588.inc
> +
> +PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-dev"
> +KERNEL_DEVICETREE = "rockchip/rk3588-orangepi-5-plus.dtb"
> +MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
> +
> +UBOOT_MACHINE = "orangepi-5-plus-rk3588_defconfig"
> +
> +PREFERRED_VERSION_u-boot:orange-pi-5-plus = "2024.01"

I would rather not introduce a new recipe just to remove it in a couple weeks.
If orange-pi-5-plus needs u-boot 2024.1 then we can wait a couple weeks to add
it once oe-core's u-boot moves.

> diff --git a/recipes-bsp/rkbin/rockchip-rkbin_git.bb b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> index f1609c7..5573ad2 100644
> --- a/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> +++ b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> @@ -14,6 +14,7 @@ S = "${WORKDIR}/git"
>  
>  COMPATIBLE_MACHINE = "^$"
>  COMPATIBLE_MACHINE:rk3308 = "rk3308"
> +COMPATIBLE_MACHINE:rk3588 = "rk3588"
>  COMPATIBLE_MACHINE:rk3588s = "rk3588s"
>  
>  PACKAGE_ARCH = "${MACHINE_ARCH}"
> @@ -35,6 +36,15 @@ do_deploy:rk3308() {
>  	install -m 644 ${S}/bin/rk33/rk3308_ddr_589MHz_uart?_m0_v*.bin ${DEPLOYDIR}/ddr-rk3308.bin
>  }
>  
> +do_deploy:rk3588() {
> +	# Prebuilt TF-A
> +	install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3588.elf
> +	# Prebuilt OPTEE-OS
> +	install -m 644 ${S}/bin/rk35/rk3588_bl32_v*.bin ${DEPLOYDIR}/tee-rk3588.bin
> +	# Prebuilt U-Boot TPL (DDR init)
> +	install -m 644 ${S}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v*.bin ${DEPLOYDIR}/ddr-rk3588.bin
> +}
> +

Again, all of this is already handled so this is redundant.

>  do_deploy:rk3588s() {
>  	# Prebuilt TF-A
>  	install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3588.elf
> diff --git a/recipes-bsp/u-boot/u-boot%.bbappend b/recipes-bsp/u-boot/u-boot%.bbappend
> index d902c9a..afd3344 100644
> --- a/recipes-bsp/u-boot/u-boot%.bbappend
> +++ b/recipes-bsp/u-boot/u-boot%.bbappend
> @@ -7,6 +7,10 @@ EXTRA_OEMAKE:append:px30 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-px30.elf"
>  EXTRA_OEMAKE:append:rk3308 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3308.elf"
>  EXTRA_OEMAKE:append:rk3328 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3328.elf"
>  EXTRA_OEMAKE:append:rk3399 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3399.elf"
> +EXTRA_OEMAKE:append:rk3588 = " \
> +	BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf \
> +	ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin \
> +	"
>  EXTRA_OEMAKE:append:rk3588s = " \
>  	BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf \
>  	ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin \
> @@ -17,6 +21,7 @@ INIT_FIRMWARE_DEPENDS:px30 = " trusted-firmware-a:do_deploy"
>  INIT_FIRMWARE_DEPENDS:rk3308 = " ${@bb.utils.contains('RKBIN_RK3308_LATEST', '1', 'rockchip-rkbin', 'rk3308-rkbin', d)}:do_deploy"
>  INIT_FIRMWARE_DEPENDS:rk3328 = " trusted-firmware-a:do_deploy"
>  INIT_FIRMWARE_DEPENDS:rk3399 = " trusted-firmware-a:do_deploy"
> +INIT_FIRMWARE_DEPENDS:rk3588 = " rockchip-rkbin:do_deploy"
>  INIT_FIRMWARE_DEPENDS:rk3588s = " rockchip-rkbin:do_deploy"
>  do_compile[depends] .= "${INIT_FIRMWARE_DEPENDS}"
>  
> diff --git a/recipes-bsp/u-boot/u-boot_2024.01.bb b/recipes-bsp/u-boot/u-boot_2024.01.bb
> new file mode 100644
> index 0000000..cfa3a87
> --- /dev/null
> +++ b/recipes-bsp/u-boot/u-boot_2024.01.bb
> @@ -0,0 +1,5 @@
> +require recipes-bsp/u-boot/u-boot-common.inc
> +require recipes-bsp/u-boot/u-boot.inc
> +
> +SRCREV:orange-pi-5-plus = "b51cf8bb09b67958fef9424f7c9fa202a4948c12"
> +SRC_URI:orange-pi-5-plus = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master"
> diff --git a/recipes-kernel/linux/linux-yocto-dev.bbappend b/recipes-kernel/linux/linux-yocto-dev.bbappend
> index 419ebc1..bed6ed2 100644
> --- a/recipes-kernel/linux/linux-yocto-dev.bbappend
> +++ b/recipes-kernel/linux/linux-yocto-dev.bbappend
> @@ -1,3 +1,8 @@
>  FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
>  COMPATIBLE_MACHINE:rock-5b = "rock-5b"
>  SRC_URI:append:rock-5b = " file://rockchip-kmeta;type=kmeta;name=rockchip-kmeta;destsuffix=rockchip-kmeta"
> +
> +KBRANCH:orange-pi-5-plus = "v6.7/standard/base"
> +LINUX_VERSION:orange-pi-5-plus = "6.7"
> +COMPATIBLE_MACHINE:orange-pi-5-plus = "orange-pi-5-plus"
> +SRC_URI:append:orange-pi-5-plus = " file://rockchip-kmeta;type=kmeta;name=rockchip-kmeta;destsuffix=rockchip-kmeta"
> -- 
> 2.43.0
>
Abhisit Sangjan Dec. 19, 2023, 11:53 a.m. UTC | #2
Hi Trevor,

This patch is obsoleted, I have sent a new patch topic name 103260955
<https://lists.yoctoproject.org/g/yocto/topic/103260955?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3Arecentpostdate%2C%2C%2C20%2C2%2C0%2C0%2Cprevid%253D1702986449899164660%2Cnextid%253D1702898248851399777&previd=1702986449899164660&nextid=1702898248851399777&allview=1>
.

Have to merge when the u-boot version is 2024.01-rc5 or newer and the Linux
Kernel version is 6.7 or newer. Thanks, Abhisit.

On Tue, 19 Dec 2023 at 06:36, Trevor Woerner <twoerner@gmail.com> wrote:

> On Fri 2023-12-15 @ 10:30:51 PM, Abhisit Sangjan wrote:
> > Orange Pi 5 Plus is RK3588 based SBC featuring:
> > - 2x 2.5G ethernet ports – onboard NIC hooked to PCIe 2.0 interface
> > - 2x USB 2.0 host ports
> > - 2x USB 3.0 host ports (exposed over USB 3.0 hub)
> > - Type-C port featuring USB 2.0/3.0 and Alt-DP mode
> > - PCIe 2.0/USB 2.0/I2S/I2C/UART on E.KEY socket
> > - RTC
> > - ES8388 on-board sound codec – jack in/out, onboard mic, speaker
> amplifier
> > - SPI NOR flash
> > - RGB LED (R is always on)
> > - IR receiver
> > - PCIe 3.0 on the bottom for NVMe, etc.
> > - 40pin GPIO header (with gpio, I2C, SPI, PWM, UART)
> > - Power, recovery and Mask ROM buttons
> > - 2x HDMI out, 1x HDMI in
> > - Slots/connectors for eMMC, uSD card, fan, MIPI CSI/DSI
> > - 4 GB, 8 GB, 16 GB and 32 GB of RAM
> >
> > Signed-off-by: Abhisit Sangjan <abhisit.sangjan@gmail.com>
> > ---
> >  README                                        |  3 ++-
> >  conf/machine/include/rk3588.inc               |  4 +---
> >  conf/machine/orange-pi-5-plus.conf            | 14 ++++++++++++++
> >  recipes-bsp/rkbin/rockchip-rkbin_git.bb       | 10 ++++++++++
> >  recipes-bsp/u-boot/u-boot%.bbappend           |  5 +++++
> >  recipes-bsp/u-boot/u-boot_2024.01.bb          |  5 +++++
> >  recipes-kernel/linux/linux-yocto-dev.bbappend |  5 +++++
> >  7 files changed, 42 insertions(+), 4 deletions(-)
> >  create mode 100644 conf/machine/orange-pi-5-plus.conf
> >  create mode 100644 recipes-bsp/u-boot/u-boot_2024.01.bb
> >
> > diff --git a/README b/README
> > index e5beaa0..4d1a83e 100644
> > --- a/README
> > +++ b/README
> > @@ -31,6 +31,7 @@ Status of supported boards:
> >               firefly-rk3288
> >               nanopi-r4s
> >               rock-5b
> > +             orange-pi-5-plus
> >               nanopi-r2s
> >               nanopi-m4b
> >               rock-pi-s
>
> The list is "sorted" from earliest inclusion in meta-rockchip to latest.
> Therefore the most recent addition should be added at the bottom of the
> list.
>
> > @@ -57,7 +58,7 @@ Notes:
> >       initializer from rkbin, simply set:
> >
> >               RKBIN_RK3308_LATEST = "1"
> > -
> > +
>
> Remove spurious edits.
>
> >       in the configuration (e.g. conf/local.conf).
> >
> >  Maintenance:
> > diff --git a/conf/machine/include/rk3588.inc
> b/conf/machine/include/rk3588.inc
> > index 34f0627..46ac2ba 100644
> > --- a/conf/machine/include/rk3588.inc
> > +++ b/conf/machine/include/rk3588.inc
> > @@ -1,6 +1,4 @@
> >  MACHINEOVERRIDES =. "rk3588:"
> >
> > -# the rk3588s is a "stripped-down" version of the rk3588
> > -# in the kernel's device-tree the rk3588 builds on top of the rk3588s
> > -# so anything that is valid for the rk3588s is valid for the rk3588
> > +# The rk3588 is a "full" version of the rk3588 series
> >  require conf/machine/include/rk3588s.inc
>
> You don't understand how we're using rk3588 and rk3588s in meta-rockchip.
> From
> meta-rockchip's point of view their the same so instead of having two
> identical include files, we simply reference one from the other. The
> comment
> was placed there on purpose to point this out to the user.
>
> > diff --git a/conf/machine/orange-pi-5-plus.conf
> b/conf/machine/orange-pi-5-plus.conf
> > new file mode 100644
> > index 0000000..a222c84
> > --- /dev/null
> > +++ b/conf/machine/orange-pi-5-plus.conf
> > @@ -0,0 +1,14 @@
> > +#@TYPE: Machine
> > +#@NAME: Xunlong Orange Pi 5 Plus
> > +#@DESCRIPTION: It is the 5th generation of single-board computer
> designed by Kunlong.
> > +#
> http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-5-plus-32GB.html
> > +
> > +require conf/machine/include/rk3588.inc
> > +
> > +PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-dev"
> > +KERNEL_DEVICETREE = "rockchip/rk3588-orangepi-5-plus.dtb"
> > +MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
> > +
> > +UBOOT_MACHINE = "orangepi-5-plus-rk3588_defconfig"
> > +
> > +PREFERRED_VERSION_u-boot:orange-pi-5-plus = "2024.01"
>
> I would rather not introduce a new recipe just to remove it in a couple
> weeks.
> If orange-pi-5-plus needs u-boot 2024.1 then we can wait a couple weeks to
> add
> it once oe-core's u-boot moves.
>
> > diff --git a/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> > index f1609c7..5573ad2 100644
> > --- a/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> > +++ b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> > @@ -14,6 +14,7 @@ S = "${WORKDIR}/git"
> >
> >  COMPATIBLE_MACHINE = "^$"
> >  COMPATIBLE_MACHINE:rk3308 = "rk3308"
> > +COMPATIBLE_MACHINE:rk3588 = "rk3588"
> >  COMPATIBLE_MACHINE:rk3588s = "rk3588s"
> >
> >  PACKAGE_ARCH = "${MACHINE_ARCH}"
> > @@ -35,6 +36,15 @@ do_deploy:rk3308() {
> >       install -m 644 ${S}/bin/rk33/rk3308_ddr_589MHz_uart?_m0_v*.bin
> ${DEPLOYDIR}/ddr-rk3308.bin
> >  }
> >
> > +do_deploy:rk3588() {
> > +     # Prebuilt TF-A
> > +     install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf
> ${DEPLOYDIR}/bl31-rk3588.elf
> > +     # Prebuilt OPTEE-OS
> > +     install -m 644 ${S}/bin/rk35/rk3588_bl32_v*.bin
> ${DEPLOYDIR}/tee-rk3588.bin
> > +     # Prebuilt U-Boot TPL (DDR init)
> > +     install -m 644
> ${S}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v*.bin
> ${DEPLOYDIR}/ddr-rk3588.bin
> > +}
> > +
>
> Again, all of this is already handled so this is redundant.
>
> >  do_deploy:rk3588s() {
> >       # Prebuilt TF-A
> >       install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf
> ${DEPLOYDIR}/bl31-rk3588.elf
> > diff --git a/recipes-bsp/u-boot/u-boot%.bbappend
> b/recipes-bsp/u-boot/u-boot%.bbappend
> > index d902c9a..afd3344 100644
> > --- a/recipes-bsp/u-boot/u-boot%.bbappend
> > +++ b/recipes-bsp/u-boot/u-boot%.bbappend
> > @@ -7,6 +7,10 @@ EXTRA_OEMAKE:append:px30 = "
> BL31=${DEPLOY_DIR_IMAGE}/bl31-px30.elf"
> >  EXTRA_OEMAKE:append:rk3308 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3308.elf"
> >  EXTRA_OEMAKE:append:rk3328 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3328.elf"
> >  EXTRA_OEMAKE:append:rk3399 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3399.elf"
> > +EXTRA_OEMAKE:append:rk3588 = " \
> > +     BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf \
> > +     ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin \
> > +     "
> >  EXTRA_OEMAKE:append:rk3588s = " \
> >       BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf \
> >       ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin \
> > @@ -17,6 +21,7 @@ INIT_FIRMWARE_DEPENDS:px30 = "
> trusted-firmware-a:do_deploy"
> >  INIT_FIRMWARE_DEPENDS:rk3308 = "
> ${@bb.utils.contains('RKBIN_RK3308_LATEST', '1', 'rockchip-rkbin',
> 'rk3308-rkbin', d)}:do_deploy"
> >  INIT_FIRMWARE_DEPENDS:rk3328 = " trusted-firmware-a:do_deploy"
> >  INIT_FIRMWARE_DEPENDS:rk3399 = " trusted-firmware-a:do_deploy"
> > +INIT_FIRMWARE_DEPENDS:rk3588 = " rockchip-rkbin:do_deploy"
> >  INIT_FIRMWARE_DEPENDS:rk3588s = " rockchip-rkbin:do_deploy"
> >  do_compile[depends] .= "${INIT_FIRMWARE_DEPENDS}"
> >
> > diff --git a/recipes-bsp/u-boot/u-boot_2024.01.bb b/recipes-bsp/u-boot/
> u-boot_2024.01.bb
> > new file mode 100644
> > index 0000000..cfa3a87
> > --- /dev/null
> > +++ b/recipes-bsp/u-boot/u-boot_2024.01.bb
> > @@ -0,0 +1,5 @@
> > +require recipes-bsp/u-boot/u-boot-common.inc
> > +require recipes-bsp/u-boot/u-boot.inc
> > +
> > +SRCREV:orange-pi-5-plus = "b51cf8bb09b67958fef9424f7c9fa202a4948c12"
> > +SRC_URI:orange-pi-5-plus = "git://
> source.denx.de/u-boot/u-boot.git;protocol=https;branch=master"
> > diff --git a/recipes-kernel/linux/linux-yocto-dev.bbappend
> b/recipes-kernel/linux/linux-yocto-dev.bbappend
> > index 419ebc1..bed6ed2 100644
> > --- a/recipes-kernel/linux/linux-yocto-dev.bbappend
> > +++ b/recipes-kernel/linux/linux-yocto-dev.bbappend
> > @@ -1,3 +1,8 @@
> >  FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
> >  COMPATIBLE_MACHINE:rock-5b = "rock-5b"
> >  SRC_URI:append:rock-5b = "
> file://rockchip-kmeta;type=kmeta;name=rockchip-kmeta;destsuffix=rockchip-kmeta"
> > +
> > +KBRANCH:orange-pi-5-plus = "v6.7/standard/base"
> > +LINUX_VERSION:orange-pi-5-plus = "6.7"
> > +COMPATIBLE_MACHINE:orange-pi-5-plus = "orange-pi-5-plus"
> > +SRC_URI:append:orange-pi-5-plus = "
> file://rockchip-kmeta;type=kmeta;name=rockchip-kmeta;destsuffix=rockchip-kmeta"
> > --
> > 2.43.0
> >
>
diff mbox series

Patch

diff --git a/README b/README
index e5beaa0..4d1a83e 100644
--- a/README
+++ b/README
@@ -31,6 +31,7 @@  Status of supported boards:
 		firefly-rk3288
 		nanopi-r4s
 		rock-5b
+		orange-pi-5-plus
 		nanopi-r2s
 		nanopi-m4b
 		rock-pi-s
@@ -57,7 +58,7 @@  Notes:
 	initializer from rkbin, simply set:
 
 		RKBIN_RK3308_LATEST = "1"
-	
+
 	in the configuration (e.g. conf/local.conf).
 
 Maintenance:
diff --git a/conf/machine/include/rk3588.inc b/conf/machine/include/rk3588.inc
index 34f0627..46ac2ba 100644
--- a/conf/machine/include/rk3588.inc
+++ b/conf/machine/include/rk3588.inc
@@ -1,6 +1,4 @@ 
 MACHINEOVERRIDES =. "rk3588:"
 
-# the rk3588s is a "stripped-down" version of the rk3588
-# in the kernel's device-tree the rk3588 builds on top of the rk3588s
-# so anything that is valid for the rk3588s is valid for the rk3588
+# The rk3588 is a "full" version of the rk3588 series
 require conf/machine/include/rk3588s.inc
diff --git a/conf/machine/orange-pi-5-plus.conf b/conf/machine/orange-pi-5-plus.conf
new file mode 100644
index 0000000..a222c84
--- /dev/null
+++ b/conf/machine/orange-pi-5-plus.conf
@@ -0,0 +1,14 @@ 
+#@TYPE: Machine
+#@NAME: Xunlong Orange Pi 5 Plus
+#@DESCRIPTION: It is the 5th generation of single-board computer designed by Kunlong.
+#http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-5-plus-32GB.html
+
+require conf/machine/include/rk3588.inc
+
+PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-dev"
+KERNEL_DEVICETREE = "rockchip/rk3588-orangepi-5-plus.dtb"
+MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
+
+UBOOT_MACHINE = "orangepi-5-plus-rk3588_defconfig"
+
+PREFERRED_VERSION_u-boot:orange-pi-5-plus = "2024.01"
diff --git a/recipes-bsp/rkbin/rockchip-rkbin_git.bb b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
index f1609c7..5573ad2 100644
--- a/recipes-bsp/rkbin/rockchip-rkbin_git.bb
+++ b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
@@ -14,6 +14,7 @@  S = "${WORKDIR}/git"
 
 COMPATIBLE_MACHINE = "^$"
 COMPATIBLE_MACHINE:rk3308 = "rk3308"
+COMPATIBLE_MACHINE:rk3588 = "rk3588"
 COMPATIBLE_MACHINE:rk3588s = "rk3588s"
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -35,6 +36,15 @@  do_deploy:rk3308() {
 	install -m 644 ${S}/bin/rk33/rk3308_ddr_589MHz_uart?_m0_v*.bin ${DEPLOYDIR}/ddr-rk3308.bin
 }
 
+do_deploy:rk3588() {
+	# Prebuilt TF-A
+	install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3588.elf
+	# Prebuilt OPTEE-OS
+	install -m 644 ${S}/bin/rk35/rk3588_bl32_v*.bin ${DEPLOYDIR}/tee-rk3588.bin
+	# Prebuilt U-Boot TPL (DDR init)
+	install -m 644 ${S}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v*.bin ${DEPLOYDIR}/ddr-rk3588.bin
+}
+
 do_deploy:rk3588s() {
 	# Prebuilt TF-A
 	install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3588.elf
diff --git a/recipes-bsp/u-boot/u-boot%.bbappend b/recipes-bsp/u-boot/u-boot%.bbappend
index d902c9a..afd3344 100644
--- a/recipes-bsp/u-boot/u-boot%.bbappend
+++ b/recipes-bsp/u-boot/u-boot%.bbappend
@@ -7,6 +7,10 @@  EXTRA_OEMAKE:append:px30 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-px30.elf"
 EXTRA_OEMAKE:append:rk3308 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3308.elf"
 EXTRA_OEMAKE:append:rk3328 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3328.elf"
 EXTRA_OEMAKE:append:rk3399 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3399.elf"
+EXTRA_OEMAKE:append:rk3588 = " \
+	BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf \
+	ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin \
+	"
 EXTRA_OEMAKE:append:rk3588s = " \
 	BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf \
 	ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin \
@@ -17,6 +21,7 @@  INIT_FIRMWARE_DEPENDS:px30 = " trusted-firmware-a:do_deploy"
 INIT_FIRMWARE_DEPENDS:rk3308 = " ${@bb.utils.contains('RKBIN_RK3308_LATEST', '1', 'rockchip-rkbin', 'rk3308-rkbin', d)}:do_deploy"
 INIT_FIRMWARE_DEPENDS:rk3328 = " trusted-firmware-a:do_deploy"
 INIT_FIRMWARE_DEPENDS:rk3399 = " trusted-firmware-a:do_deploy"
+INIT_FIRMWARE_DEPENDS:rk3588 = " rockchip-rkbin:do_deploy"
 INIT_FIRMWARE_DEPENDS:rk3588s = " rockchip-rkbin:do_deploy"
 do_compile[depends] .= "${INIT_FIRMWARE_DEPENDS}"
 
diff --git a/recipes-bsp/u-boot/u-boot_2024.01.bb b/recipes-bsp/u-boot/u-boot_2024.01.bb
new file mode 100644
index 0000000..cfa3a87
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot_2024.01.bb
@@ -0,0 +1,5 @@ 
+require recipes-bsp/u-boot/u-boot-common.inc
+require recipes-bsp/u-boot/u-boot.inc
+
+SRCREV:orange-pi-5-plus = "b51cf8bb09b67958fef9424f7c9fa202a4948c12"
+SRC_URI:orange-pi-5-plus = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master"
diff --git a/recipes-kernel/linux/linux-yocto-dev.bbappend b/recipes-kernel/linux/linux-yocto-dev.bbappend
index 419ebc1..bed6ed2 100644
--- a/recipes-kernel/linux/linux-yocto-dev.bbappend
+++ b/recipes-kernel/linux/linux-yocto-dev.bbappend
@@ -1,3 +1,8 @@ 
 FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
 COMPATIBLE_MACHINE:rock-5b = "rock-5b"
 SRC_URI:append:rock-5b = " file://rockchip-kmeta;type=kmeta;name=rockchip-kmeta;destsuffix=rockchip-kmeta"
+
+KBRANCH:orange-pi-5-plus = "v6.7/standard/base"
+LINUX_VERSION:orange-pi-5-plus = "6.7"
+COMPATIBLE_MACHINE:orange-pi-5-plus = "orange-pi-5-plus"
+SRC_URI:append:orange-pi-5-plus = " file://rockchip-kmeta;type=kmeta;name=rockchip-kmeta;destsuffix=rockchip-kmeta"