2020-03-13 03:39:02

by Peng Fan

[permalink] [raw]
Subject: [PATCH] ARM: dts: Makefile: build arm64 device tree

From: Peng Fan <[email protected]>

To support aarch32 mode linux on aarch64 hardware, we need
build the device tree, so include the arm64 device tree path.

Signed-off-by: Peng Fan <[email protected]>
---

V1:
This is just the device tree part. Besides this,
I am not sure whether need to create a standalone defconfig under arm32
for aarch32 mode linux on aarch64 hardware, or use multi_v7_defconfig.
multi_v7_defconfig should be ok, need to include LPAE config.

arch/arm/boot/dts/Makefile | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index e874fbf5a1f3..ff0161c1df5f 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -1341,3 +1341,5 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
aspeed-bmc-opp-zaius.dtb \
aspeed-bmc-portwell-neptune.dtb \
aspeed-bmc-quanta-q71l.dtb
+
+subdir-y += ../../../../arch/arm64/boot/dts
--
2.16.4


2020-03-13 10:25:30

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: Makefile: build arm64 device tree

On Fri, Mar 13, 2020 at 4:38 AM <[email protected]> wrote:
>
> From: Peng Fan <[email protected]>
>
> To support aarch32 mode linux on aarch64 hardware, we need
> build the device tree, so include the arm64 device tree path.
>
> Signed-off-by: Peng Fan <[email protected]>
> ---

There are a few other platforms with similar requirements, in
particular bcm2837,
so maybe try doing it the same way they do, see
arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts

> V1:
> This is just the device tree part. Besides this,
> I am not sure whether need to create a standalone defconfig under arm32
> for aarch32 mode linux on aarch64 hardware, or use multi_v7_defconfig.
> multi_v7_defconfig should be ok, need to include LPAE config.

I'd rather not have a standalone defconfig for it, given that we have a
single defconfig for all armv6/armv7/armv7hf i.mx machines.

There was a suggestion to use a fragment for enabling an LPAE
multi_v7_defconfig recently, which I think is still under discussion but
should also help here, both with imx_v6_v7_defconfig and multi_v7_defconfig.

Can you remind us why this platform needs LPAE? Is it only needed to
support more than 4GB of RAM, or something else on top of that?
Note that users that actually have 4GB or more on i.mx8 should
really run a 64-bit kernel anyway, even if they prefer using 32-bit user
space.

Turning on LPAE not only disables imx3 and imx5 but also the Cortex-A9
based imx6 variants.

Arnd

2020-03-13 10:50:18

by Masahiro Yamada

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: Makefile: build arm64 device tree

On Fri, Mar 13, 2020 at 7:23 PM Arnd Bergmann <[email protected]> wrote:
>
> On Fri, Mar 13, 2020 at 4:38 AM <[email protected]> wrote:
> >
> > From: Peng Fan <[email protected]>
> >
> > To support aarch32 mode linux on aarch64 hardware, we need
> > build the device tree, so include the arm64 device tree path.
> >
> > Signed-off-by: Peng Fan <[email protected]>
> > ---
>
> There are a few other platforms with similar requirements, in
> particular bcm2837,
> so maybe try doing it the same way they do, see
> arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts

I think this was discussed over again,
but it is odd to tightly couple
DT and Linux arch.


Maybe, a long time solution might be to
create a new directory, dts/
and collect all DT stuff into it.

dts/<vendor>/<board>.dts


Then, also move like follows:

Documentation/devicetree/bindings/
-> dts/Bindings/

include/dt-bingins/
-> dts/include/dt-bindings/






>
> > V1:
> > This is just the device tree part. Besides this,
> > I am not sure whether need to create a standalone defconfig under arm32
> > for aarch32 mode linux on aarch64 hardware, or use multi_v7_defconfig.
> > multi_v7_defconfig should be ok, need to include LPAE config.
>
> I'd rather not have a standalone defconfig for it, given that we have a
> single defconfig for all armv6/armv7/armv7hf i.mx machines.
>
> There was a suggestion to use a fragment for enabling an LPAE
> multi_v7_defconfig recently, which I think is still under discussion but
> should also help here, both with imx_v6_v7_defconfig and multi_v7_defconfig.
>
> Can you remind us why this platform needs LPAE? Is it only needed to
> support more than 4GB of RAM, or something else on top of that?
> Note that users that actually have 4GB or more on i.mx8 should
> really run a 64-bit kernel anyway, even if they prefer using 32-bit user
> space.
>
> Turning on LPAE not only disables imx3 and imx5 but also the Cortex-A9
> based imx6 variants.
>
> Arnd



--
Best Regards
Masahiro Yamada

2020-03-13 12:40:07

by Peng Fan

[permalink] [raw]
Subject: RE: [PATCH] ARM: dts: Makefile: build arm64 device tree

Hi Arnd,

> Subject: Re: [PATCH] ARM: dts: Makefile: build arm64 device tree
>
> On Fri, Mar 13, 2020 at 4:38 AM <[email protected]> wrote:
> >
> > From: Peng Fan <[email protected]>
> >
> > To support aarch32 mode linux on aarch64 hardware, we need build the
> > device tree, so include the arm64 device tree path.
> >
> > Signed-off-by: Peng Fan <[email protected]>
> > ---
>
> There are a few other platforms with similar requirements, in particular
> bcm2837, so maybe try doing it the same way they do, see
> arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts
>
> > V1:
> > This is just the device tree part. Besides this, I am not sure
> > whether need to create a standalone defconfig under arm32 for aarch32
> > mode linux on aarch64 hardware, or use multi_v7_defconfig.
> > multi_v7_defconfig should be ok, need to include LPAE config.
>
> I'd rather not have a standalone defconfig for it, given that we have a single
> defconfig for all armv6/armv7/armv7hf i.mx machines.
>
> There was a suggestion to use a fragment for enabling an LPAE
> multi_v7_defconfig recently, which I think is still under discussion but should
> also help here, both with imx_v6_v7_defconfig and multi_v7_defconfig.
>
> Can you remind us why this platform needs LPAE? Is it only needed to support
> more than 4GB of RAM, or something else on top of that?

Currently I only tested LPAE enabled arm32 kernel, I'll give a try with LPAE
disabled later.

Thanks,
Peng.
> Note that users that actually have 4GB or more on i.mx8 should really run a
> 64-bit kernel anyway, even if they prefer using 32-bit user space.
>
> Turning on LPAE not only disables imx3 and imx5 but also the Cortex-A9 based
> imx6 variants.
>
> Arnd

2020-03-17 02:05:52

by Peng Fan

[permalink] [raw]
Subject: RE: [PATCH] ARM: dts: Makefile: build arm64 device tree

Hi Arnd,

> Subject: RE: [PATCH] ARM: dts: Makefile: build arm64 device tree
>
> Hi Arnd,
>
> > Subject: Re: [PATCH] ARM: dts: Makefile: build arm64 device tree
> >
> > On Fri, Mar 13, 2020 at 4:38 AM <[email protected]> wrote:
> > >
> > > From: Peng Fan <[email protected]>
> > >
> > > To support aarch32 mode linux on aarch64 hardware, we need build the
> > > device tree, so include the arm64 device tree path.
> > >
> > > Signed-off-by: Peng Fan <[email protected]>
> > > ---
> >
> > There are a few other platforms with similar requirements, in
> > particular bcm2837, so maybe try doing it the same way they do, see
> > arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts
> >
> > > V1:
> > > This is just the device tree part. Besides this, I am not sure
> > > whether need to create a standalone defconfig under arm32 for
> > > aarch32 mode linux on aarch64 hardware, or use multi_v7_defconfig.
> > > multi_v7_defconfig should be ok, need to include LPAE config.
> >
> > I'd rather not have a standalone defconfig for it, given that we have
> > a single defconfig for all armv6/armv7/armv7hf i.mx machines.
> >
> > There was a suggestion to use a fragment for enabling an LPAE
> > multi_v7_defconfig recently, which I think is still under discussion
> > but should also help here, both with imx_v6_v7_defconfig and
> multi_v7_defconfig.
> >
> > Can you remind us why this platform needs LPAE? Is it only needed to
> > support more than 4GB of RAM, or something else on top of that?
>
> Currently I only tested LPAE enabled arm32 kernel, I'll give a try with LPAE
> disabled later.

Tested with imx_v6_v7_defconfig without LPAE, smp boots up with nfsroot.

Thanks,
Peng.

>
> Thanks,
> Peng.
> > Note that users that actually have 4GB or more on i.mx8 should really
> > run a 64-bit kernel anyway, even if they prefer using 32-bit user space.
> >
> > Turning on LPAE not only disables imx3 and imx5 but also the Cortex-A9
> > based
> > imx6 variants.
> >
> > Arnd