diff options
Diffstat (limited to 'arch/arm/boards/phytec-som-imx6')
37 files changed, 281 insertions, 94 deletions
diff --git a/arch/arm/boards/phytec-som-imx6/Makefile b/arch/arm/boards/phytec-som-imx6/Makefile index 73456aed8b..0780da79b9 100644 --- a/arch/arm/boards/phytec-som-imx6/Makefile +++ b/arch/arm/boards/phytec-som-imx6/Makefile @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + obj-y += board.o lwl-y += lowlevel.o bbenv-y += defaultenv-physom-imx6 diff --git a/arch/arm/boards/phytec-som-imx6/board.c b/arch/arm/boards/phytec-som-imx6/board.c index 27a1ad4f66..2db3fa1db8 100644 --- a/arch/arm/boards/phytec-som-imx6/board.c +++ b/arch/arm/boards/phytec-som-imx6/board.c @@ -1,23 +1,9 @@ -/* - * Copyright (C) 2013 Sascha Hauer, Pengutronix - * Copyright (C) 2015 PHYTEC Messtechnik GmbH, - * Author: Stefan Christ <s.christ@phytec.de> - * - * 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. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation. - * - */ +// SPDX-License-Identifier: GPL-2.0-or-later +// SPDX-FileCopyrightText: 2013 Sascha Hauer, Pengutronix +// SPDX-FileCopyrightText: 2015 PHYTEC Messtechnik GmbH + +/* Author: Stefan Christ <s.christ@phytec.de> */ + #define pr_fmt(fmt) "phySOM-i.MX6: " fmt #include <malloc.h> @@ -28,16 +14,17 @@ #include <gpio.h> #include <init.h> #include <of.h> +#include <deep-probe.h> #include <i2c/i2c.h> -#include <mach/bbu.h> +#include <mach/imx/bbu.h> #include <platform_data/eth-fec.h> #include <mfd/imx6q-iomuxc-gpr.h> #include <linux/micrel_phy.h> #include <globalvar.h> -#include <mach/iomux-mx6.h> -#include <mach/imx6.h> +#include <mach/imx/iomux-mx6.h> +#include <mach/imx/imx6.h> #define PHYFLEX_MODULE_REV_1 0x1 #define PHYFLEX_MODULE_REV_2 0x2 @@ -120,10 +107,14 @@ static int phycore_da9062_setup_buck_mode(void) unsigned char value; int ret; - pmic_np = of_find_node_by_name(NULL, "pmic@58"); + pmic_np = of_find_node_by_name_address(NULL, "pmic@58"); if (!pmic_np) return -ENODEV; + ret = of_device_ensure_probed(pmic_np); + if (ret) + return ret; + adapter = of_find_i2c_adapter_by_node(pmic_np->parent); if (!adapter) return -ENODEV; @@ -155,15 +146,29 @@ err_out: return ret; } -static int physom_imx6_devices_init(void) +#define IS_PHYFLEX BIT(0) +#define IS_PHYCORE BIT(1) +#define IS_PHYCARD BIT(2) +#define IS_PHYCORE_UL BIT(3) +#define HAS_MMC3 BIT(4) +#define HAS_MMC1 BIT(5) + +struct board_data { + unsigned flags; +}; + +static int physom_imx6_probe(struct device *dev) { int ret; char *environment_path, *default_environment_path; char *envdev, *default_envdev; + const struct board_data *brd = device_get_match_data(dev); + unsigned flags = brd->flags; - if (of_machine_is_compatible("phytec,imx6q-pfla02") - || of_machine_is_compatible("phytec,imx6dl-pfla02") - || of_machine_is_compatible("phytec,imx6s-pfla02")) { + if (flags & IS_PHYFLEX) { + ret = of_devices_ensure_probed_by_property("gpio-controller"); + if (ret) + return ret; phyflex_err006282_workaround(); @@ -175,18 +180,17 @@ static int physom_imx6_devices_init(void) default_environment_path = "/chosen/environment-spinor"; default_envdev = "SPI NOR flash"; - } else if (of_machine_is_compatible("phytec,imx6q-pcaaxl3")) { + imx6_bbu_internal_mmc_register_handler("mmc2", + "/dev/mmc2", 0); + } else if (flags & IS_PHYCARD) { barebox_set_hostname("phyCARD-i.MX6"); default_environment_path = "/chosen/environment-nand"; default_envdev = "NAND flash"; - } else if (of_machine_is_compatible("phytec,imx6q-pcm058-nand") - || of_machine_is_compatible("phytec,imx6q-pcm058-emmc") - || of_machine_is_compatible("phytec,imx6dl-pcm058-nand") - || of_machine_is_compatible("phytec,imx6qp-pcm058-nand") - || of_machine_is_compatible("phytec,imx6dl-pcm058-emmc")) { - + imx6_bbu_internal_mmc_register_handler("mmc2", + "/dev/mmc2", 0); + } else if (flags & IS_PHYCORE) { if (phycore_da9062_setup_buck_mode()) pr_err("Setting PMIC BUCK mode failed\n"); @@ -194,8 +198,10 @@ static int physom_imx6_devices_init(void) default_environment_path = "/chosen/environment-spinor"; default_envdev = "SPI NOR flash"; - } else if (of_machine_is_compatible("phytec,imx6ul-pcl063-nand") - || of_machine_is_compatible("phytec,imx6ul-pcl063-emmc")) { + imx6_bbu_internal_mmc_register_handler("mmc0", + "/dev/mmc0", 0); + + } else if (flags & IS_PHYCORE_UL) { barebox_set_hostname("phyCORE-i.MX6UL"); default_environment_path = "/chosen/environment-nand"; default_envdev = "NAND flash"; @@ -203,8 +209,12 @@ static int physom_imx6_devices_init(void) phy_register_fixup_for_uid(PHY_ID_KSZ8081, MICREL_PHY_ID_MASK, ksz8081_phy_fixup); - } else - return 0; + imx6_bbu_internal_mmc_register_handler("mmc0", + "/dev/mmc0", 0); + + } else { + return -EINVAL; + } switch (bootsource_get()) { case BOOTSOURCE_MMC: @@ -221,7 +231,7 @@ static int physom_imx6_devices_init(void) envdev = "SPI NOR flash"; break; default: - environment_path = basprintf(default_environment_path); + environment_path = strdup(default_environment_path); envdev = default_envdev; break; } @@ -236,15 +246,18 @@ static int physom_imx6_devices_init(void) pr_notice("Using environment in %s\n", envdev); - if (of_machine_is_compatible("phytec,imx6q-pcm058-emmc") - || of_machine_is_compatible("phytec,imx6dl-pcm058-emmc")) { + if (flags & HAS_MMC3) { imx6_bbu_internal_mmc_register_handler("mmc3", "/dev/mmc3", BBU_HANDLER_FLAG_DEFAULT); - } else if (of_machine_is_compatible("phytec,imx6ul-pcl063-emmc")) { + imx6_bbu_internal_mmcboot_register_handler("mmc3-boot", + "mmc3", 0); + } else if (flags & HAS_MMC1) { imx6_bbu_internal_mmc_register_handler("mmc1", "/dev/mmc1", BBU_HANDLER_FLAG_DEFAULT); + imx6_bbu_internal_mmcboot_register_handler("mmc1-boot", + "mmc1", 0); } else { imx6_bbu_nand_register_handler("nand", BBU_HANDLER_FLAG_DEFAULT); } @@ -252,23 +265,107 @@ static int physom_imx6_devices_init(void) defaultenv_append_directory(defaultenv_physom_imx6); /* Overwrite file /env/init/automount */ - if (of_machine_is_compatible("phytec,imx6q-pfla02") - || of_machine_is_compatible("phytec,imx6dl-pfla02") - || of_machine_is_compatible("phytec,imx6s-pfla02") - || of_machine_is_compatible("phytec,imx6q-pcaaxl3")) { + if (flags & IS_PHYCARD || flags & IS_PHYFLEX) { defaultenv_append_directory(defaultenv_physom_imx6); - } else if (of_machine_is_compatible("phytec,imx6qp-pcm058-nand") - || of_machine_is_compatible("phytec,imx6q-pcm058-nand") - || of_machine_is_compatible("phytec,imx6q-pcm058-emmc") - || of_machine_is_compatible("phytec,imx6dl-pcm058-nand") - || of_machine_is_compatible("phytec,imx6dl-pcm058-emmc")) { + } else if (flags & IS_PHYCORE) { defaultenv_append_directory(defaultenv_physom_imx6); defaultenv_append_directory(defaultenv_physom_imx6_phycore); - } else if (of_machine_is_compatible("phytec,imx6ul-pcl063-nand") - || of_machine_is_compatible("phytec,imx6ul-pcl063-emmc")) { + } else if (flags & IS_PHYCORE_UL) { defaultenv_append_directory(defaultenv_physom_imx6ul_phycore); } return 0; } -device_initcall(physom_imx6_devices_init); + +static struct board_data imx6q_pfla02 = { + .flags = IS_PHYFLEX, +}; + +static struct board_data imx6dl_pfla02 = { + .flags = IS_PHYFLEX, +}; + +static struct board_data imx6s_pfla02 = { + .flags = IS_PHYFLEX, +}; + +static struct board_data imx6q_pcaaxl3 = { + .flags = IS_PHYCARD, +}; + +static struct board_data imx6q_pcm058_nand = { + .flags = IS_PHYCORE, +}; + +static struct board_data imx6q_pcm058_emmc = { + .flags = IS_PHYCORE | HAS_MMC3, +}; + +static struct board_data imx6dl_pcm058_nand = { + .flags = IS_PHYCORE, +}; + +static struct board_data imx6qp_pcm058_nand = { + .flags = IS_PHYCORE, +}; + +static struct board_data imx6dl_pcm058_emmc = { + .flags = IS_PHYCORE | HAS_MMC3, +}; + +static struct board_data imx6ul_pcl063_nand = { + .flags = IS_PHYCORE_UL, +}; + +static struct board_data imx6ul_pcl063_emmc = { + .flags = IS_PHYCORE_UL | HAS_MMC1, +}; + + +static const struct of_device_id physom_imx6_match[] = { + { + .compatible = "phytec,imx6q-pfla02", + .data = &imx6q_pfla02, + }, { + .compatible = "phytec,imx6dl-pfla02", + .data = &imx6dl_pfla02, + }, { + .compatible = "phytec,imx6s-pfla02", + .data = &imx6s_pfla02, + }, { + .compatible = "phytec,imx6q-pcaaxl3", + .data = &imx6q_pcaaxl3, + }, { + .compatible = "phytec,imx6q-pcm058-nand", + .data = &imx6q_pcm058_nand, + }, { + .compatible = "phytec,imx6q-pcm058-emmc", + .data = &imx6q_pcm058_emmc, + }, { + .compatible = "phytec,imx6dl-pcm058-nand", + .data = &imx6dl_pcm058_nand, + }, { + .compatible = "phytec,imx6qp-pcm058-nand", + .data = &imx6qp_pcm058_nand, + }, { + .compatible = "phytec,imx6dl-pcm058-emmc", + .data = &imx6dl_pcm058_emmc, + }, { + .compatible = "phytec,imx6ul-pcl063-nand", + .data = &imx6ul_pcl063_nand, + }, { + .compatible = "phytec,imx6ul-pcl063-emmc", + .data = &imx6ul_pcl063_emmc, + }, + { /* Sentinel */ }, +}; + +static struct driver physom_imx6_driver = { + .name = "physom-imx6", + .probe = physom_imx6_probe, + .of_compatible = physom_imx6_match, +}; + +postcore_platform_driver(physom_imx6_driver); + +BAREBOX_DEEP_PROBE_ENABLE(physom_imx6_match); diff --git a/arch/arm/boards/phytec-som-imx6/defaultenv-physom-imx6-phycore/init/bootsource b/arch/arm/boards/phytec-som-imx6/defaultenv-physom-imx6-phycore/init/bootsource index 515613b041..fa5f7f26c5 100644 --- a/arch/arm/boards/phytec-som-imx6/defaultenv-physom-imx6-phycore/init/bootsource +++ b/arch/arm/boards/phytec-som-imx6/defaultenv-physom-imx6-phycore/init/bootsource @@ -12,7 +12,7 @@ if [ $bootsource = mmc ]; then fi elif [ $bootsource = nand ]; then global.boot.default="nand spi emmc mmc net" -elif [ $bootsource = spi ]; then +elif [ $bootsource = spi-nor ]; then global.boot.default="spi nand emmc mmc net" elif [ $bootsource = net ]; then global.boot.default="net nand spi emmc mmc" diff --git a/arch/arm/boards/phytec-som-imx6/defaultenv-physom-imx6/boot/spi b/arch/arm/boards/phytec-som-imx6/defaultenv-physom-imx6/boot/spi index 2000a16a12..8fb71f569b 100644 --- a/arch/arm/boards/phytec-som-imx6/defaultenv-physom-imx6/boot/spi +++ b/arch/arm/boards/phytec-som-imx6/defaultenv-physom-imx6/boot/spi @@ -1,5 +1,5 @@ #!/bin/sh -global.bootm.image="/dev/m25p0.kernel" -global.bootm.oftree="/dev/m25p0.oftree" +global.bootm.image="/dev/m25p0.nor.kernel" +global.bootm.oftree="/dev/m25p0.nor.oftree" global.linux.bootargs.dyn.root="root=ubi0:root ubi.mtd=root rootfstype=ubifs rw" diff --git a/arch/arm/boards/phytec-som-imx6/defaultenv-physom-imx6/init/bootsource b/arch/arm/boards/phytec-som-imx6/defaultenv-physom-imx6/init/bootsource index 3f2ff4bcc8..9c9f0ec381 100644 --- a/arch/arm/boards/phytec-som-imx6/defaultenv-physom-imx6/init/bootsource +++ b/arch/arm/boards/phytec-som-imx6/defaultenv-physom-imx6/init/bootsource @@ -8,7 +8,7 @@ if [ $bootsource = mmc ]; then global.boot.default="mmc nand spi net" elif [ $bootsource = nand ]; then global.boot.default="nand spi mmc net" -elif [ $bootsource = spi ]; then +elif [ $bootsource = spi-nor ]; then global.boot.default="spi nand mmc net" elif [ $bootsource = net ]; then global.boot.default="net nand spi mmc" diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcaaxl3-1gib-1bank.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcaaxl3-1gib-1bank.imxcfg index 62a24ed0df..3b3e290fbe 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcaaxl3-1gib-1bank.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcaaxl3-1gib-1bank.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x54597955; \ @@ -7,3 +9,4 @@ wm 32 0x021b0000 0x831a0000 #include "flash-header-phytec-pcaaxl3.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcaaxl3-1gib.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcaaxl3-1gib.imxcfg index bab726d147..4c8c527043 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcaaxl3-1gib.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcaaxl3-1gib.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x3a3f7975; \ @@ -7,3 +9,4 @@ wm 32 0x021b0000 0xc21a0000 #include "flash-header-phytec-pcaaxl3.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcaaxl3-2gib.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcaaxl3-2gib.imxcfg index 512f6cbd47..a2f932e12a 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcaaxl3-2gib.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcaaxl3-2gib.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x54597955; \ @@ -7,3 +9,4 @@ wm 32 0x021b0000 0xc31a0000 #include "flash-header-phytec-pcaaxl3.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcaaxl3.h b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcaaxl3.h index 06ba308fb8..c6cd180176 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcaaxl3.h +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcaaxl3.h @@ -1,9 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + soc imx6 loadaddr 0x10000000 -dcdofs 0x400 +ivtofs 0x400 -#include <mach/imx6-ddr-regs.h> -#include <mach/imx6q-ddr-regs.h> +#include <mach/imx/imx6-ddr-regs.h> +#include <mach/imx/imx6q-ddr-regs.h> wm 32 MX6_IOM_DRAM_SDQS0 0x00000028 wm 32 MX6_IOM_DRAM_SDQS1 0x00000028 diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063-512mb.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063-512mb.h index c4122d245d..c7ee1aaeeb 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063-512mb.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063-512mb.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ #define SETUP_MDCFG0 \ wm 32 0x021B000C 0x676B52F3 diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063.h b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063.h index 5401e4243e..9847954693 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063.h +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063.h @@ -1,7 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ loadaddr 0x80000000 soc imx6 -dcdofs 0x400 +ivtofs 0x400 + +wm 32 0x020c8140 0x00580012 wm 32 0x020c4068 0xffffffff wm 32 0x020c406c 0xffffffff diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063ul-512mb.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063ul-512mb.imxcfg new file mode 100644 index 0000000000..1a987c2c1f --- /dev/null +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063ul-512mb.imxcfg @@ -0,0 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include "flash-header-phytec-pcl063-512mb.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063-256mb.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063ull-256mb.imxcfg index 4a827e4dfa..f519abf1a0 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063-256mb.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063ull-256mb.imxcfg @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0-only #define SETUP_MDCFG0 \ wm 32 0x021B000C 0x676B52F3 @@ -7,3 +8,4 @@ wm 32 0x021B0000 0x83180000 #include "flash-header-phytec-pcl063.h" +#include <mach/imx/habv4-imx6ull-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063ull-512mb.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063ull-512mb.imxcfg new file mode 100644 index 0000000000..6935bd2ef3 --- /dev/null +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcl063ull-512mb.imxcfg @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0-only + +#include "flash-header-phytec-pcl063-512mb.h" +#include <mach/imx/habv4-imx6ull-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058-1gib.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058-1gib.imxcfg index 5df46b9ff4..131e08cf4b 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058-1gib.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058-1gib.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x555A7955 @@ -6,3 +8,4 @@ wm 32 0x021b0000 0x831A0000 #include "flash-header-phytec-pcm058.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058-2gib.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058-2gib.imxcfg index 54c9e41d28..be638ab1c1 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058-2gib.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058-2gib.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x8c929b85 @@ -6,3 +8,4 @@ wm 32 0x021b0000 0x841A0000 #include "flash-header-phytec-pcm058.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058.h b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058.h index 8b83aeae63..eaa2a3da6e 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058.h +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058.h @@ -1,9 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + soc imx6 loadaddr 0x10000000 -dcdofs 0x400 +ivtofs 0x400 -#include <mach/imx6-ddr-regs.h> -#include <mach/imx6q-ddr-regs.h> +#include <mach/imx/imx6-ddr-regs.h> +#include <mach/imx/imx6q-ddr-regs.h> wm 32 MX6_IOM_GRP_DDR_TYPE 0x000C0000 wm 32 MX6_IOM_GRP_DDRPKE 0x00000000 diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl-1gib-32bit.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl-1gib-32bit.imxcfg index bf95d0f6ae..83f8480bfe 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl-1gib-32bit.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl-1gib-32bit.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x8c929b85 @@ -6,3 +8,4 @@ wm 32 0x021b0000 0x84190000 #include "flash-header-phytec-pcm058dl.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl-1gib.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl-1gib.imxcfg index f047253084..708e5bb21d 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl-1gib.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl-1gib.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x555A7955 @@ -6,3 +8,4 @@ wm 32 0x021b0000 0x831A0000 #include "flash-header-phytec-pcm058dl.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl-256mb.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl-256mb.imxcfg index bf50190c78..be3cd5a20d 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl-256mb.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl-256mb.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x3c409b85 @@ -6,3 +8,5 @@ wm 32 0x021b0000 0x82190000 #include "flash-header-phytec-pcm058dl.h" +#include <mach/imx/habv4-imx6-gencsf.h> + diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl-512mb.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl-512mb.imxcfg new file mode 100644 index 0000000000..4fcf36990d --- /dev/null +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl-512mb.imxcfg @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: GPL-2.0-only + +#define SETUP_MDCFG0 \ + wm 32 0x021b000c 0x3c409b85 + +#define SETUP_MDASP_MDCTL \ + wm 32 0x021b0040 0x00000017; \ + wm 32 0x021b0000 0x83190000 + +#include "flash-header-phytec-pcm058dl.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl.h b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl.h index da4708e4e3..2d90faad4c 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl.h +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058dl.h @@ -1,9 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + soc imx6 loadaddr 0x10000000 -dcdofs 0x400 +ivtofs 0x400 -#include <mach/imx6-ddr-regs.h> -#include <mach/imx6dl-ddr-regs.h> +#include <mach/imx/imx6-ddr-regs.h> +#include <mach/imx/imx6dl-ddr-regs.h> wm 32 MX6_IOM_GRP_DDR_TYPE 0x000C0000 wm 32 MX6_IOM_GRP_DDRPKE 0x00000000 diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058qp-1gib.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058qp-1gib.imxcfg index bf85f0a19c..e15d220428 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058qp-1gib.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058qp-1gib.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x555A7955 @@ -6,3 +8,4 @@ wm 32 0x021b0000 0x831A0000 #include "flash-header-phytec-pcm058qp.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058qp.h b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058qp.h index 6e7b740a6f..aae646e75c 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058qp.h +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pcm058qp.h @@ -1,6 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + soc imx6 loadaddr 0x10000000 -dcdofs 0x400 +ivtofs 0x400 /* NOC setup */ wm 32 0x00bb0008 0x00000000 diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-1gib-1bank.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-1gib-1bank.imxcfg index 75dc982432..48b1321b51 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-1gib-1bank.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-1gib-1bank.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x565c9b85 @@ -6,3 +8,4 @@ wm 32 0x021b0000 0x831a0000 #include "flash-header-phytec-pfla02.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-1gib.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-1gib.imxcfg index 1f1fbe542c..8bd6a83786 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-1gib.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-1gib.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x3c409b85 @@ -6,3 +8,4 @@ wm 32 0x021b0000 0xc21a0000 #include "flash-header-phytec-pfla02.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-2gib.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-2gib.imxcfg index aa01c056be..fe2fa2c637 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-2gib.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-2gib.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x565c9b85 @@ -6,3 +8,4 @@ wm 32 0x021b0000 0xC31A0000 #include "flash-header-phytec-pfla02.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-4gib.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-4gib.imxcfg index c8d33cfacc..6f8645c4e6 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-4gib.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-4gib.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x8c929b85 @@ -6,3 +8,4 @@ wm 32 0x021b0000 0xC41A0000 #include "flash-header-phytec-pfla02.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-512mb-1bank.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-512mb-1bank.imxcfg index d6bbe1f1c3..edafe2d47c 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-512mb-1bank.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02-512mb-1bank.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x555a7975 @@ -6,3 +8,4 @@ wm 32 0x021b0000 0x821a0000 #include "flash-header-phytec-pfla02.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02.h b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02.h index c5ed9b759f..26a9341dda 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02.h +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02.h @@ -1,9 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + soc imx6 loadaddr 0x10000000 -dcdofs 0x400 +ivtofs 0x400 -#include <mach/imx6-ddr-regs.h> -#include <mach/imx6q-ddr-regs.h> +#include <mach/imx/imx6-ddr-regs.h> +#include <mach/imx/imx6q-ddr-regs.h> wm 32 MX6_IOM_GRP_DDR_TYPE 0x000C0000 wm 32 MX6_IOM_GRP_DDRPKE 0x00000000 diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02dl-1gib-1bank.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02dl-1gib-1bank.imxcfg index 7b64e5d2fd..553ba8d40a 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02dl-1gib-1bank.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02dl-1gib-1bank.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x41447525 @@ -6,3 +8,4 @@ wm 32 0x021b0000 0x831a0000 #include "flash-header-phytec-pfla02dl.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02dl-1gib.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02dl-1gib.imxcfg index 04c489d7e8..5c37061853 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02dl-1gib.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02dl-1gib.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x2d307525 @@ -6,3 +8,4 @@ wm 32 0x021b0000 0xc21a0000 #include "flash-header-phytec-pfla02dl.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02dl.h b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02dl.h index b0f3faa0b7..537a93eda9 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02dl.h +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02dl.h @@ -1,9 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + soc imx6 loadaddr 0x10000000 -dcdofs 0x400 +ivtofs 0x400 -#include <mach/imx6-ddr-regs.h> -#include <mach/imx6dl-ddr-regs.h> +#include <mach/imx/imx6-ddr-regs.h> +#include <mach/imx/imx6dl-ddr-regs.h> wm 32 MX6_IOM_GRP_DDR_TYPE 0x000C0000 wm 32 MX6_IOM_GRP_DDRPKE 0x00000000 diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02s-128mb-1bank.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02s-128mb-1bank.imxcfg index ebe5a968b1..331692af49 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02s-128mb-1bank.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02s-128mb-1bank.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x2D307525 @@ -6,3 +8,4 @@ wm 32 0x021b0000 0x82180000 #include "flash-header-phytec-pfla02dl.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02s-256mb-1bank.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02s-256mb-1bank.imxcfg index 5f1585a40b..bd830865ec 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02s-256mb-1bank.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02s-256mb-1bank.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x2D307525 @@ -6,3 +8,4 @@ wm 32 0x021b0000 0x82190000 #include "flash-header-phytec-pfla02dl.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02s-512mb-1bank.imxcfg b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02s-512mb-1bank.imxcfg index 5ff3ec69d7..7e57e7cd9e 100644 --- a/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02s-512mb-1bank.imxcfg +++ b/arch/arm/boards/phytec-som-imx6/flash-header-phytec-pfla02s-512mb-1bank.imxcfg @@ -1,3 +1,5 @@ +# SPDX-License-Identifier: GPL-2.0-only + #define SETUP_MDCFG0 \ wm 32 0x021b000c 0x41447525 @@ -6,3 +8,4 @@ wm 32 0x021b0000 0x83190000 #include "flash-header-phytec-pfla02dl.h" +#include <mach/imx/habv4-imx6-gencsf.h> diff --git a/arch/arm/boards/phytec-som-imx6/lowlevel.c b/arch/arm/boards/phytec-som-imx6/lowlevel.c index 2de84169c6..da5665a716 100644 --- a/arch/arm/boards/phytec-som-imx6/lowlevel.c +++ b/arch/arm/boards/phytec-som-imx6/lowlevel.c @@ -1,20 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +// SPDX-FileCopyrightText: 2013 Sascha Hauer <s.hauer@pengutronix.de> +// SPDX-FileCopyrightText: 2015 PHYTEC Messtechnik GmbH + /* - * Copyright (C) 2013 Sascha Hauer <s.hauer@pengutronix.de> - * Copyright (C) 2015 PHYTEC Messtechnik GmbH, * Author: Stefan Christ <s.christ@phytec.de> - * - * 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 <debug_ll.h> +#include <mach/imx/debug_ll.h> #include <common.h> #include <linux/sizes.h> #include <io.h> @@ -24,7 +16,7 @@ #include <asm/sections.h> #include <asm/cache.h> #include <asm/mmu.h> -#include <mach/imx6.h> +#include <mach/imx/imx6.h> static inline void setup_uart(void) { @@ -84,15 +76,14 @@ static void __noreturn start_imx6_phytec_common(uint32_t size, extern char __dtb_##fdt_name##_start[]; \ \ IMD_USED(physom_mx6_memsize_##memory_size); \ - IMD_USED_OF(fdt_name); \ \ start_imx6_phytec_common(memory_size, do_early_uart_config, \ __dtb_##fdt_name##_start); \ } -PHYTEC_ENTRY(start_phytec_pbaa03_1gib, imx6q_phytec_pbaa03, SZ_1G, true); -PHYTEC_ENTRY(start_phytec_pbaa03_1gib_1bank, imx6q_phytec_pbaa03, SZ_1G, true); -PHYTEC_ENTRY(start_phytec_pbaa03_2gib, imx6q_phytec_pbaa03, SZ_2G, true); +PHYTEC_ENTRY(start_phytec_phycard_imx6q_1gib, imx6q_phytec_phycard, SZ_1G, true); +PHYTEC_ENTRY(start_phytec_phycard_imx6q_1gib_1bank, imx6q_phytec_phycard, SZ_1G, true); +PHYTEC_ENTRY(start_phytec_phycard_imx6q_2gib, imx6q_phytec_phycard, SZ_2G, true); PHYTEC_ENTRY(start_phytec_pbab01_512mb_1bank, imx6q_phytec_pbab01, SZ_512M, true); PHYTEC_ENTRY(start_phytec_pbab01_1gib, imx6q_phytec_pbab01, SZ_1G, true); @@ -111,6 +102,7 @@ PHYTEC_ENTRY(start_phytec_phyboard_subra_1gib_1bank, imx6q_phytec_phyboard_subra PHYTEC_ENTRY(start_phytec_phycore_imx6dl_som_nand_256mb, imx6dl_phytec_phycore_som_nand, SZ_256M, true); PHYTEC_ENTRY(start_phytec_phycore_imx6dl_som_lc_nand_256mb, imx6dl_phytec_phycore_som_lc_nand, SZ_256M, true); PHYTEC_ENTRY(start_phytec_phycore_imx6dl_som_nand_1gib, imx6dl_phytec_phycore_som_nand, SZ_1G, true); +PHYTEC_ENTRY(start_phytec_phycore_imx6dl_som_emmc_512mb, imx6dl_phytec_phycore_som_emmc, SZ_512M, true); PHYTEC_ENTRY(start_phytec_phycore_imx6dl_som_emmc_1gib, imx6dl_phytec_phycore_som_emmc, SZ_1G, true); PHYTEC_ENTRY(start_phytec_phycore_imx6dl_som_lc_emmc_1gib, imx6dl_phytec_phycore_som_lc_emmc, SZ_1G, true); PHYTEC_ENTRY(start_phytec_phycore_imx6q_som_nand_1gib, imx6q_phytec_phycore_som_nand, SZ_1G, true); @@ -118,6 +110,7 @@ PHYTEC_ENTRY(start_phytec_phycore_imx6qp_som_nand_1gib, imx6qp_phytec_phycore_so PHYTEC_ENTRY(start_phytec_phycore_imx6q_som_emmc_1gib, imx6q_phytec_phycore_som_emmc, SZ_1G, true); PHYTEC_ENTRY(start_phytec_phycore_imx6q_som_emmc_2gib, imx6q_phytec_phycore_som_emmc, SZ_2G, true); +PHYTEC_ENTRY(start_phytec_phycore_imx6ul_som_emmc_512mb, imx6ul_phytec_phycore_som_emmc, SZ_512M, false); PHYTEC_ENTRY(start_phytec_phycore_imx6ul_som_nand_512mb, imx6ul_phytec_phycore_som_nand, SZ_512M, false); PHYTEC_ENTRY(start_phytec_phycore_imx6ull_som_lc_nand_256mb, imx6ull_phytec_phycore_som_lc_nand, SZ_256M, false); PHYTEC_ENTRY(start_phytec_phycore_imx6ull_som_nand_512mb, imx6ull_phytec_phycore_som_nand, SZ_512M, false); |