<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jul 6, 2020 at 7:28 AM Tian Yuanhao <<a href="mailto:tianyuanhao@aliyun.com">tianyuanhao@aliyun.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Suniel,<br>
<br>
On 2020/7/5 上午4:16, Suniel Mahesh wrote:<br>
> Add initial support for RK3399 based rockpi-4 targets (model A, B, C)<br>
> with below features:<br>
><br>
> - Custom U-Boot 2020.07-rc4<br>
> <a href="https://github.com/amarula/u-boot-amarula.git" rel="noreferrer" target="_blank">https://github.com/amarula/u-boot-amarula.git</a><br>
> branch rock-pi<br>
> - Linux 5.4.46<br>
> - GPT partition layout is being used<br>
> - Default packages from buildroot<br>
><br>
> Signed-off-by: Suniel Mahesh <<a href="mailto:sunil@amarulasolutions.com" target="_blank">sunil@amarulasolutions.com</a>><br>
> ---<br>
> Changes for v3:<br>
> - no changes<br>
><br>
> Changes for v2:<br>
> - renamed and updated defconfig from rockpi_4c to rock_pi_4 and board <br>
folder<br>
> from rockpi-4c to rockpi-4, so that this will be valid to board <br>
Models A, B, C.<br>
> - Changed commit description.<br>
> - updated gitlab-ci.yml.<br>
> - updated DEVELOPERS.<br>
> - updated readme.<br>
> - updated extlinux.conf.<br>
> ---<br>
> .gitlab-ci.yml | 1 +<br>
> DEVELOPERS | 2 ++<br>
> board/radxa/rockpi-4/extlinux.conf | 4 +++<br>
> board/radxa/rockpi-4/genimage.cfg | 39 ++++++++++++++++++++++++<br>
> board/radxa/rockpi-4/post-build.sh | 5 ++++<br>
> board/radxa/rockpi-4/readme.txt | 61 <br>
++++++++++++++++++++++++++++++++++++++<br>
> configs/rock_pi_4_defconfig | 57 <br>
+++++++++++++++++++++++++++++++++++<br>
> 7 files changed, 169 insertions(+)<br>
> create mode 100644 board/radxa/rockpi-4/extlinux.conf<br>
> create mode 100644 board/radxa/rockpi-4/genimage.cfg<br>
> create mode 100755 board/radxa/rockpi-4/post-build.sh<br>
> create mode 100644 board/radxa/rockpi-4/readme.txt<br>
> create mode 100644 configs/rock_pi_4_defconfig<br>
><br>
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml<br>
> index e271770..ac4288b 100644<br>
> --- a/.gitlab-ci.yml<br>
> +++ b/.gitlab-ci.yml<br>
> @@ -323,6 +323,7 @@ riotboard_defconfig: { extends: .defconfig }<br>
> roc_pc_rk3399_defconfig: { extends: .defconfig }<br>
> rock64_defconfig: { extends: .defconfig }<br>
> rockpro64_defconfig: { extends: .defconfig }<br>
> +rock_pi_4_defconfig: { extends: .defconfig }<br>
> rock_pi_n10_defconfig: { extends: .defconfig }<br>
> roseapplepi_defconfig: { extends: .defconfig }<br>
> s6lx9_microboard_defconfig: { extends: .defconfig }<br>
> diff --git a/DEVELOPERS b/DEVELOPERS<br>
> index 05e435d..50fffda 100644<br>
> --- a/DEVELOPERS<br>
> +++ b/DEVELOPERS<br>
> @@ -2403,12 +2403,14 @@ F: board/firefly/<br>
> F: board/friendlyarm/nanopc-t4<br>
> F: board/friendlyarm/nanopi-m4<br>
> F: board/orangepi/orangepi-rk3399<br>
> +F: board/radxa/rockpi-4<br>
> F: board/radxa/rockpi-n10<br>
> F: board/pine64/rockpro64<br>
> F: configs/nanopc_t4_defconfig<br>
> F: configs/nanopi_m4_defconfig<br>
> F: configs/orangepi_rk3399_defconfig<br>
> F: configs/roc_pc_rk3399_defconfig<br>
> +F: configs/rock_pi_4_defconfig<br>
> F: configs/rock_pi_n10_defconfig<br>
> F: configs/rockpro64_defconfig<br>
> F: package/arm-gnu-a-toolchain/<br>
> diff --git a/board/radxa/rockpi-4/extlinux.conf <br>
b/board/radxa/rockpi-4/extlinux.conf<br>
> new file mode 100644<br>
> index 0000000..83374f1<br>
> --- /dev/null<br>
> +++ b/board/radxa/rockpi-4/extlinux.conf<br>
> @@ -0,0 +1,4 @@<br>
> +label RK3399_ROCK_PI_4 linux<br>
> + kernel /Image<br>
> + devicetree /rk3399-rock-pi-4.dtb<br>
> + append earlycon=uart8250,mmio32,0xff1a0000 root=/dev/mmcblk1p4 rw <br>
rootwait<br>
> diff --git a/board/radxa/rockpi-4/genimage.cfg <br>
b/board/radxa/rockpi-4/genimage.cfg<br>
> new file mode 100644<br>
> index 0000000..88986df<br>
> --- /dev/null<br>
> +++ b/board/radxa/rockpi-4/genimage.cfg<br>
> @@ -0,0 +1,39 @@<br>
> +image boot.vfat {<br>
> + vfat {<br>
> + files = {<br>
> + "Image",<br>
> + "rk3399-rock-pi-4.dtb",<br>
> + "extlinux"<br>
> + }<br>
> + }<br>
> + size = 112M<br>
> +}<br>
> +<br>
> +image sdcard.img {<br>
> +<br>
> + hdimage {<br>
> + gpt = true<br>
> + }<br>
> +<br>
> + partition loader1 {<br>
> + image = "idbloader.img"<br>
> + offset = 32K<br>
> + }<br>
> +<br>
> + partition loader2 {<br>
> + image = "u-boot.itb"<br>
> + offset = 8M<br>
> + }<br>
<br>
I think using u-boot-rockchip.bin is simpler.<br>
partition u-boot {<br>
offset = "32K"<br>
image = "u-boot-rockchip.bin"<br>
in-partition-table = false<br>
}<br></blockquote><div> </div><div>Hi Tian,</div><div>Rockchip uses unified GPT as its main partition table. We are just following that.<br></div><div>doc/README.rockchip (GPT partition layout)</div><div><a href="http://rockchip.wikidot.com/partitions">http://rockchip.wikidot.com/partitions</a></div><div></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> +<br>
> + partition boot {<br>
> + partition-type = 0xC<br>
> + bootable = "true"<br>
> + image = "boot.vfat"<br>
> + offset = 16M<br>
> + }<br>
> +<br>
> + partition rootfs {<br>
> + partition-type = 0x83<br>
> + image = "rootfs.ext4"<br>
> + }<br>
> +}<br>
> diff --git a/board/radxa/rockpi-4/post-build.sh <br>
b/board/radxa/rockpi-4/post-build.sh<br>
> new file mode 100755<br>
> index 0000000..ba29375<br>
> --- /dev/null<br>
> +++ b/board/radxa/rockpi-4/post-build.sh<br>
> @@ -0,0 +1,5 @@<br>
> +#!/bin/sh<br>
> +<br>
> +BOARD_DIR="$(dirname $0)"<br>
> +<br>
> +install -m 0644 -D $BOARD_DIR/extlinux.conf <br>
$BINARIES_DIR/extlinux/extlinux.conf<br>
> diff --git a/board/radxa/rockpi-4/readme.txt <br>
b/board/radxa/rockpi-4/readme.txt<br>
> new file mode 100644<br>
> index 0000000..1db7569<br>
> --- /dev/null<br>
> +++ b/board/radxa/rockpi-4/readme.txt<br>
> @@ -0,0 +1,61 @@<br>
> +RADXA ROCK_PI_4<br>
> +================<br>
> +<a href="https://rockpi.org/rockpi4" rel="noreferrer" target="_blank">https://rockpi.org/rockpi4</a><br>
> +<br>
> +ROCK Pi 4 is a Single Board Computer (SBC) from radxa. This guide is <br>
valid<br>
> +for the below models:<br>
> +- ROCK PI 4 Model A<br>
> +- ROCK PI 4 Model B<br>
> +- ROCK PI 4 Model C<br>
> +<br>
> +Build:<br>
> +======<br>
> + $ make rock_pi_4_defconfig<br>
> + $ make<br>
> +<br>
> +Files created in output directory<br>
> +=================================<br>
> +<br>
> +output/images<br>
> +<br>
> +├── bl31.elf<br>
> +├── boot.vfat<br>
> +├── extlinux<br>
> +├── idbloader.img<br>
> +├── Image<br>
> +├── rk3399-rock-pi-4.dtb<br>
> +├── rootfs.ext2<br>
> +├── rootfs.ext4 -> rootfs.ext2<br>
> +├── rootfs.tar<br>
> +├── sdcard.img<br>
> +├── u-boot.bin<br>
> +└── u-boot.itb<br>
> +<br>
> +Creating bootable SD card:<br>
> +==========================<br>
> +<br>
> +Simply invoke (as root)<br>
> +<br>
> +sudo dd if=output/images/sdcard.img of=/dev/sdX && sync<br>
> +<br>
> +Where X is your SD card device.<br>
> +<br>
> +Booting:<br>
> +========<br>
> +<br>
> +Serial console:<br>
> +---------------<br>
> +RockPi4 has a 40-pin GPIO header. The pin layout is as follows:<br>
> +<br>
> +pin 6: gnd<br>
> +pin 8: tx<br>
> +pin 10: rx<br>
> +<br>
> +Baudrate for this board is 1500000.<br>
> +<br>
> +Login:<br>
> +------<br>
> +Enter 'root' as login user, and the prompt is ready.<br>
> +<br>
> +Wiki link:<br>
> +<a href="https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/rock-pi-4.html" rel="noreferrer" target="_blank">https://wiki.amarulasolutions.com/bsp/rockchip/rk3399/rock-pi-4.html</a><br>
> diff --git a/configs/rock_pi_4_defconfig b/configs/rock_pi_4_defconfig<br>
> new file mode 100644<br>
> index 0000000..2c1737a<br>
> --- /dev/null<br>
> +++ b/configs/rock_pi_4_defconfig<br>
> @@ -0,0 +1,57 @@<br>
> +# Architecture<br>
> +BR2_aarch64=y<br>
> +BR2_cortex_a72_a53=y<br>
> +<br>
> +# Linux headers same as kernel, a 5.4 series<br>
> +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_4=y<br>
> +<br>
> +# Firmware<br>
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y<br>
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_GIT=y<br>
> <br>
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_URL="<a href="https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git" rel="noreferrer" target="_blank">https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git</a>"<br>
<br>
The default URL should be fine.<br>
<br>
> <br>
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_REPO_VERSION="11a0a46a899fcc3b1fdb214b382f3d7495d88eca"<br>
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="rk3399"<br>
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y<br>
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_ARM32_TOOLCHAIN=y<br>
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES=""<br>
> +<br>
> +# Bootloader<br>
> +BR2_TARGET_UBOOT=y<br>
> +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y<br>
> +BR2_TARGET_UBOOT_CUSTOM_GIT=y<br>
> <br>
+BR2_TARGET_UBOOT_CUSTOM_REPO_URL="<a href="https://github.com/amarula/u-boot-amarula.git" rel="noreferrer" target="_blank">https://github.com/amarula/u-boot-amarula.git</a>"<br>
> <br>
+BR2_TARGET_UBOOT_CUSTOM_REPO_VERSION="cf2747360fdd1eb0d51dd01a984c7c62c7f714fe"<br>
<br>
I recommend using the mainline U-Boot.<br></blockquote><div><br></div><div>Yes Tian agreed, the patches for this target have been mainlined and waiting to be merged. Once that</div><div>is done we will use mainline u-boot.</div><div><br></div><div>Thanks & Regards</div><div>Suniel<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rock-pi-4-rk3399"<br>
> +BR2_TARGET_UBOOT_NEEDS_DTC=y<br>
> +BR2_TARGET_UBOOT_NEEDS_PYTHON=y<br>
> +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y<br>
> +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y<br>
> +BR2_TARGET_UBOOT_NEEDS_ATF_BL31_ELF=y<br>
> +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y<br>
> +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="u-boot.itb"<br>
> +BR2_TARGET_UBOOT_SPL=y<br>
> +BR2_TARGET_UBOOT_SPL_NAME="idbloader.img"<br>
<br>
I think using u-boot-rockchip.bin is simpler.<br>
BR2_TARGET_UBOOT_SPL_NAME="u-boot-rockchip.bin"<br>
<br>
> +<br>
> +# Kernel<br>
> +BR2_LINUX_KERNEL=y<br>
> +BR2_LINUX_KERNEL_CUSTOM_VERSION=y<br>
> +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.4.46"<br>
> +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y<br>
> +BR2_LINUX_KERNEL_DTS_SUPPORT=y<br>
> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3399-rock-pi-4"<br>
> +BR2_LINUX_KERNEL_INSTALL_TARGET=y<br>
> +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y<br>
> +<br>
> +# Filesystem<br>
> +BR2_TARGET_GENERIC_HOSTNAME="rockpi4"<br>
> +BR2_TARGET_GENERIC_ISSUE="Welcome to ROCK_PI_4..!!"<br>
> +BR2_TARGET_ROOTFS_EXT2=y<br>
> +BR2_TARGET_ROOTFS_EXT2_4=y<br>
> +BR2_TARGET_ROOTFS_EXT2_SIZE="96M"<br>
> +BR2_PACKAGE_HOST_DOSFSTOOLS=y<br>
> +BR2_PACKAGE_HOST_GENIMAGE=y<br>
> +BR2_PACKAGE_HOST_MTOOLS=y<br>
> +BR2_PACKAGE_HOST_UBOOT_TOOLS=y<br>
> +BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"<br>
> +BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/radxa/rockpi-4/genimage.cfg"<br>
> +BR2_ROOTFS_POST_BUILD_SCRIPT="board/radxa/rockpi-4/post-build.sh"<br>
><br>
> _______________________________________________<br>
> buildroot mailing list<br>
> <a href="mailto:buildroot@busybox.net" target="_blank">buildroot@busybox.net</a><br>
> <a href="http://lists.busybox.net/mailman/listinfo/buildroot" rel="noreferrer" target="_blank">http://lists.busybox.net/mailman/listinfo/buildroot</a><br>
<br>
Regards,<br>
Yuanhao<br>
</blockquote></div></div>