* [meta-rockchip][PATCH v2] Rock64: add machine @ 2021-05-31 14:00 Yann Dirson 2021-06-14 16:19 ` Trevor Woerner 0 siblings, 1 reply; 5+ messages in thread From: Yann Dirson @ 2021-05-31 14:00 UTC (permalink / raw) To: yocto; +Cc: twoerner, Yann Dirson From: Yann Dirson <yann@blade-group.com> 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="mmcblk0". Signed-off-by: Yann Dirson <yann@blade-group.com> --- 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-add-mmc0-mmc1-aliases.patch diff --git a/conf/machine/include/rk3328.inc b/conf/machine/include/rk3328.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 = "rk3328" + +DEFAULTTUNE ?= "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 ?= "defconfig" +KERNEL_CLASSES = "kernel-fitimage" +KERNEL_IMAGETYPE = "fitImage" + +TFA_PLATFORM = "rk3328" +TFA_BUILD_TARGET = "bl31" + +UBOOT_SUFFIX ?= "itb" +UBOOT_ENTRYPOINT ?= "0x06000000" + +SERIAL_CONSOLES = "1500000;ttyS2" + +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot" +SPL_BINARY ?= "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 += "usbhost serial" + +UBOOT_MACHINE = "rock64-rk3328_defconfig" +KERNEL_DEVICETREE = "rockchip/rk3328-rock64.dtb" + +# set to mmcblk0 for booting from optional eMMC +RK_BOOT_DEVICE ?= "mmcblk1" + +WKS_FILE ?= "rock-pi-4.wks" +IMAGE_FSTYPES += "wic wic.bmap" + +WKS_FILE_DEPENDS ?= " \ + mtools-native \ + dosfstools-native \ + virtual/bootloader \ + virtual/kernel \ + " +IMAGE_BOOT_FILES ?= "\ + ${KERNEL_IMAGETYPE} \ + " + +KBUILD_DEFCONFIG = "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-add-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-aliases.patch @@ -0,0 +1,27 @@ +From f10cfe01f753348d346374008b8e8f5f26ed94ab Mon Sep 17 00:00:00 2001 +From: Kamil Trzcinski <ayufan@ayufan.eu> +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-mainline-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 = &i2c1; + i2c2 = &i2c2; + i2c3 = &i2c3; ++ mmc0 = &emmc; ++ mmc1 = &sdmmc; + ethernet0 = &gmac2io; + ethernet1 = &gmac2phy; + }; +-- +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 = "tinker-board-s" COMPATIBLE_MACHINE_rock-pi-4 = "rock-pi-4" COMPATIBLE_MACHINE_nanopi-m4 = "nanopi-m4" COMPATIBLE_MACHINE_nanopi-m4-2gb = "nanopi-m4-2gb" +COMPATIBLE_MACHINE_rock64 = "rock64" + +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" + +# indeed applicable to all rk3328 boards +SRC_URI_append_rock64 = " file://0001-ayufan-dtsi-rk3328-add-mmc0-mmc1-aliases.patch" -- 2.30.2 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [meta-rockchip][PATCH v2] Rock64: add machine 2021-05-31 14:00 [meta-rockchip][PATCH v2] Rock64: add machine Yann Dirson @ 2021-06-14 16:19 ` Trevor Woerner 2021-06-15 8:03 ` Yann Dirson 0 siblings, 1 reply; 5+ messages in thread From: Trevor Woerner @ 2021-06-14 16:19 UTC (permalink / raw) To: yann.dirson; +Cc: yocto, Yann Dirson Hi Yann, Thanks for the contribution! On Mon 2021-05-31 @ 04:00:58 PM, yann.dirson@blade-group.com wrote: > From: Yann Dirson <yann@blade-group.com> > > 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="mmcblk0". > > Signed-off-by: Yann Dirson <yann@blade-group.com> > --- > > 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. Sounds good. I prefer the rockchip default of 1,500,000 anyway. > > 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-add-mmc0-mmc1-aliases.patch > > diff --git a/conf/machine/include/rk3328.inc b/conf/machine/include/rk3328.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 Odd that you'd be assigning the copyright to Garmin ;-) > +# Released under the MIT license (see COPYING.MIT for the terms) > + > +SOC_FAMILY = "rk3328" > + > +DEFAULTTUNE ?= "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 ?= "defconfig" > +KERNEL_CLASSES = "kernel-fitimage" > +KERNEL_IMAGETYPE = "fitImage" > + > +TFA_PLATFORM = "rk3328" > +TFA_BUILD_TARGET = "bl31" > + > +UBOOT_SUFFIX ?= "itb" > +UBOOT_ENTRYPOINT ?= "0x06000000" > + > +SERIAL_CONSOLES = "1500000;ttyS2" > + > +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot" > +SPL_BINARY ?= "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 Can you also specify an OSS-friendly licence too? > + > +#@TYPE: Machine > +#@NAME: Rock64 > +#@DESCRIPTION: Rock64 RK3328 board from Pine64 > + > +require include/rk3328.inc > + > +MACHINE_FEATURES += "usbhost serial" > + > +UBOOT_MACHINE = "rock64-rk3328_defconfig" > +KERNEL_DEVICETREE = "rockchip/rk3328-rock64.dtb" > + > +# set to mmcblk0 for booting from optional eMMC > +RK_BOOT_DEVICE ?= "mmcblk1" > + > +WKS_FILE ?= "rock-pi-4.wks" 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" > + > +WKS_FILE_DEPENDS ?= " \ > + mtools-native \ > + dosfstools-native \ > + virtual/bootloader \ > + virtual/kernel \ > + " > +IMAGE_BOOT_FILES ?= "\ > + ${KERNEL_IMAGETYPE} \ > + " > + > +KBUILD_DEFCONFIG = "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-add-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-aliases.patch > @@ -0,0 +1,27 @@ > +From f10cfe01f753348d346374008b8e8f5f26ed94ab Mon Sep 17 00:00:00 2001 > +From: Kamil Trzcinski <ayufan@ayufan.eu> > +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-mainline-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 = &i2c1; > + i2c2 = &i2c2; > + i2c3 = &i2c3; > ++ mmc0 = &emmc; > ++ mmc1 = &sdmmc; > + ethernet0 = &gmac2io; > + ethernet1 = &gmac2phy; > + }; > +-- > +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 = "tinker-board-s" > COMPATIBLE_MACHINE_rock-pi-4 = "rock-pi-4" > COMPATIBLE_MACHINE_nanopi-m4 = "nanopi-m4" > COMPATIBLE_MACHINE_nanopi-m4-2gb = "nanopi-m4-2gb" > +COMPATIBLE_MACHINE_rock64 = "rock64" > + > +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" > + > +# indeed applicable to all rk3328 boards 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" > -- > 2.30.2 > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [meta-rockchip][PATCH v2] Rock64: add machine 2021-06-14 16:19 ` Trevor Woerner @ 2021-06-15 8:03 ` Yann Dirson 2021-06-15 8:15 ` Trevor Woerner 0 siblings, 1 reply; 5+ messages in thread From: Yann Dirson @ 2021-06-15 8:03 UTC (permalink / raw) To: Trevor Woerner; +Cc: Yocto discussion list, Yann Dirson Le lun. 14 juin 2021 à 18:19, Trevor Woerner <twoerner@gmail.com> a écrit : > > Hi Yann, > > Thanks for the contribution! > > On Mon 2021-05-31 @ 04:00:58 PM, yann.dirson@blade-group.com wrote: > > From: Yann Dirson <yann@blade-group.com> > > > > 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="mmcblk0". > > > > Signed-off-by: Yann Dirson <yann@blade-group.com> > > --- > > > > 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. > > Sounds good. I prefer the rockchip default of 1,500,000 anyway. > > > > > 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-add-mmc0-mmc1-aliases.patch > > > > diff --git a/conf/machine/include/rk3328.inc b/conf/machine/include/rk3328.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 > > Odd that you'd be assigning the copyright to Garmin ;-) Oh, right, copypaste rules around here, so Garmin does have a role but something may be missing :) > > > +# Released under the MIT license (see COPYING.MIT for the terms) > > + > > +SOC_FAMILY = "rk3328" > > + > > +DEFAULTTUNE ?= "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 ?= "defconfig" > > +KERNEL_CLASSES = "kernel-fitimage" > > +KERNEL_IMAGETYPE = "fitImage" > > + > > +TFA_PLATFORM = "rk3328" > > +TFA_BUILD_TARGET = "bl31" > > + > > +UBOOT_SUFFIX ?= "itb" > > +UBOOT_ENTRYPOINT ?= "0x06000000" > > + > > +SERIAL_CONSOLES = "1500000;ttyS2" > > + > > +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot" > > +SPL_BINARY ?= "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 > > Can you also specify an OSS-friendly licence too? > > > + > > +#@TYPE: Machine > > +#@NAME: Rock64 > > +#@DESCRIPTION: Rock64 RK3328 board from Pine64 > > + > > +require include/rk3328.inc > > + > > +MACHINE_FEATURES += "usbhost serial" > > + > > +UBOOT_MACHINE = "rock64-rk3328_defconfig" > > +KERNEL_DEVICETREE = "rockchip/rk3328-rock64.dtb" > > + > > +# set to mmcblk0 for booting from optional eMMC > > +RK_BOOT_DEVICE ?= "mmcblk1" > > + > > +WKS_FILE ?= "rock-pi-4.wks" > > 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. Right that was something I wondered how to deal with and forgot (and note that 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" > > + > > +WKS_FILE_DEPENDS ?= " \ > > + mtools-native \ > > + dosfstools-native \ > > + virtual/bootloader \ > > + virtual/kernel \ > > + " > > +IMAGE_BOOT_FILES ?= "\ > > + ${KERNEL_IMAGETYPE} \ > > + " > > + > > +KBUILD_DEFCONFIG = "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-add-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-aliases.patch > > @@ -0,0 +1,27 @@ > > +From f10cfe01f753348d346374008b8e8f5f26ed94ab Mon Sep 17 00:00:00 2001 > > +From: Kamil Trzcinski <ayufan@ayufan.eu> > > +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-mainline-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 = &i2c1; > > + i2c2 = &i2c2; > > + i2c3 = &i2c3; > > ++ mmc0 = &emmc; > > ++ mmc1 = &sdmmc; > > + ethernet0 = &gmac2io; > > + ethernet1 = &gmac2phy; > > + }; > > +-- > > +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 = "tinker-board-s" > > COMPATIBLE_MACHINE_rock-pi-4 = "rock-pi-4" > > COMPATIBLE_MACHINE_nanopi-m4 = "nanopi-m4" > > COMPATIBLE_MACHINE_nanopi-m4-2gb = "nanopi-m4-2gb" > > +COMPATIBLE_MACHINE_rock64 = "rock64" > > + > > +FILESEXTRAPATHS_prepend := "${THISDIR}/files:" > > + > > +# indeed applicable to all rk3328 boards > > 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" > > -- > > 2.30.2 > > -- Yann Dirson <yann@blade-group.com> Blade / Shadow -- http://shadow.tech ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [meta-rockchip][PATCH v2] Rock64: add machine 2021-06-15 8:03 ` Yann Dirson @ 2021-06-15 8:15 ` Trevor Woerner 2021-06-15 13:00 ` Yann Dirson 0 siblings, 1 reply; 5+ messages in thread From: Trevor Woerner @ 2021-06-15 8:15 UTC (permalink / raw) To: Yann Dirson; +Cc: Yocto discussion list, Yann Dirson On Tue 2021-06-15 @ 10:03:31 AM, Yann Dirson wrote: > Le lun. 14 juin 2021 à 18:19, Trevor Woerner <twoerner@gmail.com> a écrit : > > > > Hi Yann, > > > > Thanks for the contribution! > > > > On Mon 2021-05-31 @ 04:00:58 PM, yann.dirson@blade-group.com wrote: > > > From: Yann Dirson <yann@blade-group.com> > > > > > > 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="mmcblk0". > > > > > > Signed-off-by: Yann Dirson <yann@blade-group.com> > > > --- > > > > > > 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. > > > > Sounds good. I prefer the rockchip default of 1,500,000 anyway. > > > > > > > > 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-add-mmc0-mmc1-aliases.patch > > > > > > diff --git a/conf/machine/include/rk3328.inc b/conf/machine/include/rk3328.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 > > > > Odd that you'd be assigning the copyright to Garmin ;-) > > Oh, right, copypaste rules around here, so Garmin does have a role but > something may be missing :) > > > > > > +# Released under the MIT license (see COPYING.MIT for the terms) > > > + > > > +SOC_FAMILY = "rk3328" > > > + > > > +DEFAULTTUNE ?= "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 ?= "defconfig" > > > +KERNEL_CLASSES = "kernel-fitimage" > > > +KERNEL_IMAGETYPE = "fitImage" > > > + > > > +TFA_PLATFORM = "rk3328" > > > +TFA_BUILD_TARGET = "bl31" > > > + > > > +UBOOT_SUFFIX ?= "itb" > > > +UBOOT_ENTRYPOINT ?= "0x06000000" > > > + > > > +SERIAL_CONSOLES = "1500000;ttyS2" > > > + > > > +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot" > > > +SPL_BINARY ?= "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 > > > > Can you also specify an OSS-friendly licence too? > > > > > + > > > +#@TYPE: Machine > > > +#@NAME: Rock64 > > > +#@DESCRIPTION: Rock64 RK3328 board from Pine64 > > > + > > > +require include/rk3328.inc > > > + > > > +MACHINE_FEATURES += "usbhost serial" > > > + > > > +UBOOT_MACHINE = "rock64-rk3328_defconfig" > > > +KERNEL_DEVICETREE = "rockchip/rk3328-rock64.dtb" > > > + > > > +# set to mmcblk0 for booting from optional eMMC > > > +RK_BOOT_DEVICE ?= "mmcblk1" > > > + > > > +WKS_FILE ?= "rock-pi-4.wks" > > > > 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. > > Right that was something I wondered how to deal with and forgot (and note that > 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 True. We could definitely use some cleanup in this area. If you want to propose something that's going to work, I'll add it. Also, when adding a new board, please update the top-level README. Thanks! ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [meta-rockchip][PATCH v2] Rock64: add machine 2021-06-15 8:15 ` Trevor Woerner @ 2021-06-15 13:00 ` Yann Dirson 0 siblings, 0 replies; 5+ messages in thread From: Yann Dirson @ 2021-06-15 13:00 UTC (permalink / raw) To: Trevor Woerner; +Cc: Yocto discussion list, Yann Dirson Le mar. 15 juin 2021 à 10:16, Trevor Woerner <twoerner@gmail.com> a écrit : > > On Tue 2021-06-15 @ 10:03:31 AM, Yann Dirson wrote: > > Le lun. 14 juin 2021 à 18:19, Trevor Woerner <twoerner@gmail.com> a écrit : > > > > > > Hi Yann, > > > > > > Thanks for the contribution! > > > > > > On Mon 2021-05-31 @ 04:00:58 PM, yann.dirson@blade-group.com wrote: > > > > From: Yann Dirson <yann@blade-group.com> > > > > > > > > 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="mmcblk0". > > > > > > > > Signed-off-by: Yann Dirson <yann@blade-group.com> > > > > --- > > > > > > > > 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. > > > > > > Sounds good. I prefer the rockchip default of 1,500,000 anyway. > > > > > > > > > > > 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-add-mmc0-mmc1-aliases.patch > > > > > > > > diff --git a/conf/machine/include/rk3328.inc b/conf/machine/include/rk3328.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 > > > > > > Odd that you'd be assigning the copyright to Garmin ;-) > > > > Oh, right, copypaste rules around here, so Garmin does have a role but > > something may be missing :) > > > > > > > > > +# Released under the MIT license (see COPYING.MIT for the terms) > > > > + > > > > +SOC_FAMILY = "rk3328" > > > > + > > > > +DEFAULTTUNE ?= "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 ?= "defconfig" > > > > +KERNEL_CLASSES = "kernel-fitimage" > > > > +KERNEL_IMAGETYPE = "fitImage" > > > > + > > > > +TFA_PLATFORM = "rk3328" > > > > +TFA_BUILD_TARGET = "bl31" > > > > + > > > > +UBOOT_SUFFIX ?= "itb" > > > > +UBOOT_ENTRYPOINT ?= "0x06000000" > > > > + > > > > +SERIAL_CONSOLES = "1500000;ttyS2" > > > > + > > > > +PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot" > > > > +SPL_BINARY ?= "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 > > > > > > Can you also specify an OSS-friendly licence too? > > > > > > > + > > > > +#@TYPE: Machine > > > > +#@NAME: Rock64 > > > > +#@DESCRIPTION: Rock64 RK3328 board from Pine64 > > > > + > > > > +require include/rk3328.inc > > > > + > > > > +MACHINE_FEATURES += "usbhost serial" > > > > + > > > > +UBOOT_MACHINE = "rock64-rk3328_defconfig" > > > > +KERNEL_DEVICETREE = "rockchip/rk3328-rock64.dtb" > > > > + > > > > +# set to mmcblk0 for booting from optional eMMC > > > > +RK_BOOT_DEVICE ?= "mmcblk1" > > > > + > > > > +WKS_FILE ?= "rock-pi-4.wks" > > > > > > 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. In fact we already have rock-pi-e.wks doing this. > > > > Right that was something I wondered how to deal with and forgot (and note that > > 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 > > True. We could definitely use some cleanup in this area. If you want to > propose something that's going to work, I'll add it. > > Also, when adding a new board, please update the top-level README. Let's do the minimum for now for this to get merged, and we'll improve 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-group.com> Blade / Shadow -- http://shadow.tech ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-06-15 13:01 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-05-31 14:00 [meta-rockchip][PATCH v2] Rock64: add machine Yann Dirson 2021-06-14 16:19 ` Trevor Woerner 2021-06-15 8:03 ` Yann Dirson 2021-06-15 8:15 ` Trevor Woerner 2021-06-15 13:00 ` Yann Dirson
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.