Date
1 - 5 of 5
[meta-rockchip][PATCH v2] Rock64: add machine
Yann Dirson
From: Yann Dirson <yann@...>
This is a RK3328 board from Pine64. Board details at https://wiki.pine64.org/wiki/ROCK64. Default image is built to boot from SD-card. Building an image for eMMC requires to set RK_BOOT_DEVICE=3D"mmcblk0". Signed-off-by: Yann Dirson <yann@...> --- This is just basic initial support without a kernel BSP. As is the board boots with a serial console. Note I had to create the SoC definition for rk3328, and rather than setting serial at 115200 there just to have the board definition override it with rockchip-standard 1500000 I've set the latter right in rk3328.inc. Changes in v2: - include Ayufan's patch for mmc aliases so presence of eMMC won't prevent booting from SD conf/machine/include/rk3328.inc | 25 ++++++++++++++++ conf/machine/rock64.conf | 30 +++++++++++++++++++ ...an-dtsi-rk3328-add-mmc0-mmc1-aliases.patch | 27 +++++++++++++++++ recipes-kernel/linux/linux-yocto%.bbappend | 6 ++++ 4 files changed, 88 insertions(+) create mode 100644 conf/machine/include/rk3328.inc create mode 100644 conf/machine/rock64.conf create mode 100644 recipes-kernel/linux/files/0001-ayufan-dtsi-rk3328-ad= d-mmc0-mmc1-aliases.patch diff --git a/conf/machine/include/rk3328.inc b/conf/machine/include/rk332= 8.inc new file mode 100644 index 0000000..7d67627 --- /dev/null +++ b/conf/machine/include/rk3328.inc @@ -0,0 +1,25 @@ +# Copyright (C) 2020 Garmin Ltd. or its subsidaries +# Released under the MIT license (see COPYING.MIT for the terms) + +SOC_FAMILY =3D "rk3328" + +DEFAULTTUNE ?=3D "cortexa53-crypto" + +require conf/machine/include/soc-family.inc +require conf/machine/include/tune-cortexa53.inc +require conf/machine/include/rockchip-defaults.inc + +KBUILD_DEFCONFIG ?=3D "defconfig" +KERNEL_CLASSES =3D "kernel-fitimage" +KERNEL_IMAGETYPE =3D "fitImage" + +TFA_PLATFORM =3D "rk3328" +TFA_BUILD_TARGET =3D "bl31" + +UBOOT_SUFFIX ?=3D "itb" +UBOOT_ENTRYPOINT ?=3D "0x06000000" + +SERIAL_CONSOLES =3D "1500000;ttyS2" + +PREFERRED_PROVIDER_virtual/bootloader ?=3D "u-boot" +SPL_BINARY ?=3D "idbloader.img" diff --git a/conf/machine/rock64.conf b/conf/machine/rock64.conf new file mode 100644 index 0000000..38bc9fa --- /dev/null +++ b/conf/machine/rock64.conf @@ -0,0 +1,30 @@ +# Copyright (C) 2021 Blade SAS + +#@TYPE: Machine +#@NAME: Rock64 +#@DESCRIPTION: Rock64 RK3328 board from Pine64 + +require include/rk3328.inc + +MACHINE_FEATURES +=3D "usbhost serial" + +UBOOT_MACHINE =3D "rock64-rk3328_defconfig" +KERNEL_DEVICETREE =3D "rockchip/rk3328-rock64.dtb" + +# set to mmcblk0 for booting from optional eMMC +RK_BOOT_DEVICE ?=3D "mmcblk1" + +WKS_FILE ?=3D "rock-pi-4.wks" +IMAGE_FSTYPES +=3D "wic wic.bmap" + +WKS_FILE_DEPENDS ?=3D " \ + mtools-native \ + dosfstools-native \ + virtual/bootloader \ + virtual/kernel \ + " +IMAGE_BOOT_FILES ?=3D "\ + ${KERNEL_IMAGETYPE} \ + " + +KBUILD_DEFCONFIG =3D "defconfig" diff --git a/recipes-kernel/linux/files/0001-ayufan-dtsi-rk3328-add-mmc0-= mmc1-aliases.patch b/recipes-kernel/linux/files/0001-ayufan-dtsi-rk3328-a= dd-mmc0-mmc1-aliases.patch new file mode 100644 index 0000000..1ad3b9e --- /dev/null +++ b/recipes-kernel/linux/files/0001-ayufan-dtsi-rk3328-add-mmc0-mmc1-al= iases.patch @@ -0,0 +1,27 @@ +From f10cfe01f753348d346374008b8e8f5f26ed94ab Mon Sep 17 00:00:00 2001 +From: Kamil Trzcinski <ayufan@...> +Date: Mon, 28 Aug 2017 11:24:37 +0200 +Subject: [PATCH] ayufan: dtsi: rk3328: add mmc0/mmc1 aliases +Upstream-Status: Pending [https://github.com/ayufan-rock64/linux-mainlin= e-kernel/commit/f10cfe01f753348d346374008b8e8f5f26ed94ab] + +Change-Id: I82a5394df8a505f7d1496393621c1198895c88b0 +--- + arch/arm64/boot/dts/rockchip/rk3328.dtsi | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/arch/arm64/boot/= dts/rockchip/rk3328.dtsi +index 0afed15bc7ff..800f1c796882 100644 +--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi +@@ -27,6 +27,8 @@ + i2c1 =3D &i2c1; + i2c2 =3D &i2c2; + i2c3 =3D &i2c3; ++ mmc0 =3D &emmc; ++ mmc1 =3D &sdmmc; + ethernet0 =3D &gmac2io; + ethernet1 =3D &gmac2phy; + }; +--=20 +2.30.2 + diff --git a/recipes-kernel/linux/linux-yocto%.bbappend b/recipes-kernel/= linux/linux-yocto%.bbappend index 7702e3f..3789c72 100644 --- a/recipes-kernel/linux/linux-yocto%.bbappend +++ b/recipes-kernel/linux/linux-yocto%.bbappend @@ -8,3 +8,9 @@ COMPATIBLE_MACHINE_tinker-board-s =3D "tinker-board-s" COMPATIBLE_MACHINE_rock-pi-4 =3D "rock-pi-4" COMPATIBLE_MACHINE_nanopi-m4 =3D "nanopi-m4" COMPATIBLE_MACHINE_nanopi-m4-2gb =3D "nanopi-m4-2gb" +COMPATIBLE_MACHINE_rock64 =3D "rock64" + +FILESEXTRAPATHS_prepend :=3D "${THISDIR}/files:" + +# indeed applicable to all rk3328 boards +SRC_URI_append_rock64 =3D " file://0001-ayufan-dtsi-rk3328-add-mmc0-mmc1= -aliases.patch" --=20 2.30.2 |
|
Trevor Woerner
Hi Yann,
Thanks for the contribution! On Mon 2021-05-31 @ 04:00:58 PM, yann.dirson@... wrote: From: Yann Dirson <yann@...>Sounds good. I prefer the rockchip default of 1,500,000 anyway. Odd that you'd be assigning the copyright to Garmin ;-) +# Released under the MIT license (see COPYING.MIT for the terms)Can you also specify an OSS-friendly licence too? +Personally I'd prefer to see a rock64 wic file which includes an rk3328 default, even if it is a copy of the rock-pi-4 layout. +IMAGE_FSTYPES += "wic wic.bmap"I have a roc-rk3328-cc ("renegade") board I should investigate adding. Then I can see if this applies there as well. +SRC_URI_append_rock64 = " file://0001-ayufan-dtsi-rk3328-add-mmc0-mmc1-aliases.patch" |
|
Yann Dirson
Le lun. 14 juin 2021 à 18:19, Trevor Woerner <twoerner@...> a écrit :
Oh, right, copypaste rules around here, so Garmin does have a role but something may be missing :) Right that was something I wondered how to deal with and forgot (and note that+# Released under the MIT license (see COPYING.MIT for the terms)Can you also specify an OSS-friendly licence too? for the nanopi-m4 I used the same file). My reading of [1] is that all rockchip APs are using the same partition table. I see that the existing {rk3288,rk3399}-boot.wks only differ in the choice of u-boot image, and I'm wondering if using the SoC to distinguish between them is the right choice, as eg. upstream RK is not using the .itb format, and I suspect we could use it as well for rk3288 (I'm sure I have one in a drawer and could check that some day). Now maybe the sate of things is different for 32bit SoCs, and I thought it could make sense to distinguish rockchip-32bit-boot.wks and rockchip-64bit-boot.wks, or maybe even name them using the format, as something like rockchip-legacy-boot.wks (well there is probably a more descriptive name for that format) and rockchip-itb-boot.wks ? Similarly, the .wks for 3288-based boards and for 3399-based ones only differ by the console baudrate, and the 3288-based .wks are all identical except for some whitespace. And in fact, it is not unthinkable for a given project to use something else than a single-partition layout, so those files are indeed closer to a "default wks". Maybe we could use more generic filenames there too (until we implement a way to avoid hardcoding the baudrate here) [1] http://opensource.rock-chips.com/wiki_Boot_option +IMAGE_FSTYPES += "wic wic.bmap"I have a roc-rk3328-cc ("renegade") board I should investigate adding. Then I -- Yann Dirson <yann@...> Blade / Shadow -- http://shadow.tech |
|
Trevor Woerner
On Tue 2021-06-15 @ 10:03:31 AM, Yann Dirson wrote:
Le lun. 14 juin 2021 à 18:19, Trevor Woerner <twoerner@...> a écrit :True. We could definitely use some cleanup in this area. If you want toOh, right, copypaste rules around here, so Garmin does have a role but propose something that's going to work, I'll add it. Also, when adding a new board, please update the top-level README. Thanks! |
|
Yann Dirson
Le mar. 15 juin 2021 à 10:16, Trevor Woerner <twoerner@...> a écrit :
In fact we already have rock-pi-e.wks doing this. Let's do the minimum for now for this to get merged, and we'll improveTrue. We could definitely use some cleanup in this area. If you want to incrementally. Eg. only now I realize, through the presence of rk3328-boot.wks, that rock-pi-e is indeed also based on that soc, and its machine def would benefit from including the same rk3328.inc. -- Yann Dirson <yann@...> Blade / Shadow -- http://shadow.tech |
|