Skip to contentSkip to conversation

configs/roc_rk3399_pc: Bring back and update the

PATCH Superseded Roberto Medina 3 participants 8 messages Jul 10, 2023 – Aug 11, 2023

v2 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

v2 cover configs/roc_rk3399_pc: Bring back and update the

This patch series aims to reintroduce the configuration and scripts for the roc_rk3399_pc board. There are a few improvements regarding the U-Boot verion (bump) and some minor fixes on the post-build.sh script.

v2:
* Use a more recent version of U-boot.
* Built-tested by Kilian Zinnecker.

Roberto Medina (1):
configs/roc_rk3399_pc: Bring back and update the configuration for the
rockchip rk3399 built by firefly.

 board/firefly/roc-rk3399-pc/extlinux.conf |  4 +++
 board/firefly/roc-rk3399-pc/genimage.cfg  | 22 +++++++++++++
 board/firefly/roc-rk3399-pc/post-build.sh |  5 +++
 board/firefly/roc-rk3399-pc/readme.txt    | 40 +++++++++++++++++++++++
 configs/roc_pc_rk3399_defconfig           | 38 +++++++++++++++++++++
 5 files changed, 109 insertions(+)
 create mode 100644 board/firefly/roc-rk3399-pc/extlinux.conf
 create mode 100644 board/firefly/roc-rk3399-pc/genimage.cfg
 create mode 100755 board/firefly/roc-rk3399-pc/post-build.sh
 create mode 100644 board/firefly/roc-rk3399-pc/readme.txt
 create mode 100644 configs/roc_pc_rk3399_defconfig
Signature · 6 lines
2.41.0

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#1 lore raw

PATCH v2 1/1 configs/roc_rk3399_pc: Bring back and update the configuration for the rockchip rk3399 built by firefly.

* Uses a more recent version of TF-A which solves the building issue for this board.
* Bump on U-Boot version that was used for this configuration.
* Some minor fixes in the post-build.sh script using shellcheck.

---
 board/firefly/roc-rk3399-pc/extlinux.conf |  4 +++
 board/firefly/roc-rk3399-pc/genimage.cfg  | 22 +++++++++++++
 board/firefly/roc-rk3399-pc/post-build.sh |  5 +++
 board/firefly/roc-rk3399-pc/readme.txt    | 40 +++++++++++++++++++++++
 configs/roc_pc_rk3399_defconfig           | 38 +++++++++++++++++++++
 5 files changed, 109 insertions(+)
 create mode 100644 board/firefly/roc-rk3399-pc/extlinux.conf
 create mode 100644 board/firefly/roc-rk3399-pc/genimage.cfg
 create mode 100755 board/firefly/roc-rk3399-pc/post-build.sh
 create mode 100644 board/firefly/roc-rk3399-pc/readme.txt
 create mode 100644 configs/roc_pc_rk3399_defconfig
board/firefly/roc-rk3399-pc/extlinux.conf new file +4 -0
new file mode 100644
index 0000000000..50a358fadc
@@ -0,0 +1,4 @@
+label RK3399RocPC linux
+  kernel /boot/Image
+  devicetree /boot/rk3399-roc-pc.dtb
+  append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk0p1 rootwait
board/firefly/roc-rk3399-pc/genimage.cfg new file +22 -0
new file mode 100644
index 0000000000..966c869273
@@ -0,0 +1,22 @@
+image sdcard.img {
+	hdimage {
+	}
+
+	partition u-boot-tpl-spl-dtb {
+		in-partition-table = "no"
+		image = "idbloader.img"
+		offset = 32K
+	}
+
+	partition u-boot-dtb {
+		in-partition-table = "no"
+		image = "u-boot.itb"
+		offset = 8M
+		size = 30M
+	}
+
+	partition rootfs {
+		partition-type = 0x83
+		image = "rootfs.ext4"
+	}
+}
board/firefly/roc-rk3399-pc/post-build.sh new file +5 -0
new file mode 100755
index 0000000000..d84a5da0b0
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+BOARD_DIR="$(dirname "$0")"
+
+install -m 0644 -D "$BOARD_DIR"/extlinux.conf "$TARGET_DIR"/boot/extlinux/extlinux.conf
board/firefly/roc-rk3399-pc/readme.txt new file +40 -0
new file mode 100644
index 0000000000..8a6f1cdee6
@@ -0,0 +1,40 @@
+Libre Computer Board ROC-RK3399-PC
+===================================
+
+Build:
+
+  $ make roc_pc_rk3399_defconfig
+  $ make
+
+Files created in output directory
+=================================
+
+output/images
+
+├── bl31.elf
+├── idbloader.img
+├── Image
+├── rk3399-roc-pc.dtb
+├── rootfs.ext2
+├── rootfs.ext4 -> rootfs.ext2
+├── rootfs.tar
+├── sdcard.img
+├── u-boot.bin
+└── u-boot.itb
+
+Creating bootable SD card:
+==========================
+
+Simply invoke (as root)
+
+sudo dd if=output/images/sdcard.img of=/dev/sdX && sync
+
+Where X is your SD card device
+
+Serial console
+--------------
+
+Baudrate for this board is 1500000
+
+Wiki link:
+https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/roc-rk3399-pc.html
configs/roc_pc_rk3399_defconfig new file +38 -0
new file mode 100644
index 0000000000..91574f1d61
@@ -0,0 +1,38 @@
+BR2_aarch64=y
+BR2_cortex_a72_a53=y
+BR2_BINUTILS_VERSION_2_40_X=y
+BR2_TARGET_GENERIC_HOSTNAME="roc-rk3399-pc"
+BR2_TARGET_GENERIC_ISSUE="Welcome to ROC-RK3399-PC!"
+BR2_ROOTFS_POST_BUILD_SCRIPT="board/firefly/roc-rk3399-pc/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
+BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/firefly/roc-rk3399-pc/genimage.cfg"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3399-roc-pc"
+BR2_LINUX_KERNEL_INSTALL_TARGET=y
+BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_ROOTFS_EXT2_SIZE="240M"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="v2.9.0"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rk3399"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES=""
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN=y
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="roc-pc-rk3399"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_NEEDS_PYTHON3=y
+BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y
+BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF=y
+BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
+BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb"
+BR2_TARGET_UBOOT_SPL=y
+BR2_TARGET_UBOOT_SPL_NAME="idbloader.img"
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
+BR2_PACKAGE_HOST_UBOOT_TOOLS=y
Signature · 5 lines
2.41.0
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
Reviewed-by Kilian Zinnecker Tested-by Kilian Zinnecker on v2 1/1
#2 lore raw

Re: [Buildroot] [PATCH v2 1/1] configs/roc_rk3399_pc: Bring back and update the configuration for the rockchip rk3399 built by firefly.

Hello Roberto, all,

...

Quoted 2 lines

...

Tested v2, but again build test only (I don't have that board). I also had a look at it and it looks good to me.

Best regards,
Kilian

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#3 lore raw

Re: [Buildroot] [PATCH v2 1/1] configs/roc_rk3399_pc: Bring back and update the configuration for the rockchip rk3399 built by firefly.

Hi Kilian, all,

Quoted 1 line · Kilian Zinnecker

Any suggestion on how to get this merged to upstream? Or any further changes required?

Thank you in advance.

Roberto
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#4 lore raw

Re: [Buildroot] [PATCH v2 1/1] configs/roc_rk3399_pc: Bring back and update the configuration for the rockchip rk3399 built by firefly.

Quoted 4 lines · Roberto Medina

Hi Kilian, all,

On 7/14/23 20:08, Kilian Zinnecker wrote:

Quoted 8 lines
Quoted 4 lines

Kilian Zinnecker <[email protected]> Tested v2, but again build test only (I don't have that board). I also had a look at it and it looks good to me.

Any suggestion on how to get this merged to upstream? Or any further changes required?

This particular model is actually a Libre Computer product. Firefly no longer sells this although they are still the ODM. But this is nit and doesn't really affect us.

We will start maintaining this board directly in buildroot in the next month or so.

Quoted 8 lines

Thank you in advance.

Roberto
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#5 lore raw

Re: [Buildroot] [PATCH v2 1/1] configs/roc_rk3399_pc: Bring back and update the configuration for the rockchip rk3399 built by firefly.

In reply to Roberto Medina

Hello Roberto,

Thanks, this looks mostly good, but I have a few comments/questions.

Quoted 7 lines · On Mon, 10 Jul 2023 23:21:47 +0200 Roberto Medina <[email protected]> wrote:

* Uses a more recent version of TF-A which solves the building issue for this board.
* Bump on U-Boot version that was used for this configuration.
* Some minor fixes in the post-build.sh script using shellcheck.

Quoted 7 lines
---
 board/firefly/roc-rk3399-pc/extlinux.conf |  4 +++
 board/firefly/roc-rk3399-pc/genimage.cfg  | 22 +++++++++++++
 board/firefly/roc-rk3399-pc/post-build.sh |  5 +++
 board/firefly/roc-rk3399-pc/readme.txt    | 40 +++++++++++++++++++++++
 configs/roc_pc_rk3399_defconfig           | 38 +++++++++++++++++++++
 5 files changed, 109 insertions(+)

Could you add an entry in the DEVELOPERS file referencing you as the developer/maintainer for configs/roc_pc_rk3399_defconfig and board/firefly/roc-rk3399-pc/ ?

configs/roc_pc_rk3399_defconfig line 3

Quoted 9 lines
configs/roc_pc_rk3399_defconfig new file +3 -0
new file mode 100644
index 0000000000..91574f1d61
@@ -0,0 +1,38 @@
+BR2_aarch64=y
+BR2_cortex_a72_a53=y
+BR2_BINUTILS_VERSION_2_40_X=y

Why are you forcing binutils 2.40 here? Any reason? This is why I didn't apply, because I don't understand if there's a solid reason for you to do that.

configs/roc_pc_rk3399_defconfig line 9

Quoted 6 lines
configs/roc_pc_rk3399_defconfig new file +6 -0
+BR2_TARGET_GENERIC_HOSTNAME="roc-rk3399-pc"
+BR2_TARGET_GENERIC_ISSUE="Welcome to ROC-RK3399-PC!"
+BR2_ROOTFS_POST_BUILD_SCRIPT="board/firefly/roc-rk3399-pc/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
+BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/firefly/roc-rk3399-pc/genimage.cfg"
+BR2_LINUX_KERNEL=y

You need to set a fixed version of the Linux kernel.

configs/roc_pc_rk3399_defconfig line 17

Quoted 8 lines
configs/roc_pc_rk3399_defconfig new file +8 -0
+BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3399-roc-pc"
+BR2_LINUX_KERNEL_INSTALL_TARGET=y
+BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_ROOTFS_EXT2_SIZE="240M"

Why this custom size rather than leaving the default?

configs/roc_pc_rk3399_defconfig line 21

Quoted 4 lines
configs/roc_pc_rk3399_defconfig new file +4 -0
+BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="v2.9.0"

Could you use v2.9 instead? It's pointing to the same commit, but it will make sure that our patch boot/arm-trusted-firmware/v2.9/0001-build-tools-avoid-unnecessary-link.patch gets applied.

configs/roc_pc_rk3399_defconfig line 25

Quoted 4 lines
configs/roc_pc_rk3399_defconfig new file +4 -0
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rk3399"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES=""
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN=y
+BR2_TARGET_UBOOT=y

You need to set a fixed version of U-Boot.

configs/roc_pc_rk3399_defconfig line 38

Quoted 13 lines
configs/roc_pc_rk3399_defconfig new file +13 -0
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="roc-pc-rk3399"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_NEEDS_PYTHON3=y
+BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y
+BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF=y
+BR2_TARGET_UBOOT_FORMAT_CUSTOM=y
+BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb"
+BR2_TARGET_UBOOT_SPL=y
+BR2_TARGET_UBOOT_SPL_NAME="idbloader.img"
+BR2_PACKAGE_HOST_DOSFSTOOLS=y
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_MTOOLS=y
+BR2_PACKAGE_HOST_UBOOT_TOOLS=y

Not sure here why BR2_PACKAGE_HOST_UBOOT_TOOLS=y is needed?

Could you rework your patch to address those small aspects and send an updated version?

Thanks a lot!

Thomas Petazzoni

Signature · 7 lines
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot
#6 lore raw

Re: [Buildroot] [PATCH v2 1/1] configs/roc_rk3399_pc: Bring back and update the configuration for the rockchip rk3399 built by firefly.

Hi Thomas,

Thank you for your reviews. I submitted a v3 for review but I will answer the following here as well.

Quoted 1 line · Thomas Petazzoni

Why this custom size rather than leaving the default?

If I leave this value as default I will get the following error:

Copying files into the device: __populate_fs: Could not alocate block in ext2 filesystem while writing file "stm_core.ko".

The error message then suggests to increase the filesystem size.

Best,
Roberto

_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot

#7 lore raw

Re: [Buildroot] [PATCH v2 1/1] configs/roc_rk3399_pc: Bring back and update the configuration for the rockchip rk3399 built by firefly.

Quoted 10 lines · On Fri, 11 Aug 2023 18:28:43 +0200 Roberto Medina <[email protected]> wrote:

Thank you for your reviews. I submitted a v3 for review but I will answer the following here as well.

Quoted 1 line · Thomas Petazzoni

Why this custom size rather than leaving the default?

If I leave this value as default I will get the following error:

Copying files into the device: __populate_fs: Could not alocate block in ext2 filesystem while writing file "stm_core.ko".

This indeed means that what's on the rootfs exceeds the default ext2/ext4 filesystem image size, so increasing it is fine.

Thanks,

Thomas

Signature · 7 lines
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
[email protected]
https://lists.buildroot.org/mailman/listinfo/buildroot