diff mbox series

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

Message ID 20230710212151.574040-2-robertoxmed@gmail.com
State Changes Requested
Headers show
Series configs/roc_rk3399_pc: Bring back and update the | expand

Commit Message

Roberto Medina July 10, 2023, 9:21 p.m. UTC
* 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`.

Signed-off-by: Roberto Medina <robertoxmed@gmail.com>
Tested-by: Kilian Zinnecker <kilian.zinnecker@mail.de>
---
 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

Comments

Kilian Zinnecker July 14, 2023, 6:08 p.m. UTC | #1
Hello Roberto, all,

...
> Signed-off-by: Roberto Medina <robertoxmed@gmail.com>
> Tested-by: Kilian Zinnecker <kilian.zinnecker@mail.de>
...
Reviewed-by: Kilian Zinnecker <kilian.zinnecker@mail.de>
Tested-by: Kilian Zinnecker <kilian.zinnecker@mail.de>

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
Roberto Medina July 24, 2023, 11:01 a.m. UTC | #2
Hi Kilian, all,

On 7/14/23 20:08, Kilian Zinnecker wrote:
> Reviewed-by: Kilian Zinnecker <kilian.zinnecker@mail.de> Tested-by: 
> Kilian Zinnecker <kilian.zinnecker@mail.de> 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?

Thank you in advance.

Roberto
Da Xue July 25, 2023, 8:21 a.m. UTC | #3
On Mon, Jul 24, 2023 at 7:02 AM Roberto Medina <robertoxmed@gmail.com> wrote:
>
> Hi Kilian, all,
>
> On 7/14/23 20:08, Kilian Zinnecker wrote:
> > Reviewed-by: Kilian Zinnecker <kilian.zinnecker@mail.de> Tested-by:
> > Kilian Zinnecker <kilian.zinnecker@mail.de> 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.

>
> Thank you in advance.
>
> Roberto
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Thomas Petazzoni Aug. 8, 2023, 9:06 p.m. UTC | #4
Hello Roberto,

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

On Mon, 10 Jul 2023 23:21:47 +0200
Roberto Medina <robertoxmed@gmail.com> 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`.
> 
> Signed-off-by: Roberto Medina <robertoxmed@gmail.com>
> Tested-by: Kilian Zinnecker <kilian.zinnecker@mail.de>
> ---
>  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/ ?

> diff --git a/configs/roc_pc_rk3399_defconfig b/configs/roc_pc_rk3399_defconfig
> new file mode 100644
> index 0000000000..91574f1d61
> --- /dev/null
> +++ b/configs/roc_pc_rk3399_defconfig
> @@ -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.

> +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.

> +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?

> +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.

> +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.

> +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
Roberto Medina Aug. 11, 2023, 4:28 p.m. UTC | #5
Hi Thomas,

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

On 8/8/23 23:06, Thomas Petazzoni wrote:
> 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
Thomas Petazzoni Aug. 11, 2023, 10:29 p.m. UTC | #6
On Fri, 11 Aug 2023 18:28:43 +0200
Roberto Medina <robertoxmed@gmail.com> wrote:

> Thank you for your reviews. I submitted a v3 for review but I will 
> answer the following here as well.
> 
> On 8/8/23 23:06, Thomas Petazzoni wrote:
> > 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
diff mbox series

Patch

diff --git a/board/firefly/roc-rk3399-pc/extlinux.conf b/board/firefly/roc-rk3399-pc/extlinux.conf
new file mode 100644
index 0000000000..50a358fadc
--- /dev/null
+++ b/board/firefly/roc-rk3399-pc/extlinux.conf
@@ -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
diff --git a/board/firefly/roc-rk3399-pc/genimage.cfg b/board/firefly/roc-rk3399-pc/genimage.cfg
new file mode 100644
index 0000000000..966c869273
--- /dev/null
+++ b/board/firefly/roc-rk3399-pc/genimage.cfg
@@ -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"
+	}
+}
diff --git a/board/firefly/roc-rk3399-pc/post-build.sh b/board/firefly/roc-rk3399-pc/post-build.sh
new file mode 100755
index 0000000000..d84a5da0b0
--- /dev/null
+++ b/board/firefly/roc-rk3399-pc/post-build.sh
@@ -0,0 +1,5 @@ 
+#!/bin/sh
+
+BOARD_DIR="$(dirname "$0")"
+
+install -m 0644 -D "$BOARD_DIR"/extlinux.conf "$TARGET_DIR"/boot/extlinux/extlinux.conf
diff --git a/board/firefly/roc-rk3399-pc/readme.txt b/board/firefly/roc-rk3399-pc/readme.txt
new file mode 100644
index 0000000000..8a6f1cdee6
--- /dev/null
+++ b/board/firefly/roc-rk3399-pc/readme.txt
@@ -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
diff --git a/configs/roc_pc_rk3399_defconfig b/configs/roc_pc_rk3399_defconfig
new file mode 100644
index 0000000000..91574f1d61
--- /dev/null
+++ b/configs/roc_pc_rk3399_defconfig
@@ -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