diff mbox series

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

Message ID 20230811162546.8088-2-robertoxmed@gmail.com
State Accepted
Headers show
Series onfigs/roc_rk3399_pc: Bring back and update the configuration for the rockchip rk3399 built by firefly. | expand

Commit Message

Roberto Medina Aug. 11, 2023, 4:25 p.m. UTC
* Uses a version 2.9 of TF-A which solves the building issue for this
  board.
* Increase the size of the ext2 partition to be able to create the final
  image.
* Bump and set the U-Boot version that was used for this configuration.
* Bump and set the version of Linux to 6.1.45.
* 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>
Reviewed-by: Kilian Zinnecker <kilian.zinnecker@mail.de>
---
 DEVELOPERS                                |  4 +++
 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           | 42 +++++++++++++++++++++++
 6 files changed, 117 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 Aug. 11, 2023, 7:02 p.m. UTC | #1
Hello Roberto,

here are a few things, which could be improved:

[--SNIP--]

> diff --git a/DEVELOPERS b/DEVELOPERS
> index 6ffa3ee693..5ebabd01cb 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -2546,6 +2546,10 @@ F:	package/mhz/
>  N:	Robert Rose <robertroyrose@gmail.com>
>  F:	package/grpc/
> 
> +N:	Roberto Medina <robertoxmed@gmail.com>
> +F:	configs/roc_pc_rk3399_defconfig
> +F:	board/firefly/roc-rk3399

I think when it comes to repositories (i.e., board/firefly/roc-rk3399) it is 
best practice to add a trailing space. I guess this way one can easily 
distinguish directories from single files.

[--SNIP--]

In the defconfig:

> +BR2_TARGET_UBOOT_CUSTOM_VERSION=y
> +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.04"

I think 2022.04 is actually the current default version of buildroot. So 
unless you have reason to freeze it to this version on purpose (e.g., because 
older and newer versions are known to be not working with this board - which I 
don't believe is the case) you could simply omit these two lines.

[--SNIP--]

Best regards,
Kilian Zinnecker
Kilian Zinnecker Aug. 11, 2023, 7:07 p.m. UTC | #2
Hello Roberto,

> > diff --git a/DEVELOPERS b/DEVELOPERS
> > index 6ffa3ee693..5ebabd01cb 100644
> > --- a/DEVELOPERS
> > +++ b/DEVELOPERS
> > @@ -2546,6 +2546,10 @@ F:	package/mhz/
> > 
> >  N:	Robert Rose <robertroyrose@gmail.com>
> >  F:	package/grpc/
> > 
> > +N:	Roberto Medina <robertoxmed@gmail.com>
> > +F:	configs/roc_pc_rk3399_defconfig
> > +F:	board/firefly/roc-rk3399
> 
> I think when it comes to repositories (i.e., board/firefly/roc-rk3399) it is
> best practice to add a trailing space. I guess this way one can easily
> distinguish directories from single files.

... a trailing slash instead of a trailing space, of course ...

Best regards,
Kilian
Roberto Medina Aug. 11, 2023, 8:59 p.m. UTC | #3
Hi Kilian,

Thanks for reviewing as usual.

On 8/11/23 21:02, Kilian Zinnecker wrote:
>> diff --git a/DEVELOPERS b/DEVELOPERS
>> index 6ffa3ee693..5ebabd01cb 100644
>> --- a/DEVELOPERS
>> +++ b/DEVELOPERS
>> @@ -2546,6 +2546,10 @@ F:	package/mhz/
>>   N:	Robert Rose <robertroyrose@gmail.com>
>>   F:	package/grpc/
>>
>> +N:	Roberto Medina <robertoxmed@gmail.com>
>> +F:	configs/roc_pc_rk3399_defconfig
>> +F:	board/firefly/roc-rk3399
> 
> I think when it comes to repositories (i.e., board/firefly/roc-rk3399) it is
> best practice to add a trailing space. I guess this way one can easily
> distinguish directories from single files.

Noted for the trailing slash.

>> +BR2_TARGET_UBOOT_CUSTOM_VERSION=y
>> +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.04"
> 
> I think 2022.04 is actually the current default version of buildroot. So
> unless you have reason to freeze it to this version on purpose (e.g., because
> older and newer versions are known to be not working with this board - which I
> don't believe is the case) you could simply omit these two lines.

Actually in v2 of this patch, Thomas requested to set a fixed version 
for U-Boot (mail from 08/08). Which made sense to me as TFA and Linux 
have a fixed version as well.

Best,
Roberto
Kilian Zinnecker Aug. 11, 2023, 9:59 p.m. UTC | #4
Hello Robert,

[--SNIP--]

> >> +BR2_TARGET_UBOOT_CUSTOM_VERSION=y
> >> +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.04"
> > 
> > I think 2022.04 is actually the current default version of buildroot. So
> > unless you have reason to freeze it to this version on purpose (e.g.,
> > because older and newer versions are known to be not working with this
> > board - which I don't believe is the case) you could simply omit these
> > two lines.
> 
> Actually in v2 of this patch, Thomas requested to set a fixed version
> for U-Boot (mail from 08/08). Which made sense to me as TFA and Linux
> have a fixed version as well.

Ah, I see, makes sense ... then never mind my comment :)

Best regards,
Kilian
Thomas Petazzoni Aug. 12, 2023, 7:58 p.m. UTC | #5
Hello Roberto,

I've applied your patch to our next branch, with some very minor
updates.

First, I simplified the commit title to:

	configs/roc_rk3388_pc: new defconfig

See below for more comments.

On Fri, 11 Aug 2023 18:25:38 +0200
Roberto Medina <robertoxmed@gmail.com> wrote:

> * Uses a version 2.9 of TF-A which solves the building issue for this
>   board.
> * Increase the size of the ext2 partition to be able to create the final
>   image.
> * Bump and set the U-Boot version that was used for this configuration.
> * Bump and set the version of Linux to 6.1.45.
> * Some minor fixes in the post-build.sh script using `shellcheck`.

These details are the details of the changes between the v2 and v3 of
your patch, so they do not belong to the commit log, but they should
go...

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

.... here.

>  DEVELOPERS                                |  4 +++
>  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           | 42 +++++++++++++++++++++++
>  6 files changed, 117 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
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 6ffa3ee693..5ebabd01cb 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -2546,6 +2546,10 @@ F:	package/mhz/
>  N:	Robert Rose <robertroyrose@gmail.com>
>  F:	package/grpc/
>  
> +N:	Roberto Medina <robertoxmed@gmail.com>
> +F:	configs/roc_pc_rk3399_defconfig
> +F:	board/firefly/roc-rk3399

Alphabetic ordering was not correct here. And I added the final slash
for the directory, as suggested by Kilian.

Best regards,

Thomas
Thomas Petazzoni Aug. 12, 2023, 8 p.m. UTC | #6
On Fri, 11 Aug 2023 23:59:11 +0200
Kilian Zinnecker via buildroot <buildroot@buildroot.org> wrote:

> > Actually in v2 of this patch, Thomas requested to set a fixed version
> > for U-Boot (mail from 08/08). Which made sense to me as TFA and Linux
> > have a fixed version as well.  
> 
> Ah, I see, makes sense ... then never mind my comment :)

Correct, our convention in defconfigs is that the version of the Linux
kernel and bootloader/firmware should be fixed. Indeed, we want the
defconfigs to be known working configurations, that have been tested on
hardware. If we let them the default/latest Linux/U-Boot version, it
means this version gets auto-updated, without the defconfig maintainer
necessarily checking that it is still works OK on HW.

So: policy is to use fixed version for Linux kernel and bootloaders in
defconfigs.

Best regards,

Thomas
Roberto Medina Aug. 12, 2023, 8:22 p.m. UTC | #7
Hi Thomas,

On 8/12/23 21:58, Thomas Petazzoni wrote:
> I've applied your patch to our next branch, with some very minor updates.

Woops, I was just working on a v4 when you applied I believe. Thank you 
for the changes.

Best,
Roberto
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 6ffa3ee693..5ebabd01cb 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2546,6 +2546,10 @@  F:	package/mhz/
 N:	Robert Rose <robertroyrose@gmail.com>
 F:	package/grpc/
 
+N:	Roberto Medina <robertoxmed@gmail.com>
+F:	configs/roc_pc_rk3399_defconfig
+F:	board/firefly/roc-rk3399
+
 N:	Rodrigo Rebello <rprebello@gmail.com>
 F:	package/chocolate-doom/
 F:	package/irssi/
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..3cc64be176
--- /dev/null
+++ b/configs/roc_pc_rk3399_defconfig
@@ -0,0 +1,42 @@ 
+BR2_aarch64=y
+BR2_cortex_a72_a53=y
+BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=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_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.45"
+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="100M"
+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"
+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_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.04"
+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