diff options
author | Oleksij Rempel <o.rempel@pengutronix.de> | 2018-07-03 03:12:47 -0400 |
---|---|---|
committer | Shawn Guo <shawnguo@kernel.org> | 2018-07-03 03:17:57 -0400 |
commit | 1a1f919eb52ea1e63e135a478c5762b3d8b0935b (patch) | |
tree | d0334d345730c3c7b6dc685fa1cbbf4e322ed2f0 | |
parent | d082852f40de5cf55a7a689bf582fced39f5443e (diff) |
ARM: imx: Provide support for NXP i.MX7D Cortex-M4
Cortex M4 part can be started from a boot loader or over
Linux remoteproc framework.
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
-rw-r--r-- | arch/arm/mach-imx/Kconfig | 33 | ||||
-rw-r--r-- | arch/arm/mach-imx/Makefile | 3 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-imx7d-cm4.c | 18 |
3 files changed, 41 insertions, 13 deletions
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index 6f4232384774..abc337111eff 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig | |||
@@ -523,18 +523,6 @@ config SOC_IMX6UL | |||
523 | help | 523 | help |
524 | This enables support for Freescale i.MX6 UltraLite processor. | 524 | This enables support for Freescale i.MX6 UltraLite processor. |
525 | 525 | ||
526 | config SOC_IMX7D | ||
527 | bool "i.MX7 Dual support" | ||
528 | select PINCTRL_IMX7D | ||
529 | select ARM_GIC | ||
530 | select HAVE_ARM_ARCH_TIMER | ||
531 | select HAVE_IMX_ANATOP | ||
532 | select HAVE_IMX_MMDC | ||
533 | select HAVE_IMX_SRC | ||
534 | select IMX_GPCV2 | ||
535 | help | ||
536 | This enables support for Freescale i.MX7 Dual processor. | ||
537 | |||
538 | config SOC_LS1021A | 526 | config SOC_LS1021A |
539 | bool "Freescale LS1021A support" | 527 | bool "Freescale LS1021A support" |
540 | select ARM_GIC | 528 | select ARM_GIC |
@@ -549,6 +537,27 @@ comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms" | |||
549 | 537 | ||
550 | if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M | 538 | if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M |
551 | 539 | ||
540 | config SOC_IMX7D_CA7 | ||
541 | bool | ||
542 | select ARM_GIC | ||
543 | select HAVE_ARM_ARCH_TIMER | ||
544 | select HAVE_IMX_ANATOP | ||
545 | select HAVE_IMX_MMDC | ||
546 | select HAVE_IMX_SRC | ||
547 | select IMX_GPCV2 | ||
548 | |||
549 | config SOC_IMX7D_CM4 | ||
550 | bool | ||
551 | select ARMV7M_SYSTICK | ||
552 | |||
553 | config SOC_IMX7D | ||
554 | bool "i.MX7 Dual support" | ||
555 | select PINCTRL_IMX7D | ||
556 | select SOC_IMX7D_CA7 if ARCH_MULTI_V7 | ||
557 | select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M | ||
558 | help | ||
559 | This enables support for Freescale i.MX7 Dual processor. | ||
560 | |||
552 | config SOC_VF610 | 561 | config SOC_VF610 |
553 | bool "Vybrid Family VF610 support" | 562 | bool "Vybrid Family VF610 support" |
554 | select ARM_GIC if ARCH_MULTI_V7 | 563 | select ARM_GIC if ARCH_MULTI_V7 |
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index 127fdf3ff600..146ebf97b7eb 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile | |||
@@ -81,7 +81,8 @@ obj-$(CONFIG_SOC_IMX6SL) += mach-imx6sl.o | |||
81 | obj-$(CONFIG_SOC_IMX6SLL) += mach-imx6sl.o | 81 | obj-$(CONFIG_SOC_IMX6SLL) += mach-imx6sl.o |
82 | obj-$(CONFIG_SOC_IMX6SX) += mach-imx6sx.o | 82 | obj-$(CONFIG_SOC_IMX6SX) += mach-imx6sx.o |
83 | obj-$(CONFIG_SOC_IMX6UL) += mach-imx6ul.o | 83 | obj-$(CONFIG_SOC_IMX6UL) += mach-imx6ul.o |
84 | obj-$(CONFIG_SOC_IMX7D) += mach-imx7d.o | 84 | obj-$(CONFIG_SOC_IMX7D_CA7) += mach-imx7d.o |
85 | obj-$(CONFIG_SOC_IMX7D_CM4) += mach-imx7d-cm4.o | ||
85 | 86 | ||
86 | ifeq ($(CONFIG_SUSPEND),y) | 87 | ifeq ($(CONFIG_SUSPEND),y) |
87 | AFLAGS_suspend-imx6.o :=-Wa,-march=armv7-a | 88 | 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..0800b5891d2a --- /dev/null +++ b/arch/arm/mach-imx/mach-imx7d-cm4.c | |||
@@ -0,0 +1,18 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
2 | /* | ||
3 | * Copyright (c) 2018 Pengutronix, Oleksij Rempel <o.rempel@pengutronix.de> | ||
4 | */ | ||
5 | |||
6 | #include <linux/kernel.h> | ||
7 | #include <asm/v7m.h> | ||
8 | #include <asm/mach/arch.h> | ||
9 | |||
10 | static const char * const imx7d_cm4_dt_compat[] __initconst = { | ||
11 | "fsl,imx7d-cm4", | ||
12 | NULL, | ||
13 | }; | ||
14 | |||
15 | DT_MACHINE_START(IMX7D, "Freescale i.MX7 Dual Cortex-M4 (Device Tree)") | ||
16 | .dt_compat = imx7d_cm4_dt_compat, | ||
17 | .restart = armv7m_restart, | ||
18 | MACHINE_END | ||