From: stefan@agner.ch (Stefan Agner)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v1] ARM: imx: add imx7d-m4
Date: Mon, 11 Jun 2018 13:48:47 +0200 [thread overview]
Message-ID: <3fa291a7da6978545cd21fdcf78c483e@agner.ch> (raw)
In-Reply-To: <1528706126.2842.1.camel@pengutronix.de>
On 11.06.2018 10:35, Lucas Stach wrote:
> Hi Shawn,
>
> Am Montag, den 11.06.2018, 16:20 +0800 schrieb Shawn Guo:
>> On Mon, Jun 11, 2018 at 10:02:53AM +0200, Oleksij Rempel wrote:
>> > Hi all,
>> >
>> > this patch was send 05.04.2018. Any comments?
>> >
>> > @Shawn, can you please take it?
>>
>> Honestly I'm not sure how useful it will be.??If we can have some i.MX
>> developers ACK on it, I will be more comfortable to take it.
>
> This is all highly experimental and in PoC stage, but we see some value
> in running a second Linux system on the M4 coprocessor. There are lots
> of things that still need to be figured out, but we are working on this
> from time to time when there are some hours to spare.
>
> This patch seems like a good step in the right direction and IMHO the
> amount of code and changes is small enough to carry it upstream without
> impacting anything else. I would be happy if this could be pulled in.
I agree with Lucas here, this is rather minimal and not invasive.
Out of interest, on what memory region do you run Linux? Do you use
caches? In some experiments a while ago I noticed that only 2MiB/(or
4MiB) of DDR memory can use caches, which is somewhat tight to run Linux
on.
https://blog.printk.io/2017/05/i-mx-7-cortex-m4-memory-locations-and-performance/
--
Stefan
>> >
>> > On 05.04.2018 13:51, Oleksij Rempel wrote:
>> > > Provide basic support for Cortex-M4 located on NXP iMX7D.
>> > > This code was tested in combination with imx-rproc driver
>> > > which will upload with specially formatted ELF image containing
>> > > kernel, device and CPIO rootfs.
>> > >
>> > > > > > Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
>> > > ---
>> > > ?arch/arm/boot/dts/Makefile?????????|??2 +-
>> > > ?arch/arm/mach-imx/Kconfig??????????| 33 +++++++++++++++++++++------------
>> > > ?arch/arm/mach-imx/Makefile?????????|??3 ++-
>> > > ?arch/arm/mach-imx/mach-imx7d-cm4.c | 21 +++++++++++++++++++++
>> > > ?4 files changed, 45 insertions(+), 14 deletions(-)
>> > > ?create mode 100644 arch/arm/mach-imx/mach-imx7d-cm4.c
>> > >
>> > > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>> > > index 852452515bea..d49bb9a58aee 100644
>> > > --- a/arch/arm/boot/dts/Makefile
>> > > +++ b/arch/arm/boot/dts/Makefile
>> > > @@ -527,7 +527,7 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
>> > > > > > ? imx6ul-tx6ul-0011.dtb \
>> > > > > > ? imx6ul-tx6ul-mainboard.dtb \
>> > > > > > ? imx6ull-14x14-evk.dtb
>> > > -dtb-$(CONFIG_SOC_IMX7D) += \
>> > > +dtb-$(CONFIG_SOC_IMX7D_CA7) += \
>> > > > > > ? imx7d-cl-som-imx7.dtb \
>> > > > > > ? imx7d-colibri-emmc-eval-v3.dtb \
>> > > > > > ? imx7d-colibri-eval-v3.dtb \
>> > > diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig
>> > > index 782699e67600..101c8599d952 100644
>> > > --- a/arch/arm/mach-imx/Kconfig
>> > > +++ b/arch/arm/mach-imx/Kconfig
>> > > @@ -528,18 +528,6 @@ config SOC_IMX6UL
>> > > > > > ? help
>> > > > > > ? ??This enables support for Freescale i.MX6 UltraLite processor.
>> > > ?
>> > > -config SOC_IMX7D
>> > > > > > - bool "i.MX7 Dual support"
>> > > > > > - select PINCTRL_IMX7D
>> > > > > > - select ARM_GIC
>> > > > > > - select HAVE_ARM_ARCH_TIMER
>> > > > > > - select HAVE_IMX_ANATOP
>> > > > > > - select HAVE_IMX_MMDC
>> > > > > > - select HAVE_IMX_SRC
>> > > > > > - select IMX_GPCV2
>> > > > > > - help
>> > > > > > - This enables support for Freescale i.MX7 Dual processor.
>> > > -
>> > > ?config SOC_LS1021A
>> > > > > > ? bool "Freescale LS1021A support"
>> > > > > > ? select ARM_GIC
>> > > @@ -554,6 +542,27 @@ comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms"
>> > > ?
>> > > ?if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
>> > > ?
>> > > +config SOC_IMX7D_CA7
>> > > > > > + bool
>> > > > > > + select ARM_GIC
>> > > > > > + select HAVE_ARM_ARCH_TIMER
>> > > > > > + select HAVE_IMX_ANATOP
>> > > > > > + select HAVE_IMX_MMDC
>> > > > > > + select HAVE_IMX_SRC
>> > > > > > + select IMX_GPCV2
>> > > +
>> > > +config SOC_IMX7D_CM4
>> > > > > > + bool
>> > > > > > + select ARMV7M_SYSTICK
>> > > +
>> > > +config SOC_IMX7D
>> > > > > > + bool "i.MX7 Dual support"
>> > > > > > + select PINCTRL_IMX7D
>> > > > > > + select SOC_IMX7D_CA7 if ARCH_MULTI_V7
>> > > > > > + select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M
>> > > > > > + help
>> > > > > > + This enables support for Freescale i.MX7 Dual processor.
>> > > +
>> > > ?config SOC_VF610
>> > > > > > ? bool "Vybrid Family VF610 support"
>> > > > > > ? select ARM_GIC if ARCH_MULTI_V7
>> > > diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
>> > > index 8ff71058207d..68640f100ef3 100644
>> > > --- a/arch/arm/mach-imx/Makefile
>> > > +++ b/arch/arm/mach-imx/Makefile
>> > > @@ -80,7 +80,8 @@ obj-$(CONFIG_SOC_IMX6Q) += mach-imx6q.o
>> > > ?obj-$(CONFIG_SOC_IMX6SL) += mach-imx6sl.o
>> > > ?obj-$(CONFIG_SOC_IMX6SX) += mach-imx6sx.o
>> > > ?obj-$(CONFIG_SOC_IMX6UL) += mach-imx6ul.o
>> > > -obj-$(CONFIG_SOC_IMX7D) += mach-imx7d.o
>> > > +obj-$(CONFIG_SOC_IMX7D_CA7) += mach-imx7d.o
>> > > +obj-$(CONFIG_SOC_IMX7D_CM4) += mach-imx7d-cm4.o
>> > > ?
>> > > ?ifeq ($(CONFIG_SUSPEND),y)
>> > > ?AFLAGS_suspend-imx6.o :=-Wa,-march=armv7-a
>> > > diff --git a/arch/arm/mach-imx/mach-imx7d-cm4.c b/arch/arm/mach-imx/mach-imx7d-cm4.c
>> > > new file mode 100644
>> > > index 000000000000..c36dea79aeb8
>> > > --- /dev/null
>> > > +++ b/arch/arm/mach-imx/mach-imx7d-cm4.c
>> > > @@ -0,0 +1,21 @@
>> > > +/*
>> > > + * Copyright 2017 Pengutronix
>> > > + *
>> > > + * This program is free software; you can redistribute it and/or modify
>> > > + * it under the terms of the GNU General Public License version 2 as
>> > > + * published by the Free Software Foundation.
>> > > + */
>> > > +
>> > > +#include <linux/kernel.h>
>> > > +#include <asm/v7m.h>
>> > > +#include <asm/mach/arch.h>
>> > > +
>> > > +static const char * const imx7d_cm4_dt_compat[] __initconst = {
>> > > > > > + "fsl,imx7d-cm4",
>> > > > > > + NULL,
>> > > +};
>> > > +
>> > > +DT_MACHINE_START(IMX7D, "Freescale i.MX7 Dual Cortex-M4 (Device Tree)")
>> > > > > > + .dt_compat = imx7d_cm4_dt_compat,
>> > > > > > + .restart = armv7m_restart,
>> > > +MACHINE_END
>> > >
>>
>>
>>
>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2018-06-11 11:48 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-05 11:51 [PATCH v1] ARM: imx: add imx7d-m4 Oleksij Rempel
2018-06-11 8:02 ` Oleksij Rempel
2018-06-11 8:20 ` Shawn Guo
2018-06-11 8:35 ` Lucas Stach
2018-06-11 11:48 ` Stefan Agner [this message]
2018-06-11 11:53 ` Oleksij Rempel
2018-06-11 12:41 ` Stefan Agner
2018-06-11 18:03 ` Oleksij Rempel
2018-06-11 12:01 ` Fabio Estevam
2018-06-17 6:44 ` Shawn Guo
2018-07-02 6:01 ` Oleksij Rempel
2018-06-17 6:46 ` Shawn Guo
2018-07-02 6:02 ` Oleksij Rempel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3fa291a7da6978545cd21fdcf78c483e@agner.ch \
--to=stefan@agner.ch \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).