All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.