* [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support
@ 2016-12-13 16:56 Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 01/16] arm: dts: Add devicetree for i.MX6UL Jagan Teki
` (16 more replies)
0 siblings, 17 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:56 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
This is v4 for previous v3, v2 series[1] [2] on top of [3] series
Changes for v4:
- Add FEC patches.
Changes for v3:
- Add I2C support
Changes for v2:
- Add 'Acked-by' from Joe
- Add new i.CoreM6 RQS patches
[1] https://www.mail-archive.com/u-boot at lists.denx.de/msg230990.html
[2] https://www.mail-archive.com/u-boot at lists.denx.de/msg230283.html
[3] [PATCH v3 00/13] imx6: icorem6: Add dm-eth, framebuffer and I2C support
Jagan Teki (16):
arm: dts: Add devicetree for i.MX6UL
arm: imx6ul: Add Engicam GEAM6UL Starter Kit initial support
arm: dts: imx6ul-geam: Add I2C nodes
imx6: geam6ul: Add I2C support
imx6: geam6ul: Add NAND support
imx6: geam6ul: Enable MTD device support
imx6: geam6ul: Add default mtd nand partition table
arm: imx6q: Add Engicam i.CoreM6 Quad/Dual RQS Starter Kit initial
support
arm: imx6q: Add Engicam i.CoreM6 Solo/Duallite RQS Starter Kit initial
support
imx6: icorem6: Rename engicam icorem6 defconfig files
arm: dts: imx6qdl-icore-rqs: Add I2C node's
imx6: icorem6_rqs: Add I2C support
arm: dts: imx6ul-geam: Add FEC node
imx6: geam6ul: Add FEC support
arm: dts: imx6qdl-icore-rqs: Add FEC node
imx6: icorem6_rqs: Add FEC support
arch/arm/cpu/armv7/mx6/Kconfig | 26 +
arch/arm/dts/Makefile | 5 +-
arch/arm/dts/imx6dl-icore-rqs.dts | 50 ++
arch/arm/dts/imx6q-icore-rqs.dts | 50 ++
arch/arm/dts/imx6qdl-icore-rqs.dtsi | 170 ++++
arch/arm/dts/imx6ul-geam-kit.dts | 168 ++++
arch/arm/dts/imx6ul.dtsi | 942 +++++++++++++++++++++
board/engicam/geam6ul/Kconfig | 12 +
board/engicam/geam6ul/MAINTAINERS | 6 +
board/engicam/geam6ul/Makefile | 6 +
board/engicam/geam6ul/README | 28 +
board/engicam/geam6ul/geam6ul.c | 317 +++++++
board/engicam/icorem6/MAINTAINERS | 6 +-
board/engicam/icorem6/README | 19 +-
board/engicam/icorem6_rqs/Kconfig | 12 +
board/engicam/icorem6_rqs/MAINTAINERS | 7 +
board/engicam/icorem6_rqs/Makefile | 6 +
board/engicam/icorem6_rqs/README | 33 +
board/engicam/icorem6_rqs/icorem6_rqs.c | 399 +++++++++
...re_mmc_defconfig => imx6dl_icore_mmc_defconfig} | 0
..._nand_defconfig => imx6dl_icore_nand_defconfig} | 0
configs/imx6dl_icore_rqs_mmc_defconfig | 43 +
configs/imx6q_icore_mmc_defconfig | 46 +
configs/imx6q_icore_nand_defconfig | 41 +
configs/imx6q_icore_rqs_mmc_defconfig | 43 +
configs/imx6ul_geam_mmc_defconfig | 44 +
configs/imx6ul_geam_nand_defconfig | 37 +
include/configs/imx6qdl_icore_rqs.h | 135 +++
include/configs/imx6ul_geam.h | 165 ++++
include/dt-bindings/clock/imx6ul-clock.h | 1 +
30 files changed, 2802 insertions(+), 15 deletions(-)
create mode 100644 arch/arm/dts/imx6dl-icore-rqs.dts
create mode 100644 arch/arm/dts/imx6q-icore-rqs.dts
create mode 100644 arch/arm/dts/imx6qdl-icore-rqs.dtsi
create mode 100644 arch/arm/dts/imx6ul-geam-kit.dts
create mode 100644 arch/arm/dts/imx6ul.dtsi
create mode 100644 board/engicam/geam6ul/Kconfig
create mode 100644 board/engicam/geam6ul/MAINTAINERS
create mode 100644 board/engicam/geam6ul/Makefile
create mode 100644 board/engicam/geam6ul/README
create mode 100644 board/engicam/geam6ul/geam6ul.c
create mode 100644 board/engicam/icorem6_rqs/Kconfig
create mode 100644 board/engicam/icorem6_rqs/MAINTAINERS
create mode 100644 board/engicam/icorem6_rqs/Makefile
create mode 100644 board/engicam/icorem6_rqs/README
create mode 100644 board/engicam/icorem6_rqs/icorem6_rqs.c
rename configs/{imx6qdl_icore_mmc_defconfig => imx6dl_icore_mmc_defconfig} (100%)
rename configs/{imx6qdl_icore_nand_defconfig => imx6dl_icore_nand_defconfig} (100%)
create mode 100644 configs/imx6dl_icore_rqs_mmc_defconfig
create mode 100644 configs/imx6q_icore_mmc_defconfig
create mode 100644 configs/imx6q_icore_nand_defconfig
create mode 100644 configs/imx6q_icore_rqs_mmc_defconfig
create mode 100644 configs/imx6ul_geam_mmc_defconfig
create mode 100644 configs/imx6ul_geam_nand_defconfig
create mode 100644 include/configs/imx6qdl_icore_rqs.h
create mode 100644 include/configs/imx6ul_geam.h
--
1.9.1
^ permalink raw reply [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 01/16] arm: dts: Add devicetree for i.MX6UL
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
@ 2016-12-13 16:56 ` Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 02/16] arm: imx6ul: Add Engicam GEAM6UL Starter Kit initial support Jagan Teki
` (15 subsequent siblings)
16 siblings, 0 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:56 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
Add i.MX6UL dtsi support from Linux.
Here is the last commit:
"ARM: dts: add gpio-ranges property to iMX GPIO controllers"
(sha1: bb728d662bed0fe91b152550e640cb3f6caa972c)
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
arch/arm/dts/imx6ul.dtsi | 942 +++++++++++++++++++++++++++++++
include/dt-bindings/clock/imx6ul-clock.h | 1 +
2 files changed, 943 insertions(+)
create mode 100644 arch/arm/dts/imx6ul.dtsi
diff --git a/arch/arm/dts/imx6ul.dtsi b/arch/arm/dts/imx6ul.dtsi
new file mode 100644
index 0000000..c5c05fd
--- /dev/null
+++ b/arch/arm/dts/imx6ul.dtsi
@@ -0,0 +1,942 @@
+/*
+ * Copyright 2015 Freescale Semiconductor, Inc.
+ *
+ * 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 <dt-bindings/clock/imx6ul-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include "imx6ul-pinfunc.h"
+#include "skeleton.dtsi"
+
+/ {
+ aliases {
+ ethernet0 = &fec1;
+ ethernet1 = &fec2;
+ gpio0 = &gpio1;
+ gpio1 = &gpio2;
+ gpio2 = &gpio3;
+ gpio3 = &gpio4;
+ gpio4 = &gpio5;
+ i2c0 = &i2c1;
+ i2c1 = &i2c2;
+ i2c2 = &i2c3;
+ i2c3 = &i2c4;
+ mmc0 = &usdhc1;
+ mmc1 = &usdhc2;
+ serial0 = &uart1;
+ serial1 = &uart2;
+ serial2 = &uart3;
+ serial3 = &uart4;
+ serial4 = &uart5;
+ serial5 = &uart6;
+ serial6 = &uart7;
+ serial7 = &uart8;
+ sai1 = &sai1;
+ sai2 = &sai2;
+ sai3 = &sai3;
+ spi0 = &ecspi1;
+ spi1 = &ecspi2;
+ spi2 = &ecspi3;
+ spi3 = &ecspi4;
+ usbphy0 = &usbphy1;
+ usbphy1 = &usbphy2;
+ };
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu0: cpu at 0 {
+ compatible = "arm,cortex-a7";
+ device_type = "cpu";
+ reg = <0>;
+ clock-latency = <61036>; /* two CLK32 periods */
+ operating-points = <
+ /* kHz uV */
+ 528000 1175000
+ 396000 1025000
+ 198000 950000
+ >;
+ fsl,soc-operating-points = <
+ /* KHz uV */
+ 528000 1175000
+ 396000 1175000
+ 198000 1175000
+ >;
+ clocks = <&clks IMX6UL_CLK_ARM>,
+ <&clks IMX6UL_CLK_PLL2_BUS>,
+ <&clks IMX6UL_CLK_PLL2_PFD2>,
+ <&clks IMX6UL_CA7_SECONDARY_SEL>,
+ <&clks IMX6UL_CLK_STEP>,
+ <&clks IMX6UL_CLK_PLL1_SW>,
+ <&clks IMX6UL_CLK_PLL1_SYS>,
+ <&clks IMX6UL_PLL1_BYPASS>,
+ <&clks IMX6UL_CLK_PLL1>,
+ <&clks IMX6UL_PLL1_BYPASS_SRC>,
+ <&clks IMX6UL_CLK_OSC>;
+ clock-names = "arm", "pll2_bus", "pll2_pfd2_396m",
+ "secondary_sel", "step", "pll1_sw",
+ "pll1_sys", "pll1_bypass", "pll1",
+ "pll1_bypass_src", "osc";
+ arm-supply = <®_arm>;
+ soc-supply = <®_soc>;
+ };
+ };
+
+ intc: interrupt-controller at 00a01000 {
+ compatible = "arm,cortex-a7-gic";
+ #interrupt-cells = <3>;
+ interrupt-controller;
+ reg = <0x00a01000 0x1000>,
+ <0x00a02000 0x1000>,
+ <0x00a04000 0x2000>,
+ <0x00a06000 0x2000>;
+ };
+
+ ckil: clock-cli {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <32768>;
+ clock-output-names = "ckil";
+ };
+
+ osc: clock-osc {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <24000000>;
+ clock-output-names = "osc";
+ };
+
+ ipp_di0: clock-di0 {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <0>;
+ clock-output-names = "ipp_di0";
+ };
+
+ ipp_di1: clock-di1 {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <0>;
+ clock-output-names = "ipp_di1";
+ };
+
+ soc {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "simple-bus";
+ interrupt-parent = <&gpc>;
+ ranges;
+
+ pmu {
+ compatible = "arm,cortex-a7-pmu";
+ interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+ status = "disabled";
+ };
+
+ ocram: sram at 00900000 {
+ compatible = "mmio-sram";
+ reg = <0x00900000 0x20000>;
+ };
+
+ dma_apbh: dma-apbh at 01804000 {
+ compatible = "fsl,imx6q-dma-apbh", "fsl,imx28-dma-apbh";
+ reg = <0x01804000 0x2000>;
+ interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>,
+ <0 13 IRQ_TYPE_LEVEL_HIGH>,
+ <0 13 IRQ_TYPE_LEVEL_HIGH>,
+ <0 13 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "gpmi0", "gpmi1", "gpmi2", "gpmi3";
+ #dma-cells = <1>;
+ dma-channels = <4>;
+ clocks = <&clks IMX6UL_CLK_APBHDMA>;
+ };
+
+ gpmi: gpmi-nand at 01806000 {
+ compatible = "fsl,imx6q-gpmi-nand";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0x01806000 0x2000>, <0x01808000 0x2000>;
+ reg-names = "gpmi-nand", "bch";
+ interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "bch";
+ clocks = <&clks IMX6UL_CLK_GPMI_IO>,
+ <&clks IMX6UL_CLK_GPMI_APB>,
+ <&clks IMX6UL_CLK_GPMI_BCH>,
+ <&clks IMX6UL_CLK_GPMI_BCH_APB>,
+ <&clks IMX6UL_CLK_PER_BCH>;
+ clock-names = "gpmi_io", "gpmi_apb", "gpmi_bch",
+ "gpmi_bch_apb", "per1_bch";
+ dmas = <&dma_apbh 0>;
+ dma-names = "rx-tx";
+ status = "disabled";
+ };
+
+ aips1: aips-bus at 02000000 {
+ compatible = "fsl,aips-bus", "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0x02000000 0x100000>;
+ ranges;
+
+ spba-bus at 02000000 {
+ compatible = "fsl,spba-bus", "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0x02000000 0x40000>;
+ ranges;
+
+ ecspi1: ecspi at 02008000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
+ reg = <0x02008000 0x4000>;
+ interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_ECSPI1>,
+ <&clks IMX6UL_CLK_ECSPI1>;
+ clock-names = "ipg", "per";
+ status = "disabled";
+ };
+
+ ecspi2: ecspi at 0200c000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
+ reg = <0x0200c000 0x4000>;
+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_ECSPI2>,
+ <&clks IMX6UL_CLK_ECSPI2>;
+ clock-names = "ipg", "per";
+ status = "disabled";
+ };
+
+ ecspi3: ecspi at 02010000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
+ reg = <0x02010000 0x4000>;
+ interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_ECSPI3>,
+ <&clks IMX6UL_CLK_ECSPI3>;
+ clock-names = "ipg", "per";
+ status = "disabled";
+ };
+
+ ecspi4: ecspi at 02014000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "fsl,imx6ul-ecspi", "fsl,imx51-ecspi";
+ reg = <0x02014000 0x4000>;
+ interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_ECSPI4>,
+ <&clks IMX6UL_CLK_ECSPI4>;
+ clock-names = "ipg", "per";
+ status = "disabled";
+ };
+
+ uart7: serial at 02018000 {
+ compatible = "fsl,imx6ul-uart",
+ "fsl,imx6q-uart";
+ reg = <0x02018000 0x4000>;
+ interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_UART7_IPG>,
+ <&clks IMX6UL_CLK_UART7_SERIAL>;
+ clock-names = "ipg", "per";
+ status = "disabled";
+ };
+
+ uart1: serial at 02020000 {
+ compatible = "fsl,imx6ul-uart",
+ "fsl,imx6q-uart";
+ reg = <0x02020000 0x4000>;
+ interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_UART1_IPG>,
+ <&clks IMX6UL_CLK_UART1_SERIAL>;
+ clock-names = "ipg", "per";
+ status = "disabled";
+ };
+
+ uart8: serial at 02024000 {
+ compatible = "fsl,imx6ul-uart",
+ "fsl,imx6q-uart";
+ reg = <0x02024000 0x4000>;
+ interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_UART8_IPG>,
+ <&clks IMX6UL_CLK_UART8_SERIAL>;
+ clock-names = "ipg", "per";
+ status = "disabled";
+ };
+
+ sai1: sai at 02028000 {
+ #sound-dai-cells = <0>;
+ compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai";
+ reg = <0x02028000 0x4000>;
+ interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_SAI1_IPG>,
+ <&clks IMX6UL_CLK_SAI1>,
+ <&clks IMX6UL_CLK_DUMMY>, <&clks IMX6UL_CLK_DUMMY>;
+ clock-names = "bus", "mclk1", "mclk2", "mclk3";
+ dmas = <&sdma 35 24 0>,
+ <&sdma 36 24 0>;
+ dma-names = "rx", "tx";
+ status = "disabled";
+ };
+
+ sai2: sai at 0202c000 {
+ #sound-dai-cells = <0>;
+ compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai";
+ reg = <0x0202c000 0x4000>;
+ interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_SAI2_IPG>,
+ <&clks IMX6UL_CLK_SAI2>,
+ <&clks IMX6UL_CLK_DUMMY>, <&clks IMX6UL_CLK_DUMMY>;
+ clock-names = "bus", "mclk1", "mclk2", "mclk3";
+ dmas = <&sdma 37 24 0>,
+ <&sdma 38 24 0>;
+ dma-names = "rx", "tx";
+ status = "disabled";
+ };
+
+ sai3: sai at 02030000 {
+ #sound-dai-cells = <0>;
+ compatible = "fsl,imx6ul-sai", "fsl,imx6sx-sai";
+ reg = <0x02030000 0x4000>;
+ interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_SAI3_IPG>,
+ <&clks IMX6UL_CLK_SAI3>,
+ <&clks IMX6UL_CLK_DUMMY>, <&clks IMX6UL_CLK_DUMMY>;
+ clock-names = "bus", "mclk1", "mclk2", "mclk3";
+ dmas = <&sdma 39 24 0>,
+ <&sdma 40 24 0>;
+ dma-names = "rx", "tx";
+ status = "disabled";
+ };
+ };
+
+ tsc: tsc at 02040000 {
+ compatible = "fsl,imx6ul-tsc";
+ reg = <0x02040000 0x4000>, <0x0219c000 0x4000>;
+ interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_IPG>,
+ <&clks IMX6UL_CLK_ADC2>;
+ clock-names = "tsc", "adc";
+ status = "disabled";
+ };
+
+ pwm1: pwm at 02080000 {
+ compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
+ reg = <0x02080000 0x4000>;
+ interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_PWM1>,
+ <&clks IMX6UL_CLK_PWM1>;
+ clock-names = "ipg", "per";
+ #pwm-cells = <2>;
+ status = "disabled";
+ };
+
+ pwm2: pwm at 02084000 {
+ compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
+ reg = <0x02084000 0x4000>;
+ interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_PWM2>,
+ <&clks IMX6UL_CLK_PWM2>;
+ clock-names = "ipg", "per";
+ #pwm-cells = <2>;
+ status = "disabled";
+ };
+
+ pwm3: pwm at 02088000 {
+ compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
+ reg = <0x02088000 0x4000>;
+ interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_PWM3>,
+ <&clks IMX6UL_CLK_PWM3>;
+ clock-names = "ipg", "per";
+ #pwm-cells = <2>;
+ status = "disabled";
+ };
+
+ pwm4: pwm at 0208c000 {
+ compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
+ reg = <0x0208c000 0x4000>;
+ interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_PWM4>,
+ <&clks IMX6UL_CLK_PWM4>;
+ clock-names = "ipg", "per";
+ #pwm-cells = <2>;
+ status = "disabled";
+ };
+
+ can1: flexcan at 02090000 {
+ compatible = "fsl,imx6ul-flexcan", "fsl,imx6q-flexcan";
+ reg = <0x02090000 0x4000>;
+ interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_CAN1_IPG>,
+ <&clks IMX6UL_CLK_CAN1_SERIAL>;
+ clock-names = "ipg", "per";
+ status = "disabled";
+ };
+
+ can2: flexcan at 02094000 {
+ compatible = "fsl,imx6ul-flexcan", "fsl,imx6q-flexcan";
+ reg = <0x02094000 0x4000>;
+ interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_CAN2_IPG>,
+ <&clks IMX6UL_CLK_CAN2_SERIAL>;
+ clock-names = "ipg", "per";
+ status = "disabled";
+ };
+
+ gpt1: gpt at 02098000 {
+ compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt";
+ reg = <0x02098000 0x4000>;
+ interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_GPT1_BUS>,
+ <&clks IMX6UL_CLK_GPT1_SERIAL>;
+ clock-names = "ipg", "per";
+ };
+
+ gpio1: gpio at 0209c000 {
+ compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
+ reg = <0x0209c000 0x4000>;
+ interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ gpio-ranges = <&iomuxc 0 23 10>, <&iomuxc 10 17 6>,
+ <&iomuxc 16 33 16>;
+ };
+
+ gpio2: gpio at 020a0000 {
+ compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
+ reg = <0x020a0000 0x4000>;
+ interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ gpio-ranges = <&iomuxc 0 49 16>, <&iomuxc 16 111 6>;
+ };
+
+ gpio3: gpio at 020a4000 {
+ compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
+ reg = <0x020a4000 0x4000>;
+ interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ gpio-ranges = <&iomuxc 0 65 29>;
+ };
+
+ gpio4: gpio at 020a8000 {
+ compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
+ reg = <0x020a8000 0x4000>;
+ interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ gpio-ranges = <&iomuxc 0 94 17>, <&iomuxc 17 117 12>;
+ };
+
+ gpio5: gpio at 020ac000 {
+ compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
+ reg = <0x020ac000 0x4000>;
+ interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ gpio-ranges = <&iomuxc 0 7 10>, <&iomuxc 10 5 2>;
+ };
+
+ fec2: ethernet at 020b4000 {
+ compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";
+ reg = <0x020b4000 0x4000>;
+ interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_ENET>,
+ <&clks IMX6UL_CLK_ENET_AHB>,
+ <&clks IMX6UL_CLK_ENET_PTP>,
+ <&clks IMX6UL_CLK_ENET2_REF_125M>,
+ <&clks IMX6UL_CLK_ENET2_REF_125M>;
+ clock-names = "ipg", "ahb", "ptp",
+ "enet_clk_ref", "enet_out";
+ fsl,num-tx-queues=<1>;
+ fsl,num-rx-queues=<1>;
+ status = "disabled";
+ };
+
+ kpp: kpp at 020b8000 {
+ compatible = "fsl,imx6ul-kpp", "fsl,imx6q-kpp", "fsl,imx21-kpp";
+ reg = <0x020b8000 0x4000>;
+ interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_KPP>;
+ status = "disabled";
+ };
+
+ wdog1: wdog at 020bc000 {
+ compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt";
+ reg = <0x020bc000 0x4000>;
+ interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_WDOG1>;
+ };
+
+ wdog2: wdog at 020c0000 {
+ compatible = "fsl,imx6ul-wdt", "fsl,imx21-wdt";
+ reg = <0x020c0000 0x4000>;
+ interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_WDOG2>;
+ status = "disabled";
+ };
+
+ clks: ccm at 020c4000 {
+ compatible = "fsl,imx6ul-ccm";
+ reg = <0x020c4000 0x4000>;
+ interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
+ #clock-cells = <1>;
+ clocks = <&ckil>, <&osc>, <&ipp_di0>, <&ipp_di1>;
+ clock-names = "ckil", "osc", "ipp_di0", "ipp_di1";
+ };
+
+ anatop: anatop at 020c8000 {
+ compatible = "fsl,imx6ul-anatop", "fsl,imx6q-anatop",
+ "syscon", "simple-bus";
+ reg = <0x020c8000 0x1000>;
+ interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
+
+ reg_3p0: regulator-3p0 {
+ compatible = "fsl,anatop-regulator";
+ regulator-name = "vdd3p0";
+ regulator-min-microvolt = <2625000>;
+ regulator-max-microvolt = <3400000>;
+ anatop-reg-offset = <0x120>;
+ anatop-vol-bit-shift = <8>;
+ anatop-vol-bit-width = <5>;
+ anatop-min-bit-val = <0>;
+ anatop-min-voltage = <2625000>;
+ anatop-max-voltage = <3400000>;
+ anatop-enable-bit = <0>;
+ };
+
+ reg_arm: regulator-vddcore {
+ compatible = "fsl,anatop-regulator";
+ regulator-name = "cpu";
+ regulator-min-microvolt = <725000>;
+ regulator-max-microvolt = <1450000>;
+ regulator-always-on;
+ anatop-reg-offset = <0x140>;
+ anatop-vol-bit-shift = <0>;
+ anatop-vol-bit-width = <5>;
+ anatop-delay-reg-offset = <0x170>;
+ anatop-delay-bit-shift = <24>;
+ anatop-delay-bit-width = <2>;
+ anatop-min-bit-val = <1>;
+ anatop-min-voltage = <725000>;
+ anatop-max-voltage = <1450000>;
+ };
+
+ reg_soc: regulator-vddsoc {
+ compatible = "fsl,anatop-regulator";
+ regulator-name = "vddsoc";
+ regulator-min-microvolt = <725000>;
+ regulator-max-microvolt = <1450000>;
+ regulator-always-on;
+ anatop-reg-offset = <0x140>;
+ anatop-vol-bit-shift = <18>;
+ anatop-vol-bit-width = <5>;
+ anatop-delay-reg-offset = <0x170>;
+ anatop-delay-bit-shift = <28>;
+ anatop-delay-bit-width = <2>;
+ anatop-min-bit-val = <1>;
+ anatop-min-voltage = <725000>;
+ anatop-max-voltage = <1450000>;
+ };
+ };
+
+ usbphy1: usbphy at 020c9000 {
+ compatible = "fsl,imx6ul-usbphy", "fsl,imx23-usbphy";
+ reg = <0x020c9000 0x1000>;
+ interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_USBPHY1>;
+ phy-3p0-supply = <®_3p0>;
+ fsl,anatop = <&anatop>;
+ };
+
+ usbphy2: usbphy at 020ca000 {
+ compatible = "fsl,imx6ul-usbphy", "fsl,imx23-usbphy";
+ reg = <0x020ca000 0x1000>;
+ interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_USBPHY2>;
+ phy-3p0-supply = <®_3p0>;
+ fsl,anatop = <&anatop>;
+ };
+
+ snvs: snvs at 020cc000 {
+ compatible = "fsl,sec-v4.0-mon", "syscon", "simple-mfd";
+ reg = <0x020cc000 0x4000>;
+
+ snvs_rtc: snvs-rtc-lp {
+ compatible = "fsl,sec-v4.0-mon-rtc-lp";
+ regmap = <&snvs>;
+ offset = <0x34>;
+ interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ snvs_poweroff: snvs-poweroff {
+ compatible = "syscon-poweroff";
+ regmap = <&snvs>;
+ offset = <0x38>;
+ mask = <0x60>;
+ status = "disabled";
+ };
+
+ snvs_pwrkey: snvs-powerkey {
+ compatible = "fsl,sec-v4.0-pwrkey";
+ regmap = <&snvs>;
+ interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
+ linux,keycode = <KEY_POWER>;
+ wakeup-source;
+ };
+ };
+
+ epit1: epit at 020d0000 {
+ reg = <0x020d0000 0x4000>;
+ interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ epit2: epit at 020d4000 {
+ reg = <0x020d4000 0x4000>;
+ interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ src: src at 020d8000 {
+ compatible = "fsl,imx6ul-src", "fsl,imx51-src";
+ reg = <0x020d8000 0x4000>;
+ interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+ #reset-cells = <1>;
+ };
+
+ gpc: gpc at 020dc000 {
+ compatible = "fsl,imx6ul-gpc", "fsl,imx6q-gpc";
+ reg = <0x020dc000 0x4000>;
+ interrupt-controller;
+ #interrupt-cells = <3>;
+ interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&intc>;
+ };
+
+ iomuxc: iomuxc at 020e0000 {
+ compatible = "fsl,imx6ul-iomuxc";
+ reg = <0x020e0000 0x4000>;
+ };
+
+ gpr: iomuxc-gpr at 020e4000 {
+ compatible = "fsl,imx6ul-iomuxc-gpr",
+ "fsl,imx6q-iomuxc-gpr", "syscon";
+ reg = <0x020e4000 0x4000>;
+ };
+
+ gpt2: gpt at 020e8000 {
+ compatible = "fsl,imx6ul-gpt", "fsl,imx6sx-gpt";
+ reg = <0x020e8000 0x4000>;
+ interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_GPT2_BUS>,
+ <&clks IMX6UL_CLK_GPT2_SERIAL>;
+ clock-names = "ipg", "per";
+ };
+
+ sdma: sdma at 020ec000 {
+ compatible = "fsl,imx6ul-sdma", "fsl,imx6q-sdma",
+ "fsl,imx35-sdma";
+ reg = <0x020ec000 0x4000>;
+ interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_SDMA>,
+ <&clks IMX6UL_CLK_SDMA>;
+ clock-names = "ipg", "ahb";
+ #dma-cells = <3>;
+ fsl,sdma-ram-script-name = "imx/sdma/sdma-imx6q.bin";
+ };
+
+ pwm5: pwm at 020f0000 {
+ compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
+ reg = <0x020f0000 0x4000>;
+ interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_PWM5>,
+ <&clks IMX6UL_CLK_PWM5>;
+ clock-names = "ipg", "per";
+ #pwm-cells = <2>;
+ status = "disabled";
+ };
+
+ pwm6: pwm at 020f4000 {
+ compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
+ reg = <0x020f4000 0x4000>;
+ interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_PWM6>,
+ <&clks IMX6UL_CLK_PWM6>;
+ clock-names = "ipg", "per";
+ #pwm-cells = <2>;
+ status = "disabled";
+ };
+
+ pwm7: pwm at 020f8000 {
+ compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
+ reg = <0x020f8000 0x4000>;
+ interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_PWM7>,
+ <&clks IMX6UL_CLK_PWM7>;
+ clock-names = "ipg", "per";
+ #pwm-cells = <2>;
+ status = "disabled";
+ };
+
+ pwm8: pwm at 020fc000 {
+ compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm";
+ reg = <0x020fc000 0x4000>;
+ interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_PWM8>,
+ <&clks IMX6UL_CLK_PWM8>;
+ clock-names = "ipg", "per";
+ #pwm-cells = <2>;
+ status = "disabled";
+ };
+ };
+
+ aips2: aips-bus at 02100000 {
+ compatible = "fsl,aips-bus", "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0x02100000 0x100000>;
+ ranges;
+
+ usbotg1: usb at 02184000 {
+ compatible = "fsl,imx6ul-usb", "fsl,imx27-usb";
+ reg = <0x02184000 0x200>;
+ interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_USBOH3>;
+ fsl,usbphy = <&usbphy1>;
+ fsl,usbmisc = <&usbmisc 0>;
+ fsl,anatop = <&anatop>;
+ ahb-burst-config = <0x0>;
+ tx-burst-size-dword = <0x10>;
+ rx-burst-size-dword = <0x10>;
+ status = "disabled";
+ };
+
+ usbotg2: usb at 02184200 {
+ compatible = "fsl,imx6ul-usb", "fsl,imx27-usb";
+ reg = <0x02184200 0x200>;
+ interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_USBOH3>;
+ fsl,usbphy = <&usbphy2>;
+ fsl,usbmisc = <&usbmisc 1>;
+ ahb-burst-config = <0x0>;
+ tx-burst-size-dword = <0x10>;
+ rx-burst-size-dword = <0x10>;
+ status = "disabled";
+ };
+
+ usbmisc: usbmisc at 02184800 {
+ #index-cells = <1>;
+ compatible = "fsl,imx6ul-usbmisc", "fsl,imx6q-usbmisc";
+ reg = <0x02184800 0x200>;
+ };
+
+ fec1: ethernet at 02188000 {
+ compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec";
+ reg = <0x02188000 0x4000>;
+ interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_ENET>,
+ <&clks IMX6UL_CLK_ENET_AHB>,
+ <&clks IMX6UL_CLK_ENET_PTP>,
+ <&clks IMX6UL_CLK_ENET_REF>,
+ <&clks IMX6UL_CLK_ENET_REF>;
+ clock-names = "ipg", "ahb", "ptp",
+ "enet_clk_ref", "enet_out";
+ fsl,num-tx-queues=<1>;
+ fsl,num-rx-queues=<1>;
+ status = "disabled";
+ };
+
+ usdhc1: usdhc at 02190000 {
+ compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc";
+ reg = <0x02190000 0x4000>;
+ interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_USDHC1>,
+ <&clks IMX6UL_CLK_USDHC1>,
+ <&clks IMX6UL_CLK_USDHC1>;
+ clock-names = "ipg", "ahb", "per";
+ bus-width = <4>;
+ status = "disabled";
+ };
+
+ usdhc2: usdhc at 02194000 {
+ compatible = "fsl,imx6ul-usdhc", "fsl,imx6sx-usdhc";
+ reg = <0x02194000 0x4000>;
+ interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_USDHC2>,
+ <&clks IMX6UL_CLK_USDHC2>,
+ <&clks IMX6UL_CLK_USDHC2>;
+ clock-names = "ipg", "ahb", "per";
+ bus-width = <4>;
+ status = "disabled";
+ };
+
+ adc1: adc at 02198000 {
+ compatible = "fsl,imx6ul-adc", "fsl,vf610-adc";
+ reg = <0x02198000 0x4000>;
+ interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_ADC1>;
+ num-channels = <2>;
+ clock-names = "adc";
+ fsl,adck-max-frequency = <30000000>, <40000000>,
+ <20000000>;
+ status = "disabled";
+ };
+
+ i2c1: i2c at 021a0000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
+ reg = <0x021a0000 0x4000>;
+ interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_I2C1>;
+ status = "disabled";
+ };
+
+ i2c2: i2c at 021a4000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
+ reg = <0x021a4000 0x4000>;
+ interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_I2C2>;
+ status = "disabled";
+ };
+
+ i2c3: i2c at 021a8000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
+ reg = <0x021a8000 0x4000>;
+ interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_I2C3>;
+ status = "disabled";
+ };
+
+ mmdc: mmdc at 021b0000 {
+ compatible = "fsl,imx6ul-mmdc", "fsl,imx6q-mmdc";
+ reg = <0x021b0000 0x4000>;
+ };
+
+ lcdif: lcdif at 021c8000 {
+ compatible = "fsl,imx6ul-lcdif", "fsl,imx28-lcdif";
+ reg = <0x021c8000 0x4000>;
+ interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_LCDIF_PIX>,
+ <&clks IMX6UL_CLK_LCDIF_APB>,
+ <&clks IMX6UL_CLK_DUMMY>;
+ clock-names = "pix", "axi", "disp_axi";
+ status = "disabled";
+ };
+
+ qspi: qspi at 021e0000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "fsl,imx6ul-qspi", "fsl,imx6sx-qspi";
+ reg = <0x021e0000 0x4000>, <0x60000000 0x10000000>;
+ reg-names = "QuadSPI", "QuadSPI-memory";
+ interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_QSPI>,
+ <&clks IMX6UL_CLK_QSPI>;
+ clock-names = "qspi_en", "qspi";
+ status = "disabled";
+ };
+
+ uart2: serial at 021e8000 {
+ compatible = "fsl,imx6ul-uart",
+ "fsl,imx6q-uart";
+ reg = <0x021e8000 0x4000>;
+ interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_UART2_IPG>,
+ <&clks IMX6UL_CLK_UART2_SERIAL>;
+ clock-names = "ipg", "per";
+ status = "disabled";
+ };
+
+ uart3: serial at 021ec000 {
+ compatible = "fsl,imx6ul-uart",
+ "fsl,imx6q-uart";
+ reg = <0x021ec000 0x4000>;
+ interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_UART3_IPG>,
+ <&clks IMX6UL_CLK_UART3_SERIAL>;
+ clock-names = "ipg", "per";
+ status = "disabled";
+ };
+
+ uart4: serial at 021f0000 {
+ compatible = "fsl,imx6ul-uart",
+ "fsl,imx6q-uart";
+ reg = <0x021f0000 0x4000>;
+ interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_UART4_IPG>,
+ <&clks IMX6UL_CLK_UART4_SERIAL>;
+ clock-names = "ipg", "per";
+ status = "disabled";
+ };
+
+ uart5: serial at 021f4000 {
+ compatible = "fsl,imx6ul-uart",
+ "fsl,imx6q-uart";
+ reg = <0x021f4000 0x4000>;
+ interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_UART5_IPG>,
+ <&clks IMX6UL_CLK_UART5_SERIAL>;
+ clock-names = "ipg", "per";
+ status = "disabled";
+ };
+
+ i2c4: i2c at 021f8000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "fsl,imx6ul-i2c", "fsl,imx21-i2c";
+ reg = <0x021f8000 0x4000>;
+ interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_I2C4>;
+ status = "disabled";
+ };
+
+ uart6: serial at 021fc000 {
+ compatible = "fsl,imx6ul-uart",
+ "fsl,imx6q-uart";
+ reg = <0x021fc000 0x4000>;
+ interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMX6UL_CLK_UART6_IPG>,
+ <&clks IMX6UL_CLK_UART6_SERIAL>;
+ clock-names = "ipg", "per";
+ status = "disabled";
+ };
+ };
+ };
+};
diff --git a/include/dt-bindings/clock/imx6ul-clock.h b/include/dt-bindings/clock/imx6ul-clock.h
index 18de070..4623f17 100644
--- a/include/dt-bindings/clock/imx6ul-clock.h
+++ b/include/dt-bindings/clock/imx6ul-clock.h
@@ -234,6 +234,7 @@
#define IMX6UL_CLK_CSI_SEL 221
#define IMX6UL_CLK_CSI_PODF 222
#define IMX6UL_CLK_PLL3_120M 223
+#define IMX6UL_CLK_KPP 224
/* For i.MX6ULL */
#define IMX6UL_CLK_ESAI_SEL 224
#define IMX6UL_CLK_ESAI_PRED 225
--
1.9.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 02/16] arm: imx6ul: Add Engicam GEAM6UL Starter Kit initial support
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 01/16] arm: dts: Add devicetree for i.MX6UL Jagan Teki
@ 2016-12-13 16:56 ` Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 03/16] arm: dts: imx6ul-geam: Add I2C nodes Jagan Teki
` (14 subsequent siblings)
16 siblings, 0 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:56 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
Boot Log:
--------
U-Boot SPL 2016.11-rc2-00144-g922adaa-dirty (Oct 28 2016 - 18:55:30)
Trying to boot from MMC1
U-Boot 2016.11-rc2-00144-g922adaa-dirty (Oct 28 2016 - 18:55:30 +0530)
CPU: Freescale i.MX6UL rev1.1 528 MHz (running at 396 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 43C
Reset cause: POR
Model: Engicam GEAM6UL
DRAM: 128 MiB
MMC: FSL_SDHC: 0
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: CPU Net Initialization Failed
No ethernet found.
Hit any key to stop autoboot: 0
geam6ul>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
arch/arm/cpu/armv7/mx6/Kconfig | 11 ++
arch/arm/dts/Makefile | 3 +-
arch/arm/dts/imx6ul-geam-kit.dts | 119 ++++++++++++++++++
board/engicam/geam6ul/Kconfig | 12 ++
board/engicam/geam6ul/MAINTAINERS | 6 +
board/engicam/geam6ul/Makefile | 6 +
board/engicam/geam6ul/README | 28 +++++
board/engicam/geam6ul/geam6ul.c | 246 ++++++++++++++++++++++++++++++++++++++
configs/imx6ul_geam_mmc_defconfig | 39 ++++++
include/configs/imx6ul_geam.h | 125 +++++++++++++++++++
10 files changed, 594 insertions(+), 1 deletion(-)
create mode 100644 arch/arm/dts/imx6ul-geam-kit.dts
create mode 100644 board/engicam/geam6ul/Kconfig
create mode 100644 board/engicam/geam6ul/MAINTAINERS
create mode 100644 board/engicam/geam6ul/Makefile
create mode 100644 board/engicam/geam6ul/README
create mode 100644 board/engicam/geam6ul/geam6ul.c
create mode 100644 configs/imx6ul_geam_mmc_defconfig
create mode 100644 include/configs/imx6ul_geam.h
diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig
index b686476..4ba5338 100644
--- a/arch/arm/cpu/armv7/mx6/Kconfig
+++ b/arch/arm/cpu/armv7/mx6/Kconfig
@@ -157,6 +157,16 @@ config TARGET_MX6UL_14X14_EVK
select DM_THERMAL
select SUPPORT_SPL
+config TARGET_MX6UL_GEAM
+ bool "Support Engicam GEAM6UL"
+ select MX6UL
+ select OF_CONTROL
+ select DM
+ select DM_GPIO
+ select DM_MMC
+ select DM_THERMAL
+ select SUPPORT_SPL
+
config TARGET_MX6ULL_14X14_EVK
bool "Support mx6ull_14x14_evk"
select MX6ULL
@@ -255,6 +265,7 @@ source "board/compulab/cm_fx6/Kconfig"
source "board/congatec/cgtqmx6eval/Kconfig"
source "board/el/el6x/Kconfig"
source "board/embest/mx6boards/Kconfig"
+source "board/engicam/geam6ul/Kconfig"
source "board/engicam/icorem6/Kconfig"
source "board/freescale/mx6qarm2/Kconfig"
source "board/freescale/mx6qsabreauto/Kconfig"
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index ae47d81..14eebe7 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -291,7 +291,8 @@ dtb-$(CONFIG_VF610) += vf500-colibri.dtb \
dtb-$(CONFIG_MX6) += imx6ull-14x14-evk.dtb \
imx6dl-icore.dtb \
- imx6q-icore.dtb
+ imx6q-icore.dtb \
+ imx6ul-geam-kit.dtb
dtb-$(CONFIG_MX7) += imx7-colibri.dtb
diff --git a/arch/arm/dts/imx6ul-geam-kit.dts b/arch/arm/dts/imx6ul-geam-kit.dts
new file mode 100644
index 0000000..a039b6d
--- /dev/null
+++ b/arch/arm/dts/imx6ul-geam-kit.dts
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2016 Amarula Solutions B.V.
+ * Copyright (C) 2016 Engicam S.r.l.
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ * a) This file 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.
+ *
+ * This file 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.
+ *
+ * Or, alternatively
+ *
+ * b) Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include "imx6ul.dtsi"
+
+/ {
+ model = "Engicam GEAM6UL";
+ compatible = "engicam,imx6ul-geam", "fsl,imx6ul";
+
+ memory {
+ reg = <0x80000000 0x08000000>;
+ };
+
+ chosen {
+ stdout-path = &uart1;
+ };
+};
+
+&uart1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart1>;
+ status = "okay";
+};
+
+&usdhc1 {
+ pinctrl-names = "default", "state_100mhz", "state_200mhz";
+ pinctrl-0 = <&pinctrl_usdhc1>;
+ pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+ pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
+ bus-width = <4>;
+ cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
+ no-1-8-v;
+ status = "okay";
+};
+
+&iomuxc {
+ pinctrl_uart1: uart1grp {
+ fsl,pins = <
+ MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
+ MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
+ >;
+ };
+
+ pinctrl_usdhc1: usdhc1grp {
+ fsl,pins = <
+ MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059
+ MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10059
+ MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
+ MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
+ MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
+ MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059
+ >;
+ };
+
+ pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+ fsl,pins = <
+ MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9
+ MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9
+ MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9
+ MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9
+ MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9
+ MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9
+ >;
+ };
+
+ pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+ fsl,pins = <
+ MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9
+ MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9
+ MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9
+ MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9
+ MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9
+ MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9
+ >;
+ };
+};
diff --git a/board/engicam/geam6ul/Kconfig b/board/engicam/geam6ul/Kconfig
new file mode 100644
index 0000000..8753d15
--- /dev/null
+++ b/board/engicam/geam6ul/Kconfig
@@ -0,0 +1,12 @@
+if TARGET_MX6UL_GEAM
+
+config SYS_BOARD
+ default "geam6ul"
+
+config SYS_VENDOR
+ default "engicam"
+
+config SYS_CONFIG_NAME
+ default "imx6ul_geam"
+
+endif
diff --git a/board/engicam/geam6ul/MAINTAINERS b/board/engicam/geam6ul/MAINTAINERS
new file mode 100644
index 0000000..6691450
--- /dev/null
+++ b/board/engicam/geam6ul/MAINTAINERS
@@ -0,0 +1,6 @@
+GEAM6UL BOARD
+M: Jagan Teki <jagan@amarulasolutions.com>
+S: Maintained
+F: board/engicam/geam6ul
+F: include/configs/imx6ul_geam.h
+F: configs/imx6ul_geam_mmc_defconfig
diff --git a/board/engicam/geam6ul/Makefile b/board/engicam/geam6ul/Makefile
new file mode 100644
index 0000000..0e367e2
--- /dev/null
+++ b/board/engicam/geam6ul/Makefile
@@ -0,0 +1,6 @@
+# Copyright (C) 2016 Amarula Solutions B.V.
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+obj-y := geam6ul.o
diff --git a/board/engicam/geam6ul/README b/board/engicam/geam6ul/README
new file mode 100644
index 0000000..0df6ae4
--- /dev/null
+++ b/board/engicam/geam6ul/README
@@ -0,0 +1,28 @@
+How to use U-Boot on Engicam GEAM6UL Starter Kit:
+-------------------------------------------------
+
+- Configure U-Boot for Engicam GEAM6UL:
+
+$ make mrproper
+$ make imx6ul_geam_mmc_defconfig
+$ make
+
+This will generate the SPL image called SPL and the u-boot-dtb.img.
+
+- Flash the SPL image into the micro SD card:
+
+sudo dd if=SPL of=/dev/mmcblk0 bs=1k seek=1; sync
+
+- Flash the u-boot-dtb.img image into the micro SD card:
+
+sudo dd if=u-boot-dtb.img of=/dev/mmcblk0 bs=1k seek=69; sync
+
+- Jumper settings:
+
+MMC Boot: JM3 Closed
+
+- Connect the Serial cable between the Starter Kit and the PC for the console.
+(J28 is the Linux Serial console connector)
+
+- Insert the micro SD card in the board, power it up and U-Boot messages should
+come up.
diff --git a/board/engicam/geam6ul/geam6ul.c b/board/engicam/geam6ul/geam6ul.c
new file mode 100644
index 0000000..8530845
--- /dev/null
+++ b/board/engicam/geam6ul/geam6ul.c
@@ -0,0 +1,246 @@
+/*
+ * Copyright (C) 2016 Amarula Solutions B.V.
+ * Copyright (C) 2016 Engicam S.r.l.
+ * Author: Jagan Teki <jagan@amarulasolutions.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+
+#include <asm/io.h>
+#include <asm/gpio.h>
+#include <linux/sizes.h>
+
+#include <asm/arch/clock.h>
+#include <asm/arch/iomux.h>
+#include <asm/arch/mx6-pins.h>
+#include <asm/arch/sys_proto.h>
+#include <asm/imx-common/iomux-v3.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
+ PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+static iomux_v3_cfg_t const uart1_pads[] = {
+ MX6_PAD_UART1_TX_DATA__UART1_DCE_TX | MUX_PAD_CTRL(UART_PAD_CTRL),
+ MX6_PAD_UART1_RX_DATA__UART1_DCE_RX | MUX_PAD_CTRL(UART_PAD_CTRL),
+};
+
+int board_early_init_f(void)
+{
+ imx_iomux_v3_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads));
+
+ return 0;
+}
+
+int board_init(void)
+{
+ /* Address of boot parameters */
+ gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
+
+ return 0;
+}
+
+int dram_init(void)
+{
+ gd->ram_size = imx_ddr_size();
+
+ return 0;
+}
+
+#ifdef CONFIG_SPL_BUILD
+#include <libfdt.h>
+#include <spl.h>
+
+#include <asm/arch/crm_regs.h>
+#include <asm/arch/mx6-ddr.h>
+
+/* MMC board initialization is needed till adding DM support in SPL */
+#if defined(CONFIG_FSL_ESDHC) && !defined(CONFIG_DM_MMC)
+#include <mmc.h>
+#include <fsl_esdhc.h>
+
+#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_PUS_22K_UP | PAD_CTL_SPEED_LOW | \
+ PAD_CTL_DSE_80ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+static iomux_v3_cfg_t const usdhc1_pads[] = {
+ MX6_PAD_SD1_CLK__USDHC1_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_SD1_CMD__USDHC1_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_SD1_DATA0__USDHC1_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_SD1_DATA1__USDHC1_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_SD1_DATA2__USDHC1_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ MX6_PAD_SD1_DATA3__USDHC1_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+
+ /* VSELECT */
+ MX6_PAD_GPIO1_IO05__USDHC1_VSELECT | MUX_PAD_CTRL(USDHC_PAD_CTRL),
+ /* CD */
+ MX6_PAD_UART1_RTS_B__GPIO1_IO19 | MUX_PAD_CTRL(NO_PAD_CTRL),
+ /* RST_B */
+ MX6_PAD_GPIO1_IO09__GPIO1_IO09 | MUX_PAD_CTRL(NO_PAD_CTRL),
+};
+
+#define USDHC1_CD_GPIO IMX_GPIO_NR(1, 1)
+
+struct fsl_esdhc_cfg usdhc_cfg[1] = {
+ {USDHC1_BASE_ADDR, 0, 4},
+};
+
+int board_mmc_getcd(struct mmc *mmc)
+{
+ struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
+ int ret = 0;
+
+ switch (cfg->esdhc_base) {
+ case USDHC1_BASE_ADDR:
+ ret = !gpio_get_value(USDHC1_CD_GPIO);
+ break;
+ }
+
+ return ret;
+}
+
+int board_mmc_init(bd_t *bis)
+{
+ int i, ret;
+
+ /*
+ * According to the board_mmc_init() the following map is done:
+ * (U-boot device node) (Physical Port)
+ * mmc0 USDHC1
+ */
+ for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) {
+ switch (i) {
+ case 0:
+ imx_iomux_v3_setup_multiple_pads(
+ usdhc1_pads, ARRAY_SIZE(usdhc1_pads));
+ gpio_direction_input(USDHC1_CD_GPIO);
+ usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
+ break;
+ default:
+ printf("Warning - USDHC%d controller not supporting\n",
+ i + 1);
+ return 0;
+ }
+
+ ret = fsl_esdhc_initialize(bis, &usdhc_cfg[i]);
+ if (ret) {
+ printf("Warning: failed to initialize mmc dev %d\n", i);
+ return ret;
+ }
+ }
+
+ return 0;
+}
+#endif /* CONFIG_FSL_ESDHC */
+
+static struct mx6ul_iomux_grp_regs mx6_grp_ioregs = {
+ .grp_addds = 0x00000030,
+ .grp_ddrmode_ctl = 0x00020000,
+ .grp_b0ds = 0x00000030,
+ .grp_ctlds = 0x00000030,
+ .grp_b1ds = 0x00000030,
+ .grp_ddrpke = 0x00000000,
+ .grp_ddrmode = 0x00020000,
+ .grp_ddr_type = 0x000c0000,
+};
+
+static struct mx6ul_iomux_ddr_regs mx6_ddr_ioregs = {
+ .dram_dqm0 = 0x00000030,
+ .dram_dqm1 = 0x00000030,
+ .dram_ras = 0x00000030,
+ .dram_cas = 0x00000030,
+ .dram_odt0 = 0x00000030,
+ .dram_odt1 = 0x00000030,
+ .dram_sdba2 = 0x00000000,
+ .dram_sdclk_0 = 0x00000008,
+ .dram_sdqs0 = 0x00000038,
+ .dram_sdqs1 = 0x00000030,
+ .dram_reset = 0x00000030,
+};
+
+static struct mx6_mmdc_calibration mx6_mmcd_calib = {
+ .p0_mpwldectrl0 = 0x00070007,
+ .p0_mpdgctrl0 = 0x41490145,
+ .p0_mprddlctl = 0x40404546,
+ .p0_mpwrdlctl = 0x4040524D,
+};
+
+struct mx6_ddr_sysinfo ddr_sysinfo = {
+ .dsize = 0,
+ .cs_density = 20,
+ .ncs = 1,
+ .cs1_mirror = 0,
+ .rtt_wr = 2,
+ .rtt_nom = 1, /* RTT_Nom = RZQ/2 */
+ .walat = 1, /* Write additional latency */
+ .ralat = 5, /* Read additional latency */
+ .mif3_mode = 3, /* Command prediction working mode */
+ .bi_on = 1, /* Bank interleaving enabled */
+ .sde_to_rst = 0x10, /* 14 cycles, 200us (JEDEC default) */
+ .rst_to_cke = 0x23, /* 33 cycles, 500us (JEDEC default) */
+ .ddr_type = DDR_TYPE_DDR3,
+};
+
+static struct mx6_ddr3_cfg mem_ddr = {
+ .mem_speed = 800,
+ .density = 4,
+ .width = 16,
+ .banks = 8,
+ .rowaddr = 13,
+ .coladdr = 10,
+ .pagesz = 2,
+ .trcd = 1375,
+ .trcmin = 4875,
+ .trasmin = 3500,
+};
+
+static void ccgr_init(void)
+{
+ struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
+
+ writel(0xFFFFFFFF, &ccm->CCGR0);
+ writel(0xFFFFFFFF, &ccm->CCGR1);
+ writel(0xFFFFFFFF, &ccm->CCGR2);
+ writel(0xFFFFFFFF, &ccm->CCGR3);
+ writel(0xFFFFFFFF, &ccm->CCGR4);
+ writel(0xFFFFFFFF, &ccm->CCGR5);
+ writel(0xFFFFFFFF, &ccm->CCGR6);
+ writel(0xFFFFFFFF, &ccm->CCGR7);
+}
+
+static void spl_dram_init(void)
+{
+ mx6ul_dram_iocfg(mem_ddr.width, &mx6_ddr_ioregs, &mx6_grp_ioregs);
+ mx6_dram_cfg(&ddr_sysinfo, &mx6_mmcd_calib, &mem_ddr);
+}
+
+void board_init_f(ulong dummy)
+{
+ /* setup AIPS and disable watchdog */
+ arch_cpu_init();
+
+ ccgr_init();
+
+ /* iomux and setup of i2c */
+ board_early_init_f();
+
+ /* setup GP timer */
+ timer_init();
+
+ /* UART clocks enabled and gd valid - init serial console */
+ preloader_console_init();
+
+ /* DDR initialization */
+ spl_dram_init();
+
+ /* Clear the BSS. */
+ memset(__bss_start, 0, __bss_end - __bss_start);
+
+ /* load/boot image from boot device */
+ board_init_r(NULL, 0);
+}
+#endif /* CONFIG_SPL_BUILD */
diff --git a/configs/imx6ul_geam_mmc_defconfig b/configs/imx6ul_geam_mmc_defconfig
new file mode 100644
index 0000000..24f3fd6
--- /dev/null
+++ b/configs/imx6ul_geam_mmc_defconfig
@@ -0,0 +1,39 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_TARGET_MX6UL_GEAM=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/imx-common/spl_sd.cfg,ENV_IS_IN_MMC"
+CONFIG_DEFAULT_FDT_FILE="imx6ul-geam-kit.dtb"
+CONFIG_DEFAULT_DEVICE_TREE="imx6ul-geam-kit"
+CONFIG_SYS_PROMPT="geam6ul> "
+CONFIG_SPL=y
+CONFIG_BOOTDELAY=3
+CONFIG_BOARD_EARLY_INIT_F=y
+CONFIG_DISPLAY_CPUINFO=y
+CONFIG_HUSH_PARSER=y
+CONFIG_AUTO_COMPLETE=y
+CONFIG_SYS_MAXARGS=32
+# CONFIG_CMD_IMLS is not set
+# CONFIG_BLK is not set
+# CONFIG_DM_MMC_OPS is not set
+CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_OF_LIBFDT=y
+CONFIG_MXC_UART=y
+CONFIG_IMX_THERMAL=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
+CONFIG_SPL_LIBDISK_SUPPORT=y
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_SPL_SERIAL_SUPPORT=y
+CONFIG_SPL_GPIO_SUPPORT=y
+CONFIG_SPL_WATCHDOG_SUPPORT=y
+CONFIG_SPL_EXT_SUPPORT=y
diff --git a/include/configs/imx6ul_geam.h b/include/configs/imx6ul_geam.h
new file mode 100644
index 0000000..794a656
--- /dev/null
+++ b/include/configs/imx6ul_geam.h
@@ -0,0 +1,125 @@
+/*
+ * Copyright (C) 2016 Amarula Solutions B.V.
+ * Copyright (C) 2016 Engicam S.r.l.
+ *
+ * Configuration settings for the Engicam GEAM6UL Starter Kits.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __IMX6UL_GEAM_CONFIG_H
+#define __IMX6UL_GEAM_CONFIG_H
+
+#include <linux/sizes.h>
+#include "mx6_common.h"
+
+/* Size of malloc() pool */
+#define CONFIG_SYS_MALLOC_LEN (16 * SZ_1M)
+
+/* Total Size of Environment Sector */
+#define CONFIG_ENV_SIZE SZ_128K
+
+/* Allow to overwrite serial and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+
+/* Environment */
+#ifndef CONFIG_ENV_IS_NOWHERE
+/* Environment in MMC */
+# if defined(CONFIG_ENV_IS_IN_MMC)
+# define CONFIG_ENV_OFFSET 0x100000
+# endif
+#endif
+
+/* Default environment */
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ "script=boot.scr\0" \
+ "image=zImage\0" \
+ "console=ttymxc0\0" \
+ "fdt_high=0xffffffff\0" \
+ "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \
+ "fdt_addr=0x87800000\0" \
+ "boot_fdt=try\0" \
+ "mmcdev=0\0" \
+ "mmcpart=1\0" \
+ "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
+ "mmcautodetect=yes\0" \
+ "mmcargs=setenv bootargs console=${console},${baudrate} " \
+ "root=${mmcroot}\0" \
+ "loadbootscript=" \
+ "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
+ "bootscript=echo Running bootscript from mmc ...; " \
+ "source\0" \
+ "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
+ "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
+ "mmcboot=echo Booting from mmc ...; " \
+ "run mmcargs; " \
+ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+ "if run loadfdt; then " \
+ "bootz ${loadaddr} - ${fdt_addr}; " \
+ "else " \
+ "if test ${boot_fdt} = try; then " \
+ "bootz; " \
+ "else " \
+ "echo WARN: Cannot load the DT; " \
+ "fi; " \
+ "fi; " \
+ "else " \
+ "bootz; " \
+ "fi\0"
+
+#define CONFIG_BOOTCOMMAND \
+ "mmc dev ${mmcdev};" \
+ "mmc dev ${mmcdev}; if mmc rescan; then " \
+ "if run loadbootscript; then " \
+ "run bootscript; " \
+ "else " \
+ "if run loadimage; then " \
+ "run mmcboot; " \
+ "fi; " \
+ "fi; " \
+ "fi"
+
+/* Miscellaneous configurable options */
+#define CONFIG_SYS_MEMTEST_START 0x80000000
+#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + 0x8000000)
+
+#define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
+#define CONFIG_SYS_HZ 1000
+
+/* Physical Memory Map */
+#define CONFIG_NR_DRAM_BANKS 1
+#define PHYS_SDRAM MMDC0_ARB_BASE_ADDR
+
+#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM
+#define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR
+#define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE
+
+#define CONFIG_SYS_INIT_SP_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - \
+ GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \
+ CONFIG_SYS_INIT_SP_OFFSET)
+
+/* UART */
+#ifdef CONFIG_MXC_UART
+# define CONFIG_MXC_UART_BASE UART1_BASE
+#endif
+
+/* MMC */
+#ifdef CONFIG_FSL_USDHC
+# define CONFIG_SYS_MMC_ENV_DEV 0
+# define CONFIG_SYS_FSL_USDHC_NUM 1
+# define CONFIG_SYS_FSL_ESDHC_ADDR USDHC2_BASE_ADDR
+#endif
+
+/* SPL */
+#ifdef CONFIG_SPL
+# define CONFIG_SPL_MMC_SUPPORT
+
+# include "imx6_spl.h"
+# ifdef CONFIG_SPL_BUILD
+# undef CONFIG_DM_GPIO
+# undef CONFIG_DM_MMC
+# endif
+#endif
+
+#endif /* __IMX6UL_GEAM_CONFIG_H */
--
1.9.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 03/16] arm: dts: imx6ul-geam: Add I2C nodes
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 01/16] arm: dts: Add devicetree for i.MX6UL Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 02/16] arm: imx6ul: Add Engicam GEAM6UL Starter Kit initial support Jagan Teki
@ 2016-12-13 16:56 ` Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 04/16] imx6: geam6ul: Add I2C support Jagan Teki
` (13 subsequent siblings)
16 siblings, 0 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:56 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
Add I2C nodes for Engicam GEAM6UL module.
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
arch/arm/dts/imx6ul-geam-kit.dts | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/arch/arm/dts/imx6ul-geam-kit.dts b/arch/arm/dts/imx6ul-geam-kit.dts
index a039b6d..3672b02 100644
--- a/arch/arm/dts/imx6ul-geam-kit.dts
+++ b/arch/arm/dts/imx6ul-geam-kit.dts
@@ -59,6 +59,20 @@
};
};
+&i2c1 {
+ clock-frequency = <100000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c1>;
+ status = "okay";
+};
+
+&i2c2 {
+ clock_frequency = <100000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c2>;
+ status = "okay";
+};
+
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart1>;
@@ -77,6 +91,20 @@
};
&iomuxc {
+ pinctrl_i2c1: i2c1grp {
+ fsl,pins = <
+ MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
+ MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
+ >;
+ };
+
+ pinctrl_i2c2: i2c2grp {
+ fsl,pins = <
+ MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4001b8b0
+ MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0
+ >;
+ };
+
pinctrl_uart1: uart1grp {
fsl,pins = <
MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
--
1.9.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 04/16] imx6: geam6ul: Add I2C support
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
` (2 preceding siblings ...)
2016-12-13 16:56 ` [U-Boot] [PATCH v4 03/16] arm: dts: imx6ul-geam: Add I2C nodes Jagan Teki
@ 2016-12-13 16:56 ` Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 05/16] imx6: geam6ul: Add NAND support Jagan Teki
` (12 subsequent siblings)
16 siblings, 0 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:56 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
Add I2C support for Engicam GEAM6UL module.
geam6ul> i2c bus
Bus 0: i2c at 021a0000
Bus 1: i2c at 021a4000
geam6ul> i2c dev 0
Setting bus to 0
geam6ul> i2c dev
Current bus is 0
geam6ul> i2c speed 100000
Setting bus speed to 100000 Hz
geam6ul> i2c probe
Valid chip addresses: 2C
geam6ul> i2c md 2C 0xff
00ff: 00 00 00 00 0f f0 01 64 ff ff 00 00 00 00 00 00 .......d........
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
arch/arm/cpu/armv7/mx6/Kconfig | 1 +
configs/imx6ul_geam_mmc_defconfig | 2 ++
2 files changed, 3 insertions(+)
diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig
index 4ba5338..bbdb5a1 100644
--- a/arch/arm/cpu/armv7/mx6/Kconfig
+++ b/arch/arm/cpu/armv7/mx6/Kconfig
@@ -163,6 +163,7 @@ config TARGET_MX6UL_GEAM
select OF_CONTROL
select DM
select DM_GPIO
+ select DM_I2C
select DM_MMC
select DM_THERMAL
select SUPPORT_SPL
diff --git a/configs/imx6ul_geam_mmc_defconfig b/configs/imx6ul_geam_mmc_defconfig
index 24f3fd6..e1e1dd2 100644
--- a/configs/imx6ul_geam_mmc_defconfig
+++ b/configs/imx6ul_geam_mmc_defconfig
@@ -25,11 +25,13 @@ CONFIG_CMD_EXT4=y
CONFIG_CMD_EXT4_WRITE=y
CONFIG_CMD_FAT=y
CONFIG_CMD_FS_GENERIC=y
+CONFIG_CMD_I2C=y
CONFIG_OF_LIBFDT=y
CONFIG_MXC_UART=y
CONFIG_IMX_THERMAL=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_IMX6=y
+CONFIG_SYS_I2C_MXC=y
CONFIG_SPL_LIBDISK_SUPPORT=y
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
--
1.9.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 05/16] imx6: geam6ul: Add NAND support
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
` (3 preceding siblings ...)
2016-12-13 16:56 ` [U-Boot] [PATCH v4 04/16] imx6: geam6ul: Add I2C support Jagan Teki
@ 2016-12-13 16:56 ` Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 06/16] imx6: geam6ul: Enable MTD device support Jagan Teki
` (11 subsequent siblings)
16 siblings, 0 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:56 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
Add NAND support for Engicam GEAM6UL board.
Boot Log:
--------
U-Boot SPL 2016.11-g537fa5f (Nov 28 2016 - 11:42:28)
Trying to boot from NAND
NAND : 256 MiB
U-Boot 2016.11-g537fa5f (Nov 28 2016 - 11:20:06 +0100)
CPU: Freescale i.MX6UL rev1.1 69 MHz (running at 396 MHz)
CPU: Automotive temperature grade (-40C to 125C) at 42C
Reset cause: WDOG
Model: Engicam GEAM6UL
DRAM: 128 MiB
NAND: 256 MiB
MMC: FSL_SDHC: 0
* Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: No ethernet found.
Hit any key to stop autoboot: 0
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
board/engicam/geam6ul/geam6ul.c | 71 ++++++++++++++++++++++++++++++++++++++
configs/imx6ul_geam_nand_defconfig | 34 ++++++++++++++++++
include/configs/imx6ul_geam.h | 24 ++++++++++++-
3 files changed, 128 insertions(+), 1 deletion(-)
create mode 100644 configs/imx6ul_geam_nand_defconfig
diff --git a/board/engicam/geam6ul/geam6ul.c b/board/engicam/geam6ul/geam6ul.c
index 8530845..40f20a9 100644
--- a/board/engicam/geam6ul/geam6ul.c
+++ b/board/engicam/geam6ul/geam6ul.c
@@ -13,6 +13,7 @@
#include <linux/sizes.h>
#include <asm/arch/clock.h>
+#include <asm/arch/crm_regs.h>
#include <asm/arch/iomux.h>
#include <asm/arch/mx6-pins.h>
#include <asm/arch/sys_proto.h>
@@ -36,11 +37,81 @@ int board_early_init_f(void)
return 0;
}
+#ifdef CONFIG_NAND_MXS
+
+#define GPMI_PAD_CTRL0 (PAD_CTL_PKE | PAD_CTL_PUE | PAD_CTL_PUS_100K_UP)
+#define GPMI_PAD_CTRL1 (PAD_CTL_DSE_40ohm | PAD_CTL_SPEED_MED | \
+ PAD_CTL_SRE_FAST)
+#define GPMI_PAD_CTRL2 (GPMI_PAD_CTRL0 | GPMI_PAD_CTRL1)
+
+static iomux_v3_cfg_t const nand_pads[] = {
+ MX6_PAD_NAND_DATA00__RAWNAND_DATA00 | MUX_PAD_CTRL(GPMI_PAD_CTRL2),
+ MX6_PAD_NAND_DATA01__RAWNAND_DATA01 | MUX_PAD_CTRL(GPMI_PAD_CTRL2),
+ MX6_PAD_NAND_DATA02__RAWNAND_DATA02 | MUX_PAD_CTRL(GPMI_PAD_CTRL2),
+ MX6_PAD_NAND_DATA03__RAWNAND_DATA03 | MUX_PAD_CTRL(GPMI_PAD_CTRL2),
+ MX6_PAD_NAND_DATA04__RAWNAND_DATA04 | MUX_PAD_CTRL(GPMI_PAD_CTRL2),
+ MX6_PAD_NAND_DATA05__RAWNAND_DATA05 | MUX_PAD_CTRL(GPMI_PAD_CTRL2),
+ MX6_PAD_NAND_DATA06__RAWNAND_DATA06 | MUX_PAD_CTRL(GPMI_PAD_CTRL2),
+ MX6_PAD_NAND_DATA07__RAWNAND_DATA07 | MUX_PAD_CTRL(GPMI_PAD_CTRL2),
+ MX6_PAD_NAND_CLE__RAWNAND_CLE | MUX_PAD_CTRL(GPMI_PAD_CTRL2),
+ MX6_PAD_NAND_ALE__RAWNAND_ALE | MUX_PAD_CTRL(GPMI_PAD_CTRL2),
+ MX6_PAD_NAND_CE0_B__RAWNAND_CE0_B | MUX_PAD_CTRL(GPMI_PAD_CTRL2),
+ MX6_PAD_NAND_RE_B__RAWNAND_RE_B | MUX_PAD_CTRL(GPMI_PAD_CTRL2),
+ MX6_PAD_NAND_WE_B__RAWNAND_WE_B | MUX_PAD_CTRL(GPMI_PAD_CTRL2),
+ MX6_PAD_NAND_WP_B__RAWNAND_WP_B | MUX_PAD_CTRL(GPMI_PAD_CTRL2),
+ MX6_PAD_NAND_READY_B__RAWNAND_READY_B | MUX_PAD_CTRL(GPMI_PAD_CTRL2),
+};
+
+static void setup_gpmi_nand(void)
+{
+ struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
+
+ /* config gpmi nand iomux */
+ imx_iomux_v3_setup_multiple_pads(nand_pads, ARRAY_SIZE(nand_pads));
+
+ clrbits_le32(&mxc_ccm->CCGR4,
+ MXC_CCM_CCGR4_RAWNAND_U_BCH_INPUT_APB_MASK |
+ MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_BCH_MASK |
+ MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_GPMI_IO_MASK |
+ MXC_CCM_CCGR4_RAWNAND_U_GPMI_INPUT_APB_MASK |
+ MXC_CCM_CCGR4_PL301_MX6QPER1_BCH_MASK);
+
+ /*
+ * config gpmi and bch clock to 100 MHz
+ * bch/gpmi select PLL2 PFD2 400M
+ * 100M = 400M / 4
+ */
+ clrbits_le32(&mxc_ccm->cscmr1,
+ MXC_CCM_CSCMR1_BCH_CLK_SEL |
+ MXC_CCM_CSCMR1_GPMI_CLK_SEL);
+ clrsetbits_le32(&mxc_ccm->cscdr1,
+ MXC_CCM_CSCDR1_BCH_PODF_MASK |
+ MXC_CCM_CSCDR1_GPMI_PODF_MASK,
+ (3 << MXC_CCM_CSCDR1_BCH_PODF_OFFSET) |
+ (3 << MXC_CCM_CSCDR1_GPMI_PODF_OFFSET));
+
+ /* enable gpmi and bch clock gating */
+ setbits_le32(&mxc_ccm->CCGR4,
+ MXC_CCM_CCGR4_RAWNAND_U_BCH_INPUT_APB_MASK |
+ MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_BCH_MASK |
+ MXC_CCM_CCGR4_RAWNAND_U_GPMI_BCH_INPUT_GPMI_IO_MASK |
+ MXC_CCM_CCGR4_RAWNAND_U_GPMI_INPUT_APB_MASK |
+ MXC_CCM_CCGR4_PL301_MX6QPER1_BCH_MASK);
+
+ /* enable apbh clock gating */
+ setbits_le32(&mxc_ccm->CCGR0, MXC_CCM_CCGR0_APBHDMA_MASK);
+}
+#endif /* CONFIG_NAND_MXS */
+
int board_init(void)
{
/* Address of boot parameters */
gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
+#ifdef CONFIG_NAND_MXS
+ setup_gpmi_nand();
+#endif
+
return 0;
}
diff --git a/configs/imx6ul_geam_nand_defconfig b/configs/imx6ul_geam_nand_defconfig
new file mode 100644
index 0000000..b7a44c7
--- /dev/null
+++ b/configs/imx6ul_geam_nand_defconfig
@@ -0,0 +1,34 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_TARGET_MX6UL_GEAM=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/imx-common/spl_sd.cfg,ENV_IS_IN_NAND"
+CONFIG_DEFAULT_FDT_FILE="imx6ul-geam-kit.dtb"
+CONFIG_DEFAULT_DEVICE_TREE="imx6ul-geam-kit"
+CONFIG_SYS_PROMPT="geam6ul> "
+CONFIG_SPL=y
+CONFIG_BOOTDELAY=3
+CONFIG_BOARD_EARLY_INIT_F=y
+CONFIG_DISPLAY_CPUINFO=y
+CONFIG_HUSH_PARSER=y
+CONFIG_AUTO_COMPLETE=y
+CONFIG_SYS_MAXARGS=32
+# CONFIG_CMD_IMLS is not set
+# CONFIG_BLK is not set
+# CONFIG_DM_MMC_OPS is not set
+CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_NAND=y
+CONFIG_CMD_CACHE=y
+CONFIG_OF_LIBFDT=y
+CONFIG_MXC_UART=y
+CONFIG_NAND_MXS=y
+CONFIG_IMX_THERMAL=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_SPL_SERIAL_SUPPORT=y
+CONFIG_SPL_GPIO_SUPPORT=y
+CONFIG_SPL_WATCHDOG_SUPPORT=y
+CONFIG_SPL_DMA_SUPPORT=y
diff --git a/include/configs/imx6ul_geam.h b/include/configs/imx6ul_geam.h
index 794a656..4fe130b 100644
--- a/include/configs/imx6ul_geam.h
+++ b/include/configs/imx6ul_geam.h
@@ -27,6 +27,10 @@
/* Environment in MMC */
# if defined(CONFIG_ENV_IS_IN_MMC)
# define CONFIG_ENV_OFFSET 0x100000
+/* Environment in NAND */
+# elif defined(CONFIG_ENV_IS_IN_NAND)
+# define CONFIG_ENV_OFFSET 0x400000
+# define CONFIG_ENV_SECT_SIZE CONFIG_ENV_SIZE
# endif
#endif
@@ -111,9 +115,27 @@
# define CONFIG_SYS_FSL_ESDHC_ADDR USDHC2_BASE_ADDR
#endif
+/* NAND */
+#ifdef CONFIG_NAND_MXS
+# define CONFIG_SYS_MAX_NAND_DEVICE 1
+# define CONFIG_SYS_NAND_BASE 0x40000000
+# define CONFIG_SYS_NAND_5_ADDR_CYCLE
+# define CONFIG_SYS_NAND_ONFI_DETECTION
+# define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE
+# define CONFIG_SYS_NAND_U_BOOT_OFFS 0x200000
+
+# define CONFIG_APBH_DMA
+# define CONFIG_APBH_DMA_BURST
+# define CONFIG_APBH_DMA_BURST8
+#endif
+
/* SPL */
#ifdef CONFIG_SPL
-# define CONFIG_SPL_MMC_SUPPORT
+# ifdef CONFIG_NAND_MXS
+# define CONFIG_SPL_NAND_SUPPORT
+# else
+# define CONFIG_SPL_MMC_SUPPORT
+# endif
# include "imx6_spl.h"
# ifdef CONFIG_SPL_BUILD
--
1.9.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 06/16] imx6: geam6ul: Enable MTD device support
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
` (4 preceding siblings ...)
2016-12-13 16:56 ` [U-Boot] [PATCH v4 05/16] imx6: geam6ul: Add NAND support Jagan Teki
@ 2016-12-13 16:56 ` Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 07/16] imx6: geam6ul: Add default mtd nand partition table Jagan Teki
` (10 subsequent siblings)
16 siblings, 0 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:56 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
Enable MTD device, partition and command support.
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
include/configs/imx6ul_geam.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/include/configs/imx6ul_geam.h b/include/configs/imx6ul_geam.h
index 4fe130b..8938b80 100644
--- a/include/configs/imx6ul_geam.h
+++ b/include/configs/imx6ul_geam.h
@@ -124,6 +124,12 @@
# define CONFIG_SYS_NAND_U_BOOT_START CONFIG_SYS_TEXT_BASE
# define CONFIG_SYS_NAND_U_BOOT_OFFS 0x200000
+/* MTD device */
+# define CONFIG_MTD_DEVICE
+# define CONFIG_CMD_MTDPARTS
+# define CONFIG_MTD_PARTITIONS
+# define MTDIDS_DEFAULT "nand0=nand"
+
# define CONFIG_APBH_DMA
# define CONFIG_APBH_DMA_BURST
# define CONFIG_APBH_DMA_BURST8
--
1.9.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 07/16] imx6: geam6ul: Add default mtd nand partition table
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
` (5 preceding siblings ...)
2016-12-13 16:56 ` [U-Boot] [PATCH v4 06/16] imx6: geam6ul: Enable MTD device support Jagan Teki
@ 2016-12-13 16:56 ` Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 08/16] arm: imx6q: Add Engicam i.CoreM6 Quad/Dual RQS Starter Kit initial support Jagan Teki
` (9 subsequent siblings)
16 siblings, 0 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:56 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
geam6ul> mtdparts
device nand0 <nand>, # parts = 6
0: spl 0x00200000 0x00000000 0
1: uboot 0x00200000 0x00200000 0
2: env 0x00100000 0x00400000 0
3: kernel 0x00400000 0x00500000 0
4: dtb 0x00100000 0x00900000 0
5: rootfs 0x1f600000 0x00a00000 0
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
include/configs/imx6ul_geam.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/configs/imx6ul_geam.h b/include/configs/imx6ul_geam.h
index 8938b80..7cfdfef 100644
--- a/include/configs/imx6ul_geam.h
+++ b/include/configs/imx6ul_geam.h
@@ -129,6 +129,8 @@
# define CONFIG_CMD_MTDPARTS
# define CONFIG_MTD_PARTITIONS
# define MTDIDS_DEFAULT "nand0=nand"
+# define MTDPARTS_DEFAULT "mtdparts=nand:2m(spl),2m(uboot)," \
+ "1m(env),4m(kernel),1m(dtb),-(rootfs)"
# define CONFIG_APBH_DMA
# define CONFIG_APBH_DMA_BURST
--
1.9.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 08/16] arm: imx6q: Add Engicam i.CoreM6 Quad/Dual RQS Starter Kit initial support
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
` (6 preceding siblings ...)
2016-12-13 16:56 ` [U-Boot] [PATCH v4 07/16] imx6: geam6ul: Add default mtd nand partition table Jagan Teki
@ 2016-12-13 16:56 ` Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 09/16] arm: imx6q: Add Engicam i.CoreM6 Solo/Duallite " Jagan Teki
` (8 subsequent siblings)
16 siblings, 0 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:56 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
Boot from MMC:
-------------
U-Boot SPL 2016.11-rc2-g217bd8e-dirty (Nov 08 2016 - 22:59:44)
Trying to boot from MMC1
U-Boot 2016.11-rc2-g217bd8e-dirty (Nov 08 2016 - 22:59:44 +0530)
CPU: Freescale i.MX6D rev1.2 at 792 MHz
Reset cause: POR
Model: Engicam i.CoreM6 Quad/Dual RQS Starter Kit
DRAM: 512 MiB
MMC: FSL_SDHC: 0
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: CPU Net Initialization Failed
No ethernet found.
Hit any key to stop autoboot: 0
icorem6qdl-rqs>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
arch/arm/cpu/armv7/mx6/Kconfig | 11 +
arch/arm/dts/Makefile | 1 +
arch/arm/dts/imx6q-icore-rqs.dts | 50 ++++
arch/arm/dts/imx6qdl-icore-rqs.dtsi | 83 +++++++
board/engicam/icorem6_rqs/Kconfig | 12 +
board/engicam/icorem6_rqs/MAINTAINERS | 6 +
board/engicam/icorem6_rqs/Makefile | 6 +
board/engicam/icorem6_rqs/README | 30 +++
board/engicam/icorem6_rqs/icorem6_rqs.c | 399 ++++++++++++++++++++++++++++++++
configs/imx6q_icore_rqs_mmc_defconfig | 38 +++
include/configs/imx6qdl_icore_rqs.h | 124 ++++++++++
11 files changed, 760 insertions(+)
create mode 100644 arch/arm/dts/imx6q-icore-rqs.dts
create mode 100644 arch/arm/dts/imx6qdl-icore-rqs.dtsi
create mode 100644 board/engicam/icorem6_rqs/Kconfig
create mode 100644 board/engicam/icorem6_rqs/MAINTAINERS
create mode 100644 board/engicam/icorem6_rqs/Makefile
create mode 100644 board/engicam/icorem6_rqs/README
create mode 100644 board/engicam/icorem6_rqs/icorem6_rqs.c
create mode 100644 configs/imx6q_icore_rqs_mmc_defconfig
create mode 100644 include/configs/imx6qdl_icore_rqs.h
diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig
index bbdb5a1..a9403bf 100644
--- a/arch/arm/cpu/armv7/mx6/Kconfig
+++ b/arch/arm/cpu/armv7/mx6/Kconfig
@@ -115,6 +115,16 @@ config TARGET_MX6Q_ICORE
select DM_THERMAL
select SUPPORT_SPL
+config TARGET_MX6Q_ICORE_RQS
+ bool "Support Engicam i.Core RQS"
+ select MX6QDL
+ select OF_CONTROL
+ select DM
+ select DM_GPIO
+ select DM_MMC
+ select DM_THERMAL
+ select SUPPORT_SPL
+
config TARGET_MX6QSABREAUTO
bool "mx6qsabreauto"
select DM
@@ -268,6 +278,7 @@ source "board/el/el6x/Kconfig"
source "board/embest/mx6boards/Kconfig"
source "board/engicam/geam6ul/Kconfig"
source "board/engicam/icorem6/Kconfig"
+source "board/engicam/icorem6_rqs/Kconfig"
source "board/freescale/mx6qarm2/Kconfig"
source "board/freescale/mx6qsabreauto/Kconfig"
source "board/freescale/mx6sabresd/Kconfig"
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 14eebe7..96e98c6 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -292,6 +292,7 @@ dtb-$(CONFIG_VF610) += vf500-colibri.dtb \
dtb-$(CONFIG_MX6) += imx6ull-14x14-evk.dtb \
imx6dl-icore.dtb \
imx6q-icore.dtb \
+ imx6q-icore-rqs.dtb \
imx6ul-geam-kit.dtb
dtb-$(CONFIG_MX7) += imx7-colibri.dtb
diff --git a/arch/arm/dts/imx6q-icore-rqs.dts b/arch/arm/dts/imx6q-icore-rqs.dts
new file mode 100644
index 0000000..9fa6ba0
--- /dev/null
+++ b/arch/arm/dts/imx6q-icore-rqs.dts
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2015 Amarula Solutions B.V.
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ * a) This file 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.
+ *
+ * This file 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.
+ *
+ * Or, alternatively
+ *
+ * b) Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+
+#include "imx6q.dtsi"
+#include "imx6qdl-icore-rqs.dtsi"
+
+/ {
+ model = "Engicam i.CoreM6 Quad/Dual RQS Starter Kit";
+ compatible = "engicam,imx6-icore-rqs", "fsl,imx6q";
+};
diff --git a/arch/arm/dts/imx6qdl-icore-rqs.dtsi b/arch/arm/dts/imx6qdl-icore-rqs.dtsi
new file mode 100644
index 0000000..343ab35
--- /dev/null
+++ b/arch/arm/dts/imx6qdl-icore-rqs.dtsi
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2015 Amarula Solutions B.V.
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ * a) This file 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.
+ *
+ * This file 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.
+ *
+ * Or, alternatively
+ *
+ * b) Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/clock/imx6qdl-clock.h>
+
+/ {
+ memory {
+ reg = <0x10000000 0x80000000>;
+ };
+};
+
+&uart4 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_uart4>;
+ status = "okay";
+};
+
+&usdhc3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_usdhc3>;
+ cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
+ no-1-8-v;
+ status = "okay";
+};
+
+&iomuxc {
+ pinctrl_uart4: uart4grp {
+ fsl,pins = <
+ MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1
+ MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1
+ >;
+ };
+
+ pinctrl_usdhc3: usdhc3grp {
+ fsl,pins = <
+ MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17070
+ MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10070
+ MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17070
+ MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17070
+ MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17070
+ MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17070
+ >;
+ };
+};
diff --git a/board/engicam/icorem6_rqs/Kconfig b/board/engicam/icorem6_rqs/Kconfig
new file mode 100644
index 0000000..1352c68
--- /dev/null
+++ b/board/engicam/icorem6_rqs/Kconfig
@@ -0,0 +1,12 @@
+if TARGET_MX6Q_ICORE_RQS
+
+config SYS_BOARD
+ default "icorem6_rqs"
+
+config SYS_VENDOR
+ default "engicam"
+
+config SYS_CONFIG_NAME
+ default "imx6qdl_icore_rqs"
+
+endif
diff --git a/board/engicam/icorem6_rqs/MAINTAINERS b/board/engicam/icorem6_rqs/MAINTAINERS
new file mode 100644
index 0000000..4c6bd62
--- /dev/null
+++ b/board/engicam/icorem6_rqs/MAINTAINERS
@@ -0,0 +1,6 @@
+ICOREM6QDL_RQS BOARD
+M: Jagan Teki <jagan@amarulasolutions.com>
+S: Maintained
+F: board/engicam/icorem6_rqs
+F: include/configs/imx6qdl_icore_rqs.h
+F: configs/imx6q_icore_rqs_mmc_defconfig
diff --git a/board/engicam/icorem6_rqs/Makefile b/board/engicam/icorem6_rqs/Makefile
new file mode 100644
index 0000000..2e3933c
--- /dev/null
+++ b/board/engicam/icorem6_rqs/Makefile
@@ -0,0 +1,6 @@
+# Copyright (C) 2016 Amarula Solutions B.V.
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+obj-y := icorem6_rqs.o
diff --git a/board/engicam/icorem6_rqs/README b/board/engicam/icorem6_rqs/README
new file mode 100644
index 0000000..f94e6e1
--- /dev/null
+++ b/board/engicam/icorem6_rqs/README
@@ -0,0 +1,30 @@
+How to use U-Boot on Engicam i.CoreM6 RQS Quad/Dual Starter Kit:
+----------------------------------------------------------------
+
+$ make mrproper
+
+- Configure U-Boot for Engicam i.CoreM6 RQS Quad/Dual:
+$ make imx6q_icore_rqs_mmc_defconfig
+
+- Build U-Boot
+$ make
+
+This will generate the SPL image called SPL and the u-boot-dtb.img.
+
+- Flash the SPL image into the micro SD card:
+
+sudo dd if=SPL of=/dev/mmcblk0 bs=1k seek=1; sync
+
+- Flash the u-boot-dtb.img image into the micro SD card:
+
+sudo dd if=u-boot-dtb.img of=/dev/mmcblk0 bs=1k seek=69; sync
+
+- Jumper settings:
+
+MMC Boot: JM3 Closed
+
+- Connect the Serial cable between the Starter Kit and the PC for the console.
+(J28 is the Linux Serial console connector)
+
+- Insert the micro SD card in the board, power it up and U-Boot messages should
+come up.
diff --git a/board/engicam/icorem6_rqs/icorem6_rqs.c b/board/engicam/icorem6_rqs/icorem6_rqs.c
new file mode 100644
index 0000000..2769177
--- /dev/null
+++ b/board/engicam/icorem6_rqs/icorem6_rqs.c
@@ -0,0 +1,399 @@
+/*
+ * Copyright (C) 2016 Amarula Solutions B.V.
+ * Copyright (C) 2016 Engicam S.r.l.
+ * Author: Jagan Teki <jagan@amarulasolutions.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+
+#include <asm/io.h>
+#include <asm/gpio.h>
+#include <linux/sizes.h>
+
+#include <asm/arch/clock.h>
+#include <asm/arch/crm_regs.h>
+#include <asm/arch/iomux.h>
+#include <asm/arch/mx6-pins.h>
+#include <asm/arch/sys_proto.h>
+#include <asm/imx-common/iomux-v3.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | \
+ PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+static iomux_v3_cfg_t const uart4_pads[] = {
+ IOMUX_PADS(PAD_KEY_COL0__UART4_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL)),
+ IOMUX_PADS(PAD_KEY_ROW0__UART4_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL)),
+};
+
+int board_early_init_f(void)
+{
+ SETUP_IOMUX_PADS(uart4_pads);
+
+ return 0;
+}
+
+int board_init(void)
+{
+ /* Address of boot parameters */
+ gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
+
+ return 0;
+}
+
+int dram_init(void)
+{
+ gd->ram_size = imx_ddr_size();
+
+ return 0;
+}
+
+#ifdef CONFIG_SPL_BUILD
+#include <libfdt.h>
+#include <spl.h>
+
+#include <asm/arch/crm_regs.h>
+#include <asm/arch/mx6-ddr.h>
+
+/* MMC board initialization is needed till adding DM support in SPL */
+#if defined(CONFIG_FSL_ESDHC) && !defined(CONFIG_DM_MMC)
+#include <mmc.h>
+#include <fsl_esdhc.h>
+
+#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \
+ PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_HIGH | \
+ PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+static iomux_v3_cfg_t const usdhc3_pads[] = {
+ IOMUX_PADS(PAD_SD3_CLK__SD3_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
+ IOMUX_PADS(PAD_SD3_CMD__SD3_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
+ IOMUX_PADS(PAD_SD3_DAT0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
+ IOMUX_PADS(PAD_SD3_DAT1__SD3_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
+ IOMUX_PADS(PAD_SD3_DAT2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
+ IOMUX_PADS(PAD_SD3_DAT3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL)),
+};
+
+struct fsl_esdhc_cfg usdhc_cfg[1] = {
+ {USDHC3_BASE_ADDR, 1, 4},
+};
+
+int board_mmc_getcd(struct mmc *mmc)
+{
+ struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
+ int ret = 0;
+
+ switch (cfg->esdhc_base) {
+ case USDHC3_BASE_ADDR:
+ ret = 1;
+ break;
+ }
+
+ return ret;
+}
+
+int board_mmc_init(bd_t *bis)
+{
+ int i, ret;
+
+ /*
+ * According to the board_mmc_init() the following map is done:
+ * (U-boot device node) (Physical Port)
+ * mmc0 USDHC3
+ */
+ for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) {
+ switch (i) {
+ case 0:
+ SETUP_IOMUX_PADS(usdhc3_pads);
+ usdhc_cfg[i].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
+ break;
+ default:
+ printf("Warning - USDHC%d controller not supporting\n",
+ i + 1);
+ return 0;
+ }
+
+ ret = fsl_esdhc_initialize(bis, &usdhc_cfg[i]);
+ if (ret) {
+ printf("Warning: failed to initialize mmc dev %d\n", i);
+ return ret;
+ }
+ }
+
+ return 0;
+}
+#endif
+
+/*
+ * Driving strength:
+ * 0x30 == 40 Ohm
+ * 0x28 == 48 Ohm
+ */
+
+#define IMX6DQ_DRIVE_STRENGTH 0x30
+#define IMX6SDL_DRIVE_STRENGTH 0x28
+
+/* configure MX6Q/DUAL mmdc DDR io registers */
+static struct mx6dq_iomux_ddr_regs mx6dq_ddr_ioregs = {
+ .dram_sdqs0 = 0x28,
+ .dram_sdqs1 = 0x28,
+ .dram_sdqs2 = 0x28,
+ .dram_sdqs3 = 0x28,
+ .dram_sdqs4 = 0x28,
+ .dram_sdqs5 = 0x28,
+ .dram_sdqs6 = 0x28,
+ .dram_sdqs7 = 0x28,
+ .dram_dqm0 = 0x28,
+ .dram_dqm1 = 0x28,
+ .dram_dqm2 = 0x28,
+ .dram_dqm3 = 0x28,
+ .dram_dqm4 = 0x28,
+ .dram_dqm5 = 0x28,
+ .dram_dqm6 = 0x28,
+ .dram_dqm7 = 0x28,
+ .dram_cas = 0x30,
+ .dram_ras = 0x30,
+ .dram_sdclk_0 = 0x30,
+ .dram_sdclk_1 = 0x30,
+ .dram_reset = 0x30,
+ .dram_sdcke0 = 0x3000,
+ .dram_sdcke1 = 0x3000,
+ .dram_sdba2 = 0x00000000,
+ .dram_sdodt0 = 0x30,
+ .dram_sdodt1 = 0x30,
+};
+
+/* configure MX6Q/DUAL mmdc GRP io registers */
+static struct mx6dq_iomux_grp_regs mx6dq_grp_ioregs = {
+ .grp_b0ds = 0x30,
+ .grp_b1ds = 0x30,
+ .grp_b2ds = 0x30,
+ .grp_b3ds = 0x30,
+ .grp_b4ds = 0x30,
+ .grp_b5ds = 0x30,
+ .grp_b6ds = 0x30,
+ .grp_b7ds = 0x30,
+ .grp_addds = 0x30,
+ .grp_ddrmode_ctl = 0x00020000,
+ .grp_ddrpke = 0x00000000,
+ .grp_ddrmode = 0x00020000,
+ .grp_ctlds = 0x30,
+ .grp_ddr_type = 0x000c0000,
+};
+
+/* configure MX6SOLO/DUALLITE mmdc DDR io registers */
+struct mx6sdl_iomux_ddr_regs mx6sdl_ddr_ioregs = {
+ .dram_sdclk_0 = 0x30,
+ .dram_sdclk_1 = 0x30,
+ .dram_cas = 0x30,
+ .dram_ras = 0x30,
+ .dram_reset = 0x30,
+ .dram_sdcke0 = 0x30,
+ .dram_sdcke1 = 0x30,
+ .dram_sdba2 = 0x00000000,
+ .dram_sdodt0 = 0x30,
+ .dram_sdodt1 = 0x30,
+ .dram_sdqs0 = 0x28,
+ .dram_sdqs1 = 0x28,
+ .dram_sdqs2 = 0x28,
+ .dram_sdqs3 = 0x28,
+ .dram_sdqs4 = 0x28,
+ .dram_sdqs5 = 0x28,
+ .dram_sdqs6 = 0x28,
+ .dram_sdqs7 = 0x28,
+ .dram_dqm0 = 0x28,
+ .dram_dqm1 = 0x28,
+ .dram_dqm2 = 0x28,
+ .dram_dqm3 = 0x28,
+ .dram_dqm4 = 0x28,
+ .dram_dqm5 = 0x28,
+ .dram_dqm6 = 0x28,
+ .dram_dqm7 = 0x28,
+};
+
+/* configure MX6SOLO/DUALLITE mmdc GRP io registers */
+struct mx6sdl_iomux_grp_regs mx6sdl_grp_ioregs = {
+ .grp_ddr_type = 0x000c0000,
+ .grp_ddrmode_ctl = 0x00020000,
+ .grp_ddrpke = 0x00000000,
+ .grp_addds = 0x30,
+ .grp_ctlds = 0x30,
+ .grp_ddrmode = 0x00020000,
+ .grp_b0ds = 0x28,
+ .grp_b1ds = 0x28,
+ .grp_b2ds = 0x28,
+ .grp_b3ds = 0x28,
+ .grp_b4ds = 0x28,
+ .grp_b5ds = 0x28,
+ .grp_b6ds = 0x28,
+ .grp_b7ds = 0x28,
+};
+
+/* mt41j256 */
+static struct mx6_ddr3_cfg mt41j256 = {
+ .mem_speed = 1066,
+ .density = 2,
+ .width = 16,
+ .banks = 8,
+ .rowaddr = 13,
+ .coladdr = 10,
+ .pagesz = 2,
+ .trcd = 1375,
+ .trcmin = 4875,
+ .trasmin = 3500,
+ .SRT = 0,
+};
+
+static struct mx6_mmdc_calibration mx6dq_mmdc_calib = {
+ .p0_mpwldectrl0 = 0x000E0009,
+ .p0_mpwldectrl1 = 0x0018000E,
+ .p1_mpwldectrl0 = 0x00000007,
+ .p1_mpwldectrl1 = 0x00000000,
+ .p0_mpdgctrl0 = 0x43280334,
+ .p0_mpdgctrl1 = 0x031C0314,
+ .p1_mpdgctrl0 = 0x4318031C,
+ .p1_mpdgctrl1 = 0x030C0258,
+ .p0_mprddlctl = 0x3E343A40,
+ .p1_mprddlctl = 0x383C3844,
+ .p0_mpwrdlctl = 0x40404440,
+ .p1_mpwrdlctl = 0x4C3E4446,
+};
+
+/* DDR 64bit */
+static struct mx6_ddr_sysinfo mem_q = {
+ .ddr_type = DDR_TYPE_DDR3,
+ .dsize = 2,
+ .cs1_mirror = 0,
+ /* config for full 4GB range so that get_mem_size() works */
+ .cs_density = 32,
+ .ncs = 1,
+ .bi_on = 1,
+ .rtt_nom = 2,
+ .rtt_wr = 2,
+ .ralat = 5,
+ .walat = 0,
+ .mif3_mode = 3,
+ .rst_to_cke = 0x23,
+ .sde_to_rst = 0x10,
+};
+
+static struct mx6_mmdc_calibration mx6dl_mmdc_calib = {
+ .p0_mpwldectrl0 = 0x001F0024,
+ .p0_mpwldectrl1 = 0x00110018,
+ .p1_mpwldectrl0 = 0x001F0024,
+ .p1_mpwldectrl1 = 0x00110018,
+ .p0_mpdgctrl0 = 0x4230022C,
+ .p0_mpdgctrl1 = 0x02180220,
+ .p1_mpdgctrl0 = 0x42440248,
+ .p1_mpdgctrl1 = 0x02300238,
+ .p0_mprddlctl = 0x44444A48,
+ .p1_mprddlctl = 0x46484A42,
+ .p0_mpwrdlctl = 0x38383234,
+ .p1_mpwrdlctl = 0x3C34362E,
+};
+
+/* DDR 64bit 1GB */
+static struct mx6_ddr_sysinfo mem_dl = {
+ .dsize = 2,
+ .cs1_mirror = 0,
+ /* config for full 4GB range so that get_mem_size() works */
+ .cs_density = 32,
+ .ncs = 1,
+ .bi_on = 1,
+ .rtt_nom = 1,
+ .rtt_wr = 1,
+ .ralat = 5,
+ .walat = 0,
+ .mif3_mode = 3,
+ .rst_to_cke = 0x23,
+ .sde_to_rst = 0x10,
+};
+
+/* DDR 32bit 512MB */
+static struct mx6_ddr_sysinfo mem_s = {
+ .dsize = 1,
+ .cs1_mirror = 0,
+ /* config for full 4GB range so that get_mem_size() works */
+ .cs_density = 32,
+ .ncs = 1,
+ .bi_on = 1,
+ .rtt_nom = 1,
+ .rtt_wr = 1,
+ .ralat = 5,
+ .walat = 0,
+ .mif3_mode = 3,
+ .rst_to_cke = 0x23,
+ .sde_to_rst = 0x10,
+};
+
+static void ccgr_init(void)
+{
+ struct mxc_ccm_reg *ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
+
+ writel(0x00003F3F, &ccm->CCGR0);
+ writel(0x0030FC00, &ccm->CCGR1);
+ writel(0x000FC000, &ccm->CCGR2);
+ writel(0x3F300000, &ccm->CCGR3);
+ writel(0xFF00F300, &ccm->CCGR4);
+ writel(0x0F0000C3, &ccm->CCGR5);
+ writel(0x000003CC, &ccm->CCGR6);
+}
+
+static void gpr_init(void)
+{
+ struct iomuxc *iomux = (struct iomuxc *)IOMUXC_BASE_ADDR;
+
+ /* enable AXI cache for VDOA/VPU/IPU */
+ writel(0xF00000CF, &iomux->gpr[4]);
+ /* set IPU AXI-id0 Qos=0xf(bypass) AXI-id1 Qos=0x7 */
+ writel(0x007F007F, &iomux->gpr[6]);
+ writel(0x007F007F, &iomux->gpr[7]);
+}
+
+static void spl_dram_init(void)
+{
+ if (is_mx6solo()) {
+ mx6sdl_dram_iocfg(32, &mx6sdl_ddr_ioregs, &mx6sdl_grp_ioregs);
+ mx6_dram_cfg(&mem_s, &mx6dl_mmdc_calib, &mt41j256);
+ } else if (is_mx6dl()) {
+ mx6sdl_dram_iocfg(64, &mx6sdl_ddr_ioregs, &mx6sdl_grp_ioregs);
+ mx6_dram_cfg(&mem_dl, &mx6dl_mmdc_calib, &mt41j256);
+ } else if (is_mx6dq()) {
+ mx6dq_dram_iocfg(64, &mx6dq_ddr_ioregs, &mx6dq_grp_ioregs);
+ mx6_dram_cfg(&mem_q, &mx6dq_mmdc_calib, &mt41j256);
+ }
+
+ udelay(100);
+}
+
+void board_init_f(ulong dummy)
+{
+ ccgr_init();
+
+ /* setup AIPS and disable watchdog */
+ arch_cpu_init();
+
+ gpr_init();
+
+ /* iomux */
+ board_early_init_f();
+
+ /* setup GP timer */
+ timer_init();
+
+ /* UART clocks enabled and gd valid - init serial console */
+ preloader_console_init();
+
+ /* DDR initialization */
+ spl_dram_init();
+
+ /* Clear the BSS. */
+ memset(__bss_start, 0, __bss_end - __bss_start);
+
+ /* load/boot image from boot device */
+ board_init_r(NULL, 0);
+}
+#endif
diff --git a/configs/imx6q_icore_rqs_mmc_defconfig b/configs/imx6q_icore_rqs_mmc_defconfig
new file mode 100644
index 0000000..eeecef8
--- /dev/null
+++ b/configs/imx6q_icore_rqs_mmc_defconfig
@@ -0,0 +1,38 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_TARGET_MX6Q_ICORE_RQS=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/imx-common/spl_sd.cfg,ENV_IS_IN_MMC"
+CONFIG_DEFAULT_FDT_FILE="imx6q-icore-rqs.dtb"
+CONFIG_DEFAULT_DEVICE_TREE="imx6q-icore-rqs"
+CONFIG_SYS_PROMPT="icorem6qdl-rqs> "
+CONFIG_SPL=y
+CONFIG_BOOTDELAY=3
+CONFIG_BOARD_EARLY_INIT_F=y
+CONFIG_DISPLAY_CPUINFO=y
+CONFIG_HUSH_PARSER=y
+CONFIG_AUTO_COMPLETE=y
+CONFIG_SYS_MAXARGS=32
+# CONFIG_CMD_IMLS is not set
+# CONFIG_BLK is not set
+# CONFIG_DM_MMC_OPS is not set
+CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_OF_LIBFDT=y
+CONFIG_MXC_UART=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
+CONFIG_SPL_LIBDISK_SUPPORT=y
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_SPL_SERIAL_SUPPORT=y
+CONFIG_SPL_GPIO_SUPPORT=y
+CONFIG_SPL_WATCHDOG_SUPPORT=y
+CONFIG_SPL_EXT_SUPPORT=y
diff --git a/include/configs/imx6qdl_icore_rqs.h b/include/configs/imx6qdl_icore_rqs.h
new file mode 100644
index 0000000..7960355
--- /dev/null
+++ b/include/configs/imx6qdl_icore_rqs.h
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2016 Amarula Solutions B.V.
+ * Copyright (C) 2016 Engicam S.r.l.
+ *
+ * Configuration settings for the Engicam i.CoreM6 QDL RQS Starter Kits.
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#ifndef __IMX6QLD_ICORE_RQS_CONFIG_H
+#define __IMX6QLD_ICORE_RQS_CONFIG_H
+
+#include <linux/sizes.h>
+#include "mx6_common.h"
+
+/* Size of malloc() pool */
+#define CONFIG_SYS_MALLOC_LEN (16 * SZ_1M)
+
+/* Total Size of Environment Sector */
+#define CONFIG_ENV_SIZE SZ_128K
+
+/* Allow to overwrite serial and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+
+/* Environment */
+#ifndef CONFIG_ENV_IS_NOWHERE
+/* Environment in MMC */
+# if defined(CONFIG_ENV_IS_IN_MMC)
+# define CONFIG_ENV_OFFSET 0x100000
+# endif
+#endif
+
+/* Default environment */
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ "script=boot.scr\0" \
+ "image=zImage\0" \
+ "console=ttymxc3\0" \
+ "fdt_high=0xffffffff\0" \
+ "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \
+ "fdt_addr=0x18000000\0" \
+ "boot_fdt=try\0" \
+ "mmcdev=0\0" \
+ "mmcpart=1\0" \
+ "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
+ "mmcautodetect=yes\0" \
+ "mmcargs=setenv bootargs console=${console},${baudrate} " \
+ "root=${mmcroot}\0" \
+ "loadbootscript=" \
+ "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
+ "bootscript=echo Running bootscript from mmc ...; " \
+ "source\0" \
+ "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
+ "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
+ "mmcboot=echo Booting from mmc ...; " \
+ "run mmcargs; " \
+ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
+ "if run loadfdt; then " \
+ "bootz ${loadaddr} - ${fdt_addr}; " \
+ "else " \
+ "if test ${boot_fdt} = try; then " \
+ "bootz; " \
+ "else " \
+ "echo WARN: Cannot load the DT; " \
+ "fi; " \
+ "fi; " \
+ "else " \
+ "bootz; " \
+ "fi\0"
+
+#define CONFIG_BOOTCOMMAND \
+ "mmc dev ${mmcdev};" \
+ "mmc dev ${mmcdev}; if mmc rescan; then " \
+ "if run loadbootscript; then " \
+ "run bootscript; " \
+ "else " \
+ "if run loadimage; then " \
+ "run mmcboot; " \
+ "fi; " \
+ "fi; " \
+ "fi"
+
+/* Miscellaneous configurable options */
+#define CONFIG_SYS_MEMTEST_START 0x80000000
+#define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + 0x8000000)
+
+#define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
+#define CONFIG_SYS_HZ 1000
+
+/* Physical Memory Map */
+#define CONFIG_NR_DRAM_BANKS 1
+#define PHYS_SDRAM MMDC0_ARB_BASE_ADDR
+
+#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM
+#define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR
+#define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE
+
+#define CONFIG_SYS_INIT_SP_OFFSET (CONFIG_SYS_INIT_RAM_SIZE - \
+ GENERATED_GBL_DATA_SIZE)
+#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_INIT_RAM_ADDR + \
+ CONFIG_SYS_INIT_SP_OFFSET)
+
+/* UART */
+#ifdef CONFIG_MXC_UART
+# define CONFIG_MXC_UART_BASE UART4_BASE
+#endif
+
+/* MMC */
+#ifdef CONFIG_FSL_USDHC
+# define CONFIG_SYS_MMC_ENV_DEV 0
+# define CONFIG_SYS_FSL_USDHC_NUM 1
+# define CONFIG_SYS_FSL_ESDHC_ADDR 0
+#endif
+
+/* SPL */
+#ifdef CONFIG_SPL
+# define CONFIG_SPL_MMC_SUPPORT
+# include "imx6_spl.h"
+# ifdef CONFIG_SPL_BUILD
+# undef CONFIG_DM_GPIO
+# undef CONFIG_DM_MMC
+# endif
+#endif
+
+#endif /* __IMX6QLD_ICORE_RQS_CONFIG_H */
--
1.9.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 09/16] arm: imx6q: Add Engicam i.CoreM6 Solo/Duallite RQS Starter Kit initial support
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
` (7 preceding siblings ...)
2016-12-13 16:56 ` [U-Boot] [PATCH v4 08/16] arm: imx6q: Add Engicam i.CoreM6 Quad/Dual RQS Starter Kit initial support Jagan Teki
@ 2016-12-13 16:56 ` Jagan Teki
2016-12-13 16:57 ` [U-Boot] [PATCH v4 10/16] imx6: icorem6: Rename engicam icorem6 defconfig files Jagan Teki
` (7 subsequent siblings)
16 siblings, 0 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:56 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
Boot from MMC:
-------------
U-Boot SPL 2016.11-rc2-g217bd8e-dirty (Nov 08 2016 - 22:56:07)
Trying to boot from MMC1
U-Boot 2016.11-rc2-g217bd8e-dirty (Nov 08 2016 - 22:56:07 +0530)
CPU: Freescale i.MX6DL rev1.3 at 792 MHz
Reset cause: POR
Model: Engicam i.CoreM6 DualLite/Solo RQS Starter Kit
DRAM: 512 MiB
MMC: FSL_SDHC: 0
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: CPU Net Initialization Failed
No ethernet found.
Hit any key to stop autoboot: 0
icorem6qdl-rqs>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
arch/arm/dts/Makefile | 1 +
arch/arm/dts/imx6dl-icore-rqs.dts | 50 ++++++++++++++++++++++++++++++++++
board/engicam/icorem6_rqs/MAINTAINERS | 1 +
board/engicam/icorem6_rqs/README | 7 +++--
configs/imx6dl_icore_rqs_mmc_defconfig | 38 ++++++++++++++++++++++++++
5 files changed, 95 insertions(+), 2 deletions(-)
create mode 100644 arch/arm/dts/imx6dl-icore-rqs.dts
create mode 100644 configs/imx6dl_icore_rqs_mmc_defconfig
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
index 96e98c6..7b7a38c 100644
--- a/arch/arm/dts/Makefile
+++ b/arch/arm/dts/Makefile
@@ -291,6 +291,7 @@ dtb-$(CONFIG_VF610) += vf500-colibri.dtb \
dtb-$(CONFIG_MX6) += imx6ull-14x14-evk.dtb \
imx6dl-icore.dtb \
+ imx6dl-icore-rqs.dtb \
imx6q-icore.dtb \
imx6q-icore-rqs.dtb \
imx6ul-geam-kit.dtb
diff --git a/arch/arm/dts/imx6dl-icore-rqs.dts b/arch/arm/dts/imx6dl-icore-rqs.dts
new file mode 100644
index 0000000..0f1de3f
--- /dev/null
+++ b/arch/arm/dts/imx6dl-icore-rqs.dts
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2015 Amarula Solutions B.V.
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ * a) This file 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.
+ *
+ * This file 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.
+ *
+ * Or, alternatively
+ *
+ * b) Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/dts-v1/;
+
+#include "imx6q.dtsi"
+#include "imx6qdl-icore-rqs.dtsi"
+
+/ {
+ model = "Engicam i.CoreM6 DualLite/Solo RQS Starter Kit";
+ compatible = "engicam,imx6-icore-rqs", "fsl,imx6q";
+};
diff --git a/board/engicam/icorem6_rqs/MAINTAINERS b/board/engicam/icorem6_rqs/MAINTAINERS
index 4c6bd62..0556211 100644
--- a/board/engicam/icorem6_rqs/MAINTAINERS
+++ b/board/engicam/icorem6_rqs/MAINTAINERS
@@ -4,3 +4,4 @@ S: Maintained
F: board/engicam/icorem6_rqs
F: include/configs/imx6qdl_icore_rqs.h
F: configs/imx6q_icore_rqs_mmc_defconfig
+F: configs/imx6dl_icore_rqs_mmc_defconfig
diff --git a/board/engicam/icorem6_rqs/README b/board/engicam/icorem6_rqs/README
index f94e6e1..ccce622 100644
--- a/board/engicam/icorem6_rqs/README
+++ b/board/engicam/icorem6_rqs/README
@@ -1,11 +1,14 @@
-How to use U-Boot on Engicam i.CoreM6 RQS Quad/Dual Starter Kit:
-----------------------------------------------------------------
+How to use U-Boot on Engicam i.CoreM6 RQS Solo/DualLite and Quad/Dual Starter Kit:
+----------------------------------------------------------------------------------
$ make mrproper
- Configure U-Boot for Engicam i.CoreM6 RQS Quad/Dual:
$ make imx6q_icore_rqs_mmc_defconfig
+- Configure U-Boot for Engicam i.CoreM6 RQS Solo/DualLite:
+$ make imx6dl_icore_rqs_mmc_defconfig
+
- Build U-Boot
$ make
diff --git a/configs/imx6dl_icore_rqs_mmc_defconfig b/configs/imx6dl_icore_rqs_mmc_defconfig
new file mode 100644
index 0000000..7fc7fa0
--- /dev/null
+++ b/configs/imx6dl_icore_rqs_mmc_defconfig
@@ -0,0 +1,38 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_TARGET_MX6Q_ICORE_RQS=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/imx-common/spl_sd.cfg,ENV_IS_IN_MMC"
+CONFIG_DEFAULT_FDT_FILE="imx6dl-icore-rqs.dtb"
+CONFIG_DEFAULT_DEVICE_TREE="imx6dl-icore-rqs"
+CONFIG_SYS_PROMPT="icorem6qdl-rqs> "
+CONFIG_SPL=y
+CONFIG_BOOTDELAY=3
+CONFIG_BOARD_EARLY_INIT_F=y
+CONFIG_DISPLAY_CPUINFO=y
+CONFIG_HUSH_PARSER=y
+CONFIG_AUTO_COMPLETE=y
+CONFIG_SYS_MAXARGS=32
+# CONFIG_CMD_IMLS is not set
+# CONFIG_BLK is not set
+# CONFIG_DM_MMC_OPS is not set
+CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_OF_LIBFDT=y
+CONFIG_MXC_UART=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
+CONFIG_SPL_LIBDISK_SUPPORT=y
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_SPL_SERIAL_SUPPORT=y
+CONFIG_SPL_GPIO_SUPPORT=y
+CONFIG_SPL_WATCHDOG_SUPPORT=y
+CONFIG_SPL_EXT_SUPPORT=y
--
1.9.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 10/16] imx6: icorem6: Rename engicam icorem6 defconfig files
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
` (8 preceding siblings ...)
2016-12-13 16:56 ` [U-Boot] [PATCH v4 09/16] arm: imx6q: Add Engicam i.CoreM6 Solo/Duallite " Jagan Teki
@ 2016-12-13 16:57 ` Jagan Teki
2016-12-13 16:57 ` [U-Boot] [PATCH v4 11/16] arm: dts: imx6qdl-icore-rqs: Add I2C node's Jagan Teki
` (6 subsequent siblings)
16 siblings, 0 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:57 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
Rename defconfig files for better compatible with
respective board names and dts files.
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
board/engicam/icorem6/MAINTAINERS | 6 ++-
board/engicam/icorem6/README | 19 ++++-----
...re_mmc_defconfig => imx6dl_icore_mmc_defconfig} | 0
..._nand_defconfig => imx6dl_icore_nand_defconfig} | 0
configs/imx6q_icore_mmc_defconfig | 46 ++++++++++++++++++++++
configs/imx6q_icore_nand_defconfig | 41 +++++++++++++++++++
6 files changed, 98 insertions(+), 14 deletions(-)
rename configs/{imx6qdl_icore_mmc_defconfig => imx6dl_icore_mmc_defconfig} (100%)
rename configs/{imx6qdl_icore_nand_defconfig => imx6dl_icore_nand_defconfig} (100%)
create mode 100644 configs/imx6q_icore_mmc_defconfig
create mode 100644 configs/imx6q_icore_nand_defconfig
diff --git a/board/engicam/icorem6/MAINTAINERS b/board/engicam/icorem6/MAINTAINERS
index a425afb..0ef3a2c 100644
--- a/board/engicam/icorem6/MAINTAINERS
+++ b/board/engicam/icorem6/MAINTAINERS
@@ -3,5 +3,7 @@ M: Jagan Teki <jagan@amarulasolutions.com>
S: Maintained
F: board/engicam/icorem6
F: include/configs/imx6qdl_icore.h
-F: configs/imx6qdl_icore_mmc_defconfig
-F: configs/imx6qdl_icore_nand_defconfig
+F: configs/imx6q_icore_mmc_defconfig
+F: configs/imx6q_icore_nand_defconfig
+F: configs/imx6dl_icore_mmc_defconfig
+F: configs/imx6dl_icore_nand_defconfig
diff --git a/board/engicam/icorem6/README b/board/engicam/icorem6/README
index e47f85f..6461c0a 100644
--- a/board/engicam/icorem6/README
+++ b/board/engicam/icorem6/README
@@ -1,18 +1,16 @@
-How to use U-Boot on Engicam i.CoreM6 DualLite/Solo and Quad/Dual Starter Kit:
+How to use U-Boot on Engicam i.CoreM6 Solo/DualLite and Quad/Dual Starter Kit:
-----------------------------------------------------------------------------
-- Configure U-Boot for Engicam i.CoreM6 QDL:
-
$ make mrproper
-$ make imx6qdl_icore_mmc_defconfig
-
-- Build for i.CoreM6 DualLite/Solo
-$ make
+- Configure U-Boot for Engicam i.CoreM6 Quad/Dual:
+$ make imx6q_icore_mmc_defconfig
-- Build for i.CoreM6 Quad/Dual
+- Configure U-Boot for Engicam i.CoreM6 Solo/DualLite:
+$ make imx6dl_icore_mmc_defconfig
-$ make DEVICE_TREE=imx6q-icore
+- Build U-Boot
+$ make
This will generate the SPL image called SPL and the u-boot-dtb.img.
@@ -33,6 +31,3 @@ MMC Boot: JM3 Closed
- Insert the micro SD card in the board, power it up and U-Boot messages should
come up.
-
-- Note: For loading Linux on Quad/Dual modules set the dtb as
- icorem6qdl> setenv fdt_file imx6q-icore.dtb
diff --git a/configs/imx6qdl_icore_mmc_defconfig b/configs/imx6dl_icore_mmc_defconfig
similarity index 100%
rename from configs/imx6qdl_icore_mmc_defconfig
rename to configs/imx6dl_icore_mmc_defconfig
diff --git a/configs/imx6qdl_icore_nand_defconfig b/configs/imx6dl_icore_nand_defconfig
similarity index 100%
rename from configs/imx6qdl_icore_nand_defconfig
rename to configs/imx6dl_icore_nand_defconfig
diff --git a/configs/imx6q_icore_mmc_defconfig b/configs/imx6q_icore_mmc_defconfig
new file mode 100644
index 0000000..adbd4e7
--- /dev/null
+++ b/configs/imx6q_icore_mmc_defconfig
@@ -0,0 +1,46 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_TARGET_MX6Q_ICORE=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/imx-common/spl_sd.cfg,ENV_IS_IN_MMC"
+CONFIG_DEFAULT_FDT_FILE="imx6q-icore.dtb"
+CONFIG_DEFAULT_DEVICE_TREE="imx6q-icore"
+CONFIG_SYS_PROMPT="icorem6qdl> "
+CONFIG_SPL=y
+CONFIG_BOOTDELAY=3
+CONFIG_BOARD_EARLY_INIT_F=y
+CONFIG_DISPLAY_CPUINFO=y
+CONFIG_HUSH_PARSER=y
+CONFIG_AUTO_COMPLETE=y
+CONFIG_SYS_MAXARGS=32
+# CONFIG_CMD_IMLS is not set
+# CONFIG_BLK is not set
+# CONFIG_DM_MMC_OPS is not set
+CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_OF_LIBFDT=y
+CONFIG_FEC_MXC=y
+CONFIG_MXC_UART=y
+CONFIG_IMX_THERMAL=y
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
+CONFIG_SYS_I2C_MXC=y
+CONFIG_VIDEO=y
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
+CONFIG_SPL_LIBDISK_SUPPORT=y
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_SPL_SERIAL_SUPPORT=y
+CONFIG_SPL_GPIO_SUPPORT=y
+CONFIG_SPL_WATCHDOG_SUPPORT=y
+CONFIG_SPL_EXT_SUPPORT=y
diff --git a/configs/imx6q_icore_nand_defconfig b/configs/imx6q_icore_nand_defconfig
new file mode 100644
index 0000000..03f5c62
--- /dev/null
+++ b/configs/imx6q_icore_nand_defconfig
@@ -0,0 +1,41 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX6=y
+CONFIG_TARGET_MX6Q_ICORE=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=arch/arm/imx-common/spl_sd.cfg,ENV_IS_IN_NAND"
+CONFIG_DEFAULT_FDT_FILE="imx6q-icore.dtb"
+CONFIG_DEFAULT_DEVICE_TREE="imx6q-icore"
+CONFIG_SYS_PROMPT="icorem6qdl> "
+CONFIG_SPL=y
+CONFIG_BOOTDELAY=3
+CONFIG_BOARD_EARLY_INIT_F=y
+CONFIG_DISPLAY_CPUINFO=y
+CONFIG_HUSH_PARSER=y
+CONFIG_AUTO_COMPLETE=y
+CONFIG_SYS_MAXARGS=32
+# CONFIG_CMD_IMLS is not set
+CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_NAND=y
+CONFIG_CMD_CACHE=y
+CONFIG_OF_LIBFDT=y
+CONFIG_FEC_MXC=y
+CONFIG_MXC_UART=y
+CONFIG_NAND_MXS=y
+CONFIG_IMX_THERMAL=y
+# CONFIG_BLK is not set
+# CONFIG_DM_MMC_OPS is not set
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_IMX6=y
+CONFIG_SYS_I2C_MXC=y
+CONFIG_VIDEO=y
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_SPL_SERIAL_SUPPORT=y
+CONFIG_SPL_GPIO_SUPPORT=y
+CONFIG_SPL_WATCHDOG_SUPPORT=y
+CONFIG_SPL_DMA_SUPPORT=y
--
1.9.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 11/16] arm: dts: imx6qdl-icore-rqs: Add I2C node's
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
` (9 preceding siblings ...)
2016-12-13 16:57 ` [U-Boot] [PATCH v4 10/16] imx6: icorem6: Rename engicam icorem6 defconfig files Jagan Teki
@ 2016-12-13 16:57 ` Jagan Teki
2016-12-13 16:57 ` [U-Boot] [PATCH v4 12/16] imx6: icorem6_rqs: Add I2C support Jagan Teki
` (5 subsequent siblings)
16 siblings, 0 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:57 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
Add I2C nodes for Engicam i.CoreM6 RQS modules.
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
arch/arm/dts/imx6qdl-icore-rqs.dtsi | 41 +++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)
diff --git a/arch/arm/dts/imx6qdl-icore-rqs.dtsi b/arch/arm/dts/imx6qdl-icore-rqs.dtsi
index 343ab35..2aaa6e4 100644
--- a/arch/arm/dts/imx6qdl-icore-rqs.dtsi
+++ b/arch/arm/dts/imx6qdl-icore-rqs.dtsi
@@ -48,6 +48,26 @@
};
};
+&i2c1 {
+ clock-frequency = <100000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c1>;
+ status = "okay";
+};
+
+&i2c2 {
+ clock-frequency = <100000>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c2>;
+ status = "okay";
+};
+
+&i2c3 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_i2c3>;
+ status = "okay";
+};
+
&uart4 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart4>;
@@ -63,6 +83,27 @@
};
&iomuxc {
+ pinctrl_i2c1: i2c1grp {
+ fsl,pins = <
+ MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
+ MX6QDL_PAD_EIM_D28__I2C1_SDA 0x4001b8b1
+ >;
+ };
+
+ pinctrl_i2c2: i2c2grp {
+ fsl,pins = <
+ MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b8b1
+ MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
+ >;
+ };
+
+ pinctrl_i2c3: i2c3grp {
+ fsl,pins = <
+ MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1
+ MX6QDL_PAD_EIM_D18__I2C3_SDA 0x4001b8b1
+ >;
+ };
+
pinctrl_uart4: uart4grp {
fsl,pins = <
MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1
--
1.9.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 12/16] imx6: icorem6_rqs: Add I2C support
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
` (10 preceding siblings ...)
2016-12-13 16:57 ` [U-Boot] [PATCH v4 11/16] arm: dts: imx6qdl-icore-rqs: Add I2C node's Jagan Teki
@ 2016-12-13 16:57 ` Jagan Teki
2016-12-13 16:57 ` [U-Boot] [PATCH v4 13/16] arm: dts: imx6ul-geam: Add FEC node Jagan Teki
` (4 subsequent siblings)
16 siblings, 0 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:57 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
Add I2C support for Engicam i.CoreM6 RQS modules.
icorem6qdl-rqs> i2c bus
Bus 0: i2c at 021a0000
Bus 1: i2c at 021a4000
Bus 2: i2c at 021a8000
icorem6qdl-rqs> i2c dev 0
Setting bus to 0
icorem6qdl-rqs> i2c speed 100000
Setting bus speed to 100000 Hz
icorem6qdl-rqs> i2c probe
Valid chip addresses: 4F
icorem6qdl-rqs> i2c md 4F 0xff
00ff: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ................
icorem6qdl-rqs> i2c bus
Bus 0: i2c at 021a0000 (active 0)
4f: generic_4f, offset len 1, flags 0
Bus 1: i2c at 021a4000
Bus 2: i2c at 021a8000
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
arch/arm/cpu/armv7/mx6/Kconfig | 1 +
configs/imx6dl_icore_rqs_mmc_defconfig | 2 ++
configs/imx6q_icore_rqs_mmc_defconfig | 2 ++
3 files changed, 5 insertions(+)
diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig
index a9403bf..50e9b4b 100644
--- a/arch/arm/cpu/armv7/mx6/Kconfig
+++ b/arch/arm/cpu/armv7/mx6/Kconfig
@@ -121,6 +121,7 @@ config TARGET_MX6Q_ICORE_RQS
select OF_CONTROL
select DM
select DM_GPIO
+ select DM_I2C
select DM_MMC
select DM_THERMAL
select SUPPORT_SPL
diff --git a/configs/imx6dl_icore_rqs_mmc_defconfig b/configs/imx6dl_icore_rqs_mmc_defconfig
index 7fc7fa0..19a721c 100644
--- a/configs/imx6dl_icore_rqs_mmc_defconfig
+++ b/configs/imx6dl_icore_rqs_mmc_defconfig
@@ -25,10 +25,12 @@ CONFIG_CMD_EXT4=y
CONFIG_CMD_EXT4_WRITE=y
CONFIG_CMD_FAT=y
CONFIG_CMD_FS_GENERIC=y
+CONFIG_CMD_I2C=y
CONFIG_OF_LIBFDT=y
CONFIG_MXC_UART=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_IMX6=y
+CONFIG_SYS_I2C_MXC=y
CONFIG_SPL_LIBDISK_SUPPORT=y
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
diff --git a/configs/imx6q_icore_rqs_mmc_defconfig b/configs/imx6q_icore_rqs_mmc_defconfig
index eeecef8..bbd10af 100644
--- a/configs/imx6q_icore_rqs_mmc_defconfig
+++ b/configs/imx6q_icore_rqs_mmc_defconfig
@@ -25,10 +25,12 @@ CONFIG_CMD_EXT4=y
CONFIG_CMD_EXT4_WRITE=y
CONFIG_CMD_FAT=y
CONFIG_CMD_FS_GENERIC=y
+CONFIG_CMD_I2C=y
CONFIG_OF_LIBFDT=y
CONFIG_MXC_UART=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_IMX6=y
+CONFIG_SYS_I2C_MXC=y
CONFIG_SPL_LIBDISK_SUPPORT=y
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
--
1.9.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 13/16] arm: dts: imx6ul-geam: Add FEC node
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
` (11 preceding siblings ...)
2016-12-13 16:57 ` [U-Boot] [PATCH v4 12/16] imx6: icorem6_rqs: Add I2C support Jagan Teki
@ 2016-12-13 16:57 ` Jagan Teki
2016-12-13 16:57 ` [U-Boot] [PATCH v4 14/16] imx6: geam6ul: Add FEC support Jagan Teki
` (3 subsequent siblings)
16 siblings, 0 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:57 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
Add FEC node for Engicam GEAM6UL module.
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
arch/arm/dts/imx6ul-geam-kit.dts | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/arch/arm/dts/imx6ul-geam-kit.dts b/arch/arm/dts/imx6ul-geam-kit.dts
index 3672b02..07c21cb 100644
--- a/arch/arm/dts/imx6ul-geam-kit.dts
+++ b/arch/arm/dts/imx6ul-geam-kit.dts
@@ -59,6 +59,13 @@
};
};
+&fec1 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_enet1>;
+ phy-mode = "rmii";
+ status = "okay";
+};
+
&i2c1 {
clock-frequency = <100000>;
pinctrl-names = "default";
@@ -91,6 +98,20 @@
};
&iomuxc {
+ pinctrl_enet1: enet1grp {
+ fsl,pins = <
+ MX6UL_PAD_GPIO1_IO07__ENET2_MDC 0x1b0b0
+ MX6UL_PAD_GPIO1_IO06__ENET2_MDIO 0x1b0b0
+ MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0
+ MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
+ MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
+ MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0
+ MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
+ MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
+ MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031
+ >;
+ };
+
pinctrl_i2c1: i2c1grp {
fsl,pins = <
MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
--
1.9.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 14/16] imx6: geam6ul: Add FEC support
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
` (12 preceding siblings ...)
2016-12-13 16:57 ` [U-Boot] [PATCH v4 13/16] arm: dts: imx6ul-geam: Add FEC node Jagan Teki
@ 2016-12-13 16:57 ` Jagan Teki
2016-12-13 16:57 ` [U-Boot] [PATCH v4 15/16] arm: dts: imx6qdl-icore-rqs: Add FEC node Jagan Teki
` (2 subsequent siblings)
16 siblings, 0 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:57 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
Add FEC support for Engicam GEAM6UL module.
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
arch/arm/cpu/armv7/mx6/Kconfig | 1 +
configs/imx6ul_geam_mmc_defconfig | 3 +++
configs/imx6ul_geam_nand_defconfig | 3 +++
include/configs/imx6ul_geam.h | 10 ++++++++++
4 files changed, 17 insertions(+)
diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig
index 50e9b4b..d57ce9b 100644
--- a/arch/arm/cpu/armv7/mx6/Kconfig
+++ b/arch/arm/cpu/armv7/mx6/Kconfig
@@ -173,6 +173,7 @@ config TARGET_MX6UL_GEAM
select MX6UL
select OF_CONTROL
select DM
+ select DM_ETH
select DM_GPIO
select DM_I2C
select DM_MMC
diff --git a/configs/imx6ul_geam_mmc_defconfig b/configs/imx6ul_geam_mmc_defconfig
index e1e1dd2..d5be076 100644
--- a/configs/imx6ul_geam_mmc_defconfig
+++ b/configs/imx6ul_geam_mmc_defconfig
@@ -18,6 +18,8 @@ CONFIG_SYS_MAXARGS=32
CONFIG_CMD_BOOTZ=y
CONFIG_CMD_GPIO=y
CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
CONFIG_CMD_MMC=y
CONFIG_CMD_CACHE=y
CONFIG_CMD_EXT2=y
@@ -27,6 +29,7 @@ CONFIG_CMD_FAT=y
CONFIG_CMD_FS_GENERIC=y
CONFIG_CMD_I2C=y
CONFIG_OF_LIBFDT=y
+CONFIG_FEC_MXC=y
CONFIG_MXC_UART=y
CONFIG_IMX_THERMAL=y
CONFIG_PINCTRL=y
diff --git a/configs/imx6ul_geam_nand_defconfig b/configs/imx6ul_geam_nand_defconfig
index b7a44c7..cc45602 100644
--- a/configs/imx6ul_geam_nand_defconfig
+++ b/configs/imx6ul_geam_nand_defconfig
@@ -18,9 +18,12 @@ CONFIG_SYS_MAXARGS=32
CONFIG_CMD_BOOTZ=y
CONFIG_CMD_GPIO=y
CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
CONFIG_CMD_NAND=y
CONFIG_CMD_CACHE=y
CONFIG_OF_LIBFDT=y
+CONFIG_FEC_MXC=y
CONFIG_MXC_UART=y
CONFIG_NAND_MXS=y
CONFIG_IMX_THERMAL=y
diff --git a/include/configs/imx6ul_geam.h b/include/configs/imx6ul_geam.h
index 7cfdfef..48b1120 100644
--- a/include/configs/imx6ul_geam.h
+++ b/include/configs/imx6ul_geam.h
@@ -137,6 +137,16 @@
# define CONFIG_APBH_DMA_BURST8
#endif
+/* Ethernet */
+#ifdef CONFIG_FEC_MXC
+# define CONFIG_FEC_MXC_PHYADDR 0
+# define CONFIG_FEC_XCV_TYPE RMII
+
+# define CONFIG_MII
+# define CONFIG_PHYLIB
+# define CONFIG_PHY_SMSC
+#endif
+
/* SPL */
#ifdef CONFIG_SPL
# ifdef CONFIG_NAND_MXS
--
1.9.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 15/16] arm: dts: imx6qdl-icore-rqs: Add FEC node
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
` (13 preceding siblings ...)
2016-12-13 16:57 ` [U-Boot] [PATCH v4 14/16] imx6: geam6ul: Add FEC support Jagan Teki
@ 2016-12-13 16:57 ` Jagan Teki
2016-12-13 16:57 ` [U-Boot] [PATCH v4 16/16] imx6: icorem6_rqs: Add FEC support Jagan Teki
2016-12-16 9:23 ` [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
16 siblings, 0 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:57 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
Add FEC node for Engicam i.CoreM6 RQS modules.
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
arch/arm/dts/imx6qdl-icore-rqs.dtsi | 46 +++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/arch/arm/dts/imx6qdl-icore-rqs.dtsi b/arch/arm/dts/imx6qdl-icore-rqs.dtsi
index 2aaa6e4..750229b 100644
--- a/arch/arm/dts/imx6qdl-icore-rqs.dtsi
+++ b/arch/arm/dts/imx6qdl-icore-rqs.dtsi
@@ -48,6 +48,31 @@
};
};
+&fec {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_enet>;
+ phy-handle = <ð_phy>;
+ phy-mode = "rgmii";
+ status = "okay";
+
+ mdio {
+ eth_phy: ethernet-phy {
+ rxc-skew-ps = <1140>;
+ txc-skew-ps = <1140>;
+ txen-skew-ps = <600>;
+ rxdv-skew-ps = <240>;
+ rxd0-skew-ps = <420>;
+ rxd1-skew-ps = <600>;
+ rxd2-skew-ps = <420>;
+ rxd3-skew-ps = <240>;
+ txd0-skew-ps = <60>;
+ txd1-skew-ps = <60>;
+ txd2-skew-ps = <60>;
+ txd3-skew-ps = <240>;
+ };
+ };
+};
+
&i2c1 {
clock-frequency = <100000>;
pinctrl-names = "default";
@@ -83,6 +108,27 @@
};
&iomuxc {
+ pinctrl_enet: enetgrp {
+ fsl,pins = <
+ MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
+ MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
+ MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
+ MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
+ MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
+ MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
+ MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
+ MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
+ MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
+ MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
+ MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030
+ MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030
+ MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
+ MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
+ MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
+ MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1b0b0
+ >;
+ };
+
pinctrl_i2c1: i2c1grp {
fsl,pins = <
MX6QDL_PAD_EIM_D21__I2C1_SCL 0x4001b8b1
--
1.9.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 16/16] imx6: icorem6_rqs: Add FEC support
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
` (14 preceding siblings ...)
2016-12-13 16:57 ` [U-Boot] [PATCH v4 15/16] arm: dts: imx6qdl-icore-rqs: Add FEC node Jagan Teki
@ 2016-12-13 16:57 ` Jagan Teki
2016-12-16 9:23 ` [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
16 siblings, 0 replies; 24+ messages in thread
From: Jagan Teki @ 2016-12-13 16:57 UTC (permalink / raw)
To: u-boot
From: Jagan Teki <jagan@amarulasolutions.com>
Add FEC support for Engicam i.CoreM6 RQS modules.
Cc: Stefano Babic <sbabic@denx.de>
Cc: Matteo Lisi <matteo.lisi@engicam.com>
Cc: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
---
arch/arm/cpu/armv7/mx6/Kconfig | 1 +
configs/imx6dl_icore_rqs_mmc_defconfig | 3 +++
configs/imx6q_icore_rqs_mmc_defconfig | 3 +++
include/configs/imx6qdl_icore_rqs.h | 11 +++++++++++
4 files changed, 18 insertions(+)
diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig
index d57ce9b..f036717 100644
--- a/arch/arm/cpu/armv7/mx6/Kconfig
+++ b/arch/arm/cpu/armv7/mx6/Kconfig
@@ -120,6 +120,7 @@ config TARGET_MX6Q_ICORE_RQS
select MX6QDL
select OF_CONTROL
select DM
+ select DM_ETH
select DM_GPIO
select DM_I2C
select DM_MMC
diff --git a/configs/imx6dl_icore_rqs_mmc_defconfig b/configs/imx6dl_icore_rqs_mmc_defconfig
index 19a721c..230cd20 100644
--- a/configs/imx6dl_icore_rqs_mmc_defconfig
+++ b/configs/imx6dl_icore_rqs_mmc_defconfig
@@ -18,6 +18,8 @@ CONFIG_SYS_MAXARGS=32
CONFIG_CMD_BOOTZ=y
CONFIG_CMD_GPIO=y
CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
CONFIG_CMD_MMC=y
CONFIG_CMD_CACHE=y
CONFIG_CMD_EXT2=y
@@ -27,6 +29,7 @@ CONFIG_CMD_FAT=y
CONFIG_CMD_FS_GENERIC=y
CONFIG_CMD_I2C=y
CONFIG_OF_LIBFDT=y
+CONFIG_FEC_MXC=y
CONFIG_MXC_UART=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_IMX6=y
diff --git a/configs/imx6q_icore_rqs_mmc_defconfig b/configs/imx6q_icore_rqs_mmc_defconfig
index bbd10af..f7c25c4 100644
--- a/configs/imx6q_icore_rqs_mmc_defconfig
+++ b/configs/imx6q_icore_rqs_mmc_defconfig
@@ -18,6 +18,8 @@ CONFIG_SYS_MAXARGS=32
CONFIG_CMD_BOOTZ=y
CONFIG_CMD_GPIO=y
CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
CONFIG_CMD_MMC=y
CONFIG_CMD_CACHE=y
CONFIG_CMD_EXT2=y
@@ -27,6 +29,7 @@ CONFIG_CMD_FAT=y
CONFIG_CMD_FS_GENERIC=y
CONFIG_CMD_I2C=y
CONFIG_OF_LIBFDT=y
+CONFIG_FEC_MXC=y
CONFIG_MXC_UART=y
CONFIG_PINCTRL=y
CONFIG_PINCTRL_IMX6=y
diff --git a/include/configs/imx6qdl_icore_rqs.h b/include/configs/imx6qdl_icore_rqs.h
index 7960355..0121563 100644
--- a/include/configs/imx6qdl_icore_rqs.h
+++ b/include/configs/imx6qdl_icore_rqs.h
@@ -111,6 +111,17 @@
# define CONFIG_SYS_FSL_ESDHC_ADDR 0
#endif
+/* Ethernet */
+#ifdef CONFIG_FEC_MXC
+# define CONFIG_FEC_MXC_PHYADDR 3
+# define CONFIG_FEC_XCV_TYPE RGMII
+
+# define CONFIG_MII
+# define CONFIG_PHYLIB
+# define CONFIG_PHY_MICREL
+# define CONFIG_PHY_MICREL_KSZ9021
+#endif
+
/* SPL */
#ifdef CONFIG_SPL
# define CONFIG_SPL_MMC_SUPPORT
--
1.9.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
` (15 preceding siblings ...)
2016-12-13 16:57 ` [U-Boot] [PATCH v4 16/16] imx6: icorem6_rqs: Add FEC support Jagan Teki
@ 2016-12-16 9:23 ` Jagan Teki
2016-12-16 15:42 ` Stefano Babic
16 siblings, 1 reply; 24+ messages in thread
From: Jagan Teki @ 2016-12-16 9:23 UTC (permalink / raw)
To: u-boot
Hi Stefano,
On Tue, Dec 13, 2016 at 5:56 PM, Jagan Teki <jagan@openedev.com> wrote:
> From: Jagan Teki <jagan@amarulasolutions.com>
>
> This is v4 for previous v3, v2 series[1] [2] on top of [3] series
>
> Changes for v4:
> - Add FEC patches.
>
> Changes for v3:
> - Add I2C support
>
> Changes for v2:
> - Add 'Acked-by' from Joe
> - Add new i.CoreM6 RQS patches
>
> [1] https://www.mail-archive.com/u-boot at lists.denx.de/msg230990.html
> [2] https://www.mail-archive.com/u-boot at lists.denx.de/msg230283.html
> [3] [PATCH v3 00/13] imx6: icorem6: Add dm-eth, framebuffer and I2C support
>
> Jagan Teki (16):
> arm: dts: Add devicetree for i.MX6UL
> arm: imx6ul: Add Engicam GEAM6UL Starter Kit initial support
> arm: dts: imx6ul-geam: Add I2C nodes
> imx6: geam6ul: Add I2C support
> imx6: geam6ul: Add NAND support
> imx6: geam6ul: Enable MTD device support
> imx6: geam6ul: Add default mtd nand partition table
> arm: imx6q: Add Engicam i.CoreM6 Quad/Dual RQS Starter Kit initial
> support
> arm: imx6q: Add Engicam i.CoreM6 Solo/Duallite RQS Starter Kit initial
> support
> imx6: icorem6: Rename engicam icorem6 defconfig files
> arm: dts: imx6qdl-icore-rqs: Add I2C node's
> imx6: icorem6_rqs: Add I2C support
> arm: dts: imx6ul-geam: Add FEC node
> imx6: geam6ul: Add FEC support
> arm: dts: imx6qdl-icore-rqs: Add FEC node
> imx6: icorem6_rqs: Add FEC support
Any help? this is getting delay since so-long.
thanks!
--
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.
^ permalink raw reply [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support
2016-12-16 9:23 ` [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
@ 2016-12-16 15:42 ` Stefano Babic
2016-12-16 16:00 ` Jagan Teki
0 siblings, 1 reply; 24+ messages in thread
From: Stefano Babic @ 2016-12-16 15:42 UTC (permalink / raw)
To: u-boot
Hi Jagan,
On 16/12/2016 10:23, Jagan Teki wrote:
> Hi Stefano,
>
> On Tue, Dec 13, 2016 at 5:56 PM, Jagan Teki <jagan@openedev.com> wrote:
>> From: Jagan Teki <jagan@amarulasolutions.com>
>>
>> This is v4 for previous v3, v2 series[1] [2] on top of [3] series
>>
>> Changes for v4:
>> - Add FEC patches.
>>
>> Changes for v3:
>> - Add I2C support
>>
>> Changes for v2:
>> - Add 'Acked-by' from Joe
>> - Add new i.CoreM6 RQS patches
>>
>> [1] https://www.mail-archive.com/u-boot at lists.denx.de/msg230990.html
>> [2] https://www.mail-archive.com/u-boot at lists.denx.de/msg230283.html
>> [3] [PATCH v3 00/13] imx6: icorem6: Add dm-eth, framebuffer and I2C support
>>
>> Jagan Teki (16):
>> arm: dts: Add devicetree for i.MX6UL
>> arm: imx6ul: Add Engicam GEAM6UL Starter Kit initial support
>> arm: dts: imx6ul-geam: Add I2C nodes
>> imx6: geam6ul: Add I2C support
>> imx6: geam6ul: Add NAND support
>> imx6: geam6ul: Enable MTD device support
>> imx6: geam6ul: Add default mtd nand partition table
>> arm: imx6q: Add Engicam i.CoreM6 Quad/Dual RQS Starter Kit initial
>> support
>> arm: imx6q: Add Engicam i.CoreM6 Solo/Duallite RQS Starter Kit initial
>> support
>> imx6: icorem6: Rename engicam icorem6 defconfig files
>> arm: dts: imx6qdl-icore-rqs: Add I2C node's
>> imx6: icorem6_rqs: Add I2C support
>> arm: dts: imx6ul-geam: Add FEC node
>> imx6: geam6ul: Add FEC support
>> arm: dts: imx6qdl-icore-rqs: Add FEC node
>> imx6: icorem6_rqs: Add FEC support
>
> Any help? this is getting delay since so-long.
>
> thanks!
>
I am still getting a huge list of errors and warnings after merging your
patches. I have not yet got time to check deeper the reasons, but
without a clean build this patchset cannot be merged.
Here my log:
arm: + imx6dl_icore_mmc
+drivers/net/fec_mxc.c: In function 'fec_set_hwaddr':
+drivers/net/fec_mxc.c:374:18: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:375:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: At top level:
+drivers/net/fec_mxc.c: In function 'fec_open':
+drivers/net/fec_mxc.c:432:48: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:502:27: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_init':
+drivers/net/fec_mxc.c:540:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:372:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:430:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c: In function 'fec_halt':
+drivers/net/fec_mxc.c:601:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_send':
+drivers/net/fec_mxc.c:653:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_recv':
+drivers/net/fec_mxc.c:788:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:599:13: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:538:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c: In function 'fec_probe':
+drivers/net/fec_mxc.c:989:44: error: invalid application of 'sizeof' to
incomplete type 'struct eth_device'
+drivers/net/fec_mxc.c:1003:25: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1010:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1011:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1012:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1013:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1014:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1015:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1034:23: error: dereferencing pointer to
incomplete type
+include/phy.h:225:6: note: expected 'struct udevice *' but argument is
of type 'struct eth_device *'
+drivers/net/fec_mxc.c:365:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:1050:14: error: dereferencing pointer to
incomplete type
+make[2]: *** [drivers/net/fec_mxc.o] Error 1
+make[1]: *** [drivers/net] Error 2
+make: *** [sub-make] Error 2
w+drivers/net/fec_mxc.c:366:7: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:366:7: warning: its scope is only this
definition or declaration, which is probably not what you want [enabled
by default]
w+drivers/net/fec_mxc.c:372:34: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:430:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:538:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:545:2: warning: passing argument 1 of
'fec_set_hwaddr' from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:591:2: warning: passing argument 1 of 'fec_open'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:599:29: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:641:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:786:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:804:3: warning: passing argument 1 of 'fec_halt'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:805:3: warning: passing argument 1 of 'fec_init'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:817:4: warning: passing argument 1 of 'fec_halt'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:820:4: warning: passing argument 1 of 'fec_init'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:1040:2: warning: passing argument 2 of
'phy_connect_dev' from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:1046:2: warning: implicit declaration of
function 'eth_register' [-Wimplicit-function-declaration]
w+drivers/net/fec_mxc.c:1048:2: warning: passing argument 1 of
'fec_get_hwaddr' from incompatible pointer type [enabled by default]
arm: + imx6dl_icore_rqs_mmc
+cmd/i2c.c: In function 'i2c_get_bus_speed':
+cmd/i2c.c:211:9: error: 'CONFIG_SYS_I2C_SPEED' undeclared (first use in
this function)
+cmd/i2c.c:211:9: note: each undeclared identifier is reported only once
for each function it appears in
+cmd/i2c.c: In function 'i2c_set_bus_speed':
+cmd/i2c.c:230:15: error: 'CONFIG_SYS_I2C_SPEED' undeclared (first use
in this function)
+cmd/i2c.c: In function 'do_i2c_reset':
+cmd/i2c.c:1925:11: error: 'CONFIG_SYS_I2C_SPEED' undeclared (first use
in this function)
+make[2]: *** [cmd/i2c.o] Error 1
+make[1]: *** [cmd] Error 2
+make: *** [sub-make] Error 2
w+cmd/i2c.c: In function 'i2c_get_bus_speed':
w+cmd/i2c.c:212:1: warning: control reaches end of non-void function
[-Wreturn-type]
arm: + imx6q_icore_mmc
+drivers/net/fec_mxc.c: In function 'fec_set_hwaddr':
+drivers/net/fec_mxc.c:374:18: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:375:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: At top level:
+drivers/net/fec_mxc.c: In function 'fec_open':
+drivers/net/fec_mxc.c:432:48: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:502:27: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_init':
+drivers/net/fec_mxc.c:540:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:372:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:430:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c: In function 'fec_halt':
+drivers/net/fec_mxc.c:601:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_send':
+drivers/net/fec_mxc.c:653:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_recv':
+drivers/net/fec_mxc.c:788:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:599:13: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:538:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c: In function 'fec_probe':
+drivers/net/fec_mxc.c:989:44: error: invalid application of 'sizeof' to
incomplete type 'struct eth_device'
+drivers/net/fec_mxc.c:1003:25: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1010:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1011:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1012:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1013:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1014:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1015:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1034:23: error: dereferencing pointer to
incomplete type
+include/phy.h:225:6: note: expected 'struct udevice *' but argument is
of type 'struct eth_device *'
+drivers/net/fec_mxc.c:365:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:1050:14: error: dereferencing pointer to
incomplete type
+make[2]: *** [drivers/net/fec_mxc.o] Error 1
+make[1]: *** [drivers/net] Error 2
+make: *** [sub-make] Error 2
w+drivers/net/fec_mxc.c:366:7: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:366:7: warning: its scope is only this
definition or declaration, which is probably not what you want [enabled
by default]
w+drivers/net/fec_mxc.c:372:34: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:430:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:538:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:545:2: warning: passing argument 1 of
'fec_set_hwaddr' from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:591:2: warning: passing argument 1 of 'fec_open'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:599:29: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:641:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:786:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:804:3: warning: passing argument 1 of 'fec_halt'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:805:3: warning: passing argument 1 of 'fec_init'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:817:4: warning: passing argument 1 of 'fec_halt'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:820:4: warning: passing argument 1 of 'fec_init'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:1040:2: warning: passing argument 2 of
'phy_connect_dev' from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:1046:2: warning: implicit declaration of
function 'eth_register' [-Wimplicit-function-declaration]
w+drivers/net/fec_mxc.c:1048:2: warning: passing argument 1 of
'fec_get_hwaddr' from incompatible pointer type [enabled by default]
arm: + imx6q_icore_rqs_mmc
+cmd/i2c.c: In function 'i2c_get_bus_speed':
+cmd/i2c.c:211:9: error: 'CONFIG_SYS_I2C_SPEED' undeclared (first use in
this function)
+cmd/i2c.c:211:9: note: each undeclared identifier is reported only once
for each function it appears in
+cmd/i2c.c: In function 'i2c_set_bus_speed':
+cmd/i2c.c:230:15: error: 'CONFIG_SYS_I2C_SPEED' undeclared (first use
in this function)
+cmd/i2c.c: In function 'do_i2c_reset':
+cmd/i2c.c:1925:11: error: 'CONFIG_SYS_I2C_SPEED' undeclared (first use
in this function)
+make[2]: *** [cmd/i2c.o] Error 1
+make[1]: *** [cmd] Error 2
+make: *** [sub-make] Error 2
w+cmd/i2c.c: In function 'i2c_get_bus_speed':
w+cmd/i2c.c:212:1: warning: control reaches end of non-void function
[-Wreturn-type]
arm: + imx6ul_geam_mmc
+drivers/net/fec_mxc.c: In function 'fec_set_hwaddr':
+drivers/net/fec_mxc.c:374:18: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:375:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: At top level:
+drivers/net/fec_mxc.c: In function 'fec_open':
+drivers/net/fec_mxc.c:432:48: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:502:27: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_init':
+drivers/net/fec_mxc.c:540:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:372:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:430:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c: In function 'fec_halt':
+drivers/net/fec_mxc.c:601:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_send':
+drivers/net/fec_mxc.c:653:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_recv':
+drivers/net/fec_mxc.c:788:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:599:13: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:538:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c: In function 'fec_probe':
+drivers/net/fec_mxc.c:989:44: error: invalid application of 'sizeof' to
incomplete type 'struct eth_device'
+drivers/net/fec_mxc.c:1003:25: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1010:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1011:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1012:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1013:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1014:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1015:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1034:23: error: dereferencing pointer to
incomplete type
+include/phy.h:225:6: note: expected 'struct udevice *' but argument is
of type 'struct eth_device *'
+drivers/net/fec_mxc.c:365:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:1050:14: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fecmxc_initialize':
+drivers/net/fec_mxc.c:1138:4: error: 'IMX_FEC_BASE' undeclared (first
use in this function)
+drivers/net/fec_mxc.c:1138:4: note: each undeclared identifier is
reported only once for each function it appears in
+make[2]: *** [drivers/net/fec_mxc.o] Error 1
+make[1]: *** [drivers/net] Error 2
+make: *** [sub-make] Error 2
w+drivers/net/fec_mxc.c:366:7: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:366:7: warning: its scope is only this
definition or declaration, which is probably not what you want [enabled
by default]
w+drivers/net/fec_mxc.c:372:34: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:430:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:538:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:545:2: warning: passing argument 1 of
'fec_set_hwaddr' from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:591:2: warning: passing argument 1 of 'fec_open'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:599:29: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:641:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:786:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:804:3: warning: passing argument 1 of 'fec_halt'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:805:3: warning: passing argument 1 of 'fec_init'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:817:4: warning: passing argument 1 of 'fec_halt'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:820:4: warning: passing argument 1 of 'fec_init'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:1040:2: warning: passing argument 2 of
'phy_connect_dev' from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:1046:2: warning: implicit declaration of
function 'eth_register' [-Wimplicit-function-declaration]
w+drivers/net/fec_mxc.c:1048:2: warning: passing argument 1 of
'fec_get_hwaddr' from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:1139:1: warning: control reaches end of non-void
function [-Wreturn-type]
arm: + imx6ul_geam_nand
+drivers/net/fec_mxc.c: In function 'fec_set_hwaddr':
+drivers/net/fec_mxc.c:374:18: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:375:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: At top level:
+drivers/net/fec_mxc.c: In function 'fec_open':
+drivers/net/fec_mxc.c:432:48: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:502:27: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_init':
+drivers/net/fec_mxc.c:540:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:372:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:430:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c: In function 'fec_halt':
+drivers/net/fec_mxc.c:601:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_send':
+drivers/net/fec_mxc.c:653:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_recv':
+drivers/net/fec_mxc.c:788:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:599:13: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:538:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c: In function 'fec_probe':
+drivers/net/fec_mxc.c:989:44: error: invalid application of 'sizeof' to
incomplete type 'struct eth_device'
+drivers/net/fec_mxc.c:1003:25: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1010:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1011:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1012:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1013:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1014:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1015:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1034:23: error: dereferencing pointer to
incomplete type
+include/phy.h:225:6: note: expected 'struct udevice *' but argument is
of type 'struct eth_device *'
+drivers/net/fec_mxc.c:365:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:1050:14: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fecmxc_initialize':
+drivers/net/fec_mxc.c:1138:4: error: 'IMX_FEC_BASE' undeclared (first
use in this function)
+drivers/net/fec_mxc.c:1138:4: note: each undeclared identifier is
reported only once for each function it appears in
+make[2]: *** [drivers/net/fec_mxc.o] Error 1
+make[1]: *** [drivers/net] Error 2
+make: *** [sub-make] Error 2
w+drivers/net/fec_mxc.c:366:7: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:366:7: warning: its scope is only this
definition or declaration, which is probably not what you want [enabled
by default]
w+drivers/net/fec_mxc.c:372:34: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:430:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:538:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:545:2: warning: passing argument 1 of
'fec_set_hwaddr' from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:591:2: warning: passing argument 1 of 'fec_open'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:599:29: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:641:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:786:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:804:3: warning: passing argument 1 of 'fec_halt'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:805:3: warning: passing argument 1 of 'fec_init'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:817:4: warning: passing argument 1 of 'fec_halt'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:820:4: warning: passing argument 1 of 'fec_init'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:1040:2: warning: passing argument 2 of
'phy_connect_dev' from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:1046:2: warning: implicit declaration of
function 'eth_register' [-Wimplicit-function-declaration]
w+drivers/net/fec_mxc.c:1048:2: warning: passing argument 1 of
'fec_get_hwaddr' from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:1139:1: warning: control reaches end of non-void
function [-Wreturn-type]
103 0 7 /124 0:01:10 : mx6sxsabresd
arm: + imx6dl_icore_nand
+drivers/net/fec_mxc.c: In function 'fec_set_hwaddr':
+drivers/net/fec_mxc.c:374:18: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:375:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: At top level:
+drivers/net/fec_mxc.c: In function 'fec_open':
+drivers/net/fec_mxc.c:432:48: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:502:27: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_init':
+drivers/net/fec_mxc.c:540:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:372:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:430:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c: In function 'fec_halt':
+drivers/net/fec_mxc.c:601:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_send':
+drivers/net/fec_mxc.c:653:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_recv':
+drivers/net/fec_mxc.c:788:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:599:13: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:538:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c: In function 'fec_probe':
+drivers/net/fec_mxc.c:989:44: error: invalid application of 'sizeof' to
incomplete type 'struct eth_device'
+drivers/net/fec_mxc.c:1003:25: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1010:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1011:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1012:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1013:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1014:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1015:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1034:23: error: dereferencing pointer to
incomplete type
+include/phy.h:225:6: note: expected 'struct udevice *' but argument is
of type 'struct eth_device *'
+drivers/net/fec_mxc.c:365:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:1050:14: error: dereferencing pointer to
incomplete type
+make[2]: *** [drivers/net/fec_mxc.o] Error 1
+make[1]: *** [drivers/net] Error 2
+make: *** [sub-make] Error 2
w+drivers/net/fec_mxc.c:366:7: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:366:7: warning: its scope is only this
definition or declaration, which is probably not what you want [enabled
by default]
w+drivers/net/fec_mxc.c:372:34: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:430:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:538:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:545:2: warning: passing argument 1 of
'fec_set_hwaddr' from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:591:2: warning: passing argument 1 of 'fec_open'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:599:29: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:641:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:786:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:804:3: warning: passing argument 1 of 'fec_halt'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:805:3: warning: passing argument 1 of 'fec_init'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:817:4: warning: passing argument 1 of 'fec_halt'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:820:4: warning: passing argument 1 of 'fec_init'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:1040:2: warning: passing argument 2 of
'phy_connect_dev' from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:1046:2: warning: implicit declaration of
function 'eth_register' [-Wimplicit-function-declaration]
w+drivers/net/fec_mxc.c:1048:2: warning: passing argument 1 of
'fec_get_hwaddr' from incompatible pointer type [enabled by default]
arm: + imx6q_icore_nand
+drivers/net/fec_mxc.c: In function 'fec_set_hwaddr':
+drivers/net/fec_mxc.c:374:18: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:375:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: At top level:
+drivers/net/fec_mxc.c: In function 'fec_open':
+drivers/net/fec_mxc.c:432:48: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:502:27: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_init':
+drivers/net/fec_mxc.c:540:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:372:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:430:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c: In function 'fec_halt':
+drivers/net/fec_mxc.c:601:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_send':
+drivers/net/fec_mxc.c:653:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c: In function 'fec_recv':
+drivers/net/fec_mxc.c:788:47: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:599:13: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:538:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c: In function 'fec_probe':
+drivers/net/fec_mxc.c:989:44: error: invalid application of 'sizeof' to
incomplete type 'struct eth_device'
+drivers/net/fec_mxc.c:1003:25: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1010:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1011:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1012:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1013:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1014:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1015:6: error: dereferencing pointer to
incomplete type
+drivers/net/fec_mxc.c:1034:23: error: dereferencing pointer to
incomplete type
+include/phy.h:225:6: note: expected 'struct udevice *' but argument is
of type 'struct eth_device *'
+drivers/net/fec_mxc.c:365:12: note: expected 'struct eth_device *' but
argument is of type 'struct eth_device *'
+drivers/net/fec_mxc.c:1050:14: error: dereferencing pointer to
incomplete type
+make[2]: *** [drivers/net/fec_mxc.o] Error 1
+make[1]: *** [drivers/net] Error 2
+make: *** [sub-make] Error 2
w+drivers/net/fec_mxc.c:366:7: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:366:7: warning: its scope is only this
definition or declaration, which is probably not what you want [enabled
by default]
w+drivers/net/fec_mxc.c:372:34: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:430:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:538:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:545:2: warning: passing argument 1 of
'fec_set_hwaddr' from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:591:2: warning: passing argument 1 of 'fec_open'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:599:29: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:641:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:786:28: warning: 'struct eth_device' declared
inside parameter list [enabled by default]
w+drivers/net/fec_mxc.c:804:3: warning: passing argument 1 of 'fec_halt'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:805:3: warning: passing argument 1 of 'fec_init'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:817:4: warning: passing argument 1 of 'fec_halt'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:820:4: warning: passing argument 1 of 'fec_init'
from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:1040:2: warning: passing argument 2 of
'phy_connect_dev' from incompatible pointer type [enabled by default]
w+drivers/net/fec_mxc.c:1046:2: warning: implicit declaration of
function 'eth_register' [-Wimplicit-function-declaration]
w+drivers/net/fec_mxc.c:1048:2: warning: passing argument 1 of
'fec_get_hwaddr' from incompatible pointer type [enabled by default]
115 0 9 /124 udoo
Best regards,
Stefano
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
^ permalink raw reply [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support
2016-12-16 15:42 ` Stefano Babic
@ 2016-12-16 16:00 ` Jagan Teki
2016-12-16 16:08 ` Jagan Teki
0 siblings, 1 reply; 24+ messages in thread
From: Jagan Teki @ 2016-12-16 16:00 UTC (permalink / raw)
To: u-boot
Hi Stefano,
Did you apply on top this series [1], can you confirm?
[1] [PATCH v3 00/13] imx6: icorem6: Add dm-eth, framebuffer and I2C support
On Fri, Dec 16, 2016 at 4:42 PM, Stefano Babic <sbabic@denx.de> wrote:
> Hi Jagan,
>
> On 16/12/2016 10:23, Jagan Teki wrote:
>> Hi Stefano,
>>
>> On Tue, Dec 13, 2016 at 5:56 PM, Jagan Teki <jagan@openedev.com> wrote:
>>> From: Jagan Teki <jagan@amarulasolutions.com>
>>>
>>> This is v4 for previous v3, v2 series[1] [2] on top of [3] series
>>>
>>> Changes for v4:
>>> - Add FEC patches.
>>>
>>> Changes for v3:
>>> - Add I2C support
>>>
>>> Changes for v2:
>>> - Add 'Acked-by' from Joe
>>> - Add new i.CoreM6 RQS patches
>>>
>>> [1] https://www.mail-archive.com/u-boot at lists.denx.de/msg230990.html
>>> [2] https://www.mail-archive.com/u-boot at lists.denx.de/msg230283.html
>>> [3] [PATCH v3 00/13] imx6: icorem6: Add dm-eth, framebuffer and I2C support
>>>
>>> Jagan Teki (16):
>>> arm: dts: Add devicetree for i.MX6UL
>>> arm: imx6ul: Add Engicam GEAM6UL Starter Kit initial support
>>> arm: dts: imx6ul-geam: Add I2C nodes
>>> imx6: geam6ul: Add I2C support
>>> imx6: geam6ul: Add NAND support
>>> imx6: geam6ul: Enable MTD device support
>>> imx6: geam6ul: Add default mtd nand partition table
>>> arm: imx6q: Add Engicam i.CoreM6 Quad/Dual RQS Starter Kit initial
>>> support
>>> arm: imx6q: Add Engicam i.CoreM6 Solo/Duallite RQS Starter Kit initial
>>> support
>>> imx6: icorem6: Rename engicam icorem6 defconfig files
>>> arm: dts: imx6qdl-icore-rqs: Add I2C node's
>>> imx6: icorem6_rqs: Add I2C support
>>> arm: dts: imx6ul-geam: Add FEC node
>>> imx6: geam6ul: Add FEC support
>>> arm: dts: imx6qdl-icore-rqs: Add FEC node
>>> imx6: icorem6_rqs: Add FEC support
>>
>> Any help? this is getting delay since so-long.
>>
>> thanks!
>>
>
> I am still getting a huge list of errors and warnings after merging your
> patches. I have not yet got time to check deeper the reasons, but
> without a clean build this patchset cannot be merged.
>
> Here my log:
>
> arm: + imx6dl_icore_mmc
> +drivers/net/fec_mxc.c: In function 'fec_set_hwaddr':
> +drivers/net/fec_mxc.c:374:18: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:375:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: At top level:
> +drivers/net/fec_mxc.c: In function 'fec_open':
> +drivers/net/fec_mxc.c:432:48: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:502:27: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_init':
> +drivers/net/fec_mxc.c:540:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:372:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:430:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c: In function 'fec_halt':
> +drivers/net/fec_mxc.c:601:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_send':
> +drivers/net/fec_mxc.c:653:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_recv':
> +drivers/net/fec_mxc.c:788:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:599:13: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:538:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c: In function 'fec_probe':
> +drivers/net/fec_mxc.c:989:44: error: invalid application of 'sizeof' to
> incomplete type 'struct eth_device'
> +drivers/net/fec_mxc.c:1003:25: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1010:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1011:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1012:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1013:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1014:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1015:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1034:23: error: dereferencing pointer to
> incomplete type
> +include/phy.h:225:6: note: expected 'struct udevice *' but argument is
> of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:365:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:1050:14: error: dereferencing pointer to
> incomplete type
> +make[2]: *** [drivers/net/fec_mxc.o] Error 1
> +make[1]: *** [drivers/net] Error 2
> +make: *** [sub-make] Error 2
> w+drivers/net/fec_mxc.c:366:7: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:366:7: warning: its scope is only this
> definition or declaration, which is probably not what you want [enabled
> by default]
> w+drivers/net/fec_mxc.c:372:34: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:430:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:538:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:545:2: warning: passing argument 1 of
> 'fec_set_hwaddr' from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:591:2: warning: passing argument 1 of 'fec_open'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:599:29: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:641:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:786:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:804:3: warning: passing argument 1 of 'fec_halt'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:805:3: warning: passing argument 1 of 'fec_init'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:817:4: warning: passing argument 1 of 'fec_halt'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:820:4: warning: passing argument 1 of 'fec_init'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:1040:2: warning: passing argument 2 of
> 'phy_connect_dev' from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:1046:2: warning: implicit declaration of
> function 'eth_register' [-Wimplicit-function-declaration]
> w+drivers/net/fec_mxc.c:1048:2: warning: passing argument 1 of
> 'fec_get_hwaddr' from incompatible pointer type [enabled by default]
> arm: + imx6dl_icore_rqs_mmc
> +cmd/i2c.c: In function 'i2c_get_bus_speed':
> +cmd/i2c.c:211:9: error: 'CONFIG_SYS_I2C_SPEED' undeclared (first use in
> this function)
> +cmd/i2c.c:211:9: note: each undeclared identifier is reported only once
> for each function it appears in
> +cmd/i2c.c: In function 'i2c_set_bus_speed':
> +cmd/i2c.c:230:15: error: 'CONFIG_SYS_I2C_SPEED' undeclared (first use
> in this function)
> +cmd/i2c.c: In function 'do_i2c_reset':
> +cmd/i2c.c:1925:11: error: 'CONFIG_SYS_I2C_SPEED' undeclared (first use
> in this function)
> +make[2]: *** [cmd/i2c.o] Error 1
> +make[1]: *** [cmd] Error 2
> +make: *** [sub-make] Error 2
> w+cmd/i2c.c: In function 'i2c_get_bus_speed':
> w+cmd/i2c.c:212:1: warning: control reaches end of non-void function
> [-Wreturn-type]
> arm: + imx6q_icore_mmc
> +drivers/net/fec_mxc.c: In function 'fec_set_hwaddr':
> +drivers/net/fec_mxc.c:374:18: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:375:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: At top level:
> +drivers/net/fec_mxc.c: In function 'fec_open':
> +drivers/net/fec_mxc.c:432:48: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:502:27: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_init':
> +drivers/net/fec_mxc.c:540:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:372:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:430:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c: In function 'fec_halt':
> +drivers/net/fec_mxc.c:601:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_send':
> +drivers/net/fec_mxc.c:653:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_recv':
> +drivers/net/fec_mxc.c:788:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:599:13: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:538:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c: In function 'fec_probe':
> +drivers/net/fec_mxc.c:989:44: error: invalid application of 'sizeof' to
> incomplete type 'struct eth_device'
> +drivers/net/fec_mxc.c:1003:25: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1010:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1011:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1012:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1013:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1014:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1015:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1034:23: error: dereferencing pointer to
> incomplete type
> +include/phy.h:225:6: note: expected 'struct udevice *' but argument is
> of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:365:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:1050:14: error: dereferencing pointer to
> incomplete type
> +make[2]: *** [drivers/net/fec_mxc.o] Error 1
> +make[1]: *** [drivers/net] Error 2
> +make: *** [sub-make] Error 2
> w+drivers/net/fec_mxc.c:366:7: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:366:7: warning: its scope is only this
> definition or declaration, which is probably not what you want [enabled
> by default]
> w+drivers/net/fec_mxc.c:372:34: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:430:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:538:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:545:2: warning: passing argument 1 of
> 'fec_set_hwaddr' from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:591:2: warning: passing argument 1 of 'fec_open'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:599:29: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:641:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:786:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:804:3: warning: passing argument 1 of 'fec_halt'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:805:3: warning: passing argument 1 of 'fec_init'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:817:4: warning: passing argument 1 of 'fec_halt'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:820:4: warning: passing argument 1 of 'fec_init'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:1040:2: warning: passing argument 2 of
> 'phy_connect_dev' from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:1046:2: warning: implicit declaration of
> function 'eth_register' [-Wimplicit-function-declaration]
> w+drivers/net/fec_mxc.c:1048:2: warning: passing argument 1 of
> 'fec_get_hwaddr' from incompatible pointer type [enabled by default]
> arm: + imx6q_icore_rqs_mmc
> +cmd/i2c.c: In function 'i2c_get_bus_speed':
> +cmd/i2c.c:211:9: error: 'CONFIG_SYS_I2C_SPEED' undeclared (first use in
> this function)
> +cmd/i2c.c:211:9: note: each undeclared identifier is reported only once
> for each function it appears in
> +cmd/i2c.c: In function 'i2c_set_bus_speed':
> +cmd/i2c.c:230:15: error: 'CONFIG_SYS_I2C_SPEED' undeclared (first use
> in this function)
> +cmd/i2c.c: In function 'do_i2c_reset':
> +cmd/i2c.c:1925:11: error: 'CONFIG_SYS_I2C_SPEED' undeclared (first use
> in this function)
> +make[2]: *** [cmd/i2c.o] Error 1
> +make[1]: *** [cmd] Error 2
> +make: *** [sub-make] Error 2
> w+cmd/i2c.c: In function 'i2c_get_bus_speed':
> w+cmd/i2c.c:212:1: warning: control reaches end of non-void function
> [-Wreturn-type]
> arm: + imx6ul_geam_mmc
> +drivers/net/fec_mxc.c: In function 'fec_set_hwaddr':
> +drivers/net/fec_mxc.c:374:18: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:375:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: At top level:
> +drivers/net/fec_mxc.c: In function 'fec_open':
> +drivers/net/fec_mxc.c:432:48: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:502:27: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_init':
> +drivers/net/fec_mxc.c:540:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:372:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:430:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c: In function 'fec_halt':
> +drivers/net/fec_mxc.c:601:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_send':
> +drivers/net/fec_mxc.c:653:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_recv':
> +drivers/net/fec_mxc.c:788:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:599:13: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:538:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c: In function 'fec_probe':
> +drivers/net/fec_mxc.c:989:44: error: invalid application of 'sizeof' to
> incomplete type 'struct eth_device'
> +drivers/net/fec_mxc.c:1003:25: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1010:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1011:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1012:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1013:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1014:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1015:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1034:23: error: dereferencing pointer to
> incomplete type
> +include/phy.h:225:6: note: expected 'struct udevice *' but argument is
> of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:365:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:1050:14: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fecmxc_initialize':
> +drivers/net/fec_mxc.c:1138:4: error: 'IMX_FEC_BASE' undeclared (first
> use in this function)
> +drivers/net/fec_mxc.c:1138:4: note: each undeclared identifier is
> reported only once for each function it appears in
> +make[2]: *** [drivers/net/fec_mxc.o] Error 1
> +make[1]: *** [drivers/net] Error 2
> +make: *** [sub-make] Error 2
> w+drivers/net/fec_mxc.c:366:7: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:366:7: warning: its scope is only this
> definition or declaration, which is probably not what you want [enabled
> by default]
> w+drivers/net/fec_mxc.c:372:34: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:430:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:538:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:545:2: warning: passing argument 1 of
> 'fec_set_hwaddr' from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:591:2: warning: passing argument 1 of 'fec_open'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:599:29: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:641:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:786:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:804:3: warning: passing argument 1 of 'fec_halt'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:805:3: warning: passing argument 1 of 'fec_init'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:817:4: warning: passing argument 1 of 'fec_halt'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:820:4: warning: passing argument 1 of 'fec_init'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:1040:2: warning: passing argument 2 of
> 'phy_connect_dev' from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:1046:2: warning: implicit declaration of
> function 'eth_register' [-Wimplicit-function-declaration]
> w+drivers/net/fec_mxc.c:1048:2: warning: passing argument 1 of
> 'fec_get_hwaddr' from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:1139:1: warning: control reaches end of non-void
> function [-Wreturn-type]
> arm: + imx6ul_geam_nand
> +drivers/net/fec_mxc.c: In function 'fec_set_hwaddr':
> +drivers/net/fec_mxc.c:374:18: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:375:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: At top level:
> +drivers/net/fec_mxc.c: In function 'fec_open':
> +drivers/net/fec_mxc.c:432:48: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:502:27: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_init':
> +drivers/net/fec_mxc.c:540:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:372:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:430:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c: In function 'fec_halt':
> +drivers/net/fec_mxc.c:601:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_send':
> +drivers/net/fec_mxc.c:653:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_recv':
> +drivers/net/fec_mxc.c:788:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:599:13: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:538:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c: In function 'fec_probe':
> +drivers/net/fec_mxc.c:989:44: error: invalid application of 'sizeof' to
> incomplete type 'struct eth_device'
> +drivers/net/fec_mxc.c:1003:25: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1010:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1011:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1012:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1013:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1014:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1015:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1034:23: error: dereferencing pointer to
> incomplete type
> +include/phy.h:225:6: note: expected 'struct udevice *' but argument is
> of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:365:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:1050:14: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fecmxc_initialize':
> +drivers/net/fec_mxc.c:1138:4: error: 'IMX_FEC_BASE' undeclared (first
> use in this function)
> +drivers/net/fec_mxc.c:1138:4: note: each undeclared identifier is
> reported only once for each function it appears in
> +make[2]: *** [drivers/net/fec_mxc.o] Error 1
> +make[1]: *** [drivers/net] Error 2
> +make: *** [sub-make] Error 2
> w+drivers/net/fec_mxc.c:366:7: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:366:7: warning: its scope is only this
> definition or declaration, which is probably not what you want [enabled
> by default]
> w+drivers/net/fec_mxc.c:372:34: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:430:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:538:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:545:2: warning: passing argument 1 of
> 'fec_set_hwaddr' from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:591:2: warning: passing argument 1 of 'fec_open'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:599:29: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:641:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:786:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:804:3: warning: passing argument 1 of 'fec_halt'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:805:3: warning: passing argument 1 of 'fec_init'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:817:4: warning: passing argument 1 of 'fec_halt'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:820:4: warning: passing argument 1 of 'fec_init'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:1040:2: warning: passing argument 2 of
> 'phy_connect_dev' from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:1046:2: warning: implicit declaration of
> function 'eth_register' [-Wimplicit-function-declaration]
> w+drivers/net/fec_mxc.c:1048:2: warning: passing argument 1 of
> 'fec_get_hwaddr' from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:1139:1: warning: control reaches end of non-void
> function [-Wreturn-type]
> 103 0 7 /124 0:01:10 : mx6sxsabresd
> arm: + imx6dl_icore_nand
> +drivers/net/fec_mxc.c: In function 'fec_set_hwaddr':
> +drivers/net/fec_mxc.c:374:18: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:375:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: At top level:
> +drivers/net/fec_mxc.c: In function 'fec_open':
> +drivers/net/fec_mxc.c:432:48: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:502:27: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_init':
> +drivers/net/fec_mxc.c:540:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:372:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:430:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c: In function 'fec_halt':
> +drivers/net/fec_mxc.c:601:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_send':
> +drivers/net/fec_mxc.c:653:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_recv':
> +drivers/net/fec_mxc.c:788:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:599:13: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:538:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c: In function 'fec_probe':
> +drivers/net/fec_mxc.c:989:44: error: invalid application of 'sizeof' to
> incomplete type 'struct eth_device'
> +drivers/net/fec_mxc.c:1003:25: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1010:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1011:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1012:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1013:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1014:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1015:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1034:23: error: dereferencing pointer to
> incomplete type
> +include/phy.h:225:6: note: expected 'struct udevice *' but argument is
> of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:365:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:1050:14: error: dereferencing pointer to
> incomplete type
> +make[2]: *** [drivers/net/fec_mxc.o] Error 1
> +make[1]: *** [drivers/net] Error 2
> +make: *** [sub-make] Error 2
> w+drivers/net/fec_mxc.c:366:7: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:366:7: warning: its scope is only this
> definition or declaration, which is probably not what you want [enabled
> by default]
> w+drivers/net/fec_mxc.c:372:34: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:430:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:538:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:545:2: warning: passing argument 1 of
> 'fec_set_hwaddr' from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:591:2: warning: passing argument 1 of 'fec_open'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:599:29: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:641:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:786:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:804:3: warning: passing argument 1 of 'fec_halt'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:805:3: warning: passing argument 1 of 'fec_init'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:817:4: warning: passing argument 1 of 'fec_halt'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:820:4: warning: passing argument 1 of 'fec_init'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:1040:2: warning: passing argument 2 of
> 'phy_connect_dev' from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:1046:2: warning: implicit declaration of
> function 'eth_register' [-Wimplicit-function-declaration]
> w+drivers/net/fec_mxc.c:1048:2: warning: passing argument 1 of
> 'fec_get_hwaddr' from incompatible pointer type [enabled by default]
> arm: + imx6q_icore_nand
> +drivers/net/fec_mxc.c: In function 'fec_set_hwaddr':
> +drivers/net/fec_mxc.c:374:18: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:375:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: At top level:
> +drivers/net/fec_mxc.c: In function 'fec_open':
> +drivers/net/fec_mxc.c:432:48: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:502:27: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_init':
> +drivers/net/fec_mxc.c:540:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:372:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:430:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c: In function 'fec_halt':
> +drivers/net/fec_mxc.c:601:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_send':
> +drivers/net/fec_mxc.c:653:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c: In function 'fec_recv':
> +drivers/net/fec_mxc.c:788:47: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:599:13: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:538:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c: In function 'fec_probe':
> +drivers/net/fec_mxc.c:989:44: error: invalid application of 'sizeof' to
> incomplete type 'struct eth_device'
> +drivers/net/fec_mxc.c:1003:25: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1010:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1011:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1012:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1013:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1014:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1015:6: error: dereferencing pointer to
> incomplete type
> +drivers/net/fec_mxc.c:1034:23: error: dereferencing pointer to
> incomplete type
> +include/phy.h:225:6: note: expected 'struct udevice *' but argument is
> of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:365:12: note: expected 'struct eth_device *' but
> argument is of type 'struct eth_device *'
> +drivers/net/fec_mxc.c:1050:14: error: dereferencing pointer to
> incomplete type
> +make[2]: *** [drivers/net/fec_mxc.o] Error 1
> +make[1]: *** [drivers/net] Error 2
> +make: *** [sub-make] Error 2
> w+drivers/net/fec_mxc.c:366:7: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:366:7: warning: its scope is only this
> definition or declaration, which is probably not what you want [enabled
> by default]
> w+drivers/net/fec_mxc.c:372:34: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:430:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:538:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:545:2: warning: passing argument 1 of
> 'fec_set_hwaddr' from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:591:2: warning: passing argument 1 of 'fec_open'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:599:29: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:641:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:786:28: warning: 'struct eth_device' declared
> inside parameter list [enabled by default]
> w+drivers/net/fec_mxc.c:804:3: warning: passing argument 1 of 'fec_halt'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:805:3: warning: passing argument 1 of 'fec_init'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:817:4: warning: passing argument 1 of 'fec_halt'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:820:4: warning: passing argument 1 of 'fec_init'
> from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:1040:2: warning: passing argument 2 of
> 'phy_connect_dev' from incompatible pointer type [enabled by default]
> w+drivers/net/fec_mxc.c:1046:2: warning: implicit declaration of
> function 'eth_register' [-Wimplicit-function-declaration]
> w+drivers/net/fec_mxc.c:1048:2: warning: passing argument 1 of
> 'fec_get_hwaddr' from incompatible pointer type [enabled by default]
> 115 0 9 /124 udoo
>
> Best regards,
> Stefano
>
> --
> =====================================================================
> DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
> =====================================================================
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
--
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.
^ permalink raw reply [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support
2016-12-16 16:00 ` Jagan Teki
@ 2016-12-16 16:08 ` Jagan Teki
2016-12-16 16:29 ` Stefano Babic
0 siblings, 1 reply; 24+ messages in thread
From: Jagan Teki @ 2016-12-16 16:08 UTC (permalink / raw)
To: u-boot
On Fri, Dec 16, 2016 at 5:00 PM, Jagan Teki <jagan@openedev.com> wrote:
> Hi Stefano,
>
> Did you apply on top this series [1], can you confirm?
>
> [1] [PATCH v3 00/13] imx6: icorem6: Add dm-eth, framebuffer and I2C support
Look like you have not applied above before applying this series, we
had a discussion about this long back. Please see the thread[1] for
more info and also please noted the same in cover-letter as well.
[1] https://patchwork.ozlabs.org/patch/688407/
>
> On Fri, Dec 16, 2016 at 4:42 PM, Stefano Babic <sbabic@denx.de> wrote:
>> Hi Jagan,
>>
>> On 16/12/2016 10:23, Jagan Teki wrote:
>>> Hi Stefano,
>>>
>>> On Tue, Dec 13, 2016 at 5:56 PM, Jagan Teki <jagan@openedev.com> wrote:
>>>> From: Jagan Teki <jagan@amarulasolutions.com>
>>>>
>>>> This is v4 for previous v3, v2 series[1] [2] on top of [3] series
>>>>
>>>> Changes for v4:
>>>> - Add FEC patches.
>>>>
>>>> Changes for v3:
>>>> - Add I2C support
>>>>
>>>> Changes for v2:
>>>> - Add 'Acked-by' from Joe
>>>> - Add new i.CoreM6 RQS patches
>>>>
>>>> [1] https://www.mail-archive.com/u-boot at lists.denx.de/msg230990.html
>>>> [2] https://www.mail-archive.com/u-boot at lists.denx.de/msg230283.html
>>>> [3] [PATCH v3 00/13] imx6: icorem6: Add dm-eth, framebuffer and I2C support
< snip >
thanks!
--
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.
^ permalink raw reply [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support
2016-12-16 16:08 ` Jagan Teki
@ 2016-12-16 16:29 ` Stefano Babic
2016-12-16 16:52 ` Jagan Teki
0 siblings, 1 reply; 24+ messages in thread
From: Stefano Babic @ 2016-12-16 16:29 UTC (permalink / raw)
To: u-boot
On 16/12/2016 17:08, Jagan Teki wrote:
> On Fri, Dec 16, 2016 at 5:00 PM, Jagan Teki <jagan@openedev.com> wrote:
>> Hi Stefano,
>>
>> Did you apply on top this series [1], can you confirm?
>>
>> [1] [PATCH v3 00/13] imx6: icorem6: Add dm-eth, framebuffer and I2C support
>
> Look like you have not applied above before applying this series, we
> had a discussion about this long back. Please see the thread[1] for
> more info and also please noted the same in cover-letter as well.
That's true, I apply on the top of [1], I have still some issues with
your boards:
arm: + imx6q_icore_mmc
+drivers/built-in.o: In function `cfg_video_init':
+drivers/video/cfb_console.c:2011: undefined reference to `video_hw_init'
+arm-linux-gnueabi-ld.bfd: BFD (GNU Binutils) 2.22 assertion fail
/opt/eldk/build/eldk-rel-v5.2-2012-06-20-33c5d31-armv5te/tmp/work/i686-nativesdk-eldk-linux/binutils-cross-canadian-arm-2.22-r2/binutils-2.22/bfd/elf32-arm.c:7498
+arm-linux-gnueabi-ld.bfd: BFD (GNU Binutils) 2.22 assertion fail
/opt/eldk/build/eldk-rel-v5.2-2012-06-20-33c5d31-armv5te/tmp/work/i686-nativesdk-eldk-linux/binutils-cross-canadian-arm-2.22-r2/binutils-2.22/bfd/elf32-arm.c:13830
+make[1]: *** [u-boot] Error 139
+make: *** [sub-make] Error 2
arm: + imx6q_icore_nand
+drivers/built-in.o: In function `cfg_video_init':
+drivers/video/cfb_console.c:2011: undefined reference to `video_hw_init'
+arm-linux-gnueabi-ld.bfd: BFD (GNU Binutils) 2.22 assertion fail
/opt/eldk/build/eldk-rel-v5.2-2012-06-20-33c5d31-armv5te/tmp/work/i686-nativesdk-eldk-linux/binutils-cross-canadian-arm-2.22-r2/binutils-2.22/bfd/elf32-arm.c:7498
+arm-linux-gnueabi-ld.bfd: BFD (GNU Binutils) 2.22 assertion fail
/opt/eldk/build/eldk-rel-v5.2-2012-06-20-33c5d31-armv5te/tmp/work/i686-nativesdk-eldk-linux/binutils-cross-canadian-arm-2.22-r2/binutils-2.22/bfd/elf32-arm.c:13830
+make[1]: *** [u-boot] Error 139
+make: *** [sub-make] Error 2
4 0 2 /6 0:00:20 : imx6dl_icore_mmc
Regards,
Stefano
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
^ permalink raw reply [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support
2016-12-16 16:29 ` Stefano Babic
@ 2016-12-16 16:52 ` Jagan Teki
2016-12-16 17:27 ` Stefano Babic
0 siblings, 1 reply; 24+ messages in thread
From: Jagan Teki @ 2016-12-16 16:52 UTC (permalink / raw)
To: u-boot
On Fri, Dec 16, 2016 at 5:29 PM, Stefano Babic <sbabic@denx.de> wrote:
> On 16/12/2016 17:08, Jagan Teki wrote:
>> On Fri, Dec 16, 2016 at 5:00 PM, Jagan Teki <jagan@openedev.com> wrote:
>>> Hi Stefano,
>>>
>>> Did you apply on top this series [1], can you confirm?
>>>
>>> [1] [PATCH v3 00/13] imx6: icorem6: Add dm-eth, framebuffer and I2C support
>>
>> Look like you have not applied above before applying this series, we
>> had a discussion about this long back. Please see the thread[1] for
>> more info and also please noted the same in cover-letter as well.
>
>
> That's true, I apply on the top of [1], I have still some issues with
> your boards:
>
>
> arm: + imx6q_icore_mmc
> +drivers/built-in.o: In function `cfg_video_init':
> +drivers/video/cfb_console.c:2011: undefined reference to `video_hw_init'
Ohh..look like it's again rebased and missed CONFIG_VIDEO_IPUV3.
Please find the v5 of 10/16 for this change.
thanks!
--
Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.
^ permalink raw reply [flat|nested] 24+ messages in thread
* [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support
2016-12-16 16:52 ` Jagan Teki
@ 2016-12-16 17:27 ` Stefano Babic
0 siblings, 0 replies; 24+ messages in thread
From: Stefano Babic @ 2016-12-16 17:27 UTC (permalink / raw)
To: u-boot
On 16/12/2016 17:52, Jagan Teki wrote:
> On Fri, Dec 16, 2016 at 5:29 PM, Stefano Babic <sbabic@denx.de> wrote:
>> On 16/12/2016 17:08, Jagan Teki wrote:
>>> On Fri, Dec 16, 2016 at 5:00 PM, Jagan Teki <jagan@openedev.com> wrote:
>>>> Hi Stefano,
>>>>
>>>> Did you apply on top this series [1], can you confirm?
>>>>
>>>> [1] [PATCH v3 00/13] imx6: icorem6: Add dm-eth, framebuffer and I2C support
>>>
>>> Look like you have not applied above before applying this series, we
>>> had a discussion about this long back. Please see the thread[1] for
>>> more info and also please noted the same in cover-letter as well.
>>
>>
>> That's true, I apply on the top of [1], I have still some issues with
>> your boards:
>>
>>
>> arm: + imx6q_icore_mmc
>> +drivers/built-in.o: In function `cfg_video_init':
>> +drivers/video/cfb_console.c:2011: undefined reference to `video_hw_init'
>
> Ohh..look like it's again rebased and missed CONFIG_VIDEO_IPUV3.
Yes, it is not set.
> Please find the v5 of 10/16 for this change.
ok, next try...
Regards,
Stefano
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2016-12-16 17:27 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-13 16:56 [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 01/16] arm: dts: Add devicetree for i.MX6UL Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 02/16] arm: imx6ul: Add Engicam GEAM6UL Starter Kit initial support Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 03/16] arm: dts: imx6ul-geam: Add I2C nodes Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 04/16] imx6: geam6ul: Add I2C support Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 05/16] imx6: geam6ul: Add NAND support Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 06/16] imx6: geam6ul: Enable MTD device support Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 07/16] imx6: geam6ul: Add default mtd nand partition table Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 08/16] arm: imx6q: Add Engicam i.CoreM6 Quad/Dual RQS Starter Kit initial support Jagan Teki
2016-12-13 16:56 ` [U-Boot] [PATCH v4 09/16] arm: imx6q: Add Engicam i.CoreM6 Solo/Duallite " Jagan Teki
2016-12-13 16:57 ` [U-Boot] [PATCH v4 10/16] imx6: icorem6: Rename engicam icorem6 defconfig files Jagan Teki
2016-12-13 16:57 ` [U-Boot] [PATCH v4 11/16] arm: dts: imx6qdl-icore-rqs: Add I2C node's Jagan Teki
2016-12-13 16:57 ` [U-Boot] [PATCH v4 12/16] imx6: icorem6_rqs: Add I2C support Jagan Teki
2016-12-13 16:57 ` [U-Boot] [PATCH v4 13/16] arm: dts: imx6ul-geam: Add FEC node Jagan Teki
2016-12-13 16:57 ` [U-Boot] [PATCH v4 14/16] imx6: geam6ul: Add FEC support Jagan Teki
2016-12-13 16:57 ` [U-Boot] [PATCH v4 15/16] arm: dts: imx6qdl-icore-rqs: Add FEC node Jagan Teki
2016-12-13 16:57 ` [U-Boot] [PATCH v4 16/16] imx6: icorem6_rqs: Add FEC support Jagan Teki
2016-12-16 9:23 ` [U-Boot] [PATCH v4 00/16] imx6: Add Engicam GEAM6UL/i.CoreM6 RQS board support Jagan Teki
2016-12-16 15:42 ` Stefano Babic
2016-12-16 16:00 ` Jagan Teki
2016-12-16 16:08 ` Jagan Teki
2016-12-16 16:29 ` Stefano Babic
2016-12-16 16:52 ` Jagan Teki
2016-12-16 17:27 ` Stefano Babic
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.