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 |
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 >
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 --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"
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