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