[PATCH] ARM: imx: phyCORE i.MX7 on phyBOARD-Zeta support
Stefan Lengfeld
contact at stefanchrist.eu
Mon Jul 10 12:40:59 PDT 2017
Hi Lucas,
On Mon, Jul 10, 2017 at 05:21:08PM +0200, Lucas Stach wrote:
> From: Sascha Hauer <s.hauer at pengutronix.de>
>
> This adds preliminary support for the phyCORE i.MX7 module on a
> phyBOARD-Zeta baseboard. The DTs will likely change in the future
> when PHYTEC finalizes their BSP.
>
> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
> ---
> lst: Rebased and fixed for upstream pinfunc changes. Tested PSCI
> kernel booting.
> ---
> arch/arm/boards/Makefile | 1 +
> arch/arm/boards/phytec-phycore-imx7/Makefile | 2 +
> arch/arm/boards/phytec-phycore-imx7/board.c | 42 ++++
> .../flash-header-phytec-phycore-imx7.imxcfg | 76 ++++++
> arch/arm/boards/phytec-phycore-imx7/lowlevel.c | 48 ++++
> arch/arm/configs/imx_v7_defconfig | 4 +-
> arch/arm/dts/Makefile | 1 +
> arch/arm/dts/imx7d-pba-c-09.dtsi | 272 +++++++++++++++++++++
> arch/arm/dts/imx7d-peb-av-02.dtsi | 104 ++++++++
> arch/arm/dts/imx7d-peb-eval-02.dtsi | 130 ++++++++++
> arch/arm/dts/imx7d-phyboard-zeta.dts | 144 +++++++++++
> arch/arm/dts/imx7d-phycore-som.dtsi | 272 +++++++++++++++++++++
> arch/arm/mach-imx/Kconfig | 4 +
> images/Makefile.imx | 5 +
> 14 files changed, 1104 insertions(+), 1 deletion(-)
> create mode 100644 arch/arm/boards/phytec-phycore-imx7/Makefile
> create mode 100644 arch/arm/boards/phytec-phycore-imx7/board.c
> create mode 100644 arch/arm/boards/phytec-phycore-imx7/flash-header-phytec-phycore-imx7.imxcfg
> create mode 100644 arch/arm/boards/phytec-phycore-imx7/lowlevel.c
> create mode 100644 arch/arm/dts/imx7d-pba-c-09.dtsi
> create mode 100644 arch/arm/dts/imx7d-peb-av-02.dtsi
> create mode 100644 arch/arm/dts/imx7d-peb-eval-02.dtsi
> create mode 100644 arch/arm/dts/imx7d-phyboard-zeta.dts
> create mode 100644 arch/arm/dts/imx7d-phycore-som.dtsi
>
> diff --git a/arch/arm/boards/Makefile b/arch/arm/boards/Makefile
> index 9bbdd684fa6c..c6840a633c0d 100644
> --- a/arch/arm/boards/Makefile
> +++ b/arch/arm/boards/Makefile
> @@ -89,6 +89,7 @@ obj-$(CONFIG_MACH_PCM043) += phytec-phycore-imx35/
> obj-$(CONFIG_MACH_PCM049) += phytec-phycore-omap4460/
> obj-$(CONFIG_MACH_PHYTEC_SOM_AM335X) += phytec-som-am335x/
> obj-$(CONFIG_MACH_PHYTEC_SOM_IMX6) += phytec-som-imx6/
> +obj-$(CONFIG_MACH_PHYTEC_PHYCORE_IMX7) += phytec-phycore-imx7/
> obj-$(CONFIG_MACH_PLATHOME_OPENBLOCKS_AX3) += plathome-openblocks-ax3/
> obj-$(CONFIG_MACH_PLATHOME_OPENBLOCKS_A6) += plathome-openblocks-a6/
> obj-$(CONFIG_MACH_PM9261) += pm9261/
> diff --git a/arch/arm/boards/phytec-phycore-imx7/Makefile b/arch/arm/boards/phytec-phycore-imx7/Makefile
> new file mode 100644
> index 000000000000..01c7a259e9a5
> --- /dev/null
> +++ b/arch/arm/boards/phytec-phycore-imx7/Makefile
> @@ -0,0 +1,2 @@
> +obj-y += board.o
> +lwl-y += lowlevel.o
> diff --git a/arch/arm/boards/phytec-phycore-imx7/board.c b/arch/arm/boards/phytec-phycore-imx7/board.c
> new file mode 100644
> index 000000000000..d4451602b047
> --- /dev/null
> +++ b/arch/arm/boards/phytec-phycore-imx7/board.c
> @@ -0,0 +1,42 @@
> +/*
> + * Copyright (C) 2017 Sascha Hauer, Pengutronix
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + */
> +
> +#include <common.h>
> +#include <init.h>
> +#include <environment.h>
> +#include <mach/bbu.h>
> +#include <asm/armlinux.h>
> +#include <generated/mach-types.h>
> +#include <partition.h>
> +#include <mach/generic.h>
> +#include <linux/sizes.h>
> +#include <asm/psci.h>
> +#include <io.h>
> +#include <mach/imx7-regs.h>
> +#include <serial/imx-uart.h>
> +#include <asm/secure.h>
> +
> +static int warp7_devices_init(void)
Maybe this function should be renamed to hide the origin of the code ;-)
> +{
> + if (!of_machine_is_compatible("phytec,imx7d-phycore-som"))
> + return 0;
> +
> + imx6_bbu_internal_mmc_register_handler("mmc", "/dev/mmc2.boot0.barebox",
> + BBU_HANDLER_FLAG_DEFAULT);
> +
> + psci_set_putc(imx_uart_putc, IOMEM(MX7_UART5_BASE_ADDR));
> +
> + return 0;
> +}
> +mem_initcall(warp7_devices_init);
Shouldn't this be a device_initcall()? Using mem_initcall() for a
function that does nothing memory specific is a bit strange.
Kind regards,
Stefan Lengfeld
More information about the barebox
mailing list