diff options
Diffstat (limited to 'patches/linux-4.16/0003-ARM-imx-add-imx7d-m4.patch')
-rw-r--r-- | patches/linux-4.16/0003-ARM-imx-add-imx7d-m4.patch | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/patches/linux-4.16/0003-ARM-imx-add-imx7d-m4.patch b/patches/linux-4.16/0003-ARM-imx-add-imx7d-m4.patch new file mode 100644 index 0000000..a912a8c --- /dev/null +++ b/patches/linux-4.16/0003-ARM-imx-add-imx7d-m4.patch @@ -0,0 +1,150 @@ +From: Oleksij Rempel <linux@rempel-privat.de> +Date: Thu, 31 Aug 2017 12:45:43 +0200 +Subject: [PATCH] ARM: imx: add imx7d-m4 + +Signed-off-by: Oleksij Rempel <linux@rempel-privat.de> +--- + arch/arm/Kconfig-nommu | 2 ++ + arch/arm/boot/dts/Makefile | 2 +- + arch/arm/include/debug/imx-uart.h | 2 ++ + arch/arm/mach-imx/Kconfig | 33 +++++++++++++++++++++------------ + arch/arm/mach-imx/Makefile | 3 ++- + arch/arm/mach-imx/mach-imx7d-m4.c | 21 +++++++++++++++++++++ + 6 files changed, 49 insertions(+), 14 deletions(-) + create mode 100644 arch/arm/mach-imx/mach-imx7d-m4.c + +diff --git a/arch/arm/Kconfig-nommu b/arch/arm/Kconfig-nommu +index 1168a03c8525..aced2bf585e8 100644 +--- a/arch/arm/Kconfig-nommu ++++ b/arch/arm/Kconfig-nommu +@@ -12,10 +12,12 @@ config SET_MEM_PARAM + + config DRAM_BASE + hex '(S)DRAM Base Address' if SET_MEM_PARAM ++ default 0x18000000 if SOC_IMX7D_M4 + default 0x00800000 + + config DRAM_SIZE + hex '(S)DRAM SIZE' if SET_MEM_PARAM ++ default 0x04000000 if SOC_IMX7D_M4 + default 0x00800000 + + config FLASH_MEM_BASE +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index 721327ad7400..d8f9d38c8059 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_A7) += \ + imx7d-cl-som-imx7.dtb \ + imx7d-colibri-emmc-eval-v3.dtb \ + imx7d-colibri-eval-v3.dtb \ +diff --git a/arch/arm/include/debug/imx-uart.h b/arch/arm/include/debug/imx-uart.h +index bce58e975ad1..efe0acdf5c5a 100644 +--- a/arch/arm/include/debug/imx-uart.h ++++ b/arch/arm/include/debug/imx-uart.h +@@ -111,6 +111,8 @@ + #define IMX7D_UART_BASE_ADDR(n) IMX7D_UART##n##_BASE_ADDR + #define IMX7D_UART_BASE(n) IMX7D_UART_BASE_ADDR(n) + ++#define IMX7D_M4_UART_BASE(n) IMX7D_A7_UART_BASE_ADDR(n) ++ + #define IMX_DEBUG_UART_BASE(soc) soc##_UART_BASE(CONFIG_DEBUG_IMX_UART_PORT) + + #ifdef CONFIG_DEBUG_IMX1_UART +diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig +index 782699e67600..c63065672d1c 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_A7 ++ 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_M4 ++ bool ++ select ARMV7M_SYSTICK ++ ++config SOC_IMX7D ++ bool "i.MX7 Dual support" ++ select PINCTRL_IMX7D ++ select SOC_IMX7D_A7 if ARCH_MULTI_V7 ++ select SOC_IMX7D_M4 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..baef499c3274 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_A7) += mach-imx7d.o ++obj-$(CONFIG_SOC_IMX7D_M4) += mach-imx7d-m4.o + + ifeq ($(CONFIG_SUSPEND),y) + AFLAGS_suspend-imx6.o :=-Wa,-march=armv7-a +diff --git a/arch/arm/mach-imx/mach-imx7d-m4.c b/arch/arm/mach-imx/mach-imx7d-m4.c +new file mode 100644 +index 000000000000..f9520a37db1a +--- /dev/null ++++ b/arch/arm/mach-imx/mach-imx7d-m4.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_m4_dt_compat[] __initconst = { ++ "fsl,imx7d-m4", ++ NULL, ++}; ++ ++DT_MACHINE_START(IMX7D, "Freescale i.MX7 Dual Cortex-M4 (Device Tree)") ++ .dt_compat = imx7d_m4_dt_compat, ++ .restart = armv7m_restart, ++MACHINE_END |