[U-Boot] [PATCH 2/2] imx8mq_evk/README: remove ARCH environment variable

2019-01-01 Thread Baruch Siach
There is no need to set the ARCH variable when building U-Boot. In fact,
the ARCH name in U-Boot is 'arm'.

Signed-off-by: Baruch Siach 
---
 board/freescale/imx8mq_evk/README | 1 -
 1 file changed, 1 deletion(-)

diff --git a/board/freescale/imx8mq_evk/README 
b/board/freescale/imx8mq_evk/README
index 07dbfb01fed8..1da6eaf24277 100644
--- a/board/freescale/imx8mq_evk/README
+++ b/board/freescale/imx8mq_evk/README
@@ -23,7 +23,6 @@ $ cp 
firmware-imx-7.9/firmware-imx-7.9/firmware/ddr/synopsys/lpddr4*.bin $(srcte
 
 Build U-Boot
 
-$ export ARCH=arm64
 $ export CROSS_COMPILE=aarch64-poky-linux-
 $ make imx8mq_evk_defconfig
 $ make flash.bin
-- 
2.19.2

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH 1/2] tools/imx8m_image.sh: remove bashism

2019-01-01 Thread Baruch Siach
Use a single '=' to test string equality for compatibility with non-bash
shells. Otherwise, if /bin/sh is dash, build fails:

./tools/imx8m_image.sh: 15: [: signed_hdmi_imx8m.bin: unexpected operator
./tools/imx8m_image.sh: 15: [: signed_hdmi_imx8m.bin: unexpected operator
./tools/imx8m_image.sh: 15: [: spl/u-boot-spl-ddr.bin: unexpected operator
./tools/imx8m_image.sh: 15: [: spl/u-boot-spl-ddr.bin: unexpected operator
WARNING './spl/u-boot-spl-ddr.bin' not found, resulting binary is not-functional

Signed-off-by: Baruch Siach 
---
 tools/imx8m_image.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/imx8m_image.sh b/tools/imx8m_image.sh
index 6346fb64d8c5..ec0881a12812 100755
--- a/tools/imx8m_image.sh
+++ b/tools/imx8m_image.sh
@@ -12,7 +12,7 @@ blobs=`awk '/^SIGNED_HDMI/ {print $2} /^LOADER/ {print $2} 
/^SECOND_LOADER/ {pri
 for f in $blobs; do
tmp=$srctree/$f
 
-   if [ $f == "spl/u-boot-spl-ddr.bin" ] || [ $f == "u-boot.itb" ]; then
+   if [ $f = "spl/u-boot-spl-ddr.bin" ] || [ $f = "u-boot.itb" ]; then
continue
fi
 
@@ -28,7 +28,7 @@ for f in $blobs; do
sed -in "s;$f;$tmp;" $file
 done
 
-if [ $post_process == 1 ]; then
+if [ $post_process = 1 ]; then
if [ -f $srctree/lpddr4_pmu_train_1d_imem.bin ]; then
objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 
$srctree/lpddr4_pmu_train_1d_imem.bin lpddr4_pmu_train_1d_imem_pad.bin
objcopy -I binary -O binary --pad-to 0x4000 --gap-fill=0x0 
$srctree/lpddr4_pmu_train_1d_dmem.bin lpddr4_pmu_train_1d_dmem_pad.bin
-- 
2.19.2

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH 2/6] riscv: remove invalid dcache flush implementation

2019-01-01 Thread Rick Chen
Hi Lukas

> > From: Lukas Auer [mailto:lukas.a...@aisec.fraunhofer.de]
> > Sent: Monday, December 31, 2018 2:28 AM
> > To: u-boot@lists.denx.de
> > Cc: Anup Patel; Lukas Auer; Rick Jian-Zhi Chen(陳建志); Bin Meng; Greentime Hu
> > Subject: [PATCH 2/6] riscv: remove invalid dcache flush implementation
> >
> > The fence instruction is used to enforce device I/O and memory ordering
> > constraints in RISC-V. It does not directly affect the data cache and 
> > particular
> > cannot be used to flush or invalidate it. RISC-V does not have instructions 
> > for
> > explicit cache control. Remove the flush_dcache_all implementation and its 
> > use
> > in all dcache-specific functions in lib/cache.c.
> >

The privileged mention that fence is for the purposes of ordering, but
does not say
it can not be used to flush or invalidate.

Andes's ax25 have no coherence agent. So it need fence instruction to manipulate
cache flush or invalidate. Or there will be some data synchronization error
occurs on ae350 platform.

Thanks
Rick


> > This also adds a missing new line between flush_dcache_all and
> > flush_dcache_range in lib/cache.c.
> >
> > Signed-off-by: Lukas Auer 
> > ---
> > This patch only removes the implementation itself and its use in 
> > dcache-specific
> > functions in lib/cache.c. There are more uses of it in arch/riscv/, which 
> > this patch
> > does not remove.
> >
> >  arch/riscv/lib/cache.c | 4 +---
> >  1 file changed, 1 insertion(+), 3 deletions(-)
> >
> > diff --git a/arch/riscv/lib/cache.c b/arch/riscv/lib/cache.c index
> > ae5c60716f..203e287612 100644
> > --- a/arch/riscv/lib/cache.c
> > +++ b/arch/riscv/lib/cache.c
> > @@ -13,11 +13,10 @@ void invalidate_icache_all(void)
> >
> >  void flush_dcache_all(void)
> >  {
> > - asm volatile ("fence" :::"memory");
> >  }
> > +
> >  void flush_dcache_range(unsigned long start, unsigned long end)  {
> > - flush_dcache_all();
> >  }
> >
> >  void invalidate_icache_range(unsigned long start, unsigned long end) @@ 
> > -31,7
> > +30,6 @@ void invalidate_icache_range(unsigned long start, unsigned long 
> > end)
> >
> >  void invalidate_dcache_range(unsigned long start, unsigned long end)  {
> > - flush_dcache_all();
> >  }
> >
> >  void cache_flush(void)
> > --
> > 2.20.1
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v1 08/14] DTS: imx: Add "u-boot, dm-pre-reloc" property to relevant imx6qdl nodes

2019-01-01 Thread Marek Vasut
On 1/2/19 12:37 AM, Lukasz Majewski wrote:
> This patch is a preparation for the imx6q to use DTS in the SPL for very
> early configuration, as 'u-boot,dm-pre-reloc;' is necessary to initialize
> uart and SD/eMMC controllers in SPL.
> 
> Signed-off-by: Lukasz Majewski 

Should be in U-Boot specific DTSI to allow easy resync of DTSIs with Linux.

> ---
> 
>  arch/arm/dts/imx6qdl.dtsi | 5 +
>  1 file changed, 5 insertions(+)
> 
> diff --git a/arch/arm/dts/imx6qdl.dtsi b/arch/arm/dts/imx6qdl.dtsi
> index 476cf93445..61cb59cc94 100644
> --- a/arch/arm/dts/imx6qdl.dtsi
> +++ b/arch/arm/dts/imx6qdl.dtsi
> @@ -72,6 +72,7 @@
>   #address-cells = <1>;
>   #size-cells = <1>;
>   compatible = "simple-bus";
> + u-boot,dm-pre-reloc;
>   interrupt-parent = <>;
>   ranges;
>  
> @@ -218,6 +219,7 @@
>  
>   aips-bus@0200 { /* AIPS1 */
>   compatible = "fsl,aips-bus", "simple-bus";
> + u-boot,dm-pre-reloc;
>   #address-cells = <1>;
>   #size-cells = <1>;
>   reg = <0x0200 0x10>;
> @@ -225,6 +227,7 @@
>  
>   spba-bus@0200 {
>   compatible = "fsl,spba-bus", "simple-bus";
> + u-boot,dm-pre-reloc;
>   #address-cells = <1>;
>   #size-cells = <1>;
>   reg = <0x0200 0x4>;
> @@ -801,6 +804,7 @@
>  
>   iomuxc: iomuxc@020e {
>   compatible = "fsl,imx6dl-iomuxc", 
> "fsl,imx6q-iomuxc";
> + u-boot,dm-pre-reloc;
>   reg = <0x020e 0x4000>;
>   };
>  
> @@ -882,6 +886,7 @@
>  
>   aips-bus@0210 { /* AIPS2 */
>   compatible = "fsl,aips-bus", "simple-bus";
> + u-boot,dm-pre-reloc;
>   #address-cells = <1>;
>   #size-cells = <1>;
>   reg = <0x0210 0x10>;
> 


-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v1 11/14] DM: net: imx: Provide weak function to initialize fec clocks

2019-01-01 Thread Marek Vasut
On 1/2/19 12:37 AM, Lukasz Majewski wrote:
> This patch is necessary to initialize some board/soc specific clocks -
> like anatop, which is used to clock PHY and FEC block itself.
> 
> The initialization is performed with device tree by introducing two new
> properties - namely;
> 'fsl,enet-loopback-clk' and 'fsl,enet-freq' which specify the need to
> select proper enet clock and the clock value itself.
> 
> Previously this setup was done in the board_etc_init() function, which
> has been removed after switching to DM/DTS.
> 
> Signed-off-by: Lukasz Majewski 
> ---
> 
>  drivers/net/fec_mxc.c | 25 +
>  drivers/net/fec_mxc.h |  2 ++
>  2 files changed, 27 insertions(+)
> 
> diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
> index 99c5c649a0..728d6c9456 100644
> --- a/drivers/net/fec_mxc.c
> +++ b/drivers/net/fec_mxc.c
> @@ -1297,6 +1297,23 @@ static void fec_gpio_reset(struct fec_priv *priv)
>   }
>  }
>  #endif
> +/*
> + * This function is mostly intended for some soc/board specific
> + * clock initialization (like anatop clock on iMX6) done
> + * previously in board_eth_init()
> + */
> +__weak int set_fec_clock(int fec_id, enum enet_freq freq);
> +
> +static int fec_clk_init(struct udevice *dev)
> +{
> + struct fec_priv *priv = dev_get_priv(dev);
> + int ret = 0;
> +
> + if (priv->enet_loopback_clk)
> + ret = set_fec_clock(dev->seq, priv->freq);
> +
> + return ret;
> +}
>  
>  static int fecmxc_probe(struct udevice *dev)
>  {
> @@ -1321,6 +1338,10 @@ static int fecmxc_probe(struct udevice *dev)
>   priv->clk_rate = clk_get_rate(>ipg_clk);
>   }
>  
> + ret = fec_clk_init(dev);
> + if (ret)
> + return ret;
> +
>   ret = fec_alloc_descs(priv);
>   if (ret)
>   return ret;
> @@ -1455,6 +1476,10 @@ static int fecmxc_ofdata_to_platdata(struct udevice 
> *dev)
>   }
>  #endif
>  
> + priv->enet_loopback_clk = dev_read_bool(dev, "fsl,enet-loopback-clk");
> + if (priv->enet_loopback_clk)
> + dev_read_u32(dev, "fsl,enet-freq", >freq);

dev_read_u32() returns error value, so what happens if this fails ?

> +
>   return 0;
>  }
>  
> diff --git a/drivers/net/fec_mxc.h b/drivers/net/fec_mxc.h
> index e9a661f0a1..666b34304c 100644
> --- a/drivers/net/fec_mxc.h
> +++ b/drivers/net/fec_mxc.h
> @@ -261,6 +261,8 @@ struct fec_priv {
>  #endif
>  #ifdef CONFIG_DM_ETH
>   u32 interface;
> + bool enet_loopback_clk; /* anatop reference clk via PAD loopback */
> + enum enet_freq freq;
>  #endif
>   struct clk ipg_clk;
>   u32 clk_rate;
> 


-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v1 10/14] imx: clock: Introduce set_fec_clock() to configure ETH clock (imx6)

2019-01-01 Thread Marek Vasut
On 1/2/19 12:37 AM, Lukasz Majewski wrote:
> This patch provides a generic way to setup ENET (ETH) clocks for imx6(q)
> based boards. Previously this was performed per board in the
> board_eth_init() function.
> 
> Signed-off-by: Lukasz Majewski 
> ---
> 
>  arch/arm/include/asm/arch-mx6/clock.h |  1 +
>  arch/arm/mach-imx/mx6/clock.c | 17 +
>  2 files changed, 18 insertions(+)
> 
> diff --git a/arch/arm/include/asm/arch-mx6/clock.h 
> b/arch/arm/include/asm/arch-mx6/clock.h
> index a9481a5fea..9a217349f5 100644
> --- a/arch/arm/include/asm/arch-mx6/clock.h
> +++ b/arch/arm/include/asm/arch-mx6/clock.h
> @@ -72,6 +72,7 @@ int enable_i2c_clk(unsigned char enable, unsigned i2c_num);
>  int enable_spi_clk(unsigned char enable, unsigned spi_num);
>  void enable_ipu_clock(void);
>  int enable_fec_anatop_clock(int fec_id, enum enet_freq freq);
> +int set_fec_clock(int fec_id, enum enet_freq freq);
>  void enable_enet_clk(unsigned char enable);
>  int enable_lcdif_clock(u32 base_addr, bool enable);
>  void enable_qspi_clk(int qspi_num);
> diff --git a/arch/arm/mach-imx/mx6/clock.c b/arch/arm/mach-imx/mx6/clock.c
> index 366a4e3c6b..8a4fb23090 100644
> --- a/arch/arm/mach-imx/mx6/clock.c
> +++ b/arch/arm/mach-imx/mx6/clock.c
> @@ -902,6 +902,17 @@ void enable_qspi_clk(int qspi_num)
>  #endif
>  
>  #ifdef CONFIG_FEC_MXC
> +static void select_fec_clock_source(int fec_id)

How is the fec_id() used in here ? Shouldn't this be part of
enable_fec_anatop_clock() ?

> +{
> + struct iomuxc *iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR;
> +
> + if (is_mx6dq()) {
> + /* set gpr1[21] to select anatop clock */
> + setbits_le32(_regs->gpr[1],
> +  IOMUXC_GPR1_ENET_CLK_SEL_MASK);
> + }
> +}
> +
>  int enable_fec_anatop_clock(int fec_id, enum enet_freq freq)
>  {
>   u32 reg = 0;
> @@ -976,6 +987,12 @@ int enable_fec_anatop_clock(int fec_id, enum enet_freq 
> freq)
>  #endif
>   return 0;
>  }
> +
> +int set_fec_clock(int fec_id, enum enet_freq freq)
> +{
> + select_fec_clock_source(fec_id);
> + return enable_fec_anatop_clock(fec_id, freq);
> +}
>  #endif
>  
>  static u32 get_usdhc_clk(u32 port)
> 


-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v1 09/14] imx: serial: dm: Enable DM_FLAG_PRE_RELOC in the IMX uart driver

2019-01-01 Thread Marek Vasut
On 1/2/19 12:37 AM, Lukasz Majewski wrote:
> The DM_FLAG_PRE_RELOC shall be enabled as this driver is going to be
> re-used in the i.MX based SoCs.
> 
> It is crucial to have running the serial console before relocation.

But the patch doesn't do what the subject/commit message claims is does.
If I understand it correctly, it sets the PRE_RELOC flag unconditionally.

> Signed-off-by: Lukasz Majewski 
> ---
> 
>  drivers/serial/serial_mxc.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/drivers/serial/serial_mxc.c b/drivers/serial/serial_mxc.c
> index 7e4e6d36b8..e586c18cf0 100644
> --- a/drivers/serial/serial_mxc.c
> +++ b/drivers/serial/serial_mxc.c
> @@ -354,9 +354,7 @@ U_BOOT_DRIVER(serial_mxc) = {
>  #endif
>   .probe = mxc_serial_probe,
>   .ops= _serial_ops,
> -#if !CONFIG_IS_ENABLED(OF_CONTROL)
>   .flags = DM_FLAG_PRE_RELOC,
> -#endif
>  };
>  #endif
>  
> 


-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v1 13/14] DTS: imx: tpc70: Add TPC70 board (imx6q based) device tree description

2019-01-01 Thread Marek Vasut
On 1/2/19 12:37 AM, Lukasz Majewski wrote:
> This commit defines the TPC70 imx6q board with device tree description.
> 
> Signed-off-by: Lukasz Majewski 

Is this pulled from Linux ?

-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v1 12/14] imx: mmc: Use 'fsl, usdhc-index' property to provide esdhc controller number

2019-01-01 Thread Marek Vasut
On 1/2/19 12:37 AM, Lukasz Majewski wrote:
> With the current code, it is not possible to assign different than default
> numbers for mmc controllers.
> 
> Several in-tree boards depend on the pre-dm setup, corresponding to
> following aliases:
> 
> mmc0 =  --> fsl,usdhc-index = <1>
> mmc1 =  --> fsl,usdhc-index = <3>
> 
> Without this patch we are either forced to use default aliasing - like:
> 
> mmc0 = 
> mmc1 = 
> mmc2 = 
> mmc3 = 
> 
> to have the proper clocks setup for the controller. However, such setup
> is not acceptable for some legacy scripts / code.
> 
> With this patch - by introducing 'fsl,usdhc-index' - one can configure
> (get) clock rate corresponding to used controller.
> 
> Moreover, as this code is used in the SPL before relocation (and to save
> space we strip the SPL DTS from clocks and its names) adding separate
> properties seems to be the best approach here. One also avoids adding
> clocks DM code to SPL.
> 
> Signed-off-by: Lukasz Majewski 
> ---
> 
>  drivers/mmc/fsl_esdhc.c | 17 -
>  1 file changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
> index 3cdfa7f5a6..49a6834a98 100644
> --- a/drivers/mmc/fsl_esdhc.c
> +++ b/drivers/mmc/fsl_esdhc.c
> @@ -1401,6 +1401,7 @@ static int fsl_esdhc_probe(struct udevice *dev)
>   fdt_addr_t addr;
>   unsigned int val;
>   struct mmc *mmc;
> + int usdhc_idx;
>   int ret;
>  
>   addr = dev_read_addr(dev);
> @@ -1513,7 +1514,21 @@ static int fsl_esdhc_probe(struct udevice *dev)
>  
>   priv->sdhc_clk = clk_get_rate(>per_clk);
>   } else {
> - priv->sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK + dev->seq);
> + /*
> +  * Check for 'fsl,index' DTS property - as one may want to have
> +  * following mmc setup:

NAK, DT is a hardware description. This is encoding a policy, which
should not be in DT.

This looks like some reimplementation of SEQ_ALIAS stuff.

> +  * mmc0 =  --> fsl,index = <1>
> +  * mmc1 =  --> fsl,index = <3>
> +  *
> +  * So we do have dev->seq = {0, 1}, which in the below code
> +  * doesn't correspond to correct USDHC clocks.
> +  *
> +  * For that reason a new "fsl,index" property has been
> +  * introduced.
> +  */
> + usdhc_idx = dev_read_u32_default(dev, "fsl,usdhc-index",
> +  dev->seq);
> + priv->sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK + usdhc_idx);
>   if (priv->sdhc_clk <= 0) {
>   dev_err(dev, "Unable to get clk for %s\n", dev->name);
>   return -EINVAL;
> 


-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v1 07/14] pinctrl: imx: Replace static soc info definitions with run time allocations

2019-01-01 Thread Marek Vasut
On 1/2/19 12:37 AM, Lukasz Majewski wrote:
> This commit is necessary to be able to re-use the pinctrl code in early
> SPL to properly configure pins.
> 
> The problem is that those "static" structures are placed in the SDRAM
> area, which corresponds to u-boot proper (not even SPL). Hence, when
> one wants to configure pins before relocation via DTS/DM, the board
> hangs (imx6q SoC powered one) as only OCRAM area is available (0x009x).
> 
> It is also safe to use calloc in this case, as the early SPL code provides
> it - either full or trimmed version. The allocated memory is also correct
> in respect to the memory area in which the SoC is currently running (OCRAM
>  vs. SDRAM).

You should be able to access static data in early environment, many
other drivers have no problem with it. I believe there is some more
fundamental problem that needs to be fixed, hacking around it like this
is just hiding the real issue.

> Signed-off-by: Lukasz Majewski 
> ---
> 
>  drivers/pinctrl/nxp/pinctrl-imx6.c | 39 
> +++---
>  1 file changed, 19 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/pinctrl/nxp/pinctrl-imx6.c 
> b/drivers/pinctrl/nxp/pinctrl-imx6.c
> index d7c95bb738..876049b39b 100644
> --- a/drivers/pinctrl/nxp/pinctrl-imx6.c
> +++ b/drivers/pinctrl/nxp/pinctrl-imx6.c
> @@ -10,34 +10,33 @@
>  
>  #include "pinctrl-imx.h"
>  
> -static struct imx_pinctrl_soc_info imx6_pinctrl_soc_info;
> -
> -/* FIXME Before reloaction, BSS is overlapped with DT area */
> -static struct imx_pinctrl_soc_info imx6ul_pinctrl_soc_info = {
> - .flags = ZERO_OFFSET_VALID,
> -};
> -
> -static struct imx_pinctrl_soc_info imx6_snvs_pinctrl_soc_info = {
> - .flags = ZERO_OFFSET_VALID,
> -};
> -
>  static int imx6_pinctrl_probe(struct udevice *dev)
>  {
>   struct imx_pinctrl_soc_info *info =
> - (struct imx_pinctrl_soc_info *)dev_get_driver_data(dev);
> + calloc(1, sizeof(struct imx_pinctrl_soc_info));
> +
> + if (!info) {
> + printf("%s: Not enough memory!\n", __func__);
> + return -ENOMEM;
> + }
> +
> + if (device_is_compatible(dev, "fsl,imx6sll-iomuxc-snvs") ||
> + device_is_compatible(dev, "fsl,imx6ull-iomuxc-snvs") ||
> + device_is_compatible(dev, "fsl,imx6ul-iomuxc"))
> + info->flags = ZERO_OFFSET_VALID;
>  
>   return imx_pinctrl_probe(dev, info);
>  }
>  
>  static const struct udevice_id imx6_pinctrl_match[] = {
> - { .compatible = "fsl,imx6q-iomuxc", .data = 
> (ulong)_pinctrl_soc_info },
> - { .compatible = "fsl,imx6dl-iomuxc", .data = 
> (ulong)_pinctrl_soc_info },
> - { .compatible = "fsl,imx6sl-iomuxc", .data = 
> (ulong)_pinctrl_soc_info },
> - { .compatible = "fsl,imx6sll-iomuxc-snvs", .data = 
> (ulong)_snvs_pinctrl_soc_info },
> - { .compatible = "fsl,imx6sll-iomuxc", .data = 
> (ulong)_pinctrl_soc_info },
> - { .compatible = "fsl,imx6sx-iomuxc", .data = 
> (ulong)_pinctrl_soc_info },
> - { .compatible = "fsl,imx6ul-iomuxc", .data = 
> (ulong)_pinctrl_soc_info },
> - { .compatible = "fsl,imx6ull-iomuxc-snvs", .data = 
> (ulong)_snvs_pinctrl_soc_info },
> + { .compatible = "fsl,imx6q-iomuxc" },
> + { .compatible = "fsl,imx6dl-iomuxc" },
> + { .compatible = "fsl,imx6sl-iomuxc" },
> + { .compatible = "fsl,imx6sll-iomuxc-snvs" },
> + { .compatible = "fsl,imx6sll-iomuxc" },
> + { .compatible = "fsl,imx6sx-iomuxc" },
> + { .compatible = "fsl,imx6ul-iomuxc" },
> + { .compatible = "fsl,imx6ull-iomuxc-snvs" },
>   { /* sentinel */ }
>  };
>  
> 


-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v1 05/14] board: cosmetic: Use define to set ENET clock selection mask on TPC70

2019-01-01 Thread Marek Vasut
On 1/2/19 12:37 AM, Lukasz Majewski wrote:
> This is a cosmetic change, just to use proper define.
> 
> Signed-off-by: Lukasz Majewski 

The subject tags are wrong, fix globally.

> ---
> 
>  board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c 
> b/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c
> index ace986fa05..bcc22b1aa8 100644
> --- a/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c
> +++ b/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c
> @@ -118,7 +118,8 @@ static int setup_fec_clock(void)
>   struct iomuxc *iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR;
>  
>   /* set gpr1[21] to select anatop clock */
> - clrsetbits_le32(_regs->gpr[1], 0x1 << 21, 0x1 << 21);
> + clrsetbits_le32(_regs->gpr[1], IOMUXC_GPR1_ENET_CLK_SEL_MASK,
> + IOMUXC_GPR1_ENET_CLK_SEL_MASK);
>  
>   return enable_fec_anatop_clock(0, ENET_50MHZ);
>  }
> 


-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v1 04/14] DTS: imx: Remove not needed '#address-cells' and '#size-cells' properties

2019-01-01 Thread Marek Vasut
On 1/2/19 12:37 AM, Lukasz Majewski wrote:
> This commit fixes warnings produced by newest in u-boot DTC compiler:
> 'unnecessary #address-cells/#size-cells without "ranges" or child "reg" 
> property'
> 
> Signed-off-by: Lukasz Majewski 

I presume the DTSIs are taken from Linux, is this a backport from Linux
then ?

> ---
> 
>  arch/arm/dts/imx6q.dtsi   | 4 
>  arch/arm/dts/imx6qdl.dtsi | 9 -
>  2 files changed, 13 deletions(-)
> 
> diff --git a/arch/arm/dts/imx6q.dtsi b/arch/arm/dts/imx6q.dtsi
> index c30c8368ca..7f5d91d7f0 100644
> --- a/arch/arm/dts/imx6q.dtsi
> +++ b/arch/arm/dts/imx6q.dtsi
> @@ -150,8 +150,6 @@
>   };
>  
>   ipu2_di0: port@2 {
> - #address-cells = <1>;
> - #size-cells = <0>;
>   reg = <2>;
>  
>   ipu2_di0_disp0: disp0-endpoint {
> @@ -175,8 +173,6 @@
>   };
>  
>   ipu2_di1: port@3 {
> - #address-cells = <1>;
> - #size-cells = <0>;
>   reg = <3>;
>  
>   ipu2_di1_hdmi: hdmi-endpoint {
> diff --git a/arch/arm/dts/imx6qdl.dtsi b/arch/arm/dts/imx6qdl.dtsi
> index b13b0b2db8..476cf93445 100644
> --- a/arch/arm/dts/imx6qdl.dtsi
> +++ b/arch/arm/dts/imx6qdl.dtsi
> @@ -49,9 +49,6 @@
>   };
>  
>   clocks {
> - #address-cells = <1>;
> - #size-cells = <0>;
> -
>   ckil {
>   compatible = "fsl,imx-ckil", "fixed-clock";
>   #clock-cells = <0>;
> @@ -1125,8 +1122,6 @@
>   };
>  
>   mipi_dsi: mipi@021e {
> - #address-cells = <1>;
> - #size-cells = <0>;
>   reg = <0x021e 0x4000>;
>   status = "disabled";
>  
> @@ -1228,8 +1223,6 @@
>   };
>  
>   ipu1_di0: port@2 {
> - #address-cells = <1>;
> - #size-cells = <0>;
>   reg = <2>;
>  
>   ipu1_di0_disp0: disp0-endpoint {
> @@ -1253,8 +1246,6 @@
>   };
>  
>   ipu1_di1: port@3 {
> - #address-cells = <1>;
> - #size-cells = <0>;
>   reg = <3>;
>  
>   ipu1_di1_disp1: disp1-endpoint {
> 


-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v1 02/14] tpc70: config: Update TPC70 config to support eMMC's boot0 SPL update

2019-01-01 Thread Marek Vasut
On 1/2/19 12:37 AM, Lukasz Majewski wrote:
> The TPC70 can boot from eMMC's boot0. This patch allows it to update
> this HW partition's SPL.
> 
> Signed-off-by: Lukasz Majewski 
> ---
> 
>  include/configs/kp_imx6q_tpc.h | 5 +
>  1 file changed, 5 insertions(+)
> 
> diff --git a/include/configs/kp_imx6q_tpc.h b/include/configs/kp_imx6q_tpc.h
> index ee9c56bc21..f26b18442b 100644
> --- a/include/configs/kp_imx6q_tpc.h
> +++ b/include/configs/kp_imx6q_tpc.h
> @@ -49,6 +49,7 @@
>  #define CONFIG_SYS_FSL_ESDHC_ADDR0
>  #define CONFIG_SYS_FSL_USDHC_NUM 2
>  #define CONFIG_SYS_MMC_ENV_DEV   1 /* 0 = SDHC2, 1 = SDHC4 
> (eMMC) */
> +#define CONFIG_SUPPORT_EMMC_BOOT
>  
>  /* UART */
>  #define CONFIG_MXC_UART
> @@ -109,6 +110,10 @@
>  "setexpr blkc ${blkc} + 1;" \
>  "mmc write ${loadaddr} 0x2 ${blkc};" \
>   "fi;\0" \
> + "upd_SPL_mmc=mmc dev 1; mmc partconf 1 0 1 1; run upd_SPL_sd\0" \

If mmc dev 1 fails, this will randomly rewrite or even damage some
SD/MMC card that was selected before. Use && ...

> + "upd_uboot_mmc=mmc dev 1; mmc partconf 1 0 1 1; run upd_uboot_sd\0" \

Deduplicate these repeated commands.

> + "up_mmc=run upd_SPL_mmc; run upd_uboot_mmc\0" \
> + "up_sd=run upd_SPL_sd; run upd_uboot_sd\0" \
>   "upd_wic=" \
>   "if tftp ${loadaddr} ${wic_file}; then " \
>  "setexpr blkc ${filesize} / 0x200;" \
> 


-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v1 01/14] tpc70: config: Add script commands to update u-boot and OE's wic

2019-01-01 Thread Marek Vasut
On 1/2/19 12:37 AM, Lukasz Majewski wrote:
> Signed-off-by: Lukasz Majewski 

The tags should be ARM: imx: ...

The commit message is missing.

> ---
> 
>  include/configs/kp_imx6q_tpc.h | 21 +
>  1 file changed, 21 insertions(+)
> 
> diff --git a/include/configs/kp_imx6q_tpc.h b/include/configs/kp_imx6q_tpc.h
> index b6b27ee1d5..ee9c56bc21 100644
> --- a/include/configs/kp_imx6q_tpc.h
> +++ b/include/configs/kp_imx6q_tpc.h
> @@ -89,11 +89,32 @@
>   "rdinit=/sbin/init\0" \
>   "addinitrd=setenv bootargs ${bootargs} rdinit=${rdinit} ${debug} \0" \
>   "fit_config=mx6q_tpc70_conf\0" \
> + "uboot_file=u-boot.img\0" \
> + "SPL_file=SPL\0" \
> + "wic_file=kp-image-kpimx6qtpc.wic\0" \

Why don't you just generate a fitImage and use the fitupd for this ?

>   "upd_image=st.4k\0" \
>   "updargs=setenv bootargs console=${console} ${smp}"\
>  "rdinit=${rdinit} ${debug} ${displayargs}\0" \
>   "loadusb=usb start; " \
>  "fatload usb 0 ${loadaddr} ${upd_image}\0" \
> + "upd_uboot_sd=" \
> + "if tftp ${loadaddr} ${uboot_file}; then " \
> +"setexpr blkc ${filesize} / 0x200;" \
> +"setexpr blkc ${blkc} + 1;" \
> +"mmc write ${loadaddr} 0x8A ${blkc};" \
> + "fi;\0" \
> + "upd_SPL_sd=" \
> + "if tftp ${loadaddr} ${SPL_file}; then " \
> +"setexpr blkc ${filesize} / 0x200;" \
> +"setexpr blkc ${blkc} + 1;" \
> +"mmc write ${loadaddr} 0x2 ${blkc};" \
> + "fi;\0" \
> + "upd_wic=" \
> + "if tftp ${loadaddr} ${wic_file}; then " \
> +"setexpr blkc ${filesize} / 0x200;" \
> +"setexpr blkc ${blkc} + 1;" \
> +"mmc write ${loadaddr} 0x0 ${blkc};" \
> + "fi;\0" \
>   "usbupd=echo Booting update from usb ...; " \
>  "setenv bootargs; " \
>  "run updargs; " \
> 


-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] Pull request: u-boot-sunxi/master

2019-01-01 Thread Tom Rini
On Wed, Jan 02, 2019 at 12:52:05AM +0530, Jagan Teki wrote:

> Hi Tom,
> 
> Please pull this as part of v2019.01 release.
> 
> thanks,
> Jagan.
> 
> The following changes since commit bea3d826203f90507ff32ed24bd0a3c53479e55c:
> 
>   Merge tag 'signed-efi-2019.01' of git://github.com/agraf/u-boot (2018-12-27 
> 12:59:01 -0500)
> 
> are available in the Git repository at:
> 
>   git://git.denx.de/u-boot-sunxi.git master
> 
> for you to fetch changes up to 44c214dc2738da979d277d8d45fe50997b62b5f8:
> 
>   Revert "sunxi: board: Print error after power initialization fails" 
> (2018-12-30 00:57:17 +0530)
> 

Applied to u-boot/master, thanks!

-- 
Tom


signature.asc
Description: PGP signature
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [GIT PULL] Pull request: u-boot-imx u -boot-imx-20190101

2019-01-01 Thread Tom Rini
On Tue, Jan 01, 2019 at 02:51:53PM +0100, Stefano Babic wrote:

> Hi Tom,
> 
> I dropped for the moment the following patches from Denis:
> 
>   bootcount: i2c: Add bus switching to the I2C bootcount driver
>   bootcount: Configure length limit for I2C bootcount
>   board: ge: Store bootcount in EEPROM on PPD and Bx50v3
> 
> I used the same hack and PowerPC boards are built successfully on
> travis. Please pull from u-boot-imx, thanks !
> 
> The following changes since commit d117d8f19b0625f88309e47a8a32c2faa384dddc:
> 
>   Merge branch 'master' of git://git.denx.de/u-boot-i2c (2018-12-13
> 09:36:55 -0500)
> 
> are available in the Git repository at:
> 
>   git://www.denx.de/git/u-boot-imx.git tags/u-boot-imx-20190101
> 
> for you to fetch changes up to 57d2beb91d705bccdfee5e9e5fd267f5e363a100:
> 
>   pico-imx7d: Increase the CONFIG_ENV_OFFSET size (2019-01-01 14:12:18
> +0100)
> 

tl;dr:
Applied to u-boot/master, thanks!

Slightly longer.  I'm both not happy about taking something still this
large so close to the end of the release and also at fault for it being
so late.  I started my holidays a week early so I didn't bisect the
build failure until it was too late.  That said, it's also a strong
reminder of why everyone is encouraged to put their PR through travis.
This PR includes a bunch of renaming that is important to get right
ASAP.   It also has some small and important bug-fixes.  So I'm applying
it.

-- 
Tom


signature.asc
Description: PGP signature
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v1 08/14] DTS: imx: Add "u-boot, dm-pre-reloc" property to relevant imx6qdl nodes

2019-01-01 Thread Lukasz Majewski
This patch is a preparation for the imx6q to use DTS in the SPL for very
early configuration, as 'u-boot,dm-pre-reloc;' is necessary to initialize
uart and SD/eMMC controllers in SPL.

Signed-off-by: Lukasz Majewski 
---

 arch/arm/dts/imx6qdl.dtsi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/dts/imx6qdl.dtsi b/arch/arm/dts/imx6qdl.dtsi
index 476cf93445..61cb59cc94 100644
--- a/arch/arm/dts/imx6qdl.dtsi
+++ b/arch/arm/dts/imx6qdl.dtsi
@@ -72,6 +72,7 @@
#address-cells = <1>;
#size-cells = <1>;
compatible = "simple-bus";
+   u-boot,dm-pre-reloc;
interrupt-parent = <>;
ranges;
 
@@ -218,6 +219,7 @@
 
aips-bus@0200 { /* AIPS1 */
compatible = "fsl,aips-bus", "simple-bus";
+   u-boot,dm-pre-reloc;
#address-cells = <1>;
#size-cells = <1>;
reg = <0x0200 0x10>;
@@ -225,6 +227,7 @@
 
spba-bus@0200 {
compatible = "fsl,spba-bus", "simple-bus";
+   u-boot,dm-pre-reloc;
#address-cells = <1>;
#size-cells = <1>;
reg = <0x0200 0x4>;
@@ -801,6 +804,7 @@
 
iomuxc: iomuxc@020e {
compatible = "fsl,imx6dl-iomuxc", 
"fsl,imx6q-iomuxc";
+   u-boot,dm-pre-reloc;
reg = <0x020e 0x4000>;
};
 
@@ -882,6 +886,7 @@
 
aips-bus@0210 { /* AIPS2 */
compatible = "fsl,aips-bus", "simple-bus";
+   u-boot,dm-pre-reloc;
#address-cells = <1>;
#size-cells = <1>;
reg = <0x0210 0x10>;
-- 
2.11.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v1 11/14] DM: net: imx: Provide weak function to initialize fec clocks

2019-01-01 Thread Lukasz Majewski
This patch is necessary to initialize some board/soc specific clocks -
like anatop, which is used to clock PHY and FEC block itself.

The initialization is performed with device tree by introducing two new
properties - namely;
'fsl,enet-loopback-clk' and 'fsl,enet-freq' which specify the need to
select proper enet clock and the clock value itself.

Previously this setup was done in the board_etc_init() function, which
has been removed after switching to DM/DTS.

Signed-off-by: Lukasz Majewski 
---

 drivers/net/fec_mxc.c | 25 +
 drivers/net/fec_mxc.h |  2 ++
 2 files changed, 27 insertions(+)

diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
index 99c5c649a0..728d6c9456 100644
--- a/drivers/net/fec_mxc.c
+++ b/drivers/net/fec_mxc.c
@@ -1297,6 +1297,23 @@ static void fec_gpio_reset(struct fec_priv *priv)
}
 }
 #endif
+/*
+ * This function is mostly intended for some soc/board specific
+ * clock initialization (like anatop clock on iMX6) done
+ * previously in board_eth_init()
+ */
+__weak int set_fec_clock(int fec_id, enum enet_freq freq);
+
+static int fec_clk_init(struct udevice *dev)
+{
+   struct fec_priv *priv = dev_get_priv(dev);
+   int ret = 0;
+
+   if (priv->enet_loopback_clk)
+   ret = set_fec_clock(dev->seq, priv->freq);
+
+   return ret;
+}
 
 static int fecmxc_probe(struct udevice *dev)
 {
@@ -1321,6 +1338,10 @@ static int fecmxc_probe(struct udevice *dev)
priv->clk_rate = clk_get_rate(>ipg_clk);
}
 
+   ret = fec_clk_init(dev);
+   if (ret)
+   return ret;
+
ret = fec_alloc_descs(priv);
if (ret)
return ret;
@@ -1455,6 +1476,10 @@ static int fecmxc_ofdata_to_platdata(struct udevice *dev)
}
 #endif
 
+   priv->enet_loopback_clk = dev_read_bool(dev, "fsl,enet-loopback-clk");
+   if (priv->enet_loopback_clk)
+   dev_read_u32(dev, "fsl,enet-freq", >freq);
+
return 0;
 }
 
diff --git a/drivers/net/fec_mxc.h b/drivers/net/fec_mxc.h
index e9a661f0a1..666b34304c 100644
--- a/drivers/net/fec_mxc.h
+++ b/drivers/net/fec_mxc.h
@@ -261,6 +261,8 @@ struct fec_priv {
 #endif
 #ifdef CONFIG_DM_ETH
u32 interface;
+   bool enet_loopback_clk; /* anatop reference clk via PAD loopback */
+   enum enet_freq freq;
 #endif
struct clk ipg_clk;
u32 clk_rate;
-- 
2.11.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v1 09/14] imx: serial: dm: Enable DM_FLAG_PRE_RELOC in the IMX uart driver

2019-01-01 Thread Lukasz Majewski
The DM_FLAG_PRE_RELOC shall be enabled as this driver is going to be
re-used in the i.MX based SoCs.

It is crucial to have running the serial console before relocation.

Signed-off-by: Lukasz Majewski 
---

 drivers/serial/serial_mxc.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/serial/serial_mxc.c b/drivers/serial/serial_mxc.c
index 7e4e6d36b8..e586c18cf0 100644
--- a/drivers/serial/serial_mxc.c
+++ b/drivers/serial/serial_mxc.c
@@ -354,9 +354,7 @@ U_BOOT_DRIVER(serial_mxc) = {
 #endif
.probe = mxc_serial_probe,
.ops= _serial_ops,
-#if !CONFIG_IS_ENABLED(OF_CONTROL)
.flags = DM_FLAG_PRE_RELOC,
-#endif
 };
 #endif
 
-- 
2.11.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v1 13/14] DTS: imx: tpc70: Add TPC70 board (imx6q based) device tree description

2019-01-01 Thread Lukasz Majewski
This commit defines the TPC70 imx6q board with device tree description.

Signed-off-by: Lukasz Majewski 
---

 arch/arm/dts/imx6q-kp.dts | 227 ++
 1 file changed, 227 insertions(+)
 create mode 100644 arch/arm/dts/imx6q-kp.dts

diff --git a/arch/arm/dts/imx6q-kp.dts b/arch/arm/dts/imx6q-kp.dts
new file mode 100644
index 00..1be8e2e9d5
--- /dev/null
+++ b/arch/arm/dts/imx6q-kp.dts
@@ -0,0 +1,227 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2018
+ * Lukasz Majewski, DENX Software Engineering, lu...@denx.de
+ *
+ * SPDX-License-Identifier: GPL-2.0+ or X11
+ */
+
+/dts-v1/;
+#include 
+#include "imx6q.dtsi"
+
+/ {
+   model = "K+P iMX6Q";
+   compatible = "kp,imx6-kp", "fsl,imx6";
+
+   aliases {
+   mmc0 = 
+   mmc1 = 
+   usb1 = 
+   };
+
+   chosen {
+   stdout-path = 
+   };
+
+   leds {
+   compatible = "gpio-leds";
+   pinctrl-names = "default";
+   pinctrl-0 = <_leds>;
+
+   green {
+   label = "green";
+   gpios = < 23 GPIO_ACTIVE_HIGH>;
+   linux,default-trigger = "gpio";
+   default-state = "off";
+   };
+
+   red {
+   label = "red";
+   gpios = < 16 GPIO_ACTIVE_HIGH>;
+   linux,default-trigger = "gpio";
+   default-state = "off";
+   };
+   };
+
+   memory@1000 {
+   reg = <0x1000 0x4000>;
+   };
+
+   reg_usb_h1_vbus: regulator-usb_h1_vbus {
+   compatible = "regulator-fixed";
+   regulator-name = "usb_h1_vbus";
+   regulator-min-microvolt = <500>;
+   regulator-max-microvolt = <500>;
+   gpio = < 31 GPIO_ACTIVE_HIGH>;
+   enable-active-high;
+   };
+};
+
+ {
+   pinctrl-names = "default";
+   pinctrl-0 = <_enet>;
+   phy-reset-gpios = < 25 GPIO_ACTIVE_LOW>;
+   phy-reset-duration = <10>;
+   phy-mode = "rgmii";
+   fsl,magic-packet;
+   fsl,enet-loopback-clk; /* anatop reference clk via PAD loopback */
+   fsl,enet-freq = <1>; /* ENET_25MHZ  = 0, ENET_50MHZ  = 1 */
+/* ENET_100MHZ = 2, ENET_125MHZ = 3 */
+   status = "okay";
+};
+
+ {
+   clock-frequency = <40>;
+   pinctrl-names = "default";
+   pinctrl-0 = <_i2c1>;
+   status = "okay";
+};
+
+ {
+   clock-frequency = <40>;
+   pinctrl-names = "default";
+   pinctrl-0 = <_i2c2>;
+   status = "okay";
+};
+
+ {
+   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 0x1b0b0
+   MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b0b0
+   MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b0b0
+   MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b0b0
+   MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b0b0
+   MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL   0x1b0b0
+   MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK0x1b0b0
+   MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b0b0
+   MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b0b0
+   MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b0b0
+   MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b0b0
+   MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b0b0
+   MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL   0x1b0b0
+   MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x4001b0a8
+   MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25  0x1b0b0
+   >;
+   };
+
+   pinctrl_leds: gpioledsgrp {
+   fsl,pins = <
+   MX6QDL_PAD_EIM_D23__GPIO3_IO23  0x4001b0b0
+   MX6QDL_PAD_EIM_D16__GPIO3_IO16  0x4001b0b0
+   >;
+   };
+
+   pinctrl_i2c1: i2c1grp {
+   fsl,pins = <
+   MX6QDL_PAD_CSI0_DAT8__I2C1_SDA  0x4001b8b1
+   MX6QDL_PAD_CSI0_DAT9__I2C1_SCL  0x4001b8b1
+   >;
+   };
+
+   pinctrl_i2c2: i2c2grp {
+   fsl,pins = <
+   MX6QDL_PAD_KEY_COL3__I2C2_SCL   0x4001b8b1
+   MX6QDL_PAD_KEY_ROW3__I2C2_SDA   0x4001b8b1
+>;
+   };
+
+   pinctrl_uart1: uart1grp {
+   fsl,pins = <
+   MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA  0x1b0b1
+   MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA  0x1b0b1
+   >;
+   u-boot,dm-pre-reloc;
+   };
+
+   pinctrl_uart2: uart2grp {
+   fsl,pins = <
+   

[U-Boot] [PATCH v1 14/14] imx: tpc70: Convert TPC70 (imx6q based) board to use DM/DTS in SPL and u-boot

2019-01-01 Thread Lukasz Majewski
This commit moves the TPC70 to use device model and device tree description
in both SPL and u-boot proper.

Signed-off-by: Lukasz Majewski 

---

 arch/arm/mach-imx/mx6/Kconfig |  10 ++
 board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c | 174 --
 board/k+p/kp_imx6q_tpc/kp_imx6q_tpc_spl.c | 133 +--
 configs/kp_imx6q_tpc_defconfig|  31 +-
 include/configs/kp_imx6q_tpc.h|  21 
 5 files changed, 39 insertions(+), 330 deletions(-)

diff --git a/arch/arm/mach-imx/mx6/Kconfig b/arch/arm/mach-imx/mx6/Kconfig
index 06c25bae36..b9915e2197 100644
--- a/arch/arm/mach-imx/mx6/Kconfig
+++ b/arch/arm/mach-imx/mx6/Kconfig
@@ -446,9 +446,19 @@ config TARGET_KP_IMX6Q_TPC
select BOARD_EARLY_INIT_F
select BOARD_LATE_INIT
select DM
+   select SPL_DM if SPL
select DM_THERMAL
+   select DM_MMC
+   select DM_ETH
+   select DM_REGULATOR
+   select SPL_DM_REGULATOR if SPL
+   select DM_SERIAL
+   select DM_I2C
+   select DM_GPIO
+   select DM_USB
select MX6QDL
select SUPPORT_SPL
+   select SPL_SEPARATE_BSS if SPL
imply CMD_DM
imply CMD_SPL
 
diff --git a/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c 
b/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c
index f0c97ba368..5344ddd560 100644
--- a/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c
+++ b/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c
@@ -9,64 +9,17 @@
 #include 
 #include 
 #include 
-#include 
 #include 
 #include 
-#include 
-#include 
 #include 
-#include 
-#include 
 #include 
-#include 
-#include 
-#include 
 #include 
-#include 
-#include 
-#include 
 #include 
 #include 
 #include 
 
 DECLARE_GLOBAL_DATA_PTR;
 
-#define ENET_PAD_CTRL  \
-   (PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm |  \
-PAD_CTL_HYS)
-
-#define I2C_PAD_CTRL   \
-   (PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm |  \
-   PAD_CTL_HYS | PAD_CTL_ODE | PAD_CTL_SRE_FAST)
-
-#define PC MUX_PAD_CTRL(I2C_PAD_CTRL)
-
-static struct i2c_pads_info kp_imx6q_tpc_i2c_pad_info0 = {
-   .scl = {
-   .i2c_mode  = MX6Q_PAD_CSI0_DAT9__I2C1_SCL | PC,
-   .gpio_mode = MX6Q_PAD_CSI0_DAT9__GPIO5_IO27 | PC,
-   .gp = IMX_GPIO_NR(5, 27)
-   },
-   .sda = {
-.i2c_mode = MX6Q_PAD_CSI0_DAT8__I2C1_SDA | PC,
-.gpio_mode = MX6Q_PAD_CSI0_DAT8__GPIO5_IO26 | PC,
-.gp = IMX_GPIO_NR(5, 26)
-   }
-};
-
-static struct i2c_pads_info kp_imx6q_tpc_i2c_pad_info1 = {
-   .scl = {
-   .i2c_mode  = MX6Q_PAD_KEY_COL3__I2C2_SCL | PC,
-   .gpio_mode = MX6Q_PAD_KEY_COL3__GPIO4_IO12 | PC,
-   .gp = IMX_GPIO_NR(4, 12)
-   },
-   .sda = {
-.i2c_mode = MX6Q_PAD_KEY_ROW3__I2C2_SDA | PC,
-.gpio_mode = MX6Q_PAD_KEY_ROW3__GPIO4_IO13 | PC,
-.gp = IMX_GPIO_NR(4, 13)
-   }
-};
-
 int dram_init(void)
 {
gd->ram_size = imx_ddr_size();
@@ -82,58 +35,6 @@ int overwrite_console(void)
return 1;
 }
 
-#ifdef CONFIG_FEC_MXC
-static iomux_v3_cfg_t const enet_pads[] = {
-   IOMUX_PADS(PAD_ENET_MDIO__ENET_MDIO | MUX_PAD_CTRL(ENET_PAD_CTRL)),
-   IOMUX_PADS(PAD_ENET_MDC__ENET_MDC   | MUX_PAD_CTRL(ENET_PAD_CTRL)),
-   IOMUX_PADS(PAD_RGMII_TXC__RGMII_TXC | MUX_PAD_CTRL(ENET_PAD_CTRL)),
-   IOMUX_PADS(PAD_RGMII_TD0__RGMII_TD0 | MUX_PAD_CTRL(ENET_PAD_CTRL)),
-   IOMUX_PADS(PAD_RGMII_TD1__RGMII_TD1 | MUX_PAD_CTRL(ENET_PAD_CTRL)),
-   IOMUX_PADS(PAD_RGMII_TD2__RGMII_TD2 | MUX_PAD_CTRL(ENET_PAD_CTRL)),
-   IOMUX_PADS(PAD_RGMII_TD3__RGMII_TD3 | MUX_PAD_CTRL(ENET_PAD_CTRL)),
-   IOMUX_PADS(PAD_RGMII_TX_CTL__RGMII_TX_CTL |
-  MUX_PAD_CTRL(ENET_PAD_CTRL)),
-   IOMUX_PADS(PAD_ENET_REF_CLK__ENET_TX_CLK | MUX_PAD_CTRL(ENET_PAD_CTRL)),
-   IOMUX_PADS(PAD_RGMII_RXC__RGMII_RXC | MUX_PAD_CTRL(ENET_PAD_CTRL)),
-   IOMUX_PADS(PAD_RGMII_RD0__RGMII_RD0 | MUX_PAD_CTRL(ENET_PAD_CTRL)),
-   IOMUX_PADS(PAD_RGMII_RD1__RGMII_RD1 | MUX_PAD_CTRL(ENET_PAD_CTRL)),
-   IOMUX_PADS(PAD_RGMII_RD2__RGMII_RD2 | MUX_PAD_CTRL(ENET_PAD_CTRL)),
-   IOMUX_PADS(PAD_RGMII_RD3__RGMII_RD3 | MUX_PAD_CTRL(ENET_PAD_CTRL)),
-   IOMUX_PADS(PAD_RGMII_RX_CTL__RGMII_RX_CTL |
-  MUX_PAD_CTRL(ENET_PAD_CTRL)),
-   /* AR8031 PHY Reset */
-   IOMUX_PADS(PAD_ENET_CRS_DV__GPIO1_IO25  | MUX_PAD_CTRL(NO_PAD_CTRL)),
-};
-
-static void eth_phy_reset(void)
-{
-   /* Reset AR8031 PHY */
-   gpio_direction_output(IMX_GPIO_NR(1, 25), 0);
-   mdelay(10);
-   gpio_set_value(IMX_GPIO_NR(1, 25), 1);
-   udelay(100);
-}
-
-static int setup_fec_clock(void)
-{
-   struct iomuxc *iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR;
-
-   /* set gpr1[21] 

[U-Boot] [PATCH v1 10/14] imx: clock: Introduce set_fec_clock() to configure ETH clock (imx6)

2019-01-01 Thread Lukasz Majewski
This patch provides a generic way to setup ENET (ETH) clocks for imx6(q)
based boards. Previously this was performed per board in the
board_eth_init() function.

Signed-off-by: Lukasz Majewski 
---

 arch/arm/include/asm/arch-mx6/clock.h |  1 +
 arch/arm/mach-imx/mx6/clock.c | 17 +
 2 files changed, 18 insertions(+)

diff --git a/arch/arm/include/asm/arch-mx6/clock.h 
b/arch/arm/include/asm/arch-mx6/clock.h
index a9481a5fea..9a217349f5 100644
--- a/arch/arm/include/asm/arch-mx6/clock.h
+++ b/arch/arm/include/asm/arch-mx6/clock.h
@@ -72,6 +72,7 @@ int enable_i2c_clk(unsigned char enable, unsigned i2c_num);
 int enable_spi_clk(unsigned char enable, unsigned spi_num);
 void enable_ipu_clock(void);
 int enable_fec_anatop_clock(int fec_id, enum enet_freq freq);
+int set_fec_clock(int fec_id, enum enet_freq freq);
 void enable_enet_clk(unsigned char enable);
 int enable_lcdif_clock(u32 base_addr, bool enable);
 void enable_qspi_clk(int qspi_num);
diff --git a/arch/arm/mach-imx/mx6/clock.c b/arch/arm/mach-imx/mx6/clock.c
index 366a4e3c6b..8a4fb23090 100644
--- a/arch/arm/mach-imx/mx6/clock.c
+++ b/arch/arm/mach-imx/mx6/clock.c
@@ -902,6 +902,17 @@ void enable_qspi_clk(int qspi_num)
 #endif
 
 #ifdef CONFIG_FEC_MXC
+static void select_fec_clock_source(int fec_id)
+{
+   struct iomuxc *iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR;
+
+   if (is_mx6dq()) {
+   /* set gpr1[21] to select anatop clock */
+   setbits_le32(_regs->gpr[1],
+IOMUXC_GPR1_ENET_CLK_SEL_MASK);
+   }
+}
+
 int enable_fec_anatop_clock(int fec_id, enum enet_freq freq)
 {
u32 reg = 0;
@@ -976,6 +987,12 @@ int enable_fec_anatop_clock(int fec_id, enum enet_freq 
freq)
 #endif
return 0;
 }
+
+int set_fec_clock(int fec_id, enum enet_freq freq)
+{
+   select_fec_clock_source(fec_id);
+   return enable_fec_anatop_clock(fec_id, freq);
+}
 #endif
 
 static u32 get_usdhc_clk(u32 port)
-- 
2.11.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v1 04/14] DTS: imx: Remove not needed '#address-cells' and '#size-cells' properties

2019-01-01 Thread Lukasz Majewski
This commit fixes warnings produced by newest in u-boot DTC compiler:
'unnecessary #address-cells/#size-cells without "ranges" or child "reg" 
property'

Signed-off-by: Lukasz Majewski 
---

 arch/arm/dts/imx6q.dtsi   | 4 
 arch/arm/dts/imx6qdl.dtsi | 9 -
 2 files changed, 13 deletions(-)

diff --git a/arch/arm/dts/imx6q.dtsi b/arch/arm/dts/imx6q.dtsi
index c30c8368ca..7f5d91d7f0 100644
--- a/arch/arm/dts/imx6q.dtsi
+++ b/arch/arm/dts/imx6q.dtsi
@@ -150,8 +150,6 @@
};
 
ipu2_di0: port@2 {
-   #address-cells = <1>;
-   #size-cells = <0>;
reg = <2>;
 
ipu2_di0_disp0: disp0-endpoint {
@@ -175,8 +173,6 @@
};
 
ipu2_di1: port@3 {
-   #address-cells = <1>;
-   #size-cells = <0>;
reg = <3>;
 
ipu2_di1_hdmi: hdmi-endpoint {
diff --git a/arch/arm/dts/imx6qdl.dtsi b/arch/arm/dts/imx6qdl.dtsi
index b13b0b2db8..476cf93445 100644
--- a/arch/arm/dts/imx6qdl.dtsi
+++ b/arch/arm/dts/imx6qdl.dtsi
@@ -49,9 +49,6 @@
};
 
clocks {
-   #address-cells = <1>;
-   #size-cells = <0>;
-
ckil {
compatible = "fsl,imx-ckil", "fixed-clock";
#clock-cells = <0>;
@@ -1125,8 +1122,6 @@
};
 
mipi_dsi: mipi@021e {
-   #address-cells = <1>;
-   #size-cells = <0>;
reg = <0x021e 0x4000>;
status = "disabled";
 
@@ -1228,8 +1223,6 @@
};
 
ipu1_di0: port@2 {
-   #address-cells = <1>;
-   #size-cells = <0>;
reg = <2>;
 
ipu1_di0_disp0: disp0-endpoint {
@@ -1253,8 +1246,6 @@
};
 
ipu1_di1: port@3 {
-   #address-cells = <1>;
-   #size-cells = <0>;
reg = <3>;
 
ipu1_di1_disp1: disp1-endpoint {
-- 
2.11.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v1 05/14] board: cosmetic: Use define to set ENET clock selection mask on TPC70

2019-01-01 Thread Lukasz Majewski
This is a cosmetic change, just to use proper define.

Signed-off-by: Lukasz Majewski 
---

 board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c 
b/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c
index ace986fa05..bcc22b1aa8 100644
--- a/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c
+++ b/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c
@@ -118,7 +118,8 @@ static int setup_fec_clock(void)
struct iomuxc *iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR;
 
/* set gpr1[21] to select anatop clock */
-   clrsetbits_le32(_regs->gpr[1], 0x1 << 21, 0x1 << 21);
+   clrsetbits_le32(_regs->gpr[1], IOMUXC_GPR1_ENET_CLK_SEL_MASK,
+   IOMUXC_GPR1_ENET_CLK_SEL_MASK);
 
return enable_fec_anatop_clock(0, ENET_50MHZ);
 }
-- 
2.11.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v1 12/14] imx: mmc: Use 'fsl, usdhc-index' property to provide esdhc controller number

2019-01-01 Thread Lukasz Majewski
With the current code, it is not possible to assign different than default
numbers for mmc controllers.

Several in-tree boards depend on the pre-dm setup, corresponding to
following aliases:

mmc0 =  --> fsl,usdhc-index = <1>
mmc1 =  --> fsl,usdhc-index = <3>

Without this patch we are either forced to use default aliasing - like:

mmc0 = 
mmc1 = 
mmc2 = 
mmc3 = 

to have the proper clocks setup for the controller. However, such setup
is not acceptable for some legacy scripts / code.

With this patch - by introducing 'fsl,usdhc-index' - one can configure
(get) clock rate corresponding to used controller.

Moreover, as this code is used in the SPL before relocation (and to save
space we strip the SPL DTS from clocks and its names) adding separate
properties seems to be the best approach here. One also avoids adding
clocks DM code to SPL.

Signed-off-by: Lukasz Majewski 
---

 drivers/mmc/fsl_esdhc.c | 17 -
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
index 3cdfa7f5a6..49a6834a98 100644
--- a/drivers/mmc/fsl_esdhc.c
+++ b/drivers/mmc/fsl_esdhc.c
@@ -1401,6 +1401,7 @@ static int fsl_esdhc_probe(struct udevice *dev)
fdt_addr_t addr;
unsigned int val;
struct mmc *mmc;
+   int usdhc_idx;
int ret;
 
addr = dev_read_addr(dev);
@@ -1513,7 +1514,21 @@ static int fsl_esdhc_probe(struct udevice *dev)
 
priv->sdhc_clk = clk_get_rate(>per_clk);
} else {
-   priv->sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK + dev->seq);
+   /*
+* Check for 'fsl,index' DTS property - as one may want to have
+* following mmc setup:
+* mmc0 =  --> fsl,index = <1>
+* mmc1 =  --> fsl,index = <3>
+*
+* So we do have dev->seq = {0, 1}, which in the below code
+* doesn't correspond to correct USDHC clocks.
+*
+* For that reason a new "fsl,index" property has been
+* introduced.
+*/
+   usdhc_idx = dev_read_u32_default(dev, "fsl,usdhc-index",
+dev->seq);
+   priv->sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK + usdhc_idx);
if (priv->sdhc_clk <= 0) {
dev_err(dev, "Unable to get clk for %s\n", dev->name);
return -EINVAL;
-- 
2.11.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v1 06/14] DM: tpc70: led: Enable LED default state

2019-01-01 Thread Lukasz Majewski
Signed-off-by: Lukasz Majewski 
---

 board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c 
b/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c
index bcc22b1aa8..f0c97ba368 100644
--- a/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c
+++ b/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c
@@ -27,6 +27,7 @@
 #include 
 #include 
 #include 
+#include 
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -290,6 +291,9 @@ int board_late_init(void)
add_board_boot_modes(board_boot_modes);
 #endif
 
+   if (IS_ENABLED(CONFIG_LED))
+   led_default_state();
+
env_set("boardname", "kp-tpc");
env_set("boardsoc", "imx6q");
return 0;
-- 
2.11.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v1 00/14] dm: Convert TPC70 to use DM and DTS in SPL and u-boot proper

2019-01-01 Thread Lukasz Majewski
This patch series converts imx6q based tpc70 board to use driver model and
device tree description in SPL and u-boot proper.

All the non-DM parts of the code has been removed.

This patch series also has several early DM issues fixed for imx6q - for
example the pinctrl static definitions.

Also, the anatop clock is now setup in a generic imx6q clock code.



Lukasz Majewski (14):
  tpc70: config: Add script commands to update u-boot and OE's wic
  tpc70: config: Update TPC70 config to support eMMC's boot0 SPL update
  tpc70: Provide board_boot_order() function to distinct between eMMC
and SD boot
  DTS: imx: Remove not needed '#address-cells' and '#size-cells'
properties
  board: cosmetic: Use define to set ENET clock selection mask on TPC70
  DM: tpc70: led: Enable LED default state
  pinctrl: imx: Replace static soc info definitions with run time
allocations
  DTS: imx: Add "u-boot,dm-pre-reloc" property to relevant imx6qdl nodes
  imx: serial: dm: Enable DM_FLAG_PRE_RELOC in the IMX uart driver
  imx: clock: Introduce set_fec_clock() to configure ETH clock (imx6)
  DM: net: imx: Provide weak function to initialize fec clocks
  imx: mmc: Use 'fsl,usdhc-index' property to provide esdhc controller
number
  DTS: imx: tpc70: Add TPC70 board (imx6q based) device tree description
  imx: tpc70: Convert TPC70 (imx6q based) board to use DM/DTS in SPL and
u-boot

 arch/arm/dts/imx6q-kp.dts | 227 ++
 arch/arm/dts/imx6q.dtsi   |   4 -
 arch/arm/dts/imx6qdl.dtsi |  14 +-
 arch/arm/include/asm/arch-mx6/clock.h |   1 +
 arch/arm/mach-imx/mx6/Kconfig |  10 ++
 arch/arm/mach-imx/mx6/clock.c |  17 +++
 board/k+p/kp_imx6q_tpc/kp_imx6q_tpc.c | 177 +--
 board/k+p/kp_imx6q_tpc/kp_imx6q_tpc_spl.c | 137 ++
 configs/kp_imx6q_tpc_defconfig|  31 +++-
 drivers/mmc/fsl_esdhc.c   |  17 ++-
 drivers/net/fec_mxc.c |  25 
 drivers/net/fec_mxc.h |   2 +
 drivers/pinctrl/nxp/pinctrl-imx6.c|  39 +++--
 drivers/serial/serial_mxc.c   |   2 -
 include/configs/kp_imx6q_tpc.h|  47 ---
 15 files changed, 393 insertions(+), 357 deletions(-)
 create mode 100644 arch/arm/dts/imx6q-kp.dts

-- 
2.11.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v1 07/14] pinctrl: imx: Replace static soc info definitions with run time allocations

2019-01-01 Thread Lukasz Majewski
This commit is necessary to be able to re-use the pinctrl code in early
SPL to properly configure pins.

The problem is that those "static" structures are placed in the SDRAM
area, which corresponds to u-boot proper (not even SPL). Hence, when
one wants to configure pins before relocation via DTS/DM, the board
hangs (imx6q SoC powered one) as only OCRAM area is available (0x009x).

It is also safe to use calloc in this case, as the early SPL code provides
it - either full or trimmed version. The allocated memory is also correct
in respect to the memory area in which the SoC is currently running (OCRAM
 vs. SDRAM).

Signed-off-by: Lukasz Majewski 
---

 drivers/pinctrl/nxp/pinctrl-imx6.c | 39 +++---
 1 file changed, 19 insertions(+), 20 deletions(-)

diff --git a/drivers/pinctrl/nxp/pinctrl-imx6.c 
b/drivers/pinctrl/nxp/pinctrl-imx6.c
index d7c95bb738..876049b39b 100644
--- a/drivers/pinctrl/nxp/pinctrl-imx6.c
+++ b/drivers/pinctrl/nxp/pinctrl-imx6.c
@@ -10,34 +10,33 @@
 
 #include "pinctrl-imx.h"
 
-static struct imx_pinctrl_soc_info imx6_pinctrl_soc_info;
-
-/* FIXME Before reloaction, BSS is overlapped with DT area */
-static struct imx_pinctrl_soc_info imx6ul_pinctrl_soc_info = {
-   .flags = ZERO_OFFSET_VALID,
-};
-
-static struct imx_pinctrl_soc_info imx6_snvs_pinctrl_soc_info = {
-   .flags = ZERO_OFFSET_VALID,
-};
-
 static int imx6_pinctrl_probe(struct udevice *dev)
 {
struct imx_pinctrl_soc_info *info =
-   (struct imx_pinctrl_soc_info *)dev_get_driver_data(dev);
+   calloc(1, sizeof(struct imx_pinctrl_soc_info));
+
+   if (!info) {
+   printf("%s: Not enough memory!\n", __func__);
+   return -ENOMEM;
+   }
+
+   if (device_is_compatible(dev, "fsl,imx6sll-iomuxc-snvs") ||
+   device_is_compatible(dev, "fsl,imx6ull-iomuxc-snvs") ||
+   device_is_compatible(dev, "fsl,imx6ul-iomuxc"))
+   info->flags = ZERO_OFFSET_VALID;
 
return imx_pinctrl_probe(dev, info);
 }
 
 static const struct udevice_id imx6_pinctrl_match[] = {
-   { .compatible = "fsl,imx6q-iomuxc", .data = 
(ulong)_pinctrl_soc_info },
-   { .compatible = "fsl,imx6dl-iomuxc", .data = 
(ulong)_pinctrl_soc_info },
-   { .compatible = "fsl,imx6sl-iomuxc", .data = 
(ulong)_pinctrl_soc_info },
-   { .compatible = "fsl,imx6sll-iomuxc-snvs", .data = 
(ulong)_snvs_pinctrl_soc_info },
-   { .compatible = "fsl,imx6sll-iomuxc", .data = 
(ulong)_pinctrl_soc_info },
-   { .compatible = "fsl,imx6sx-iomuxc", .data = 
(ulong)_pinctrl_soc_info },
-   { .compatible = "fsl,imx6ul-iomuxc", .data = 
(ulong)_pinctrl_soc_info },
-   { .compatible = "fsl,imx6ull-iomuxc-snvs", .data = 
(ulong)_snvs_pinctrl_soc_info },
+   { .compatible = "fsl,imx6q-iomuxc" },
+   { .compatible = "fsl,imx6dl-iomuxc" },
+   { .compatible = "fsl,imx6sl-iomuxc" },
+   { .compatible = "fsl,imx6sll-iomuxc-snvs" },
+   { .compatible = "fsl,imx6sll-iomuxc" },
+   { .compatible = "fsl,imx6sx-iomuxc" },
+   { .compatible = "fsl,imx6ul-iomuxc" },
+   { .compatible = "fsl,imx6ull-iomuxc-snvs" },
{ /* sentinel */ }
 };
 
-- 
2.11.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v1 03/14] tpc70: Provide board_boot_order() function to distinct between eMMC and SD boot

2019-01-01 Thread Lukasz Majewski
The TPC70 can boot from SD card (debug/development) and eMMC (production).
The board_boot_order() function provides a run time check for the device
from which one wants to boot (it is selected by GPIO pins setup).

Moreover, a fallback to SD card is provided if the detection is not
possible or working properly.

Signed-off-by: Lukasz Majewski 
---

 board/k+p/kp_imx6q_tpc/kp_imx6q_tpc_spl.c | 20 
 1 file changed, 20 insertions(+)

diff --git a/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc_spl.c 
b/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc_spl.c
index d89e1120a5..07414431f3 100644
--- a/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc_spl.c
+++ b/board/k+p/kp_imx6q_tpc/kp_imx6q_tpc_spl.c
@@ -308,6 +308,26 @@ int board_mmc_init(bd_t *bd)
return fsl_esdhc_initialize(bd, _cfg[0]);
 }
 
+void board_boot_order(u32 *spl_boot_list)
+{
+   u32 boot_device = spl_boot_device();
+   u32 reg = imx6_src_get_boot_mode();
+
+   reg = (reg & IMX6_BMODE_MASK) >> IMX6_BMODE_SHIFT;
+
+   debug("%s: boot device: 0x%x (0x4 SD, 0x6 eMMC)\n", __func__, reg);
+   if (boot_device == BOOT_DEVICE_MMC1)
+   if (reg == IMX6_BMODE_MMC || reg == IMX6_BMODE_EMMC)
+   boot_device = BOOT_DEVICE_MMC2;
+
+   spl_boot_list[0] = boot_device;
+   /*
+* Below boot device is a 'fallback' - it shall always be possible to
+* boot from SD card
+*/
+   spl_boot_list[1] = BOOT_DEVICE_MMC1;
+}
+
 void board_init_f(ulong dummy)
 {
/* setup AIPS and disable watchdog */
-- 
2.11.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v1 02/14] tpc70: config: Update TPC70 config to support eMMC's boot0 SPL update

2019-01-01 Thread Lukasz Majewski
The TPC70 can boot from eMMC's boot0. This patch allows it to update
this HW partition's SPL.

Signed-off-by: Lukasz Majewski 
---

 include/configs/kp_imx6q_tpc.h | 5 +
 1 file changed, 5 insertions(+)

diff --git a/include/configs/kp_imx6q_tpc.h b/include/configs/kp_imx6q_tpc.h
index ee9c56bc21..f26b18442b 100644
--- a/include/configs/kp_imx6q_tpc.h
+++ b/include/configs/kp_imx6q_tpc.h
@@ -49,6 +49,7 @@
 #define CONFIG_SYS_FSL_ESDHC_ADDR  0
 #define CONFIG_SYS_FSL_USDHC_NUM   2
 #define CONFIG_SYS_MMC_ENV_DEV 1 /* 0 = SDHC2, 1 = SDHC4 (eMMC) */
+#define CONFIG_SUPPORT_EMMC_BOOT
 
 /* UART */
 #define CONFIG_MXC_UART
@@ -109,6 +110,10 @@
   "setexpr blkc ${blkc} + 1;" \
   "mmc write ${loadaddr} 0x2 ${blkc};" \
"fi;\0" \
+   "upd_SPL_mmc=mmc dev 1; mmc partconf 1 0 1 1; run upd_SPL_sd\0" \
+   "upd_uboot_mmc=mmc dev 1; mmc partconf 1 0 1 1; run upd_uboot_sd\0" \
+   "up_mmc=run upd_SPL_mmc; run upd_uboot_mmc\0" \
+   "up_sd=run upd_SPL_sd; run upd_uboot_sd\0" \
"upd_wic=" \
"if tftp ${loadaddr} ${wic_file}; then " \
   "setexpr blkc ${filesize} / 0x200;" \
-- 
2.11.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v1 01/14] tpc70: config: Add script commands to update u-boot and OE's wic

2019-01-01 Thread Lukasz Majewski
Signed-off-by: Lukasz Majewski 
---

 include/configs/kp_imx6q_tpc.h | 21 +
 1 file changed, 21 insertions(+)

diff --git a/include/configs/kp_imx6q_tpc.h b/include/configs/kp_imx6q_tpc.h
index b6b27ee1d5..ee9c56bc21 100644
--- a/include/configs/kp_imx6q_tpc.h
+++ b/include/configs/kp_imx6q_tpc.h
@@ -89,11 +89,32 @@
"rdinit=/sbin/init\0" \
"addinitrd=setenv bootargs ${bootargs} rdinit=${rdinit} ${debug} \0" \
"fit_config=mx6q_tpc70_conf\0" \
+   "uboot_file=u-boot.img\0" \
+   "SPL_file=SPL\0" \
+   "wic_file=kp-image-kpimx6qtpc.wic\0" \
"upd_image=st.4k\0" \
"updargs=setenv bootargs console=${console} ${smp}"\
   "rdinit=${rdinit} ${debug} ${displayargs}\0" \
"loadusb=usb start; " \
   "fatload usb 0 ${loadaddr} ${upd_image}\0" \
+   "upd_uboot_sd=" \
+   "if tftp ${loadaddr} ${uboot_file}; then " \
+  "setexpr blkc ${filesize} / 0x200;" \
+  "setexpr blkc ${blkc} + 1;" \
+  "mmc write ${loadaddr} 0x8A ${blkc};" \
+   "fi;\0" \
+   "upd_SPL_sd=" \
+   "if tftp ${loadaddr} ${SPL_file}; then " \
+  "setexpr blkc ${filesize} / 0x200;" \
+  "setexpr blkc ${blkc} + 1;" \
+  "mmc write ${loadaddr} 0x2 ${blkc};" \
+   "fi;\0" \
+   "upd_wic=" \
+   "if tftp ${loadaddr} ${wic_file}; then " \
+  "setexpr blkc ${filesize} / 0x200;" \
+  "setexpr blkc ${blkc} + 1;" \
+  "mmc write ${loadaddr} 0x0 ${blkc};" \
+   "fi;\0" \
"usbupd=echo Booting update from usb ...; " \
   "setenv bootargs; " \
   "run updargs; " \
-- 
2.11.0

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH 0/6] Add support for loading FPGA bitstream

2019-01-01 Thread Marek Vasut
On 1/1/19 3:52 AM, Chee, Tien Fong wrote:
> On Sun, 2018-12-30 at 16:44 +0100, Marek Vasut wrote:
>> On 12/30/18 9:13 AM, tien.fong.c...@intel.com wrote:
>>>
>>> From: Tien Fong Chee 
>>>
>>> These series of patches enable peripheral bitstream being
>>> programmed into FPGA
>>> to get the DDR up running. This's also called early IO release,
>>> because the
>>> peripheral bitstream is only initializing FPGA IOs, PLL, IO48 and
>>> DDR.
>>>
>>> Once DDR is up running, core bitstream from MMC which contains user
>>> FPGA
>>> design would be loaded into DDR location. socfpga loadfs would be
>>> called to
>>> program core bitstream into FPGA and entering user mode.
>>>
>>> Lastly, u-boot-dtb.img from MMC FAT partition would be loaded to
>>> DDR, and up
>>> running from there.
>>>
>>> For this whole mechanism to work, the SDMMC flash layout would be
>>> designed as
>>> shown in below:
>>>
>>> RAW partition:
>>> 1. spl_w_dtb-mkpimage.bin
>>> mkpimage -hv 1 -o spl/spl_w_dtb-mkpimage.bin spl/u-boot-spl-dtb.bin
>>>  spl/u-boot-spl-dtb.bin spl/u-boot-spl-dtb.bin spl/u-boot-spl-
>>> dtb.bin
>>>
>>> FAT partition contains:
>>> Bitstreams
>>> --
>>> Early IO release method is recommended for the sake of performance,
>>> improve
>>> up to 86% compare to full RBF.
>>>
>>> 1. ghrd_10as066n2.periph.rbf.mkimage
>>> mkimage -A arm -T firmware -C none -O u-boot -a 0 -e 0 -n \"RBF\"
>>> -d
>>>  ghrd_10as066n2.periph.rbf ghrd_10as066n2.periph.rbf.mkimage
>>>
>>> 2. ghrd_10as066n2.core.rbf.mkimage
>>> mkimage -A arm -T firmware -C none -O u-boot -a 0 -e 0 -n \"RBF\"
>>> -d
>>>  ghrd_10as066n2.core.rbf ghrd_10as066n2.core.rbf.mkimage
>>>
>>> OR
>>>
>>> 1. ghrd_10as066n2.rbf.mkimage (full RBF)
>>> mkimage -A arm -T firmware -C none -O u-boot -a 0 -e 0 -n \"RBF\"
>>> -d
>>>  ghrd_10as066n2.rbf ghrd_10as066n2.rbf.mkimage
>>>
>>> U-Boot image
>>> 
>>> 3. u-boot-dtb.img
>>>
>>> For the testing purpose, these two patches are required to apply
>>> 1st before
>>> applying this series of patches.
>>> 1. [U-Boot] [PATCH] misc: fs_loader: Switching private data
>>> allocation to DM
>>>    auto allocation
>>>    https://www.mail-archive.com/u-boot@lists.denx.de/msg308954.html
>>>    Reviewed-by: Simon Glass 
>>>
>>> 2. [U-Boot] [PATCH v2] Add support for initializing MMC
>>>    https://www.mail-archive.com/u-boot@lists.denx.de/msg310532.html
>>>    Version 2 under review.
>> The above should be made into documentation, since cover letters are
>> dropped.
> Happy new year Marek.

Happy New Year to you too.

> Yeah, the document would be sent out once the implementation is
> finalized. Hence, we need your mercy and help to get this done :-P,
> just kidding.

I hope you can wrap this into V7 .

-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH 5/6] spl : socfpga: Implement fpga bitstream loading with socfpga loadfs

2019-01-01 Thread Marek Vasut
On 1/1/19 4:39 AM, Chee, Tien Fong wrote:
> On Sun, 2018-12-30 at 16:51 +0100, Marek Vasut wrote:
>> On 12/30/18 9:13 AM, tien.fong.c...@intel.com wrote:
>>>
>>> From: Tien Fong Chee 
>>>
>>> Add support for loading FPGA bitstream to get DDR up running before
>>> U-Boot is loaded into DDR. Boot device initialization, generic
>>> firmware
>>> loader and SPL FAT support are required for this whole mechanism to
>>> work.
>>>
>>> Signed-off-by: Tien Fong Chee 
>>> ---
>>>  arch/arm/mach-socfpga/spl_a10.c |   46
>>> ++-
>>>  1 files changed, 45 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/arch/arm/mach-socfpga/spl_a10.c b/arch/arm/mach-
>>> socfpga/spl_a10.c
>>> index 3ea64f7..93f5f46 100644
>>> --- a/arch/arm/mach-socfpga/spl_a10.c
>>> +++ b/arch/arm/mach-socfpga/spl_a10.c
>>> @@ -1,6 +1,6 @@
>>>  // SPDX-License-Identifier: GPL-2.0+
>>>  /*
>>> - *  Copyright (C) 2012 Altera Corporation 
>>> + *  Copyright (C) 2012-2018 Altera Corporation 
>>>   */
>>>  
>>>  #include 
>>> @@ -23,9 +23,14 @@
>>>  #include 
>>>  #include 
>>>  #include 
>>> +#include 
>>> +#include 
>>>  
>>>  DECLARE_GLOBAL_DATA_PTR;
>>>  
>>> +#define FPGA_SOCFGA_A10_RBF_CORE_LOAD_DDR  (1 * 1024)
>>> +#define FPGA_SOCFGA_A10_RBF_CORE_BUFFER_SIZE   (40 * 1024 *
>>> 1024)
>>> +
>>>  static const struct socfpga_system_manager *sysmgr_regs =
>>>     (struct socfpga_system_manager *)SOCFPGA_SYSMGR_ADDRESS;
>>>  
>>> @@ -73,6 +78,45 @@ void spl_board_init(void)
>>>     WATCHDOG_RESET();
>>>  
>>>     arch_early_init_r();
>>> +
>>> +   /* If the full FPGA is already loaded, ie.from EPCQ,
>>> config fpga pins */
>>> +   if (is_fpgamgr_user_mode()) {
>>> +   config_pins(gd->fdt_blob, "shared");
>>> +   config_pins(gd->fdt_blob, "fpga");
>> What happens if config_pins() fails ? The function returns some
>> return
>> value.
> There is return value for config_pins, i can add the debug print out
> for the return value.

And if the function fails, for whatever reason, what does that mean for
the system ? Does the system fail ? I think so, right ?

>>> +   } else if (!is_fpgamgr_early_user_mode()) {
>>> +   /* Program IOSSM(early IO release) or full FPGA */
>>> +   fpga_fs_info fpga_fsinfo;
>>> +   int len;
>>> +   char buf[16 * 1024] __aligned(ARCH_DMA_MINALIGN);
>>> +
>>> +   fpga_fsinfo.filename = (char *)get_fpga_filename(
>> Is the cast needed ?
> there is a warning 
> arch/arm/mach-socfpga/spl_a10.c:109:24: warning: assignment discards
> 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
>    fpga_fsinfo.filename = get_fpga_filename(

Which tells you that you're forcibly turning a string which the compiler
assumes to be constant into one which is not. You're missing const
somewhere or you need to remove it from somewhere.

-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH 3/6] ARM: socfpga: Add the configuration for FPGA SoCFPGA A10 SoCDK

2019-01-01 Thread Marek Vasut
On 1/1/19 4:32 AM, Chee, Tien Fong wrote:
> On Sun, 2018-12-30 at 16:47 +0100, Marek Vasut wrote:
>> On 12/30/18 9:13 AM, tien.fong.c...@intel.com wrote:
>>>
>>> From: Tien Fong Chee 
>>>
>>> Update the default configuration file to enable the necessary
>>> functionality
>>> to get the SoCFPGA loadfs driver support. This would enable the
>>> implementation of programming bitstream into FPGA from MMC.
>>>
>>> Signed-off-by: Tien Fong Chee 
>>> ---
>>>  configs/socfpga_arria10_defconfig |8 
>>>  1 files changed, 8 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/configs/socfpga_arria10_defconfig
>>> b/configs/socfpga_arria10_defconfig
>>> index 6ebda81..8158dbb 100644
>>> --- a/configs/socfpga_arria10_defconfig
>>> +++ b/configs/socfpga_arria10_defconfig
>>> @@ -27,8 +27,16 @@ CONFIG_MTDIDS_DEFAULT="nor0=ff705000.spi.0"
>>>  # CONFIG_EFI_PARTITION is not set
>>>  CONFIG_DEFAULT_DEVICE_TREE="socfpga_arria10_socdk_sdmmc"
>>>  CONFIG_ENV_IS_IN_MMC=y
>>> +CONFIG_SPL_ENV_SUPPORT=y
>>>  CONFIG_SPL_DM=y
>>>  CONFIG_SPL_DM_SEQ_ALIAS=y
>>> +CONFIG_SPL_DM_MMC=y
>>> +CONFIG_SPL_MMC_SUPPORT=y
>>> +CONFIG_SPL_EXT_SUPPORT=y
>>> +CONFIG_SPL_FAT_SUPPORT=y
>>> +CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
>>> +CONFIG_FS_FAT_MAX_CLUSTSIZE=16384
>> This breaks systems with large FAT clusters. Why is this needed for
>> programming the FPGA from MMC ?
> This is final tuning in term of getting balance between performance and
> SPL image size for the socdk devkit. User can change that if they need
> large FAT cluster in their design, right?

I think it'd rather make sense to fix the FAT driver to avoid statically
allocating those massive buffers for big clusters. I think that can be
done by allocating those on stack instead ... or mallocating them.

-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH 6/6] ARM: socfpga: Synchronize the configuration for A10 SoCDK

2019-01-01 Thread Marek Vasut
On 1/1/19 4:51 AM, Chee, Tien Fong wrote:
> On Sun, 2018-12-30 at 16:54 +0100, Marek Vasut wrote:
>> On 12/30/18 9:13 AM, tien.fong.c...@intel.com wrote:
>>>
>>> From: Marek Vasut 
>>>
>>> Update the default configuration file to enable the necessary
>>> functionality
>>> the get the kit working. That includes SPL SD/MMC support, USB, and
>>> I2C.
>>>
>>> Signed-off-by: Marek Vasut 
>>> Signed-off-by: Tien Fong Chee 
>> Is this patch needed ? Why ? This enables a whole lot of stuff 
> These settings are mostly syn up from gen5 and our own downstream A10.
> These settings are mostly required to boot U-Boot and supporting A10
> golden system reference design.

Hmmm, mind you, all the MTD and SPI stuff is not needed for the SDMMC
configuration of the kit, which this patch would imply is the target.
You want to split this into smaller config changes which enable logical
blocks, not everything at once, and document why is each thing needed.

>>>
>>> ---
>>>  configs/socfpga_arria10_defconfig |   38
>>> +++-
>>>  1 files changed, 32 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/configs/socfpga_arria10_defconfig
>>> b/configs/socfpga_arria10_defconfig
>>> index 8158dbb..4b93321 100644
>>> --- a/configs/socfpga_arria10_defconfig
>>> +++ b/configs/socfpga_arria10_defconfig
>>> @@ -1,7 +1,7 @@
>>>  CONFIG_ARM=y
>>>  CONFIG_ARCH_SOCFPGA=y
>>>  CONFIG_SYS_TEXT_BASE=0x0140
>>> -CONFIG_SYS_MALLOC_F_LEN=0x2000
>>> +CONFIG_SYS_MALLOC_F_LEN=0x8000

Why is this increase in malloc area needed ?

>>>  CONFIG_TARGET_SOCFPGA_ARRIA10_SOCDK=y
>>>  CONFIG_SPL=y
>>>  CONFIG_IDENT_STRING="socfpga_arria10"
>>> @@ -10,26 +10,35 @@ CONFIG_NR_DRAM_BANKS=1
>>>  CONFIG_USE_BOOTARGS=y
>>>  CONFIG_BOOTARGS="console=ttyS0,115200"
>>>  # CONFIG_USE_BOOTCOMMAND is not set
>>> +CONFIG_SYS_CONSOLE_IS_IN_ENV=y
>>> +CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y
>>> +CONFIG_SYS_CONSOLE_ENV_OVERWRITE=y
>>>  CONFIG_DEFAULT_FDT_FILE="socfpga_arria10_socdk_sdmmc.dtb"
>>> +CONFIG_VERSION_VARIABLE=y
>>>  CONFIG_DISPLAY_BOARDINFO_LATE=y
>>> +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x800
>>>  CONFIG_SPL_FPGA_SUPPORT=y
>>> -CONFIG_SPL_SPI_LOAD=y
>>>  CONFIG_CMD_ASKENV=y
>>>  CONFIG_CMD_GREPENV=y
>>> +CONFIG_CMD_DFU=y
>>>  # CONFIG_CMD_FLASH is not set
>>>  CONFIG_CMD_GPIO=y
>>> +CONFIG_CMD_I2C=y
>>>  CONFIG_CMD_MMC=y
>>> +CONFIG_CMD_SF=y
>>> +CONFIG_CMD_SPI=y
>>> +CONFIG_CMD_USB=y
>>> +CONFIG_CMD_USB_MASS_STORAGE=y
>>>  CONFIG_CMD_CACHE=y
>>>  CONFIG_CMD_EXT4_WRITE=y
>>>  CONFIG_MTDIDS_DEFAULT="nor0=ff705000.spi.0"
>>> -# CONFIG_SPL_DOS_PARTITION is not set
>>> -# CONFIG_ISO_PARTITION is not set
>>> -# CONFIG_EFI_PARTITION is not set
>>> +CONFIG_OF_SPL_REMOVE_PROPS="interrupts interrupt-parent dmas dma-
>>> names"
>>>  CONFIG_DEFAULT_DEVICE_TREE="socfpga_arria10_socdk_sdmmc"
>>>  CONFIG_ENV_IS_IN_MMC=y
>>>  CONFIG_SPL_ENV_SUPPORT=y
>>>  CONFIG_SPL_DM=y
>>>  CONFIG_SPL_DM_SEQ_ALIAS=y
>>> +CONFIG_DFU_MMC=y
>>>  CONFIG_SPL_DM_MMC=y
>>>  CONFIG_SPL_MMC_SUPPORT=y
>>>  CONFIG_SPL_EXT_SUPPORT=y
>>> @@ -40,13 +49,30 @@ CONFIG_FS_LOADER=y
>>>  CONFIG_FPGA_SOCFPGA=y
>>>  CONFIG_DM_GPIO=y
>>>  CONFIG_DWAPB_GPIO=y
>>> +CONFIG_SYS_I2C_DW=y
>>>  CONFIG_DM_MMC=y
>>>  CONFIG_MTD_DEVICE=y
>>> +CONFIG_MTD_PARTITIONS=y
>>> +CONFIG_MMC_DW=y
>>> +CONFIG_SPI_FLASH=y
>>> +CONFIG_SPI_FLASH_BAR=y
>>> +CONFIG_SPI_FLASH_SPANSION=y
>>> +CONFIG_SPI_FLASH_STMICRO=y
>>> +CONFIG_PHY_MICREL=y
>>> +CONFIG_PHY_MICREL_KSZ90X1=y
>>>  CONFIG_DM_ETH=y
>>>  CONFIG_ETH_DESIGNWARE=y
>>>  CONFIG_MII=y
>>> +CONFIG_SYS_NS16550=y
>>>  CONFIG_SPI=y
>>>  CONFIG_TIMER=y
>>>  CONFIG_SPL_TIMER=y
>>>  CONFIG_DESIGNWARE_APB_TIMER=y
>>> -CONFIG_USE_TINY_PRINTF=y
>>> +CONFIG_DESIGNWARE_SPI=y
>>> +CONFIG_USB=y
>>> +CONFIG_DM_USB=y
>>> +CONFIG_USB_DWC2=y
>>> +CONFIG_USB_STORAGE=y
>>> +CONFIG_USB_GADGET=y
>>> +CONFIG_USB_GADGET_DWC2_OTG=y
>>> +CONFIG_USB_GADGET_DOWNLOAD=y

USB and DFU could be enabled separately.

-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH 1/6] ARM: socfpga: Description on FPGA bitstream type and file name for Arria 10

2019-01-01 Thread Marek Vasut
On 1/1/19 4:10 AM, Chee, Tien Fong wrote:
> On Sun, 2018-12-30 at 16:46 +0100, Marek Vasut wrote:
>> On 12/30/18 9:13 AM, tien.fong.c...@intel.com wrote:
>>>
>>> From: Tien Fong Chee 
>>>
>>> This patch adds description on properties about file name used for
>>> both
>>> peripheral bitstream and core bitstream.
>>>
>>> Signed-off-by: Tien Fong Chee 
>>> ---
>>>  .../fpga/altera-socfpga-a10-fpga-mgr.txt   |   21
>>> 
>>>  1 files changed, 21 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/doc/device-tree-bindings/fpga/altera-socfpga-a10-fpga-
>>> mgr.txt b/doc/device-tree-bindings/fpga/altera-socfpga-a10-fpga-
>>> mgr.txt
>>> index 2fd8e7a..4552edc 100644
>>> --- a/doc/device-tree-bindings/fpga/altera-socfpga-a10-fpga-mgr.txt
>>> +++ b/doc/device-tree-bindings/fpga/altera-socfpga-a10-fpga-mgr.txt
>>> @@ -7,13 +7,34 @@ Required properties:
>>> - The second index is for writing FPGA
>>> configuration data.
>>>  - resets : Phandle and reset specifier for the device's reset.
>>>  - clocks : Clocks used by the device.
>>> +- altr,bitstream : File name for FPGA peripheral raw binary which
>>> is used
>>> +      to initialize FPGA IOs, PLL, IO48 and DDR.
>>> +      or
>>> +      File name for full RBF, consist of periph RBF
>>> and core RBF
>>> +- altr,bitstream-core : File name for core RBF which contains FPGA
>>> design
>>> +   which is used to program FPGA CRAM and
>>> ERAM.
>>>  
>>>  Example:
>>>  
>>> +- Examples for booting with early IO release, enter early user
>>> mode(periph RBF):
>>> +
>>> +   fpga_mgr: fpga-mgr@ffd03000 {
>>> +   compatible = "altr,socfpga-a10-fpga-mgr";
>>> +   reg = <0xffd03000 0x100
>>> +      0xffcfe400 0x20>;
>>> +   clocks = <_mp_clk>;
>>> +   resets = < FPGAMGR_RESET>;
>>> +   altr,bitstream =
>>> "ghrd_10as066n2.periph.rbf.mkimage";
>>> +   altr,bitstream-core =
>>> "ghrd_10as066n2.core.rbf.mkimage";
>> What is this .mkimage format about ? Is that uImage ? Since it's two
>> files, it could probably be bundled into fitImage instead ?
>>
> What is this .mkimage format about ? Is that uImage ?
> mkimage -A arm -T firmware -C none -O u-boot -a 0 -e 0 -n \"RBF\" -d
>  ghrd_10as066n2.periph.rbf ghrd_10as066n2.periph.rbf.mkimage.
> Yeah, this is uImage. The reason of using it for appending the header
> contains file size and CRC checksum to the ghrd_10as066n2.periph.rbf.
> These both file size and CRC checksum are required in socfpga loadfs
> driver.

CRC32 is real weak. fitImage supports all kinds of more fitting checksum
algorithms and more.

> Since it's two> files, it could probably be bundled into fitImage
> instead ?
> I assume you are saying the series fitImage implementation patches as i
> had previously submitted which contains U-Boot, and FPGA core bitstream
> in fitImage.

No, just bundle the bitstream in a fitImage if it's multiple files and
if it makes sense.

> core bitstream can be bundled into fitImage, with the file
> name as ghrd_10as066n2.core.rbf, without mkimage, so this bitstream
> would be loadded into DDR with function fpga load instead of fpga
> loadfs. ghrd_10as066n2.periph.rbf.mkimage is separate file required for
> getting DDR up 1st before loading fitImage.

Does that mean you only need to load one of the files (you can do that
with fitImage too) ? But then, what's the point of specifying both in
the DT if only one is needed ?

-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH 2/6] ARM: socfpga: Add FPGA drivers for Arria 10 FPGA bitstream loading

2019-01-01 Thread Marek Vasut
On 1/1/19 4:28 AM, Chee, Tien Fong wrote:
> On Sun, 2018-12-30 at 16:45 +0100, Marek Vasut wrote:
>> On 12/30/18 9:13 AM, tien.fong.c...@intel.com wrote:
>>>
>>> From: Tien Fong Chee 
>>>
>>> Add FPGA driver to support program FPGA with FPGA bitstream loading
>>> from
>>> filesystem. The driver are designed based on generic firmware
>>> loader
>>> framework. The driver can handle FPGA program operation from
>>> loading FPGA
>>> bitstream in flash to memory and then to program FPGA.
>>>
>>> Signed-off-by: Tien Fong Chee 
>> What changed from V5 in each of those patches ?
>>
> I assume you are saying the v5 i had submmited in 2017.
> 
> The major changes i have made are:
> 1. Stripping of the "fpga loadfs" command support layer on U-Boot
> console because the DDR would be corrupted if FPGA is reprogrammed.
> 2. Minor restructure and codes clean up such as understandable name for
> functions.
> 3. Using finalized generic firmware loader interface in this driver.

This should be in the changelog.

-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH] bmips: fix config warnings from 2019.01

2019-01-01 Thread Marek Vasut
On 1/1/19 7:45 PM, Álvaro Fernández Rojas wrote:
> - Fixes CONFIG_OF_EMBED warning.
> - Fixes missing CONFIG_BLK warning for CONFIG_USB.

More details on those warnings that are supposedly fixed would be
appreciated. It's really unclear what this patch does.

-- 
Best regards,
Marek Vasut
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] a8011eb84d not working on V40 (Banana Pi M2 Berry)

2019-01-01 Thread Jagan Teki
On Tue, Jan 1, 2019 at 10:40 AM Justus Roßmeier  wrote:
>
> Hello,
>
> I just updated my u-boot and found that it won't work on my banana pi m2
> berry anymore, failing with the following message:
>
> U-Boot SPL 2019.01-rc2-00116-g9735326fff (Dec 31 2018 - 12:46:51 +0100)
> DRAM: 0 MiB
> ### ERROR ### Please RESET the board ###
>
> The error was introduced in commit
> a8011eb84dfac5187cebf00ed8bc981bdb5c1fa1"sunxi: board: Print error after
> power initialization fails".

reverted version of this change will be in for this release. does it
boot with this revert?
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH] Add Hynix H27UBG8T2BTR id

2019-01-01 Thread Jagan Teki
On Sun, Dec 30, 2018 at 1:25 AM Nikolai Zhubr  wrote:
>
> 29.12.2018 21:51, Jagan Teki:
> > On Wed, Dec 26, 2018 at 4:20 PM Nikolai Zhubr  wrote:
> >>
> >> Add Hynix H27UBG8T2BTR nand chip identification.
> >> These chips are sometimes present in e.g. older A20-olinuxino-micro boards.
> >
> > So the older boards were broken these releases?
>
> Those with H27UBG8T2BTR chip -- yes:
>
> ECC init failed: -22
> failed to init nand chips

OK.

Patch was not created properly, failed to apply. I have fixed it and
added proper commit message. Please fix it for next time, since it's
release time I did it.

Applied to u-boot-spi/master
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] Pull request: u-boot-sunxi/master

2019-01-01 Thread Jagan Teki
Hi Tom,

Please pull this as part of v2019.01 release.

thanks,
Jagan.

The following changes since commit bea3d826203f90507ff32ed24bd0a3c53479e55c:

  Merge tag 'signed-efi-2019.01' of git://github.com/agraf/u-boot (2018-12-27 
12:59:01 -0500)

are available in the Git repository at:

  git://git.denx.de/u-boot-sunxi.git master

for you to fetch changes up to 44c214dc2738da979d277d8d45fe50997b62b5f8:

  Revert "sunxi: board: Print error after power initialization fails" 
(2018-12-30 00:57:17 +0530)


From: Karl Palsson (1):
  Revert "sunxi: board: Print error after power initialization fails"

 board/sunxi/board.c | 18 --
 1 file changed, 8 insertions(+), 10 deletions(-)
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH] bmips: fix config warnings from 2019.01

2019-01-01 Thread Tom Rini
On Tue, Jan 01, 2019 at 07:45:03PM +0100, Álvaro Fernández Rojas wrote:

> - Fixes CONFIG_OF_EMBED warning.
> - Fixes missing CONFIG_BLK warning for CONFIG_USB.
> 
> Signed-off-by: Álvaro Fernández Rojas 

To be clear, some number of these have been boot tested too, right?
Thanks!

-- 
Tom


signature.asc
Description: PGP signature
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v2 2/2] dm: MIGRATION: Update migration plan for DM_SPI_FLASH

2019-01-01 Thread Jagan Teki
Migration plan for DM_SPI_FLASH is v2019.07 since it
depends on DM_SPI migration.

Signed-off-by: Jagan Teki 
---
Changes for v2:
- none

 Makefile | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/Makefile b/Makefile
index c4d827f259..3e926d839f 100644
--- a/Makefile
+++ b/Makefile
@@ -964,6 +964,16 @@ ifneq ($(CONFIG_DM_SPI)$(CONFIG_OF_CONTROL),yy)
@echo >&2 "See doc/driver-model/MIGRATION.txt for more info."
@echo >&2 ""
 endif
+endif
+ifeq ($(CONFIG_SPI_FLASH),y)
+ifneq ($(CONFIG_DM_SPI_FLASH)$(CONFIG_OF_CONTROL),yy)
+   @echo >&2 "= WARNING =="
+   @echo >&2 "This board does not use CONFIG_DM_SPI_FLASH. Please update"
+   @echo >&2 "the board to use CONFIG_SPI_FLASH before the v2019.07 
release."
+   @echo >&2 "Failure to update by the deadline may result in board 
removal."
+   @echo >&2 "See doc/driver-model/MIGRATION.txt for more info."
+   @echo >&2 ""
+endif
 endif
@# Check that this build does not use CONFIG options that we do not
@# know about unless they are in Kconfig. All the existing CONFIG
-- 
2.18.0.321.gffc6fa0e3

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH v2 1/2] dm: MIGRATION: Update migration plan for SPI

2019-01-01 Thread Jagan Teki
- v2019.04 for no dm conversion drivers
- v2019.07 for partially converted drivers.

Note: there were many updates on this deadline, so better
not update this again.

Signed-off-by: Jagan Teki 
---
Changes for v2:
- %s/convertion/conversion
- split SPI_FLASH warning in separate patch

 Makefile   | 11 +++
 doc/driver-model/MIGRATION.txt | 10 +++---
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index a8461dd611..c4d827f259 100644
--- a/Makefile
+++ b/Makefile
@@ -953,6 +953,17 @@ ifeq ($(CONFIG_OF_EMBED),y)
@echo >&2 "CONFIG_OF_SEPARATE for boards in mainline."
@echo >&2 "See doc/README.fdt-control for more info."
@echo >&2 ""
+endif
+ifeq ($(CONFIG_SPI),y)
+ifneq ($(CONFIG_DM_SPI)$(CONFIG_OF_CONTROL),yy)
+   @echo >&2 "= WARNING =="
+   @echo >&2 "This board does not use CONFIG_DM_SPI. Please update"
+   @echo >&2 "the board before v2019.04 for no dm conversion"
+   @echo >&2 "and v2019.07 for partially dm converted drivers."
+   @echo >&2 "Failure to update can lead to driver/board removal"
+   @echo >&2 "See doc/driver-model/MIGRATION.txt for more info."
+   @echo >&2 ""
+endif
 endif
@# Check that this build does not use CONFIG options that we do not
@# know about unless they are in Kconfig. All the existing CONFIG
diff --git a/doc/driver-model/MIGRATION.txt b/doc/driver-model/MIGRATION.txt
index dce4aa3e1d..183d7f5293 100644
--- a/doc/driver-model/MIGRATION.txt
+++ b/doc/driver-model/MIGRATION.txt
@@ -55,9 +55,6 @@ CONFIG_DM_SPI_FLASH
 Board Maintainers should submit the patches for enabling DM_SPI and 
DM_SPI_FLASH
 to move the migration with in the deadline.
 
-Status: In progress
-Deadline: 2018.09
-
 No dm conversion yet:
drivers/spi/cf_spi.c
drivers/spi/fsl_espi.c
@@ -69,6 +66,9 @@ No dm conversion yet:
drivers/spi/sh_spi.c
drivers/spi/soft_spi_legacy.c
 
+   Status: In progress
+   Deadline: 2019.04
+
 Partially converted:
drivers/spi/atcspi200_spi.c
drivers/spi/davinci_spi.c
@@ -79,6 +79,10 @@ Partially converted:
drivers/spi/omap3_spi.c
drivers/spi/ti_qspi.c
 
+   Status: In progress
+   Deadline: 2019.07
+
 --
 Jagan Teki 
+12/24/2018
 03/14/2018
-- 
2.18.0.321.gffc6fa0e3

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH] bmips: fix config warnings from 2019.01

2019-01-01 Thread Álvaro Fernández Rojas
- Fixes CONFIG_OF_EMBED warning.
- Fixes missing CONFIG_BLK warning for CONFIG_USB.

Signed-off-by: Álvaro Fernández Rojas 
---
 configs/comtrend_ar5315u_ram_defconfig   | 2 +-
 configs/comtrend_ar5387un_ram_defconfig  | 2 +-
 configs/comtrend_ct5361_ram_defconfig| 2 +-
 configs/comtrend_vr3032u_ram_defconfig   | 2 +-
 configs/comtrend_wap5813n_ram_defconfig  | 2 +-
 configs/huawei_hg556a_ram_defconfig  | 2 +-
 configs/netgear_cg3100d_ram_defconfig| 1 -
 configs/netgear_dgnd3700v2_ram_defconfig | 2 +-
 configs/sagem_f@st1704_ram_defconfig | 1 -
 configs/sfr_nb4-ser_ram_defconfig| 2 +-
 10 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/configs/comtrend_ar5315u_ram_defconfig 
b/configs/comtrend_ar5315u_ram_defconfig
index 1b8e4e43c4..948bd5206a 100644
--- a/configs/comtrend_ar5315u_ram_defconfig
+++ b/configs/comtrend_ar5315u_ram_defconfig
@@ -31,10 +31,10 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 # CONFIG_CMD_MISC is not set
-CONFIG_OF_EMBED=y
 CONFIG_DEFAULT_DEVICE_TREE="comtrend,ar-5315u"
 CONFIG_NET_RANDOM_ETHADDR=y
 # CONFIG_DM_DEVICE_REMOVE is not set
+CONFIG_BLK=y
 CONFIG_BCM6348_IUDMA=y
 CONFIG_DM_GPIO=y
 CONFIG_LED=y
diff --git a/configs/comtrend_ar5387un_ram_defconfig 
b/configs/comtrend_ar5387un_ram_defconfig
index 5ba401a441..845adafae2 100644
--- a/configs/comtrend_ar5387un_ram_defconfig
+++ b/configs/comtrend_ar5387un_ram_defconfig
@@ -31,10 +31,10 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 # CONFIG_CMD_MISC is not set
-CONFIG_OF_EMBED=y
 CONFIG_DEFAULT_DEVICE_TREE="comtrend,ar-5387un"
 CONFIG_NET_RANDOM_ETHADDR=y
 # CONFIG_DM_DEVICE_REMOVE is not set
+CONFIG_BLK=y
 CONFIG_BCM6348_IUDMA=y
 CONFIG_DM_GPIO=y
 CONFIG_LED=y
diff --git a/configs/comtrend_ct5361_ram_defconfig 
b/configs/comtrend_ct5361_ram_defconfig
index 6297e78fd9..280323e345 100644
--- a/configs/comtrend_ct5361_ram_defconfig
+++ b/configs/comtrend_ct5361_ram_defconfig
@@ -28,10 +28,10 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 # CONFIG_CMD_MISC is not set
-CONFIG_OF_EMBED=y
 CONFIG_DEFAULT_DEVICE_TREE="comtrend,ct-5361"
 CONFIG_NET_RANDOM_ETHADDR=y
 # CONFIG_DM_DEVICE_REMOVE is not set
+CONFIG_BLK=y
 CONFIG_BCM6348_IUDMA=y
 CONFIG_DM_GPIO=y
 CONFIG_BCM6345_GPIO=y
diff --git a/configs/comtrend_vr3032u_ram_defconfig 
b/configs/comtrend_vr3032u_ram_defconfig
index 47f53998e1..be9177d741 100644
--- a/configs/comtrend_vr3032u_ram_defconfig
+++ b/configs/comtrend_vr3032u_ram_defconfig
@@ -29,10 +29,10 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 # CONFIG_CMD_MISC is not set
-CONFIG_OF_EMBED=y
 CONFIG_DEFAULT_DEVICE_TREE="comtrend,vr-3032u"
 CONFIG_NET_RANDOM_ETHADDR=y
 # CONFIG_DM_DEVICE_REMOVE is not set
+CONFIG_BLK=y
 CONFIG_BCM6348_IUDMA=y
 CONFIG_DM_GPIO=y
 CONFIG_LED=y
diff --git a/configs/comtrend_wap5813n_ram_defconfig 
b/configs/comtrend_wap5813n_ram_defconfig
index fd5107bb7d..68199afb36 100644
--- a/configs/comtrend_wap5813n_ram_defconfig
+++ b/configs/comtrend_wap5813n_ram_defconfig
@@ -28,10 +28,10 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 # CONFIG_CMD_MISC is not set
-CONFIG_OF_EMBED=y
 CONFIG_DEFAULT_DEVICE_TREE="comtrend,wap-5813n"
 CONFIG_NET_RANDOM_ETHADDR=y
 # CONFIG_DM_DEVICE_REMOVE is not set
+CONFIG_BLK=y
 CONFIG_BCM6348_IUDMA=y
 CONFIG_DM_GPIO=y
 CONFIG_BCM6345_GPIO=y
diff --git a/configs/huawei_hg556a_ram_defconfig 
b/configs/huawei_hg556a_ram_defconfig
index d4e6144319..14205142a6 100644
--- a/configs/huawei_hg556a_ram_defconfig
+++ b/configs/huawei_hg556a_ram_defconfig
@@ -28,10 +28,10 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 # CONFIG_CMD_MISC is not set
-CONFIG_OF_EMBED=y
 CONFIG_DEFAULT_DEVICE_TREE="huawei,hg556a"
 CONFIG_NET_RANDOM_ETHADDR=y
 # CONFIG_DM_DEVICE_REMOVE is not set
+CONFIG_BLK=y
 CONFIG_BCM6348_IUDMA=y
 CONFIG_DM_GPIO=y
 CONFIG_BCM6345_GPIO=y
diff --git a/configs/netgear_cg3100d_ram_defconfig 
b/configs/netgear_cg3100d_ram_defconfig
index 83e82247ab..5fada57c80 100644
--- a/configs/netgear_cg3100d_ram_defconfig
+++ b/configs/netgear_cg3100d_ram_defconfig
@@ -27,7 +27,6 @@ CONFIG_CMD_MEMINFO=y
 CONFIG_CMD_SF=y
 CONFIG_CMD_SPI=y
 # CONFIG_CMD_MISC is not set
-CONFIG_OF_EMBED=y
 CONFIG_DEFAULT_DEVICE_TREE="netgear,cg3100d"
 # CONFIG_NET is not set
 # CONFIG_DM_DEVICE_REMOVE is not set
diff --git a/configs/netgear_dgnd3700v2_ram_defconfig 
b/configs/netgear_dgnd3700v2_ram_defconfig
index 0f3914fe7e..cef0f673b4 100644
--- a/configs/netgear_dgnd3700v2_ram_defconfig
+++ b/configs/netgear_dgnd3700v2_ram_defconfig
@@ -30,10 +30,10 @@ CONFIG_CMD_USB=y
 CONFIG_CMD_MII=y
 CONFIG_CMD_PING=y
 # CONFIG_CMD_MISC is not set
-CONFIG_OF_EMBED=y
 CONFIG_DEFAULT_DEVICE_TREE="netgear,dgnd3700v2"
 CONFIG_NET_RANDOM_ETHADDR=y
 # CONFIG_DM_DEVICE_REMOVE is not set
+CONFIG_BLK=y
 CONFIG_BCM6348_IUDMA=y
 CONFIG_DM_GPIO=y
 CONFIG_BCM6345_GPIO=y
diff --git a/configs/sagem_f@st1704_ram_defconfig 
b/configs/sagem_f@st1704_ram_defconfig
index 8c36f5dbf8..da19b613d5 100644
--- 

[U-Boot] [PATCH] net: bcm6368: fix restart flow issues

2019-01-01 Thread Álvaro Fernández Rojas
Correctly enable/disable bcm6368-net controller to avoid flow issues.

Signed-off-by: Álvaro Fernández Rojas 
---
 drivers/net/bcm6368-eth.c | 109 ++
 1 file changed, 62 insertions(+), 47 deletions(-)

diff --git a/drivers/net/bcm6368-eth.c b/drivers/net/bcm6368-eth.c
index a31efba9d1..110985ed1d 100644
--- a/drivers/net/bcm6368-eth.c
+++ b/drivers/net/bcm6368-eth.c
@@ -309,6 +309,43 @@ static int bcm6368_eth_start(struct udevice *dev)
struct bcm6368_eth_priv *priv = dev_get_priv(dev);
uint8_t i;
 
+   /* disable all ports */
+   for (i = 0; i < priv->num_ports; i++) {
+   setbits_8(priv->base + ETH_PORTOV_REG(i),
+ ETH_PORTOV_ENABLE_MASK);
+   setbits_8(priv->base + ETH_PTCTRL_REG(i),
+ ETH_PTCTRL_RXDIS_MASK | ETH_PTCTRL_TXDIS_MASK);
+   priv->sw_port_link[i] = 0;
+   }
+
+   /* enable external ports */
+   for (i = ETH_RGMII_PORT0; i < priv->num_ports; i++) {
+   u8 rgmii_ctrl = ETH_RGMII_CTRL_GMII_CLK_EN;
+
+   if (!priv->used_ports[i].used)
+   continue;
+
+   if (priv->rgmii_override)
+   rgmii_ctrl |= ETH_RGMII_CTRL_MII_OVERRIDE_EN;
+   if (priv->rgmii_timing)
+   rgmii_ctrl |= ETH_RGMII_CTRL_TIMING_SEL_EN;
+
+   setbits_8(priv->base + ETH_RGMII_CTRL_REG(i), rgmii_ctrl);
+   }
+
+   /* reset mib */
+   setbits_8(priv->base + ETH_GMCR_REG, ETH_GMCR_RST_MIB_MASK);
+   mdelay(1);
+   clrbits_8(priv->base + ETH_GMCR_REG, ETH_GMCR_RST_MIB_MASK);
+   mdelay(1);
+
+   /* force CPU port state */
+   setbits_8(priv->base + ETH_IMPOV_REG,
+ ETH_IMPOV_FORCE_MASK | ETH_IMPOV_LINKUP_MASK);
+
+   /* enable switch forward engine */
+   setbits_8(priv->base + ETH_SWMODE_REG, ETH_SWMODE_FWD_EN_MASK);
+
/* prepare rx dma buffers */
for (i = 0; i < ETH_RX_DESC; i++) {
int ret = dma_prepare_rcv_buf(>rx_dma, net_rx_packets[i],
@@ -368,6 +405,31 @@ static int bcm6368_eth_start(struct udevice *dev)
 static void bcm6368_eth_stop(struct udevice *dev)
 {
struct bcm6368_eth_priv *priv = dev_get_priv(dev);
+   uint8_t i;
+
+   /* disable all ports */
+   for (i = 0; i < priv->num_ports; i++) {
+   setbits_8(priv->base + ETH_PORTOV_REG(i),
+ ETH_PORTOV_ENABLE_MASK);
+   setbits_8(priv->base + ETH_PTCTRL_REG(i),
+ ETH_PTCTRL_RXDIS_MASK | ETH_PTCTRL_TXDIS_MASK);
+   }
+
+   /* disable external ports */
+   for (i = ETH_RGMII_PORT0; i < priv->num_ports; i++) {
+   if (!priv->used_ports[i].used)
+   continue;
+
+   clrbits_8(priv->base + ETH_RGMII_CTRL_REG(i),
+ ETH_RGMII_CTRL_GMII_CLK_EN);
+   }
+
+   /* disable CPU port */
+   clrbits_8(priv->base + ETH_IMPOV_REG,
+ ETH_IMPOV_FORCE_MASK | ETH_IMPOV_LINKUP_MASK);
+
+   /* disable switch forward engine */
+   clrbits_8(priv->base + ETH_SWMODE_REG, ETH_SWMODE_FWD_EN_MASK);
 
/* disable dma rx channel */
dma_disable(>rx_dma);
@@ -444,7 +506,6 @@ static int bcm6368_eth_probe(struct udevice *dev)
struct eth_pdata *pdata = dev_get_platdata(dev);
struct bcm6368_eth_priv *priv = dev_get_priv(dev);
int num_ports, ret, i;
-   uint32_t val;
ofnode node;
 
/* get base address */
@@ -561,52 +622,6 @@ static int bcm6368_eth_probe(struct udevice *dev)
if (ret)
return ret;
 
-   /* disable all ports */
-   for (i = 0; i < priv->num_ports; i++) {
-   writeb_be(ETH_PORTOV_ENABLE_MASK,
- priv->base + ETH_PORTOV_REG(i));
-   writeb_be(ETH_PTCTRL_RXDIS_MASK |
- ETH_PTCTRL_TXDIS_MASK,
- priv->base + ETH_PTCTRL_REG(i));
-
-   priv->sw_port_link[i] = 0;
-   }
-
-   /* enable external ports */
-   for (i = ETH_RGMII_PORT0; i < priv->num_ports; i++) {
-   u8 rgmii_ctrl;
-
-   if (!priv->used_ports[i].used)
-   continue;
-
-   rgmii_ctrl = readb_be(priv->base + ETH_RGMII_CTRL_REG(i));
-   rgmii_ctrl |= ETH_RGMII_CTRL_GMII_CLK_EN;
-   if (priv->rgmii_override)
-   rgmii_ctrl |= ETH_RGMII_CTRL_MII_OVERRIDE_EN;
-   if (priv->rgmii_timing)
-   rgmii_ctrl |= ETH_RGMII_CTRL_TIMING_SEL_EN;
-   writeb_be(rgmii_ctrl, priv->base + ETH_RGMII_CTRL_REG(i));
-   }
-
-   /* reset mib */
-   val = readb_be(priv->base + ETH_GMCR_REG);
-   val |= ETH_GMCR_RST_MIB_MASK;
-   writeb_be(val, priv->base + ETH_GMCR_REG);
-   mdelay(1);
-   val &= ~ETH_GMCR_RST_MIB_MASK;
-   

[U-Boot] [GIT PULL] Pull request: u-boot-imx u -boot-imx-20190101

2019-01-01 Thread Stefano Babic
Hi Tom,

I dropped for the moment the following patches from Denis:

  bootcount: i2c: Add bus switching to the I2C bootcount driver
  bootcount: Configure length limit for I2C bootcount
  board: ge: Store bootcount in EEPROM on PPD and Bx50v3

I used the same hack and PowerPC boards are built successfully on
travis. Please pull from u-boot-imx, thanks !

The following changes since commit d117d8f19b0625f88309e47a8a32c2faa384dddc:

  Merge branch 'master' of git://git.denx.de/u-boot-i2c (2018-12-13
09:36:55 -0500)

are available in the Git repository at:

  git://www.denx.de/git/u-boot-imx.git tags/u-boot-imx-20190101

for you to fetch changes up to 57d2beb91d705bccdfee5e9e5fd267f5e363a100:

  pico-imx7d: Increase the CONFIG_ENV_OFFSET size (2019-01-01 14:12:18
+0100)


imx for 2019.01

- introduce support for i.MX8M
- fix size limit for Vhybrid / pico boards
- several board fixes
- w1 driver for MX2x / MX5x


Denis Zalevskiy (3):
  board: ge: Remove EEPROM bus param from read_vpd()
  board: ge: Move VPD EEPROM configuration to the defconfig
  board: ge: Move VPD reading to the vpd_reader

Fabien Lahoudere (1):
  embestmx6boards: Add SPL support

Fabio Estevam (1):
  pico-imx7d: Increase the CONFIG_ENV_OFFSET size

Gary Bisson (2):
  imx: mx8m: add memory mapping for CAAM and TCM
  imx: bootaux: fix stack and pc assignment on 64-bit platforms

Harald Seiler (1):
  pcm058: fix NAND flash not using badblock table

Lukasz Majewski (6):
  ARM: vybrid: Provide pinctrl driver for Vybrid (vf610)
  ARM: DTS: Add iomux node to vf.dtsi for Vybrid devices
  ARM: DTS: Provide pinfunc definitions for vybrid vf610 from Linux
kernel
  nand: vybrid: Use calloc() instead of malloc() to allocate struct nfc
  Kconfig: Add entry for VF610 NAND NFC device tree aware driver
  nand: vybrid: Extend the vf610 NFC NAND driver to support device
tree (and DM)

Martin Fuzzey (1):
  w1: Add driver for i.MX bus master controller

Martin Husemann (1):
  tools: improve portability of imx_cntr_image.sh

Michael Heimpold (4):
  configs: mx23_olinuxino_defconfig: fix status led definition
  configs: mx23_olinuxino_defconfig: disable bootefi command
  doc: imx: fix typo in imximage.txt
  doc: imx: fix typos in mxsimage.txt

Parthiban Nallathambi (1):
  imx: hab: extend hab_auth_img to calculate ivt_offset

Peng Fan (19):
  imx: imx8qxp_mek: imximage: remove config.h
  spl: introduce function prototypes
  tools: add i.MX8M image support
  arm: imx8qxp: build u-boot-dtb.cfgout before checking files
  Introduce CONFIG_FIT_EXTERNAL_OFFSET
  imx: cpu: add CHIP_REV_2_1 macro
  imx: introduce is_imx8mq helper
  imx: rename mx8m,MX8M to imx8m,IMX8M
  imx: spl: add MMC BOOT Device for i.MX8M
  imx: imx8m: clock refactor dram pll part
  imx: imx8m: introduce script to generate fit image
  imx: imx8m: introduce imximage cfg file
  imx: imx8mq: build flash.bin
  imx: imx8m: not build bootaux when building SPL
  imx: imx8m: add lpddr4 header file
  drivers: ddr: introduce DDR driver for i.MX8M
  imx: add i.MX8MQ EVK support
  imx8m: ddr: removed unused macros
  imx: mx53ppd: fix build error

Pierre-Jean Texier (1):
  warp7: configs: add CONFIG_FIT option

Xiaoliang Yang (2):
  watchdog: driver support for fsl-lsch2
  watchdog: imx: add config to disable wdog reset

Yaniv Levinsky (1):
  arm: imx7d: cl-som-imx7: migration to CONFIG_BLK

Ye Li (2):
  SPL: Add HAB image authentication to FIT
  imx8m: Enable CONFIG_SPL_FIT_IMAGE_TINY for iMX8M

 Kconfig
   |   10 +
 Makefile
   |7 +-
 arch/arm/Kconfig
   |4 +-
 arch/arm/Makefile
   |4 +-
 arch/arm/cpu/armv8/fsl-layerscape/doc/README.lsch2
   |   11 +
 arch/arm/dts/Makefile
   |2 +
 arch/arm/dts/fsl-imx8mq-evk.dts
   |  414 ++
 arch/arm/dts/vf.dtsi
   |6 +
 arch/arm/dts/vf610-pinfunc.h
   |  810 ++
 arch/arm/include/asm/arch-imx/cpu.h
   |5 +-
 arch/arm/include/asm/{arch-mx8m => arch-imx8m}/clock.h
   |   22 +
 arch/arm/include/asm/{arch-mx8m => arch-imx8m}/crm_regs.h
   |4 +-
 arch/arm/include/asm/arch-imx8m/ddr.h
   |  740 
 arch/arm/include/asm/{arch-mx8m => arch-imx8m}/gpio.h
   |4 +-
 arch/arm/include/asm/{arch-mx8m => arch-imx8m}/imx-regs.h
   |4 +-
 arch/arm/include/asm/{arch-mx8m/mx8mq_pins.h =>
arch-imx8m/imx8mq_pins.h} |4 +-
 arch/arm/include/asm/arch-imx8m/lpddr4_define.h
   |   97 
 arch/arm/include/asm/{arch-mx8m => arch-imx8m}/sys_proto.h
   |4 +-
 arch/arm/include/asm/arch-mx8m/ddr.h
   |  355 
 arch/arm/include/asm/mach-imx/iomux-v3.h
   |2 +-
 arch/arm/include/asm/mach-imx/regs-lcdif.h
   |6 +-
 arch/arm/include/asm/mach-imx/sys

Re: [U-Boot] [PULL] Please pull u-boot-imx: u-boot-imx-20181217

2019-01-01 Thread Stefano Babic
On 27/12/18 20:16, Fabio Estevam wrote:
> Hi Tom,
> 
> On Wed, Dec 26, 2018 at 9:27 PM Tom Rini  wrote:
> 
>> There's the list of boards that it might be.  Doing a for B in ...;do
>> make O=/tmp/$B ${B}_defconfig oldconfig and I see that yup, ids8313
>> trips on the new symbols without having a value.  So those two bootcount
>> patches from Denis need a slight rework (the second depends on the
>> first) or to be dropped for now.
> 
> As we are getting closer to the 2019.01 release, I think we should
> drop Denis' patches for now.
> 

Agree, I drop Denis' patches and I reporst the PR.

Thanks,
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: sba...@denx.de
=
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [U-Boot,3/3] riscv: bootm: Support booting VxWorks

2019-01-01 Thread Tom Rini
On Fri, Dec 21, 2018 at 07:13:41AM -0800, Bin Meng wrote:

> Register the 'bootm' function for booting VxWorks kernel for
> RISC-V architecture.
> 
> Signed-off-by: Bin Meng 

Applied to u-boot/master, thanks!

-- 
Tom


signature.asc
Description: PGP signature
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [U-Boot, 2/3] bootm: vxworks: Make do_bootm_vxworks() non-static

2019-01-01 Thread Tom Rini
On Fri, Dec 21, 2018 at 07:13:40AM -0800, Bin Meng wrote:

> For future extension to other architectures, make do_bootm_vxworks()
> a non-static function.
> 
> Signed-off-by: Bin Meng 

Applied to u-boot/master, thanks!

-- 
Tom


signature.asc
Description: PGP signature
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [U-Boot, 1/3] bootm: vxworks: Make do_bootvx_fdt() static

2019-01-01 Thread Tom Rini
On Fri, Dec 21, 2018 at 07:13:39AM -0800, Bin Meng wrote:

> Change the scope of do_bootvx_fdt() to static since it is only
> used in common/bootm_os.c.
> 
> Signed-off-by: Bin Meng 

Applied to u-boot/master, thanks!

-- 
Tom


signature.asc
Description: PGP signature
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] Please pull u-boot-x86

2019-01-01 Thread Tom Rini
On Mon, Dec 31, 2018 at 12:53:19PM +0800, Bin Meng wrote:

> Hi Tom,
> 
> This includes x86 edison defconfig file clean up, and coreboot file
> system (cbfs) fixes.
> 
> The following changes since commit bea3d826203f90507ff32ed24bd0a3c53479e55c:
> 
>   Merge tag 'signed-efi-2019.01' of git://github.com/agraf/u-boot
> (2018-12-27 12:59:01 -0500)
> 
> are available in the git repository at:
> 
>   git://git.denx.de/u-boot-x86.git
> 
> for you to fetch changes up to 881bb9ab398419c33c9021ee8b2bbd8412882230:
> 
>   fs: cbfs: Add missing standard CBFS component types (2018-12-31
> 09:42:41 +0800)
> 

Applied to u-boot/master, thanks!

-- 
Tom


signature.asc
Description: PGP signature
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot