Message ID | 20200110145148.82233-5-giulio.benetti@benettiengineering.com |
---|---|
State | Accepted |
Commit | 77eb9a90ddbfd942352d735f4ab8785e4035309b |
Headers | show |
Series | Add i.MXRT family support | expand |
> Add i.IMXRT family basic support. > Signed-off-by: Giulio Benetti <giulio.benetti at benettiengineering.com> Applied to u-boot-imx, master, thanks ! Best regards, Stefano Babic
Hi Giulio, > Add i.IMXRT family basic support. > > Signed-off-by: Giulio Benetti <giulio.benetti at benettiengineering.com> > --- > V1->V2: > * introduced CONFIG_IMXRT > --- > arch/arm/Kconfig | 10 ++++++ > arch/arm/Makefile | 4 +-- > arch/arm/include/asm/arch-imxrt/clock.h | 10 ++++++ > arch/arm/include/asm/arch-imxrt/gpio.h | 19 +++++++++++ > arch/arm/include/asm/arch-imxrt/imx-regs.h | 20 ++++++++++++ > arch/arm/include/asm/arch-imxrt/imxrt.h | 11 +++++++ > arch/arm/include/asm/arch-imxrt/sys_proto.h | 11 +++++++ > arch/arm/mach-imx/Makefile | 3 +- > arch/arm/mach-imx/imxrt/Kconfig | 13 ++++++++ > arch/arm/mach-imx/imxrt/Makefile | 7 +++++ > arch/arm/mach-imx/imxrt/soc.c | 35 > +++++++++++++++++++++ 11 files changed, 140 insertions(+), 3 > deletions(-) create mode 100644 > arch/arm/include/asm/arch-imxrt/clock.h create mode 100644 > arch/arm/include/asm/arch-imxrt/gpio.h create mode 100644 > arch/arm/include/asm/arch-imxrt/imx-regs.h create mode 100644 > arch/arm/include/asm/arch-imxrt/imxrt.h create mode 100644 > arch/arm/include/asm/arch-imxrt/sys_proto.h create mode 100644 > arch/arm/mach-imx/imxrt/Kconfig create mode 100644 > arch/arm/mach-imx/imxrt/Makefile create mode 100644 > arch/arm/mach-imx/imxrt/soc.c > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 76365ef313..4c7d04400a 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -797,6 +797,14 @@ config ARCH_IMX8M > select SUPPORT_SPL > imply CMD_DM > > +config ARCH_IMXRT > + bool "NXP i.MXRT platform" > + select CPU_V7M > + select DM > + select DM_SERIAL > + select SUPPORT_SPL > + imply CMD_DM > + > config ARCH_MX23 > bool "NXP i.MX23 family" > select CPU_ARM926EJS > @@ -1722,6 +1730,8 @@ source "arch/arm/mach-imx/imx8/Kconfig" > > source "arch/arm/mach-imx/imx8m/Kconfig" > > +source "arch/arm/mach-imx/imxrt/Kconfig" > + > source "arch/arm/mach-imx/mxs/Kconfig" > > source "arch/arm/mach-omap2/Kconfig" > diff --git a/arch/arm/Makefile b/arch/arm/Makefile > index 856f2d8608..1e60a9fdd4 100644 > --- a/arch/arm/Makefile > +++ b/arch/arm/Makefile > @@ -104,11 +104,11 @@ libs-y += arch/arm/cpu/ > libs-y += arch/arm/lib/ > > ifeq ($(CONFIG_SPL_BUILD),y) > -ifneq (,$(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_MX35)$(filter $(SOC), > mx25 mx5 mx6 mx7 mx35 imx8m imx8)) +ifneq > (,$(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_MX35)$(filter $(SOC), mx25 mx5 > mx6 mx7 mx35 imx8m imx8 imxrt)) libs-y += arch/arm/mach-imx/ endif > else > -ifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx7 mx7ulp mx31 mx35 mxs > imx8m imx8 vf610)) +ifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx7 > mx7ulp mx31 mx35 mxs imx8m imx8 imxrt vf610)) libs-y += > arch/arm/mach-imx/ endif > endif > diff --git a/arch/arm/include/asm/arch-imxrt/clock.h > b/arch/arm/include/asm/arch-imxrt/clock.h new file mode 100644 > index 0000000000..7409028b9a > --- /dev/null > +++ b/arch/arm/include/asm/arch-imxrt/clock.h > @@ -0,0 +1,10 @@ > +/* SPDX-License-Identifier: GPL-2.0+ */ > +/* > + * Copyright (C) 2019 > + * Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com> > + */ > + > +#ifndef __ASM_ARCH_CLOCK_H > +#define __ASM_ARCH_CLOCK_H > + > +#endif /* __ASM_ARCH_CLOCK_H */ > diff --git a/arch/arm/include/asm/arch-imxrt/gpio.h > b/arch/arm/include/asm/arch-imxrt/gpio.h new file mode 100644 > index 0000000000..da31a7438a > --- /dev/null > +++ b/arch/arm/include/asm/arch-imxrt/gpio.h > @@ -0,0 +1,19 @@ > +/* SPDX-License-Identifier: GPL-2.0+ */ > +/* > + * Copyright (C) 2019 > + * Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com> > + */ > + > +#ifndef __ASM_ARCH_GPIO_H__ > +#define __ASM_ARCH_GPIO_H__ > + > +#if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__)) > +/* GPIO registers */ > +struct gpio_regs { > + u32 gpio_dr; /* data */ > + u32 gpio_dir; /* direction */ > + u32 gpio_psr; /* pad satus */ > +}; > +#endif > + > +#endif /* __ASM_ARCH_GPIO_H__ */ > diff --git a/arch/arm/include/asm/arch-imxrt/imx-regs.h > b/arch/arm/include/asm/arch-imxrt/imx-regs.h new file mode 100644 > index 0000000000..4f1d439f6f > --- /dev/null > +++ b/arch/arm/include/asm/arch-imxrt/imx-regs.h > @@ -0,0 +1,20 @@ > +/* SPDX-License-Identifier: GPL-2.0+ */ > +/* > + * Copyright(C) 2019 > + * Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com> > + */ > + > +#ifndef __ASM_ARCH_IMX_REGS_H__ > +#define __ASM_ARCH_IMX_REGS_H__ > + > +#define ARCH_MXC > + > +#define GPIO1_BASE_ADDR 0x401B8000 > +#define GPIO2_BASE_ADDR 0x401BC000 > +#define GPIO3_BASE_ADDR 0x401C0000 > +#define GPIO4_BASE_ADDR 0x401C4000 > +#define GPIO5_BASE_ADDR 0x400C0000 > + > +#define ANATOP_BASE_ADDR 0x400d8000 > + > +#endif /* __ASM_ARCH_IMX_REGS_H__ */ > diff --git a/arch/arm/include/asm/arch-imxrt/imxrt.h > b/arch/arm/include/asm/arch-imxrt/imxrt.h new file mode 100644 > index 0000000000..1cb2c57d31 > --- /dev/null > +++ b/arch/arm/include/asm/arch-imxrt/imxrt.h > @@ -0,0 +1,11 @@ > +/* SPDX-License-Identifier: GPL-2.0+ */ > +/* > + * Copyright (C) 2019 > + * Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com> > + */ > + > +#ifndef _ASM_ARCH_IMXRT_H > +#define _ASM_ARCH_IMXRT_H > + > +#endif /* _ASM_ARCH_IMXRT_H */ > + > diff --git a/arch/arm/include/asm/arch-imxrt/sys_proto.h > b/arch/arm/include/asm/arch-imxrt/sys_proto.h new file mode 100644 > index 0000000000..eb878e672e > --- /dev/null > +++ b/arch/arm/include/asm/arch-imxrt/sys_proto.h > @@ -0,0 +1,11 @@ > +/* SPDX-License-Identifier: GPL-2.0+ */ > +/* > + * Copyright (C) 2017 NXP > + */ > + > +#ifndef _ASM_ARCH_SYS_PROTO_H > +#define _ASM_ARCH_SYS_PROTO_H > + > +#include <asm/mach-imx/sys_proto.h> > + > +#endif /* _ASM_ARCH_SYS_PROTO_H */ > diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile > index e14713c5c4..a70d51b5cf 100644 > --- a/arch/arm/mach-imx/Makefile > +++ b/arch/arm/mach-imx/Makefile > @@ -27,7 +27,7 @@ endif > obj-$(CONFIG_GPT_TIMER) += timer.o > obj-$(CONFIG_SYS_I2C_MXC) += i2c-mxv7.o > endif > -ifeq ($(SOC),$(filter $(SOC),mx7 mx6 mxs imx8m imx8)) > +ifeq ($(SOC),$(filter $(SOC),mx7 mx6 mxs imx8m imx8 imxrt)) > obj-y += misc.o > obj-$(CONFIG_SPL_BUILD) += spl.o > endif > @@ -226,5 +226,6 @@ obj-$(CONFIG_MX7) += mx7/ > obj-$(CONFIG_ARCH_MX7ULP) += mx7ulp/ > obj-$(CONFIG_IMX8M) += imx8m/ > obj-$(CONFIG_ARCH_IMX8) += imx8/ > +obj-$(CONFIG_ARCH_IMXRT) += imxrt/ > > obj-$(CONFIG_SPL_BOOTROM_SUPPORT) += spl_imx_romapi.o > diff --git a/arch/arm/mach-imx/imxrt/Kconfig > b/arch/arm/mach-imx/imxrt/Kconfig new file mode 100644 > index 0000000000..96ad2e988b > --- /dev/null > +++ b/arch/arm/mach-imx/imxrt/Kconfig > @@ -0,0 +1,13 @@ > +if ARCH_IMXRT > + > +config IMXRT > + bool > + > +config IMXRT1050 > + bool > + select IMXRT > + > +config SYS_SOC > + default "imxrt" > + > +endif > diff --git a/arch/arm/mach-imx/imxrt/Makefile > b/arch/arm/mach-imx/imxrt/Makefile new file mode 100644 > index 0000000000..9621a8335a > --- /dev/null > +++ b/arch/arm/mach-imx/imxrt/Makefile > @@ -0,0 +1,7 @@ > +# SPDX-License-Identifier: GPL-2.0+ > +# > +# (C) Copyright 2019 > +# Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com> > +# > + > +obj-y := soc.o > diff --git a/arch/arm/mach-imx/imxrt/soc.c > b/arch/arm/mach-imx/imxrt/soc.c new file mode 100644 > index 0000000000..e1eea23035 > --- /dev/null > +++ b/arch/arm/mach-imx/imxrt/soc.c > @@ -0,0 +1,35 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * Copyright (C) 2019 > + * Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com> > + */ > + > +#include <common.h> > +#include <asm/io.h> > +#include <asm/armv7_mpu.h> > + > +int arch_cpu_init(void) > +{ > + int i; > + > + struct mpu_region_config imxrt1050_region_config[] = { > + { 0x00000000, REGION_0, XN_DIS, PRIV_RW_USR_RW, > + STRONG_ORDER, REGION_4GB }, > + { PHYS_SDRAM, REGION_1, XN_DIS, PRIV_RW_USR_RW, > + O_I_WB_RD_WR_ALLOC, (ffs(PHYS_SDRAM_SIZE) - 2) }, > + { DMAMEM_BASE, > + REGION_2, XN_DIS, PRIV_RW_USR_RW, > + STRONG_ORDER, (ffs(DMAMEM_SZ_ALL) - 2) }, > + }; > + > + /* > + * Configure the memory protection unit (MPU) to allow full > access to > + * the whole 4GB address space. > + */ > + disable_mpu(); > + for (i = 0; i < ARRAY_SIZE(imxrt1050_region_config); i++) > + mpu_config(&imxrt1050_region_config[i]); > + enable_mpu(); > + > + return 0; > +} Reviewed-by: Lukasz Majewski <lukma at denx.de> Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 484 bytes Desc: OpenPGP digital signature URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200128/99a58735/attachment.sig>
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 76365ef313..4c7d04400a 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -797,6 +797,14 @@ config ARCH_IMX8M select SUPPORT_SPL imply CMD_DM +config ARCH_IMXRT + bool "NXP i.MXRT platform" + select CPU_V7M + select DM + select DM_SERIAL + select SUPPORT_SPL + imply CMD_DM + config ARCH_MX23 bool "NXP i.MX23 family" select CPU_ARM926EJS @@ -1722,6 +1730,8 @@ source "arch/arm/mach-imx/imx8/Kconfig" source "arch/arm/mach-imx/imx8m/Kconfig" +source "arch/arm/mach-imx/imxrt/Kconfig" + source "arch/arm/mach-imx/mxs/Kconfig" source "arch/arm/mach-omap2/Kconfig" diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 856f2d8608..1e60a9fdd4 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -104,11 +104,11 @@ libs-y += arch/arm/cpu/ libs-y += arch/arm/lib/ ifeq ($(CONFIG_SPL_BUILD),y) -ifneq (,$(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_MX35)$(filter $(SOC), mx25 mx5 mx6 mx7 mx35 imx8m imx8)) +ifneq (,$(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_MX35)$(filter $(SOC), mx25 mx5 mx6 mx7 mx35 imx8m imx8 imxrt)) libs-y += arch/arm/mach-imx/ endif else -ifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx7 mx7ulp mx31 mx35 mxs imx8m imx8 vf610)) +ifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx7 mx7ulp mx31 mx35 mxs imx8m imx8 imxrt vf610)) libs-y += arch/arm/mach-imx/ endif endif diff --git a/arch/arm/include/asm/arch-imxrt/clock.h b/arch/arm/include/asm/arch-imxrt/clock.h new file mode 100644 index 0000000000..7409028b9a --- /dev/null +++ b/arch/arm/include/asm/arch-imxrt/clock.h @@ -0,0 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright (C) 2019 + * Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com> + */ + +#ifndef __ASM_ARCH_CLOCK_H +#define __ASM_ARCH_CLOCK_H + +#endif /* __ASM_ARCH_CLOCK_H */ diff --git a/arch/arm/include/asm/arch-imxrt/gpio.h b/arch/arm/include/asm/arch-imxrt/gpio.h new file mode 100644 index 0000000000..da31a7438a --- /dev/null +++ b/arch/arm/include/asm/arch-imxrt/gpio.h @@ -0,0 +1,19 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright (C) 2019 + * Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com> + */ + +#ifndef __ASM_ARCH_GPIO_H__ +#define __ASM_ARCH_GPIO_H__ + +#if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__)) +/* GPIO registers */ +struct gpio_regs { + u32 gpio_dr; /* data */ + u32 gpio_dir; /* direction */ + u32 gpio_psr; /* pad satus */ +}; +#endif + +#endif /* __ASM_ARCH_GPIO_H__ */ diff --git a/arch/arm/include/asm/arch-imxrt/imx-regs.h b/arch/arm/include/asm/arch-imxrt/imx-regs.h new file mode 100644 index 0000000000..4f1d439f6f --- /dev/null +++ b/arch/arm/include/asm/arch-imxrt/imx-regs.h @@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright(C) 2019 + * Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com> + */ + +#ifndef __ASM_ARCH_IMX_REGS_H__ +#define __ASM_ARCH_IMX_REGS_H__ + +#define ARCH_MXC + +#define GPIO1_BASE_ADDR 0x401B8000 +#define GPIO2_BASE_ADDR 0x401BC000 +#define GPIO3_BASE_ADDR 0x401C0000 +#define GPIO4_BASE_ADDR 0x401C4000 +#define GPIO5_BASE_ADDR 0x400C0000 + +#define ANATOP_BASE_ADDR 0x400d8000 + +#endif /* __ASM_ARCH_IMX_REGS_H__ */ diff --git a/arch/arm/include/asm/arch-imxrt/imxrt.h b/arch/arm/include/asm/arch-imxrt/imxrt.h new file mode 100644 index 0000000000..1cb2c57d31 --- /dev/null +++ b/arch/arm/include/asm/arch-imxrt/imxrt.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright (C) 2019 + * Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com> + */ + +#ifndef _ASM_ARCH_IMXRT_H +#define _ASM_ARCH_IMXRT_H + +#endif /* _ASM_ARCH_IMXRT_H */ + diff --git a/arch/arm/include/asm/arch-imxrt/sys_proto.h b/arch/arm/include/asm/arch-imxrt/sys_proto.h new file mode 100644 index 0000000000..eb878e672e --- /dev/null +++ b/arch/arm/include/asm/arch-imxrt/sys_proto.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright (C) 2017 NXP + */ + +#ifndef _ASM_ARCH_SYS_PROTO_H +#define _ASM_ARCH_SYS_PROTO_H + +#include <asm/mach-imx/sys_proto.h> + +#endif /* _ASM_ARCH_SYS_PROTO_H */ diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index e14713c5c4..a70d51b5cf 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile @@ -27,7 +27,7 @@ endif obj-$(CONFIG_GPT_TIMER) += timer.o obj-$(CONFIG_SYS_I2C_MXC) += i2c-mxv7.o endif -ifeq ($(SOC),$(filter $(SOC),mx7 mx6 mxs imx8m imx8)) +ifeq ($(SOC),$(filter $(SOC),mx7 mx6 mxs imx8m imx8 imxrt)) obj-y += misc.o obj-$(CONFIG_SPL_BUILD) += spl.o endif @@ -226,5 +226,6 @@ obj-$(CONFIG_MX7) += mx7/ obj-$(CONFIG_ARCH_MX7ULP) += mx7ulp/ obj-$(CONFIG_IMX8M) += imx8m/ obj-$(CONFIG_ARCH_IMX8) += imx8/ +obj-$(CONFIG_ARCH_IMXRT) += imxrt/ obj-$(CONFIG_SPL_BOOTROM_SUPPORT) += spl_imx_romapi.o diff --git a/arch/arm/mach-imx/imxrt/Kconfig b/arch/arm/mach-imx/imxrt/Kconfig new file mode 100644 index 0000000000..96ad2e988b --- /dev/null +++ b/arch/arm/mach-imx/imxrt/Kconfig @@ -0,0 +1,13 @@ +if ARCH_IMXRT + +config IMXRT + bool + +config IMXRT1050 + bool + select IMXRT + +config SYS_SOC + default "imxrt" + +endif diff --git a/arch/arm/mach-imx/imxrt/Makefile b/arch/arm/mach-imx/imxrt/Makefile new file mode 100644 index 0000000000..9621a8335a --- /dev/null +++ b/arch/arm/mach-imx/imxrt/Makefile @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: GPL-2.0+ +# +# (C) Copyright 2019 +# Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com> +# + +obj-y := soc.o diff --git a/arch/arm/mach-imx/imxrt/soc.c b/arch/arm/mach-imx/imxrt/soc.c new file mode 100644 index 0000000000..e1eea23035 --- /dev/null +++ b/arch/arm/mach-imx/imxrt/soc.c @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (C) 2019 + * Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com> + */ + +#include <common.h> +#include <asm/io.h> +#include <asm/armv7_mpu.h> + +int arch_cpu_init(void) +{ + int i; + + struct mpu_region_config imxrt1050_region_config[] = { + { 0x00000000, REGION_0, XN_DIS, PRIV_RW_USR_RW, + STRONG_ORDER, REGION_4GB }, + { PHYS_SDRAM, REGION_1, XN_DIS, PRIV_RW_USR_RW, + O_I_WB_RD_WR_ALLOC, (ffs(PHYS_SDRAM_SIZE) - 2) }, + { DMAMEM_BASE, + REGION_2, XN_DIS, PRIV_RW_USR_RW, + STRONG_ORDER, (ffs(DMAMEM_SZ_ALL) - 2) }, + }; + + /* + * Configure the memory protection unit (MPU) to allow full access to + * the whole 4GB address space. + */ + disable_mpu(); + for (i = 0; i < ARRAY_SIZE(imxrt1050_region_config); i++) + mpu_config(&imxrt1050_region_config[i]); + enable_mpu(); + + return 0; +}
Add i.IMXRT family basic support. Signed-off-by: Giulio Benetti <giulio.benetti at benettiengineering.com> --- V1->V2: * introduced CONFIG_IMXRT --- arch/arm/Kconfig | 10 ++++++ arch/arm/Makefile | 4 +-- arch/arm/include/asm/arch-imxrt/clock.h | 10 ++++++ arch/arm/include/asm/arch-imxrt/gpio.h | 19 +++++++++++ arch/arm/include/asm/arch-imxrt/imx-regs.h | 20 ++++++++++++ arch/arm/include/asm/arch-imxrt/imxrt.h | 11 +++++++ arch/arm/include/asm/arch-imxrt/sys_proto.h | 11 +++++++ arch/arm/mach-imx/Makefile | 3 +- arch/arm/mach-imx/imxrt/Kconfig | 13 ++++++++ arch/arm/mach-imx/imxrt/Makefile | 7 +++++ arch/arm/mach-imx/imxrt/soc.c | 35 +++++++++++++++++++++ 11 files changed, 140 insertions(+), 3 deletions(-) create mode 100644 arch/arm/include/asm/arch-imxrt/clock.h create mode 100644 arch/arm/include/asm/arch-imxrt/gpio.h create mode 100644 arch/arm/include/asm/arch-imxrt/imx-regs.h create mode 100644 arch/arm/include/asm/arch-imxrt/imxrt.h create mode 100644 arch/arm/include/asm/arch-imxrt/sys_proto.h create mode 100644 arch/arm/mach-imx/imxrt/Kconfig create mode 100644 arch/arm/mach-imx/imxrt/Makefile create mode 100644 arch/arm/mach-imx/imxrt/soc.c