diff mbox series

[U-Boot] usb: ehci-omap: Add Support DM_USB and OF_CONTROL

Message ID 20190630222100.30171-1-aford173@gmail.com
State Superseded
Delegated to: Marek Vasut
Headers show
Series [U-Boot] usb: ehci-omap: Add Support DM_USB and OF_CONTROL | expand

Commit Message

Adam Ford June 30, 2019, 10:21 p.m. UTC
The omap3.dtsi file shows the usbhshost node with two sub-nodes
for ohci and ehci.  This patch file creates the usbhshost, and
pulls the portX-mode information.  It then locates the EHCI
sub-node, and initializes the EHCI controller with the info
pulled from the usbhshost node.

There is still more to do since there isn't an actual link
between the 'phys' reference and the corresponding phy driver,
and there is no nop-xceiv driver yet.

In the meantime, the older style reference to
CONFIG_OMAP_EHCI_PHYx_RESET_GPIO is still needed to pull
the phy out of reset until the phy driver is completed and the
phandle reference is made.

Signed-off-by: Adam Ford <aford173@gmail.com>

Comments

Adam Ford July 29, 2019, 12:16 p.m. UTC | #1
On Sun, Jun 30, 2019 at 5:21 PM Adam Ford <aford173@gmail.com> wrote:
>
> The omap3.dtsi file shows the usbhshost node with two sub-nodes
> for ohci and ehci.  This patch file creates the usbhshost, and
> pulls the portX-mode information.  It then locates the EHCI
> sub-node, and initializes the EHCI controller with the info
> pulled from the usbhshost node.
>
> There is still more to do since there isn't an actual link
> between the 'phys' reference and the corresponding phy driver,
> and there is no nop-xceiv driver yet.
>
> In the meantime, the older style reference to
> CONFIG_OMAP_EHCI_PHYx_RESET_GPIO is still needed to pull
> the phy out of reset until the phy driver is completed and the
> phandle reference is made.
>
> Signed-off-by: Adam Ford <aford173@gmail.com>
>

Marek,

Some subsequent patches that were depending on this have been applied
already, but they cannot be really useful until this patch is applied.
Is there any chance it can be applied?  It will give some of the OMAP3
boards the USB EHCI functionality which has been lost for a little
while.

thank you,

adam
> diff --git a/arch/arm/include/asm/ehci-omap.h b/arch/arm/include/asm/ehci-omap.h
> index 1549f7bf21..f970bba937 100644
> --- a/arch/arm/include/asm/ehci-omap.h
> +++ b/arch/arm/include/asm/ehci-omap.h
> @@ -123,6 +123,7 @@ struct omap_ehci {
>         u32 insreg08;           /* 0xb0 */
>  };
>
> +#if !CONFIG_IS_ENABLED(DM_USB) || !CONFIG_IS_ENABLED(OF_CONTROL)
>  /*
>   * FIXME: forward declaration of this structs needed because omap got the
>   * ehci implementation backwards. move out ehci_hcd_x from board files
> @@ -133,5 +134,6 @@ struct ehci_hcor;
>  int omap_ehci_hcd_init(int index, struct omap_usbhs_board_data *usbhs_pdata,
>                        struct ehci_hccr **hccr, struct ehci_hcor **hcor);
>  int omap_ehci_hcd_stop(void);
> +#endif
>
>  #endif /* _OMAP_COMMON_EHCI_H_ */
> diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c
> index ab459c8cc9..bf83a4adb3 100644
> --- a/drivers/usb/host/ehci-omap.c
> +++ b/drivers/usb/host/ehci-omap.c
> @@ -9,7 +9,6 @@
>   *     Shashi Ranjan <shashiranjanmca05@gmail.com>
>   *
>   */
> -
>  #include <common.h>
>  #include <usb.h>
>  #include <usb/ulpi.h>
> @@ -18,6 +17,10 @@
>  #include <asm/gpio.h>
>  #include <asm/arch/ehci.h>
>  #include <asm/ehci-omap.h>
> +#include <dm.h>
> +#include <dm/device-internal.h>
> +#include <dm/lists.h>
> +#include <power/regulator.h>
>
>  #include "ehci.h"
>
> @@ -177,8 +180,13 @@ int omap_ehci_hcd_stop(void)
>   * Based on "drivers/usb/host/ehci-omap.c" from Linux 3.1
>   * See there for additional Copyrights.
>   */
> +#if !CONFIG_IS_ENABLED(DM_USB) || !CONFIG_IS_ENABLED(OF_CONTROL)
> +
>  int omap_ehci_hcd_init(int index, struct omap_usbhs_board_data *usbhs_pdata,
>                        struct ehci_hccr **hccr, struct ehci_hcor **hcor)
> +#else
> +int omap_ehci_hcd_init(int index, struct omap_usbhs_board_data *usbhs_pdata)
> +#endif
>  {
>         int ret;
>         unsigned int i, reg = 0, rev = 0;
> @@ -285,10 +293,130 @@ int omap_ehci_hcd_init(int index, struct omap_usbhs_board_data *usbhs_pdata,
>         for (i = 0; i < OMAP_HS_USB_PORTS; i++)
>                 if (is_ehci_phy_mode(usbhs_pdata->port_mode[i]))
>                         omap_ehci_soft_phy_reset(i);
> -
> +#if !CONFIG_IS_ENABLED(DM_USB) || !CONFIG_IS_ENABLED(OF_CONTROL)
>         *hccr = (struct ehci_hccr *)(OMAP_EHCI_BASE);
>         *hcor = (struct ehci_hcor *)(OMAP_EHCI_BASE + 0x10);
> +#endif
>
>         debug("OMAP EHCI init done\n");
>         return 0;
>  }
> +
> +#if CONFIG_IS_ENABLED(DM_USB)
> +
> +struct ehci_omap_priv_data {
> +       struct ehci_ctrl ctrl;
> +       struct omap_ehci *ehci;
> +#ifdef CONFIG_DM_REGULATOR
> +       struct udevice *vbus_supply;
> +#endif
> +       enum usb_init_type init_type;
> +       int portnr;
> +       struct phy phy[OMAP_HS_USB_PORTS];
> +       int nports;
> +};
> +
> +static struct omap_usbhs_board_data usbhs_bdata = {
> +       .port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED,
> +       .port_mode[1] = OMAP_USBHS_PORT_MODE_UNUSED,
> +       .port_mode[2] = OMAP_USBHS_PORT_MODE_UNUSED,
> +};
> +
> +/* Match this order enums usbhs_omap_port_mode */
> +static char *phy_strings[] = {
> +       "",
> +       "ehci-phy",
> +       "ehci-tll",
> +       "ehci-hsic",
> +};
> +
> +static int find_phy_mode(const char *phy_type)
> +{
> +       int i;
> +
> +       for (i = 0; i < OMAP_HS_USB_PORTS; i++) {
> +               if (!strcmp(phy_type, phy_strings[i]))
> +                       return i;
> +       }
> +       return 0;
> +}
> +
> +static const struct ehci_ops omap_ehci_ops = {
> +};
> +
> +static int ehci_usb_probe(struct udevice *dev)
> +{
> +       struct usb_platdata *plat = dev_get_platdata(dev);
> +       const void *fdt = gd->fdt_blob;
> +       struct omap_ehci *ehci;
> +       struct ehci_omap_priv_data *priv = dev_get_priv(dev);
> +       struct ehci_hccr *hccr;
> +       struct ehci_hcor *hcor;
> +       ofnode node;
> +       ofnode parent_node = dev->node;
> +       int ret = -1;
> +       int off, i;
> +       const char *mode;
> +       char prop[11];
> +
> +       priv->ehci = (struct omap_ehci *)devfdt_get_addr(dev);
> +       priv->portnr = dev->seq;
> +       priv->init_type = plat->init_type;
> +
> +       /* Go through each port portX-mode to determing phy mode */
> +       for (i = 0; i < 3; i++) {
> +               snprintf(prop, sizeof(prop), "port%d-mode", i + 1);
> +               mode = dev_read_string(dev, prop);
> +               if (mode)
> +                       usbhs_bdata.port_mode[i] = find_phy_mode(mode);
> +       }
> +
> +       ofnode_for_each_subnode(node, parent_node) {
> +               /* Locate node for ti,ehci-omap */
> +               off = ofnode_to_offset(node);
> +               ret = fdt_node_check_compatible(fdt, off, "ti,ehci-omap");
> +
> +               if (!ret) {
> +                       /* If EHCI node is found, set the pointer to it */
> +                       ehci = (struct omap_ehci *)ofnode_get_addr(node);
> +                       hccr = (struct ehci_hccr *)&ehci->hccapbase;
> +                       hcor = (struct ehci_hcor *)&ehci->usbcmd;
> +
> +                       /* Do the actual EHCI initialization */
> +                       omap_ehci_hcd_init(0, &usbhs_bdata);
> +                       ret = ehci_register(dev, hccr, hcor, &omap_ehci_ops, 0,
> +                                           USB_INIT_HOST);
> +               }
> +       }
> +
> +       return ret;
> +}
> +
> +static const struct udevice_id omap_ehci_dt_ids[] = {
> +       { .compatible = "ti,usbhs-host" },
> +       { }
> +};
> +
> +static int ehci_usb_ofdata_to_platdata(struct udevice *dev)
> +{
> +       struct usb_platdata *plat = dev_get_platdata(dev);
> +
> +       plat->init_type = USB_INIT_HOST;
> +
> +       return 0;
> +}
> +
> +U_BOOT_DRIVER(usb_omaphs_host) = {
> +       .name   = "usbhs-host",
> +       .id     = UCLASS_USB,
> +       .of_match = omap_ehci_dt_ids,
> +       .ofdata_to_platdata = ehci_usb_ofdata_to_platdata,
> +       .probe  = ehci_usb_probe,
> +       .remove = ehci_deregister,
> +       .ops    = &ehci_usb_ops,
> +       .platdata_auto_alloc_size = sizeof(struct usb_platdata),
> +       .priv_auto_alloc_size = sizeof(struct ehci_omap_priv_data),
> +       .flags  = DM_FLAG_ALLOC_PRIV_DMA,
> +};
> +
> +#endif
> diff --git a/include/configs/omap3_logic.h b/include/configs/omap3_logic.h
> index e318a9f896..65d8487c18 100644
> --- a/include/configs/omap3_logic.h
> +++ b/include/configs/omap3_logic.h
> @@ -30,6 +30,8 @@
>  /* I2C */
>  #define CONFIG_SYS_I2C_EEPROM_ADDR     0x50    /* EEPROM AT24C64      */
>
> +#define CONFIG_OMAP_EHCI_PHY1_RESET_GPIO       4
> +
>  /* Board NAND Info. */
>  #ifdef CONFIG_NAND
>  #define CONFIG_SYS_MAX_NAND_DEVICE     1         /* Max number of */
> --
> 2.17.1
>
Marek Vasut July 29, 2019, 12:30 p.m. UTC | #2
On 7/29/19 2:16 PM, Adam Ford wrote:
> On Sun, Jun 30, 2019 at 5:21 PM Adam Ford <aford173@gmail.com> wrote:
>>
>> The omap3.dtsi file shows the usbhshost node with two sub-nodes
>> for ohci and ehci.  This patch file creates the usbhshost, and
>> pulls the portX-mode information.  It then locates the EHCI
>> sub-node, and initializes the EHCI controller with the info
>> pulled from the usbhshost node.
>>
>> There is still more to do since there isn't an actual link
>> between the 'phys' reference and the corresponding phy driver,
>> and there is no nop-xceiv driver yet.
>>
>> In the meantime, the older style reference to
>> CONFIG_OMAP_EHCI_PHYx_RESET_GPIO is still needed to pull
>> the phy out of reset until the phy driver is completed and the
>> phandle reference is made.
>>
>> Signed-off-by: Adam Ford <aford173@gmail.com>
>>
> 
> Marek,
> 
> Some subsequent patches that were depending on this have been applied
> already, but they cannot be really useful until this patch is applied.
> Is there any chance it can be applied?  It will give some of the OMAP3
> boards the USB EHCI functionality which has been lost for a little
> while.

Sure, I am kinda busy and don't have enough free time to cope with this.
Moreover, u-boot-usb/master fails to build:
https://travis-ci.org/marex/u-boot-usb/builds/563567738

Can you take a look whether it's this patchset that causes it ?
Adam Ford July 29, 2019, 1:19 p.m. UTC | #3
On Mon, Jul 29, 2019 at 7:30 AM Marek Vasut <marex@denx.de> wrote:
>
> On 7/29/19 2:16 PM, Adam Ford wrote:
> > On Sun, Jun 30, 2019 at 5:21 PM Adam Ford <aford173@gmail.com> wrote:
> >>
> >> The omap3.dtsi file shows the usbhshost node with two sub-nodes
> >> for ohci and ehci.  This patch file creates the usbhshost, and
> >> pulls the portX-mode information.  It then locates the EHCI
> >> sub-node, and initializes the EHCI controller with the info
> >> pulled from the usbhshost node.
> >>
> >> There is still more to do since there isn't an actual link
> >> between the 'phys' reference and the corresponding phy driver,
> >> and there is no nop-xceiv driver yet.
> >>
> >> In the meantime, the older style reference to
> >> CONFIG_OMAP_EHCI_PHYx_RESET_GPIO is still needed to pull
> >> the phy out of reset until the phy driver is completed and the
> >> phandle reference is made.
> >>
> >> Signed-off-by: Adam Ford <aford173@gmail.com>
> >>
> >
> > Marek,
> >
> > Some subsequent patches that were depending on this have been applied
> > already, but they cannot be really useful until this patch is applied.
> > Is there any chance it can be applied?  It will give some of the OMAP3
> > boards the USB EHCI functionality which has been lost for a little
> > while.
>
> Sure, I am kinda busy and don't have enough free time to cope with this.
> Moreover, u-boot-usb/master fails to build:
> https://travis-ci.org/marex/u-boot-usb/builds/563567738
>
> Can you take a look whether it's this patchset that causes it ?

Marek,

I looked at the Travis logs, and it looks like the da850evm_nand and
da850evm_direct_nor were failing, so I tried to clone
git clone --depth=50 --branch=master
https://github.com/marex/u-boot-usb.git marex/u-boot-usb based on line
846 of the Travis log.

When I built da850evm_nand and da850evm_direct_nor, I could not
replicate either the build error.

The EHCI patch referenced above should not impact the da850 board
because that driver isn't loaded and the IP isn't present on the
da850evm.  They are a different OMAP family.

If you have some suggestions I how I can replicate this build error or
what I might be doing wrong, please let me know.

adam
Marek Vasut July 29, 2019, 2:38 p.m. UTC | #4
On 7/29/19 3:19 PM, Adam Ford wrote:
> On Mon, Jul 29, 2019 at 7:30 AM Marek Vasut <marex@denx.de> wrote:
>>
>> On 7/29/19 2:16 PM, Adam Ford wrote:
>>> On Sun, Jun 30, 2019 at 5:21 PM Adam Ford <aford173@gmail.com> wrote:
>>>>
>>>> The omap3.dtsi file shows the usbhshost node with two sub-nodes
>>>> for ohci and ehci.  This patch file creates the usbhshost, and
>>>> pulls the portX-mode information.  It then locates the EHCI
>>>> sub-node, and initializes the EHCI controller with the info
>>>> pulled from the usbhshost node.
>>>>
>>>> There is still more to do since there isn't an actual link
>>>> between the 'phys' reference and the corresponding phy driver,
>>>> and there is no nop-xceiv driver yet.
>>>>
>>>> In the meantime, the older style reference to
>>>> CONFIG_OMAP_EHCI_PHYx_RESET_GPIO is still needed to pull
>>>> the phy out of reset until the phy driver is completed and the
>>>> phandle reference is made.
>>>>
>>>> Signed-off-by: Adam Ford <aford173@gmail.com>
>>>>
>>>
>>> Marek,
>>>
>>> Some subsequent patches that were depending on this have been applied
>>> already, but they cannot be really useful until this patch is applied.
>>> Is there any chance it can be applied?  It will give some of the OMAP3
>>> boards the USB EHCI functionality which has been lost for a little
>>> while.
>>
>> Sure, I am kinda busy and don't have enough free time to cope with this.
>> Moreover, u-boot-usb/master fails to build:
>> https://travis-ci.org/marex/u-boot-usb/builds/563567738
>>
>> Can you take a look whether it's this patchset that causes it ?
> 
> Marek,
> 
> I looked at the Travis logs, and it looks like the da850evm_nand and
> da850evm_direct_nor were failing, so I tried to clone
> git clone --depth=50 --branch=master
> https://github.com/marex/u-boot-usb.git marex/u-boot-usb based on line
> 846 of the Travis log.
> 
> When I built da850evm_nand and da850evm_direct_nor, I could not
> replicate either the build error.

I see, strange, I can replicate the error.

$ make da850evm_nand_defconfig ; make -j9
...
drivers/usb/host/ohci-hcd.c: In function ‘usb_lowlevel_init’:
drivers/usb/host/ohci-hcd.c:2056:35: error:
‘CONFIG_SYS_USB_OHCI_REGS_BASE’ undeclared (first use in this function);
did you mean ‘CONFIG_SYS_USB_OHCI_CPU_INIT’?
  gohci.regs = (struct ohci_regs *)CONFIG_SYS_USB_OHCI_REGS_BASE;
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                   CONFIG_SYS_USB_OHCI_CPU_INIT
drivers/usb/host/ohci-hcd.c:2056:35: note: each undeclared identifier is
reported only once for each function it appears in
  LD      drivers/usb/musb-new/built-in.o
drivers/usb/host/ohci-hcd.c:2060:20: error:
‘CONFIG_SYS_USB_OHCI_SLOT_NAME’ undeclared (first use in this function);
did you mean ‘CONFIG_SYS_USB_OHCI_CPU_INIT’?
  gohci.slot_name = CONFIG_SYS_USB_OHCI_SLOT_NAME;
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                    CONFIG_SYS_USB_OHCI_CPU_INIT
  LD      drivers/mtd/spi/spi-nor.o
make[1]: *** [scripts/Makefile.build:279: drivers/usb/host/ohci-hcd.o]
Error 1
make: *** [Makefile:1594: drivers/usb/host] Error 2
make: *** Waiting for unfinished jobs....

+CC Heiko
Adam Ford July 29, 2019, 4:05 p.m. UTC | #5
On Mon, Jul 29, 2019 at 9:38 AM Marek Vasut <marex@denx.de> wrote:
>
> On 7/29/19 3:19 PM, Adam Ford wrote:
> > On Mon, Jul 29, 2019 at 7:30 AM Marek Vasut <marex@denx.de> wrote:
> >>
> >> On 7/29/19 2:16 PM, Adam Ford wrote:
> >>> On Sun, Jun 30, 2019 at 5:21 PM Adam Ford <aford173@gmail.com> wrote:
> >>>>
> >>>> The omap3.dtsi file shows the usbhshost node with two sub-nodes
> >>>> for ohci and ehci.  This patch file creates the usbhshost, and
> >>>> pulls the portX-mode information.  It then locates the EHCI
> >>>> sub-node, and initializes the EHCI controller with the info
> >>>> pulled from the usbhshost node.
> >>>>
> >>>> There is still more to do since there isn't an actual link
> >>>> between the 'phys' reference and the corresponding phy driver,
> >>>> and there is no nop-xceiv driver yet.
> >>>>
> >>>> In the meantime, the older style reference to
> >>>> CONFIG_OMAP_EHCI_PHYx_RESET_GPIO is still needed to pull
> >>>> the phy out of reset until the phy driver is completed and the
> >>>> phandle reference is made.
> >>>>
> >>>> Signed-off-by: Adam Ford <aford173@gmail.com>
> >>>>
> >>>
> >>> Marek,
> >>>
> >>> Some subsequent patches that were depending on this have been applied
> >>> already, but they cannot be really useful until this patch is applied.
> >>> Is there any chance it can be applied?  It will give some of the OMAP3
> >>> boards the USB EHCI functionality which has been lost for a little
> >>> while.
> >>
> >> Sure, I am kinda busy and don't have enough free time to cope with this.
> >> Moreover, u-boot-usb/master fails to build:
> >> https://travis-ci.org/marex/u-boot-usb/builds/563567738
> >>
> >> Can you take a look whether it's this patchset that causes it ?
> >
> > Marek,
> >
> > I looked at the Travis logs, and it looks like the da850evm_nand and
> > da850evm_direct_nor were failing, so I tried to clone
> > git clone --depth=50 --branch=master
> > https://github.com/marex/u-boot-usb.git marex/u-boot-usb based on line
> > 846 of the Travis log.
> >
> > When I built da850evm_nand and da850evm_direct_nor, I could not
> > replicate either the build error.
>
> I see, strange, I can replicate the error.
>
> $ make da850evm_nand_defconfig ; make -j9
> ...
> drivers/usb/host/ohci-hcd.c: In function ‘usb_lowlevel_init’:
> drivers/usb/host/ohci-hcd.c:2056:35: error:
> ‘CONFIG_SYS_USB_OHCI_REGS_BASE’ undeclared (first use in this function);
> did you mean ‘CONFIG_SYS_USB_OHCI_CPU_INIT’?
>   gohci.regs = (struct ohci_regs *)CONFIG_SYS_USB_OHCI_REGS_BASE;
>                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>                                    CONFIG_SYS_USB_OHCI_CPU_INIT
> drivers/usb/host/ohci-hcd.c:2056:35: note: each undeclared identifier is
> reported only once for each function it appears in
>   LD      drivers/usb/musb-new/built-in.o
> drivers/usb/host/ohci-hcd.c:2060:20: error:
> ‘CONFIG_SYS_USB_OHCI_SLOT_NAME’ undeclared (first use in this function);
> did you mean ‘CONFIG_SYS_USB_OHCI_CPU_INIT’?
>   gohci.slot_name = CONFIG_SYS_USB_OHCI_SLOT_NAME;
>                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>                     CONFIG_SYS_USB_OHCI_CPU_INIT
>   LD      drivers/mtd/spi/spi-nor.o
> make[1]: *** [scripts/Makefile.build:279: drivers/usb/host/ohci-hcd.o]
> Error 1
> make: *** [Makefile:1594: drivers/usb/host] Error 2
> make: *** Waiting for unfinished jobs....
>

aford@aford-OptiPlex-7050:~/src/marex/u-boot-usb$ make da850evm_nand_defconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  YACC    scripts/kconfig/zconf.tab.c
  LEX     scripts/kconfig/zconf.lex.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#
aford@aford-OptiPlex-7050:~/src/marex/u-boot-usb$ make ARCH=arm
CROSS_COMPILE="arm-linux-" -j8
scripts/kconfig/conf  --syncconfig Kconfig
  CHK     include/config.h
  UPD     include/config.h
  CFG     u-boot.cfg
  GEN     include/autoconf.mk.dep
  CFG     spl/u-boot.cfg
  GEN     include/autoconf.mk
  GEN     spl/include/autoconf.mk
  CHK     include/config/uboot.release
  CHK     include/generated/timestamp_autogenerated.h
  UPD     include/generated/timestamp_autogenerated.h
  HOSTCC  scripts/dtc/dtc.o
  HOSTCC  scripts/dtc/flattree.o
  HOSTCC  scripts/dtc/fstree.o
  HOSTCC  scripts/dtc/data.o
  HOSTCC  scripts/dtc/treesource.o
  HOSTCC  scripts/dtc/livetree.o
  HOSTCC  scripts/dtc/srcpos.o
  HOSTCC  scripts/dtc/checks.o
  HOSTCC  scripts/dtc/util.o
  LEX     scripts/dtc/dtc-lexer.lex.c
  YACC    scripts/dtc/dtc-parser.tab.c
  YACC    scripts/dtc/dtc-parser.tab.h
  HOSTCC  scripts/dtc/dtc-parser.tab.o
  HOSTCC  scripts/dtc/dtc-lexer.lex.o
  UPD     include/config/uboot.release
  CHK     include/generated/version_autogenerated.h
  UPD     include/generated/version_autogenerated.h
  HOSTLD  scripts/dtc/dtc
  CC      lib/asm-offsets.s
  CC      arch/arm/lib/asm-offsets.s
  CHK     include/generated/generic-asm-offsets.h
  UPD     include/generated/generic-asm-offsets.h
  CHK     include/generated/asm-offsets.h
  UPD     include/generated/asm-offsets.h
  LDS     u-boot.lds
  HOSTCC  tools/envcrc.o
  WRAP    tools/lib/crc32.c
  HOSTCC  tools/env/embedded.o
  WRAP    tools/lib/sha1.c
  HOSTCC  tools/gen_eth_addr
  WRAP    tools/lib/crc8.c
  HOSTCC  tools/img2srec
  HOSTCC  tools/gen_ethaddr_crc.o
  HOSTCC  tools/mkenvimage.o
  HOSTCC  tools/os_support.o
  HOSTCC  tools/lib/crc32.o
  HOSTCC  tools/aisimage.o
  HOSTCC  tools/atmelimage.o
  WRAP    tools/common/bootm.c
  HOSTCC  tools/default_image.o
  WRAP    tools/lib/fdtdec_common.c
  WRAP    tools/common/image.c
  WRAP    tools/lib/fdtdec.c
  HOSTCC  tools/imagetool.o
  HOSTCC  tools/imximage.o
  HOSTCC  tools/imx8image.o
  HOSTCC  tools/imx8mimage.o
  HOSTCC  tools/kwbimage.o
  WRAP    tools/lib/md5.c
  HOSTCC  tools/lpc32xximage.o
  HOSTCC  tools/mxsimage.o
  HOSTCC  tools/omapimage.o
  HOSTCC  tools/pblimage.o
  HOSTCC  tools/pbl_crc32.o
  HOSTCC  tools/vybridimage.o
  HOSTCC  tools/stm32image.o
  WRAP    tools/lib/rc4.c
  HOSTCC  tools/rkcommon.o
  HOSTCC  tools/rkimage.o
  HOSTCC  tools/rksd.o
  HOSTCC  tools/rkspi.o
  HOSTCC  tools/socfpgaimage.o
  WRAP    tools/lib/crc16.c
  HOSTCC  tools/lib/sha1.o
  WRAP    tools/lib/sha256.c
  WRAP    tools/common/hash.c
  HOSTCC  tools/ublimage.o
  HOSTCC  tools/zynqimage.o
  HOSTCC  tools/zynqmpimage.o
  HOSTCC  tools/zynqmpbif.o
  HOSTCC  tools/libfdt/fdt.o
  HOSTCC  tools/libfdt/fdt_wip.o
  HOSTCC  tools/libfdt/fdt_sw.o
  HOSTCC  tools/libfdt/fdt_strerror.o
  HOSTCC  tools/libfdt/fdt_rw.o
  HOSTCC  tools/libfdt/fdt_empty_tree.o
  HOSTCC  tools/libfdt/fdt_addresses.o
  HOSTCC  tools/libfdt/fdt_overlay.o
  WRAP    tools/lib/libfdt/fdt_ro.c
  WRAP    tools/lib/libfdt/fdt_region.c
  HOSTCC  tools/gpimage.o
  HOSTCC  tools/gpimage-common.o
  HOSTCC  tools/mtk_image.o
  HOSTCC  tools/dumpimage.o
  HOSTCC  tools/common/bootm.o
  HOSTCC  tools/lib/fdtdec_common.o
  HOSTCC  tools/lib/fdtdec.o
  HOSTCC  tools/common/image.o
  HOSTCC  tools/lib/md5.o
  HOSTCC  tools/lib/rc4.o
  HOSTCC  tools/lib/crc16.o
  HOSTCC  tools/lib/sha256.o
  HOSTCC  tools/common/hash.o
  HOSTCC  tools/lib/libfdt/fdt_ro.o
  HOSTCC  tools/lib/libfdt/fdt_region.o
  HOSTCC  tools/mkimage.o
  HOSTCC  tools/proftool
  HOSTCC  tools/fdtgrep.o
  HOSTCC  tools/spl_size_limit
  HOSTLD  tools/envcrc
  HOSTCC  tools/lib/crc8.o
  HOSTLD  tools/mkenvimage
  HOSTLD  tools/gen_ethaddr_crc
  HOSTLD  tools/dumpimage
  HOSTLD  tools/mkimage
  HOSTLD  tools/fdtgrep
  LD      arch/arm/cpu/built-in.o
  CC      arch/arm/cpu/arm926ejs/cpu.o
  CC      arch/arm/cpu/arm926ejs/cache.o
  AS      arch/arm/cpu/arm926ejs/start.o
  CC      board/davinci/da8xxevm/da850evm.o
  CC      arch/arm/mach-davinci/cpu.o
  CC      arch/arm/mach-davinci/misc.o
  AS      arch/arm/lib/vectors.o
  AS      arch/arm/lib/crt0.o
  CC      disk/part.o
  CC      common/init/board_init.o
  LD      arch/arm/cpu/arm926ejs/built-in.o
  AS      arch/arm/lib/setjmp.o
  CC      common/main.o
  CC      arch/arm/mach-davinci/timer.o
  LD      cmd/arm/built-in.o
  LD      cmd/ti/built-in.o
  CC      cmd/boot.o
  AS      arch/arm/lib/relocate.o
  LD      common/init/built-in.o
  CC      disk/part_dos.o
  CC      arch/arm/lib/bootm-fdt.o
  LD      board/davinci/da8xxevm/built-in.o
  CC      arch/arm/lib/bootm.o
  CC      common/exports.o
  CC      cmd/bootm.o
  LD      drivers/adc/built-in.o
  LD      drivers/ata/built-in.o
  LD      drivers/axi/built-in.o
  CC      arch/arm/lib/zimage.o
  CC      drivers/block/blk-uclass.o
  CC      arch/arm/mach-davinci/psc.o
  CC      common/hash.o
  CC      arch/arm/mach-davinci/pinmux.o
  CC      arch/arm/mach-davinci/reset.o
  AS      arch/arm/lib/memset.o
  LD      disk/built-in.o
  CC      cmd/help.o
  CC      drivers/block/blkcache.o
  LD      drivers/board/built-in.o
  CC      common/cli_hush.o
  AS      arch/arm/lib/memcpy.o
  CC      arch/arm/lib/sections.o
  CC      arch/arm/mach-davinci/da850_pinmux.o
  CC      arch/arm/lib/stack.o
  CC      cmd/version.o
  LD      drivers/dma/ti/built-in.o
  LD      drivers/dma/built-in.o
  CC      arch/arm/lib/interrupts.o
  CC      drivers/gpio/gpio-uclass.o
  CC      drivers/gpio/da8xx_gpio.o
  LD      arch/arm/mach-davinci/built-in.o
  CC      arch/arm/lib/reset.o
  CC      common/autoboot.o
  LD      drivers/block/built-in.o
  CC      cmd/blk_common.o
  LD      drivers/cache/built-in.o
  CC      drivers/core/device.o
  CC      drivers/crypto/fsl/sec.o
  CC      arch/arm/lib/cache.o
  LD      drivers/crypto/rsa_mod_exp/built-in.o
  CC      common/board_f.o
  CC      drivers/core/fdtaddr.o
  CC      cmd/source.o
  LD      drivers/crypto/fsl/built-in.o
  LD      drivers/crypto/built-in.o
  CC      arch/arm/lib/cache-cp15.o
  CC      arch/arm/lib/psci-dt.o
  CC      cmd/bdinfo.o
  CC      cmd/blkcache.o
  LD      drivers/dfu/built-in.o
  LD      drivers/firmware/built-in.o
  CC      common/board_r.o
  LD      drivers/gpio/built-in.o
  AS      arch/arm/lib/ashldi3.o
  CC      drivers/input/input.o
  CC      cmd/bootefi.o
  LD      drivers/mailbox/built-in.o
  AS      arch/arm/lib/ashrdi3.o
  CC      drivers/i2c/i2c-uclass.o
  CC      drivers/core/lists.o
  CC      arch/arm/lib/div0.o
  LD      drivers/mtd/nand/built-in.o
  CC      drivers/mtd/mtdcore.o
  AS      arch/arm/lib/div64.o
  CC      drivers/mtd/nand/raw/nand.o
  AS      arch/arm/lib/lib1funcs.o
  AS      arch/arm/lib/lshrdi3.o
  CC      common/bootm.o
  AS      arch/arm/lib/muldi3.o
  CC      cmd/bootz.o
  CC      drivers/core/root.o
  CC      drivers/input/key_matrix.o
  CC      drivers/mtd/nand/raw/nand_bbt.o
  AS      arch/arm/lib/uldivmod.o
  CC      arch/arm/lib/eabi_compat.o
  CC      cmd/console.o
  LD      drivers/i2c/built-in.o
  CC      common/bootm_os.o
  AS      arch/arm/lib/crt0_arm_efi.o
  LD      drivers/input/built-in.o
  CC      drivers/core/uclass.o
  LD      drivers/memory/built-in.o
  CC      cmd/dm.o
  CC      arch/arm/lib/reloc_arm_efi.o
  CC      cmd/echo.o
  CC      common/fdt_support.o
  LD      arch/arm/lib/built-in.o
  AR      arch/arm/lib/lib.a
  CC      common/miiphyutil.o
  CC      drivers/mtd/mtd_uboot.o
  LD      drivers/misc/built-in.o
  CC      cmd/eeprom.o
  LD      drivers/mtd/onenand/built-in.o
  CC      drivers/mtd/spi/sf-uclass.o
  LD      drivers/net/mscc_eswitch/built-in.o
  LD      drivers/net/ti/built-in.o
  LD      drivers/net/built-in.o
  CC      cmd/elf.o
  CC      cmd/exit.o
  LD      drivers/mtd/built-in.o
  CC      drivers/mtd/nand/raw/nand_ids.o
  CC      drivers/core/util.o
  CC      drivers/mtd/spi/sf_probe.o
  CC      drivers/mtd/nand/raw/nand_util.o
  CC      drivers/mtd/nand/raw/nand_ecc.o
  CC      cmd/ext2.o
  CC      drivers/mtd/nand/raw/nand_base.o
  CC      drivers/core/device-remove.o
  LD      drivers/net/phy/built-in.o
  CC      drivers/mtd/spi/spi-nor-ids.o
  CC      cmd/fat.o
  CC      cmd/fdt.o
  CC      drivers/mtd/spi/spi-nor-core.o
  CC      cmd/fs.o
  CC      drivers/core/simple-bus.o
  CC      common/usb.o
  LD      drivers/power/built-in.o
  LD      drivers/power/battery/built-in.o
  LD      drivers/power/domain/built-in.o
  LD      drivers/power/fuel_gauge/built-in.o
  CC      cmd/gpio.o
  CC      cmd/i2c.o
  LD      drivers/power/mfd/built-in.o
  CC      drivers/core/dump.o
  CC      drivers/core/of_extra.o
  CC      drivers/core/ofnode.o
  CC      cmd/itest.o
  CC      drivers/mtd/spi/sf_mtd.o
  CC      cmd/load.o
  CC      common/usb_hub.o
  CC      common/usb_storage.o
  CC      common/splash.o
  CC      cmd/mem.o
  CC      drivers/core/read_extra.o
  CC      cmd/mii.o
  LD      drivers/core/built-in.o
  CC      drivers/mmc/mmc.o
  CC      common/cli_readline.o
  LD      drivers/power/pmic/built-in.o
  LD      drivers/mtd/spi/spi-nor.o
  CC      drivers/mtd/nand/raw/nand_timings.o
  CC      drivers/mtd/nand/raw/davinci_nand.o
  LD      drivers/mtd/spi/built-in.o
  LD      drivers/power/regulator/built-in.o
  CC      drivers/serial/serial-uclass.o
  CC      cmd/misc.o
  CC      drivers/serial/ns16550.o
  LD      drivers/pcmcia/built-in.o
  CC      drivers/spi/spi-uclass.o
  CC      common/cli_simple.o
  CC      drivers/phy/phy-uclass.o
  CC      cmd/mmc.o
  CC      drivers/phy/phy-da8xx-usb.o
  LD      drivers/serial/built-in.o
  CC      drivers/usb/common/common.o
  LD      drivers/phy/built-in.o
  LD      drivers/usb/dwc3/built-in.o
  LD      drivers/phy/allwinner/built-in.o
  CC      common/hwconfig.o
  LD      drivers/usb/emul/built-in.o
  CC      drivers/spi/spi-mem.o
  LD      drivers/usb/eth/built-in.o
  CC      common/console.o
  CC      common/dlmalloc.o
  LD      drivers/usb/common/built-in.o
  CC      common/malloc_simple.o
  CC      drivers/mmc/mmc-uclass.o
  CC      cmd/mtdparts.o
  CC      drivers/spi/davinci_spi.o
  CC      common/image.o
  CC      common/image-fdt.o
  CC      drivers/mmc/mmc_write.o
  LD      drivers/mtd/nand/raw/built-in.o
  CC      drivers/mmc/davinci_mmc.o
  LD      drivers/spi/built-in.o
  CC      drivers/usb/host/usb-uclass.o
  CC      drivers/usb/host/ohci-hcd.o
  CC      cmd/nand.o
  CC      common/memsize.o
  CC      drivers/usb/musb-new/musb_host.o
  CC      drivers/usb/host/ohci-da8xx.o
  LD      drivers/mmc/built-in.o
  LD      drivers/phy/marvell/built-in.o
  CC      common/stdio.o
  LD      drivers/pinctrl/broadcom/built-in.o
  LD      drivers/pinctrl/nxp/built-in.o
  CC      drivers/pinctrl/pinctrl-uclass.o
  CC      drivers/pinctrl/pinctrl-generic.o
  LD      drivers/pwm/built-in.o
  CC      drivers/pinctrl/pinctrl-single.o
  CC      common/cli.o
  CC      cmd/net.o
  LD      drivers/reset/built-in.o
  CC      cmd/nvedit_efi.o
  CC      drivers/usb/musb-new/musb_core.o
  LD      drivers/pinctrl/built-in.o
  CC      drivers/rtc/date.o
  CC      common/command.o
  CC      drivers/usb/musb-new/musb_uboot.o
  CC      drivers/usb/musb-new/da8xx.o
  CC      drivers/rtc/rtc-lib.o
  LD      drivers/usb/host/built-in.o
  CC      cmd/part.o
  CC      common/s_record.o
  CC      common/xyzModem.o
  LD      drivers/usb/musb/built-in.o
  LD      drivers/usb/phy/built-in.o
  CC      cmd/pinmux.o
  LD      drivers/scsi/built-in.o
  LD      drivers/usb/ulpi/built-in.o
  LD      drivers/rtc/built-in.o
  LD      drivers/smem/built-in.o
  LD      drivers/soc/built-in.o
  CC      env/common.o
  CC      cmd/sf.o
  LD      drivers/sound/built-in.o
  CC      env/env.o
  CC      fs/ext4/ext4fs.o
  LD      drivers/usb/musb-new/built-in.o
  LD      drivers/spmi/built-in.o
  CC      fs/ext4/ext4_common.o
  LD      drivers/sysreset/built-in.o
  LD      drivers/thermal/built-in.o
  LD      drivers/watchdog/built-in.o
  LD      drivers/video/bridge/built-in.o
  CC      env/attr.o
  LD      drivers/video/sunxi/built-in.o
  LD      drivers/video/built-in.o
  LD      common/built-in.o
  LD      drivers/built-in.o
  CC      cmd/spi.o
  CC      fs/ext4/dev.o
  CC      env/callback.o
  CC      fs/fat/fat.o
  CC      env/flags.o
  CC      cmd/test.o
  CC      env/nand.o
  CC      fs/fs.o
  CC      net/checksum.o
  CC      lib/efi_driver/efi_uclass.o
  CC      cmd/usb.o
  LD      fs/ext4/built-in.o
  CC      lib/efi_driver/efi_block_device.o
  CC      net/arp.o
  LD      env/built-in.o
  CC      cmd/disk.o
  CC      lib/efi_loader/efi_bootmgr.o
  CC      lib/libfdt/fdt.o
  LD      lib/efi_driver/built-in.o
  CC      net/bootp.o
  CC      net/eth-uclass.o
  CC      lib/efi_loader/efi_boottime.o
  LD      fs/fat/built-in.o
  CC      fs/fs_internal.o
  CC      cmd/ximg.o
  CC      cmd/nvedit.o
  CC      lib/libfdt/fdt_wip.o
  CC      lib/zlib/zlib.o
  LD      fs/built-in.o
  CC      lib/libfdt/fdt_strerror.o
  CC      lib/charset.o
  CC      lib/crc7.o
  CC      lib/libfdt/fdt_sw.o
  CC      lib/libfdt/fdt_rw.o
  CC      net/eth_common.o
  CC      lib/crc8.o
  CC      lib/crc16.o
  CC      net/net.o
  CC      net/nfs.o
  CC      lib/smbios.o
  CC      lib/libfdt/fdt_empty_tree.o
  LD      cmd/built-in.o
  CC      lib/ldiv.o
  CC      lib/libfdt/fdt_addresses.o
  CC      lib/net_utils.o
  CC      lib/rc4.o
  CC      lib/libfdt/fdt_ro.o
  CC      lib/libfdt/fdt_region.o
  CC      lib/list_sort.o
  CC      net/ping.o
  CC      lib/efi_loader/efi_console.o
  CC      lib/gunzip.o
  CC      net/tftp.o
  CC      lib/efi_loader/efi_device_path.o
  CC      lib/efi_loader/efi_device_path_to_text.o
  CC      lib/fdtdec_common.o
  LD      lib/libfdt/built-in.o
  CC      lib/fdtdec.o
  CC      lib/efi_loader/efi_device_path_utilities.o
  CC      lib/efi_loader/efi_file.o
  LD      lib/zlib/built-in.o
  LD      net/built-in.o
  CC      lib/qsort.o
  CC      lib/efi_loader/efi_hii.o
  CC      lib/hashtable.o
  CC      lib/errno.o
  CC      lib/efi_loader/efi_hii_config.o
  CC      lib/display_options.o
  CC      lib/efi_loader/efi_image_loader.o
  CC      lib/efi_loader/efi_memory.o
  CC      lib/efi_loader/efi_root_node.o
  CC      lib/efi_loader/efi_runtime.o
  CC      lib/efi_loader/efi_setup.o
  CC      lib/crc32.o
  CC      lib/efi_loader/efi_unicode_collation.o
  CC      lib/efi_loader/efi_variable.o
  CC      lib/ctype.o
  CC      lib/efi_loader/efi_watchdog.o
  CC      lib/div64.o
  CC      lib/efi_loader/efi_disk.o
  CC      lib/efi_loader/efi_net.o
  CC      lib/hang.o
  CC      lib/linux_compat.o
  CC      lib/linux_string.o
  CC      lib/lmb.o
  CC      lib/efi_loader/efi_smbios.o
  CC      lib/membuff.o
  CC      lib/slre.o
  CC      lib/efi_loader/helloworld.o
  AS      lib/efi_loader/efi_crt0.o
  CC      lib/efi_loader/efi_reloc.o
  CC      lib/efi_loader/efi_freestanding.o
  CC      lib/string.o
  CC      lib/tables_csum.o
  CC      lib/time.o
  CC      lib/hexdump.o
  CC      lib/uuid.o
  LD      lib/efi_loader/built-in.o
  CC      lib/panic.o
  LD      lib/efi_loader/helloworld_efi.so
  OBJCOPY lib/efi_loader/helloworld.efi
  CC      lib/vsprintf.o
  CC      lib/strto.o
  CC      lib/strmhz.o
  LD      lib/built-in.o
  CC      examples/standalone/hello_world.o
  CC      examples/standalone/stubs.o
  LD      examples/standalone/libstubs.o
  LD      examples/standalone/hello_world
  OBJCOPY examples/standalone/hello_world.srec
  OBJCOPY examples/standalone/hello_world.bin
  LD      u-boot
  OBJCOPY u-boot-nodtb.bin
  OBJCOPY u-boot.srec
  SYM     u-boot.sym
  DTC     arch/arm/dts/da850-lcdk.dtb
  DTC     arch/arm/dts/da850-lego-ev3.dtb
  DTC     arch/arm/dts/da850-evm.dtb
  SHIPPED dts/dt.dtb
  FDTGREP dts/dt-spl.dtb
  CAT     u-boot-dtb.bin
  COPY    u-boot.dtb
  COPY    u-boot.bin
  MKIMAGE u-boot.img
  MKIMAGE u-boot-dtb.img
  LD      spl/arch/arm/cpu/built-in.o
  CC      spl/board/davinci/da8xxevm/da850evm.o
  CC      spl/common/init/board_init.o
  CC      spl/arch/arm/cpu/arm926ejs/cpu.o
  CC      spl/arch/arm/cpu/arm926ejs/cache.o
  CC      spl/common/spl/spl.o
  CC      spl/arch/arm/mach-davinci/cpu.o
  AS      spl/arch/arm/lib/vectors.o
  CC      spl/common/fdt_support.o
  CC      spl/common/usb.o
  LD      spl/common/init/built-in.o
  AS      spl/arch/arm/lib/crt0.o
  AS      spl/arch/arm/cpu/arm926ejs/start.o
  CC      spl/common/hwconfig.o
  CC      spl/arch/arm/mach-davinci/misc.o
  AS      spl/arch/arm/lib/setjmp.o
  LD      spl/arch/arm/cpu/arm926ejs/built-in.o
  CC      spl/arch/arm/lib/spl.o
  CC      spl/common/console.o
  LD      spl/board/davinci/da8xxevm/built-in.o
  CC      spl/common/spl/spl_nand.o
  LD      spl/cmd/ti/built-in.o
  CC      spl/arch/arm/mach-davinci/timer.o
  CC      spl/cmd/nvedit.o
  CC      spl/arch/arm/lib/zimage.o
  CC      spl/common/dlmalloc.o
  CC      spl/arch/arm/lib/bootm-fdt.o
  CC      spl/common/spl/spl_spi.o
  CC      spl/common/malloc_simple.o
  CC      spl/arch/arm/mach-davinci/psc.o
  LD      spl/cmd/built-in.o
  AS      spl/arch/arm/lib/memset.o
  CC      spl/env/common.o
  AS      spl/arch/arm/lib/memcpy.o
  CC      spl/env/env.o
  LD      spl/common/spl/built-in.o
  CC      spl/arch/arm/lib/sections.o
  CC      spl/arch/arm/mach-davinci/pinmux.o
  CC      spl/arch/arm/lib/stack.o
  CC      spl/arch/arm/lib/interrupts.o
  CC      spl/arch/arm/mach-davinci/reset.o
  CC      spl/common/image.o
  CC      spl/disk/part.o
  CC      spl/lib/fdtdec_common.o
  LD      spl/env/built-in.o
  CC      spl/arch/arm/lib/reset.o
  CC      spl/lib/libfdt/fdt.o
  CC      spl/arch/arm/lib/cache.o
  CC      spl/arch/arm/mach-davinci/da850_pinmux.o
  CC      spl/arch/arm/mach-davinci/spl.o
  CC      spl/arch/arm/mach-davinci/da850_lowlevel.o
  CC      spl/common/image-fdt.o
  CC      spl/arch/arm/lib/cache-cp15.o
  CC      spl/arch/arm/lib/psci-dt.o
  CC      spl/lib/libfdt/fdt_wip.o
  CC      spl/lib/libfdt/fdt_strerror.o
  CC      spl/disk/part_dos.o
  AS      spl/arch/arm/lib/ashldi3.o
  CC      spl/common/memsize.o
  AS      spl/arch/arm/lib/ashrdi3.o
  CC      spl/common/stdio.o
  CC      spl/lib/libfdt/fdt_sw.o
  CC      spl/common/cli.o
  LD      spl/arch/arm/mach-davinci/built-in.o
  CC      spl/common/command.o
  CC      spl/arch/arm/lib/div0.o
  AS      spl/arch/arm/lib/div64.o
  CC      spl/drivers/block/blk-uclass.o
  AS      spl/arch/arm/lib/lib1funcs.o
  CC      spl/lib/libfdt/fdt_rw.o
  CC      spl/common/s_record.o
  AS      spl/arch/arm/lib/lshrdi3.o
  LD      spl/disk/built-in.o
  CC      spl/lib/fdtdec.o
  CC      spl/drivers/core/device.o
  AS      spl/arch/arm/lib/muldi3.o
  CC      spl/drivers/core/fdtaddr.o
  AS      spl/arch/arm/lib/uldivmod.o
  CC      spl/arch/arm/lib/eabi_compat.o
  LD      spl/dts/built-in.o
  CC      spl/common/xyzModem.o
  CC      spl/drivers/mtd/nand/raw/nand_spl_simple.o
  AS      spl/arch/arm/lib/crt0_arm_efi.o
  CC      spl/arch/arm/lib/reloc_arm_efi.o
  LD      spl/drivers/block/built-in.o
  CC      spl/drivers/mtd/nand/raw/nand_spl_load.o
  CC      spl/fs/fs_internal.o
  LD      spl/arch/arm/lib/built-in.o
  AR      spl/arch/arm/lib/lib.a
  CC      spl/lib/libfdt/fdt_empty_tree.o
  LDS     spl/u-boot-spl.lds
  COPY    spl/u-boot-spl.dtb
  CC      spl/lib/libfdt/fdt_addresses.o
  CC      spl/lib/libfdt/fdt_ro.o
  CC      spl/drivers/core/lists.o
  CC      spl/drivers/core/root.o
  LD      spl/fs/built-in.o
  CC      spl/drivers/core/uclass.o
  CC      spl/drivers/mtd/nand/raw/nand_ecc.o
  CC      spl/drivers/mtd/nand/raw/nand_base.o
  LD      spl/common/built-in.o
  CC      spl/drivers/mtd/nand/raw/davinci_nand.o
  CC      spl/drivers/core/util.o
  CC      spl/lib/qsort.o
  CC      spl/drivers/core/simple-bus.o
  CC      spl/lib/hashtable.o
  CC      spl/lib/libfdt/fdt_region.o
  CC      spl/drivers/mtd/spi/sf-uclass.o
  CC      spl/drivers/mtd/spi/sf_probe.o
  CC      spl/drivers/serial/serial-uclass.o
  CC      spl/drivers/spi/spi-uclass.o
  CC      spl/drivers/core/dump.o
  CC      spl/drivers/core/of_extra.o
  CC      spl/drivers/mtd/spi/spi-nor-ids.o
  CC      spl/drivers/serial/ns16550.o
  CC      spl/lib/errno.o
  CC      spl/drivers/core/ofnode.o
  LD      spl/lib/libfdt/built-in.o
  CC      spl/lib/display_options.o
  CC      spl/drivers/mtd/spi/spi-nor-tiny.o
  CC      spl/drivers/spi/spi-mem.o
  CC      spl/lib/ctype.o
  CC      spl/lib/crc32.o
  CC      spl/lib/div64.o
  LD      spl/drivers/serial/built-in.o
  CC      spl/drivers/mtd/spi/sf_mtd.o
  CC      spl/drivers/spi/davinci_spi.o
  CC      spl/drivers/core/read_extra.o
  CC      spl/lib/hang.o
  CC      spl/lib/linux_compat.o
  LD      spl/drivers/mtd/spi/spi-nor.o
  CC      spl/lib/linux_string.o
  LD      spl/drivers/core/built-in.o
  CC      spl/lib/lmb.o
  CC      spl/lib/membuff.o
  LD      spl/drivers/mtd/spi/built-in.o
  CC      spl/lib/slre.o
  CC      spl/lib/string.o
  CC      spl/lib/tables_csum.o
  CC      spl/lib/time.o
  LD      spl/drivers/spi/built-in.o
  CC      spl/lib/hexdump.o
  CC      spl/lib/uuid.o
  CC      spl/lib/panic.o
  CC      spl/lib/tiny-printf.o
  CC      spl/lib/strto.o
  LD      spl/lib/built-in.o
  LD      spl/drivers/mtd/nand/raw/built-in.o
  LD      spl/drivers/built-in.o
  LD      spl/u-boot-spl
  OBJCOPY spl/u-boot-spl-nodtb.bin
  CAT     spl/u-boot-spl-dtb.bin
  COPY    spl/u-boot-spl.bin
  MKIMAGE spl/u-boot-spl.ais
  CAT     u-boot.ais
  CFGCHK  u-boot.cfg



> +CC Heiko
Marek Vasut July 29, 2019, 4:54 p.m. UTC | #6
On 7/29/19 6:05 PM, Adam Ford wrote:
> On Mon, Jul 29, 2019 at 9:38 AM Marek Vasut <marex@denx.de> wrote:
>>
>> On 7/29/19 3:19 PM, Adam Ford wrote:
>>> On Mon, Jul 29, 2019 at 7:30 AM Marek Vasut <marex@denx.de> wrote:
>>>>
>>>> On 7/29/19 2:16 PM, Adam Ford wrote:
>>>>> On Sun, Jun 30, 2019 at 5:21 PM Adam Ford <aford173@gmail.com> wrote:
>>>>>>
>>>>>> The omap3.dtsi file shows the usbhshost node with two sub-nodes
>>>>>> for ohci and ehci.  This patch file creates the usbhshost, and
>>>>>> pulls the portX-mode information.  It then locates the EHCI
>>>>>> sub-node, and initializes the EHCI controller with the info
>>>>>> pulled from the usbhshost node.
>>>>>>
>>>>>> There is still more to do since there isn't an actual link
>>>>>> between the 'phys' reference and the corresponding phy driver,
>>>>>> and there is no nop-xceiv driver yet.
>>>>>>
>>>>>> In the meantime, the older style reference to
>>>>>> CONFIG_OMAP_EHCI_PHYx_RESET_GPIO is still needed to pull
>>>>>> the phy out of reset until the phy driver is completed and the
>>>>>> phandle reference is made.
>>>>>>
>>>>>> Signed-off-by: Adam Ford <aford173@gmail.com>
>>>>>>
>>>>>
>>>>> Marek,
>>>>>
>>>>> Some subsequent patches that were depending on this have been applied
>>>>> already, but they cannot be really useful until this patch is applied.
>>>>> Is there any chance it can be applied?  It will give some of the OMAP3
>>>>> boards the USB EHCI functionality which has been lost for a little
>>>>> while.
>>>>
>>>> Sure, I am kinda busy and don't have enough free time to cope with this.
>>>> Moreover, u-boot-usb/master fails to build:
>>>> https://travis-ci.org/marex/u-boot-usb/builds/563567738
>>>>
>>>> Can you take a look whether it's this patchset that causes it ?
>>>
>>> Marek,
>>>
>>> I looked at the Travis logs, and it looks like the da850evm_nand and
>>> da850evm_direct_nor were failing, so I tried to clone
>>> git clone --depth=50 --branch=master
>>> https://github.com/marex/u-boot-usb.git marex/u-boot-usb based on line
>>> 846 of the Travis log.
>>>
>>> When I built da850evm_nand and da850evm_direct_nor, I could not
>>> replicate either the build error.
>>
>> I see, strange, I can replicate the error.
>>
>> $ make da850evm_nand_defconfig ; make -j9
>> ...
>> drivers/usb/host/ohci-hcd.c: In function ‘usb_lowlevel_init’:
>> drivers/usb/host/ohci-hcd.c:2056:35: error:
>> ‘CONFIG_SYS_USB_OHCI_REGS_BASE’ undeclared (first use in this function);
>> did you mean ‘CONFIG_SYS_USB_OHCI_CPU_INIT’?
>>   gohci.regs = (struct ohci_regs *)CONFIG_SYS_USB_OHCI_REGS_BASE;
>>                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>                                    CONFIG_SYS_USB_OHCI_CPU_INIT
>> drivers/usb/host/ohci-hcd.c:2056:35: note: each undeclared identifier is
>> reported only once for each function it appears in
>>   LD      drivers/usb/musb-new/built-in.o
>> drivers/usb/host/ohci-hcd.c:2060:20: error:
>> ‘CONFIG_SYS_USB_OHCI_SLOT_NAME’ undeclared (first use in this function);
>> did you mean ‘CONFIG_SYS_USB_OHCI_CPU_INIT’?
>>   gohci.slot_name = CONFIG_SYS_USB_OHCI_SLOT_NAME;
>>                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>                     CONFIG_SYS_USB_OHCI_CPU_INIT
>>   LD      drivers/mtd/spi/spi-nor.o
>> make[1]: *** [scripts/Makefile.build:279: drivers/usb/host/ohci-hcd.o]
>> Error 1
>> make: *** [Makefile:1594: drivers/usb/host] Error 2
>> make: *** Waiting for unfinished jobs....
>>
> 
> aford@aford-OptiPlex-7050:~/src/marex/u-boot-usb$ make da850evm_nand_defconfig
>   HOSTCC  scripts/basic/fixdep
>   HOSTCC  scripts/kconfig/conf.o
>   YACC    scripts/kconfig/zconf.tab.c
>   LEX     scripts/kconfig/zconf.lex.c
>   HOSTCC  scripts/kconfig/zconf.tab.o
>   HOSTLD  scripts/kconfig/conf
> #
> # configuration written to .config
> #
> aford@aford-OptiPlex-7050:~/src/marex/u-boot-usb$ make ARCH=arm
> CROSS_COMPILE="arm-linux-" -j8
> scripts/kconfig/conf  --syncconfig Kconfig
>   CHK     include/config.h

Are you sure you're building the correct tree ?

The current top commit is 9812437f976c025775ddd36eede30605d0607ba8
Adam Ford July 29, 2019, 5:39 p.m. UTC | #7
On Mon, Jul 29, 2019 at 11:54 AM Marek Vasut <marex@denx.de> wrote:
>
> On 7/29/19 6:05 PM, Adam Ford wrote:
> > On Mon, Jul 29, 2019 at 9:38 AM Marek Vasut <marex@denx.de> wrote:
> >>
> >> On 7/29/19 3:19 PM, Adam Ford wrote:
> >>> On Mon, Jul 29, 2019 at 7:30 AM Marek Vasut <marex@denx.de> wrote:
> >>>>
> >>>> On 7/29/19 2:16 PM, Adam Ford wrote:
> >>>>> On Sun, Jun 30, 2019 at 5:21 PM Adam Ford <aford173@gmail.com> wrote:
> >>>>>>
> >>>>>> The omap3.dtsi file shows the usbhshost node with two sub-nodes
> >>>>>> for ohci and ehci.  This patch file creates the usbhshost, and
> >>>>>> pulls the portX-mode information.  It then locates the EHCI
> >>>>>> sub-node, and initializes the EHCI controller with the info
> >>>>>> pulled from the usbhshost node.
> >>>>>>
> >>>>>> There is still more to do since there isn't an actual link
> >>>>>> between the 'phys' reference and the corresponding phy driver,
> >>>>>> and there is no nop-xceiv driver yet.
> >>>>>>
> >>>>>> In the meantime, the older style reference to
> >>>>>> CONFIG_OMAP_EHCI_PHYx_RESET_GPIO is still needed to pull
> >>>>>> the phy out of reset until the phy driver is completed and the
> >>>>>> phandle reference is made.
> >>>>>>
> >>>>>> Signed-off-by: Adam Ford <aford173@gmail.com>
> >>>>>>
> >>>>>
> >>>>> Marek,
> >>>>>
> >>>>> Some subsequent patches that were depending on this have been applied
> >>>>> already, but they cannot be really useful until this patch is applied.
> >>>>> Is there any chance it can be applied?  It will give some of the OMAP3
> >>>>> boards the USB EHCI functionality which has been lost for a little
> >>>>> while.
> >>>>
> >>>> Sure, I am kinda busy and don't have enough free time to cope with this.
> >>>> Moreover, u-boot-usb/master fails to build:
> >>>> https://travis-ci.org/marex/u-boot-usb/builds/563567738
> >>>>
> >>>> Can you take a look whether it's this patchset that causes it ?
> >>>
> >>> Marek,
> >>>
> >>> I looked at the Travis logs, and it looks like the da850evm_nand and
> >>> da850evm_direct_nor were failing, so I tried to clone
> >>> git clone --depth=50 --branch=master
> >>> https://github.com/marex/u-boot-usb.git marex/u-boot-usb based on line
> >>> 846 of the Travis log.
> >>>
> >>> When I built da850evm_nand and da850evm_direct_nor, I could not
> >>> replicate either the build error.
> >>
> >> I see, strange, I can replicate the error.
> >>
> >> $ make da850evm_nand_defconfig ; make -j9
> >> ...
> >> drivers/usb/host/ohci-hcd.c: In function ‘usb_lowlevel_init’:
> >> drivers/usb/host/ohci-hcd.c:2056:35: error:
> >> ‘CONFIG_SYS_USB_OHCI_REGS_BASE’ undeclared (first use in this function);
> >> did you mean ‘CONFIG_SYS_USB_OHCI_CPU_INIT’?
> >>   gohci.regs = (struct ohci_regs *)CONFIG_SYS_USB_OHCI_REGS_BASE;
> >>                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >>                                    CONFIG_SYS_USB_OHCI_CPU_INIT
> >> drivers/usb/host/ohci-hcd.c:2056:35: note: each undeclared identifier is
> >> reported only once for each function it appears in
> >>   LD      drivers/usb/musb-new/built-in.o
> >> drivers/usb/host/ohci-hcd.c:2060:20: error:
> >> ‘CONFIG_SYS_USB_OHCI_SLOT_NAME’ undeclared (first use in this function);
> >> did you mean ‘CONFIG_SYS_USB_OHCI_CPU_INIT’?
> >>   gohci.slot_name = CONFIG_SYS_USB_OHCI_SLOT_NAME;
> >>                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >>                     CONFIG_SYS_USB_OHCI_CPU_INIT
> >>   LD      drivers/mtd/spi/spi-nor.o
> >> make[1]: *** [scripts/Makefile.build:279: drivers/usb/host/ohci-hcd.o]
> >> Error 1
> >> make: *** [Makefile:1594: drivers/usb/host] Error 2
> >> make: *** Waiting for unfinished jobs....
> >>
> >
> > aford@aford-OptiPlex-7050:~/src/marex/u-boot-usb$ make da850evm_nand_defconfig
> >   HOSTCC  scripts/basic/fixdep
> >   HOSTCC  scripts/kconfig/conf.o
> >   YACC    scripts/kconfig/zconf.tab.c
> >   LEX     scripts/kconfig/zconf.lex.c
> >   HOSTCC  scripts/kconfig/zconf.tab.o
> >   HOSTLD  scripts/kconfig/conf
> > #
> > # configuration written to .config
> > #
> > aford@aford-OptiPlex-7050:~/src/marex/u-boot-usb$ make ARCH=arm
> > CROSS_COMPILE="arm-linux-" -j8
> > scripts/kconfig/conf  --syncconfig Kconfig
> >   CHK     include/config.h
>
> Are you sure you're building the correct tree ?
>
> The current top commit is 9812437f976c025775ddd36eede30605d0607ba8

Git log shows:

commit 9812437f976c025775ddd36eede30605d0607ba8 (HEAD -> master,
origin/master, origin/HEAD)
Author: Sam Protsenko <semen.protsenko@linaro.org>
Date:   Wed Jul 3 19:34:07 2019 +0300

    fastboot: Remove "bootloader-version" variable

    As per [1], there is no such fastboot variable as "bootloader-version".
    Only "version-bootloader" is supported. Let's reflect this and not
    confuse users further.

    [1] https://android.googlesource.com/platform/system/core/+/refs/tags/android-q-preview-4/fastboot/README.md

    Fixes: 3aab70afc531d1 ("usb/gadget: add the fastboot gadget")
    Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
    Reviewed-by: Eugeniu Rosca <erosca@de.adit-jv.com>
Heiko Schocher July 30, 2019, 5:08 a.m. UTC | #8
Hello Adam,

Am 29.07.2019 um 18:05 schrieb Adam Ford:
> On Mon, Jul 29, 2019 at 9:38 AM Marek Vasut <marex@denx.de> wrote:
>>
>> On 7/29/19 3:19 PM, Adam Ford wrote:
>>> On Mon, Jul 29, 2019 at 7:30 AM Marek Vasut <marex@denx.de> wrote:
>>>>
>>>> On 7/29/19 2:16 PM, Adam Ford wrote:
>>>>> On Sun, Jun 30, 2019 at 5:21 PM Adam Ford <aford173@gmail.com> wrote:
>>>>>>
>>>>>> The omap3.dtsi file shows the usbhshost node with two sub-nodes
>>>>>> for ohci and ehci.  This patch file creates the usbhshost, and
>>>>>> pulls the portX-mode information.  It then locates the EHCI
>>>>>> sub-node, and initializes the EHCI controller with the info
>>>>>> pulled from the usbhshost node.
>>>>>>
>>>>>> There is still more to do since there isn't an actual link
>>>>>> between the 'phys' reference and the corresponding phy driver,
>>>>>> and there is no nop-xceiv driver yet.
>>>>>>
>>>>>> In the meantime, the older style reference to
>>>>>> CONFIG_OMAP_EHCI_PHYx_RESET_GPIO is still needed to pull
>>>>>> the phy out of reset until the phy driver is completed and the
>>>>>> phandle reference is made.
>>>>>>
>>>>>> Signed-off-by: Adam Ford <aford173@gmail.com>
>>>>>>
>>>>>
>>>>> Marek,
>>>>>
>>>>> Some subsequent patches that were depending on this have been applied
>>>>> already, but they cannot be really useful until this patch is applied.
>>>>> Is there any chance it can be applied?  It will give some of the OMAP3
>>>>> boards the USB EHCI functionality which has been lost for a little
>>>>> while.
>>>>
>>>> Sure, I am kinda busy and don't have enough free time to cope with this.
>>>> Moreover, u-boot-usb/master fails to build:
>>>> https://travis-ci.org/marex/u-boot-usb/builds/563567738
>>>>
>>>> Can you take a look whether it's this patchset that causes it ?
>>>
>>> Marek,
>>>
>>> I looked at the Travis logs, and it looks like the da850evm_nand and
>>> da850evm_direct_nor were failing, so I tried to clone
>>> git clone --depth=50 --branch=master
>>> https://github.com/marex/u-boot-usb.git marex/u-boot-usb based on line
>>> 846 of the Travis log.
>>>
>>> When I built da850evm_nand and da850evm_direct_nor, I could not
>>> replicate either the build error.
>>
>> I see, strange, I can replicate the error.
>>
>> $ make da850evm_nand_defconfig ; make -j9
>> ...
>> drivers/usb/host/ohci-hcd.c: In function ‘usb_lowlevel_init’:
>> drivers/usb/host/ohci-hcd.c:2056:35: error:
>> ‘CONFIG_SYS_USB_OHCI_REGS_BASE’ undeclared (first use in this function);
>> did you mean ‘CONFIG_SYS_USB_OHCI_CPU_INIT’?
>>    gohci.regs = (struct ohci_regs *)CONFIG_SYS_USB_OHCI_REGS_BASE;
>>                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>                                     CONFIG_SYS_USB_OHCI_CPU_INIT
>> drivers/usb/host/ohci-hcd.c:2056:35: note: each undeclared identifier is
>> reported only once for each function it appears in
>>    LD      drivers/usb/musb-new/built-in.o
>> drivers/usb/host/ohci-hcd.c:2060:20: error:
>> ‘CONFIG_SYS_USB_OHCI_SLOT_NAME’ undeclared (first use in this function);
>> did you mean ‘CONFIG_SYS_USB_OHCI_CPU_INIT’?
>>    gohci.slot_name = CONFIG_SYS_USB_OHCI_SLOT_NAME;
>>                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>                      CONFIG_SYS_USB_OHCI_CPU_INIT
>>    LD      drivers/mtd/spi/spi-nor.o
>> make[1]: *** [scripts/Makefile.build:279: drivers/usb/host/ohci-hcd.o]
>> Error 1
>> make: *** [Makefile:1594: drivers/usb/host] Error 2
>> make: *** Waiting for unfinished jobs....
>>
> 
> aford@aford-OptiPlex-7050:~/src/marex/u-boot-usb$ make da850evm_nand_defconfig
>    HOSTCC  scripts/basic/fixdep
>    HOSTCC  scripts/kconfig/conf.o
>    YACC    scripts/kconfig/zconf.tab.c
>    LEX     scripts/kconfig/zconf.lex.c
>    HOSTCC  scripts/kconfig/zconf.tab.o
>    HOSTLD  scripts/kconfig/conf
> #
> # configuration written to .config
> #
> aford@aford-OptiPlex-7050:~/src/marex/u-boot-usb$ make ARCH=arm
> CROSS_COMPILE="arm-linux-" -j8
> scripts/kconfig/conf  --syncconfig Kconfig
>    CHK     include/config.h
>    UPD     include/config.h
>    CFG     u-boot.cfg
>    GEN     include/autoconf.mk.dep
>    CFG     spl/u-boot.cfg
>    GEN     include/autoconf.mk
>    GEN     spl/include/autoconf.mk
>    CHK     include/config/uboot.release
>    CHK     include/generated/timestamp_autogenerated.h
>    UPD     include/generated/timestamp_autogenerated.h
>    HOSTCC  scripts/dtc/dtc.o
>    HOSTCC  scripts/dtc/flattree.o
>    HOSTCC  scripts/dtc/fstree.o
>    HOSTCC  scripts/dtc/data.o
>    HOSTCC  scripts/dtc/treesource.o
>    HOSTCC  scripts/dtc/livetree.o
>    HOSTCC  scripts/dtc/srcpos.o
>    HOSTCC  scripts/dtc/checks.o
>    HOSTCC  scripts/dtc/util.o
>    LEX     scripts/dtc/dtc-lexer.lex.c
>    YACC    scripts/dtc/dtc-parser.tab.c
>    YACC    scripts/dtc/dtc-parser.tab.h
>    HOSTCC  scripts/dtc/dtc-parser.tab.o
>    HOSTCC  scripts/dtc/dtc-lexer.lex.o
>    UPD     include/config/uboot.release
>    CHK     include/generated/version_autogenerated.h
>    UPD     include/generated/version_autogenerated.h
>    HOSTLD  scripts/dtc/dtc
>    CC      lib/asm-offsets.s
>    CC      arch/arm/lib/asm-offsets.s
>    CHK     include/generated/generic-asm-offsets.h
>    UPD     include/generated/generic-asm-offsets.h
>    CHK     include/generated/asm-offsets.h
>    UPD     include/generated/asm-offsets.h
>    LDS     u-boot.lds
>    HOSTCC  tools/envcrc.o
>    WRAP    tools/lib/crc32.c
>    HOSTCC  tools/env/embedded.o
>    WRAP    tools/lib/sha1.c
>    HOSTCC  tools/gen_eth_addr
>    WRAP    tools/lib/crc8.c
>    HOSTCC  tools/img2srec
>    HOSTCC  tools/gen_ethaddr_crc.o
>    HOSTCC  tools/mkenvimage.o
>    HOSTCC  tools/os_support.o
>    HOSTCC  tools/lib/crc32.o
>    HOSTCC  tools/aisimage.o
>    HOSTCC  tools/atmelimage.o
>    WRAP    tools/common/bootm.c
>    HOSTCC  tools/default_image.o
>    WRAP    tools/lib/fdtdec_common.c
>    WRAP    tools/common/image.c
>    WRAP    tools/lib/fdtdec.c
>    HOSTCC  tools/imagetool.o
>    HOSTCC  tools/imximage.o
>    HOSTCC  tools/imx8image.o
>    HOSTCC  tools/imx8mimage.o
>    HOSTCC  tools/kwbimage.o
>    WRAP    tools/lib/md5.c
>    HOSTCC  tools/lpc32xximage.o
>    HOSTCC  tools/mxsimage.o
>    HOSTCC  tools/omapimage.o
>    HOSTCC  tools/pblimage.o
>    HOSTCC  tools/pbl_crc32.o
>    HOSTCC  tools/vybridimage.o
>    HOSTCC  tools/stm32image.o
>    WRAP    tools/lib/rc4.c
>    HOSTCC  tools/rkcommon.o
>    HOSTCC  tools/rkimage.o
>    HOSTCC  tools/rksd.o
>    HOSTCC  tools/rkspi.o
>    HOSTCC  tools/socfpgaimage.o
>    WRAP    tools/lib/crc16.c
>    HOSTCC  tools/lib/sha1.o
>    WRAP    tools/lib/sha256.c
>    WRAP    tools/common/hash.c
>    HOSTCC  tools/ublimage.o
>    HOSTCC  tools/zynqimage.o
>    HOSTCC  tools/zynqmpimage.o
>    HOSTCC  tools/zynqmpbif.o
>    HOSTCC  tools/libfdt/fdt.o
>    HOSTCC  tools/libfdt/fdt_wip.o
>    HOSTCC  tools/libfdt/fdt_sw.o
>    HOSTCC  tools/libfdt/fdt_strerror.o
>    HOSTCC  tools/libfdt/fdt_rw.o
>    HOSTCC  tools/libfdt/fdt_empty_tree.o
>    HOSTCC  tools/libfdt/fdt_addresses.o
>    HOSTCC  tools/libfdt/fdt_overlay.o
>    WRAP    tools/lib/libfdt/fdt_ro.c
>    WRAP    tools/lib/libfdt/fdt_region.c
>    HOSTCC  tools/gpimage.o
>    HOSTCC  tools/gpimage-common.o
>    HOSTCC  tools/mtk_image.o
>    HOSTCC  tools/dumpimage.o
>    HOSTCC  tools/common/bootm.o
>    HOSTCC  tools/lib/fdtdec_common.o
>    HOSTCC  tools/lib/fdtdec.o
>    HOSTCC  tools/common/image.o
>    HOSTCC  tools/lib/md5.o
>    HOSTCC  tools/lib/rc4.o
>    HOSTCC  tools/lib/crc16.o
>    HOSTCC  tools/lib/sha256.o
>    HOSTCC  tools/common/hash.o
>    HOSTCC  tools/lib/libfdt/fdt_ro.o
>    HOSTCC  tools/lib/libfdt/fdt_region.o
>    HOSTCC  tools/mkimage.o
>    HOSTCC  tools/proftool
>    HOSTCC  tools/fdtgrep.o
>    HOSTCC  tools/spl_size_limit
>    HOSTLD  tools/envcrc
>    HOSTCC  tools/lib/crc8.o
>    HOSTLD  tools/mkenvimage
>    HOSTLD  tools/gen_ethaddr_crc
>    HOSTLD  tools/dumpimage
>    HOSTLD  tools/mkimage
>    HOSTLD  tools/fdtgrep
>    LD      arch/arm/cpu/built-in.o
>    CC      arch/arm/cpu/arm926ejs/cpu.o
>    CC      arch/arm/cpu/arm926ejs/cache.o
>    AS      arch/arm/cpu/arm926ejs/start.o
>    CC      board/davinci/da8xxevm/da850evm.o
>    CC      arch/arm/mach-davinci/cpu.o
>    CC      arch/arm/mach-davinci/misc.o
>    AS      arch/arm/lib/vectors.o
>    AS      arch/arm/lib/crt0.o
>    CC      disk/part.o
>    CC      common/init/board_init.o
>    LD      arch/arm/cpu/arm926ejs/built-in.o
>    AS      arch/arm/lib/setjmp.o
>    CC      common/main.o
>    CC      arch/arm/mach-davinci/timer.o
>    LD      cmd/arm/built-in.o
>    LD      cmd/ti/built-in.o
>    CC      cmd/boot.o
>    AS      arch/arm/lib/relocate.o
>    LD      common/init/built-in.o
>    CC      disk/part_dos.o
>    CC      arch/arm/lib/bootm-fdt.o
>    LD      board/davinci/da8xxevm/built-in.o
>    CC      arch/arm/lib/bootm.o
>    CC      common/exports.o
>    CC      cmd/bootm.o
>    LD      drivers/adc/built-in.o
>    LD      drivers/ata/built-in.o
>    LD      drivers/axi/built-in.o
>    CC      arch/arm/lib/zimage.o
>    CC      drivers/block/blk-uclass.o
>    CC      arch/arm/mach-davinci/psc.o
>    CC      common/hash.o
>    CC      arch/arm/mach-davinci/pinmux.o
>    CC      arch/arm/mach-davinci/reset.o
>    AS      arch/arm/lib/memset.o
>    LD      disk/built-in.o
>    CC      cmd/help.o
>    CC      drivers/block/blkcache.o
>    LD      drivers/board/built-in.o
>    CC      common/cli_hush.o
>    AS      arch/arm/lib/memcpy.o
>    CC      arch/arm/lib/sections.o
>    CC      arch/arm/mach-davinci/da850_pinmux.o
>    CC      arch/arm/lib/stack.o
>    CC      cmd/version.o
>    LD      drivers/dma/ti/built-in.o
>    LD      drivers/dma/built-in.o
>    CC      arch/arm/lib/interrupts.o
>    CC      drivers/gpio/gpio-uclass.o
>    CC      drivers/gpio/da8xx_gpio.o
>    LD      arch/arm/mach-davinci/built-in.o
>    CC      arch/arm/lib/reset.o
>    CC      common/autoboot.o
>    LD      drivers/block/built-in.o
>    CC      cmd/blk_common.o
>    LD      drivers/cache/built-in.o
>    CC      drivers/core/device.o
>    CC      drivers/crypto/fsl/sec.o
>    CC      arch/arm/lib/cache.o
>    LD      drivers/crypto/rsa_mod_exp/built-in.o
>    CC      common/board_f.o
>    CC      drivers/core/fdtaddr.o
>    CC      cmd/source.o
>    LD      drivers/crypto/fsl/built-in.o
>    LD      drivers/crypto/built-in.o
>    CC      arch/arm/lib/cache-cp15.o
>    CC      arch/arm/lib/psci-dt.o
>    CC      cmd/bdinfo.o
>    CC      cmd/blkcache.o
>    LD      drivers/dfu/built-in.o
>    LD      drivers/firmware/built-in.o
>    CC      common/board_r.o
>    LD      drivers/gpio/built-in.o
>    AS      arch/arm/lib/ashldi3.o
>    CC      drivers/input/input.o
>    CC      cmd/bootefi.o
>    LD      drivers/mailbox/built-in.o
>    AS      arch/arm/lib/ashrdi3.o
>    CC      drivers/i2c/i2c-uclass.o
>    CC      drivers/core/lists.o
>    CC      arch/arm/lib/div0.o
>    LD      drivers/mtd/nand/built-in.o
>    CC      drivers/mtd/mtdcore.o
>    AS      arch/arm/lib/div64.o
>    CC      drivers/mtd/nand/raw/nand.o
>    AS      arch/arm/lib/lib1funcs.o
>    AS      arch/arm/lib/lshrdi3.o
>    CC      common/bootm.o
>    AS      arch/arm/lib/muldi3.o
>    CC      cmd/bootz.o
>    CC      drivers/core/root.o
>    CC      drivers/input/key_matrix.o
>    CC      drivers/mtd/nand/raw/nand_bbt.o
>    AS      arch/arm/lib/uldivmod.o
>    CC      arch/arm/lib/eabi_compat.o
>    CC      cmd/console.o
>    LD      drivers/i2c/built-in.o
>    CC      common/bootm_os.o
>    AS      arch/arm/lib/crt0_arm_efi.o
>    LD      drivers/input/built-in.o
>    CC      drivers/core/uclass.o
>    LD      drivers/memory/built-in.o
>    CC      cmd/dm.o
>    CC      arch/arm/lib/reloc_arm_efi.o
>    CC      cmd/echo.o
>    CC      common/fdt_support.o
>    LD      arch/arm/lib/built-in.o
>    AR      arch/arm/lib/lib.a
>    CC      common/miiphyutil.o
>    CC      drivers/mtd/mtd_uboot.o
>    LD      drivers/misc/built-in.o
>    CC      cmd/eeprom.o
>    LD      drivers/mtd/onenand/built-in.o
>    CC      drivers/mtd/spi/sf-uclass.o
>    LD      drivers/net/mscc_eswitch/built-in.o
>    LD      drivers/net/ti/built-in.o
>    LD      drivers/net/built-in.o
>    CC      cmd/elf.o
>    CC      cmd/exit.o
>    LD      drivers/mtd/built-in.o
>    CC      drivers/mtd/nand/raw/nand_ids.o
>    CC      drivers/core/util.o
>    CC      drivers/mtd/spi/sf_probe.o
>    CC      drivers/mtd/nand/raw/nand_util.o
>    CC      drivers/mtd/nand/raw/nand_ecc.o
>    CC      cmd/ext2.o
>    CC      drivers/mtd/nand/raw/nand_base.o
>    CC      drivers/core/device-remove.o
>    LD      drivers/net/phy/built-in.o
>    CC      drivers/mtd/spi/spi-nor-ids.o
>    CC      cmd/fat.o
>    CC      cmd/fdt.o
>    CC      drivers/mtd/spi/spi-nor-core.o
>    CC      cmd/fs.o
>    CC      drivers/core/simple-bus.o
>    CC      common/usb.o
>    LD      drivers/power/built-in.o
>    LD      drivers/power/battery/built-in.o
>    LD      drivers/power/domain/built-in.o
>    LD      drivers/power/fuel_gauge/built-in.o
>    CC      cmd/gpio.o
>    CC      cmd/i2c.o
>    LD      drivers/power/mfd/built-in.o
>    CC      drivers/core/dump.o
>    CC      drivers/core/of_extra.o
>    CC      drivers/core/ofnode.o
>    CC      cmd/itest.o
>    CC      drivers/mtd/spi/sf_mtd.o
>    CC      cmd/load.o
>    CC      common/usb_hub.o
>    CC      common/usb_storage.o
>    CC      common/splash.o
>    CC      cmd/mem.o
>    CC      drivers/core/read_extra.o
>    CC      cmd/mii.o
>    LD      drivers/core/built-in.o
>    CC      drivers/mmc/mmc.o
>    CC      common/cli_readline.o
>    LD      drivers/power/pmic/built-in.o
>    LD      drivers/mtd/spi/spi-nor.o
>    CC      drivers/mtd/nand/raw/nand_timings.o
>    CC      drivers/mtd/nand/raw/davinci_nand.o
>    LD      drivers/mtd/spi/built-in.o
>    LD      drivers/power/regulator/built-in.o
>    CC      drivers/serial/serial-uclass.o
>    CC      cmd/misc.o
>    CC      drivers/serial/ns16550.o
>    LD      drivers/pcmcia/built-in.o
>    CC      drivers/spi/spi-uclass.o
>    CC      common/cli_simple.o
>    CC      drivers/phy/phy-uclass.o
>    CC      cmd/mmc.o
>    CC      drivers/phy/phy-da8xx-usb.o
>    LD      drivers/serial/built-in.o
>    CC      drivers/usb/common/common.o
>    LD      drivers/phy/built-in.o
>    LD      drivers/usb/dwc3/built-in.o
>    LD      drivers/phy/allwinner/built-in.o
>    CC      common/hwconfig.o
>    LD      drivers/usb/emul/built-in.o
>    CC      drivers/spi/spi-mem.o
>    LD      drivers/usb/eth/built-in.o
>    CC      common/console.o
>    CC      common/dlmalloc.o
>    LD      drivers/usb/common/built-in.o
>    CC      common/malloc_simple.o
>    CC      drivers/mmc/mmc-uclass.o
>    CC      cmd/mtdparts.o
>    CC      drivers/spi/davinci_spi.o
>    CC      common/image.o
>    CC      common/image-fdt.o
>    CC      drivers/mmc/mmc_write.o
>    LD      drivers/mtd/nand/raw/built-in.o
>    CC      drivers/mmc/davinci_mmc.o
>    LD      drivers/spi/built-in.o
>    CC      drivers/usb/host/usb-uclass.o
>    CC      drivers/usb/host/ohci-hcd.o
>    CC      cmd/nand.o
>    CC      common/memsize.o
>    CC      drivers/usb/musb-new/musb_host.o
>    CC      drivers/usb/host/ohci-da8xx.o
>    LD      drivers/mmc/built-in.o
>    LD      drivers/phy/marvell/built-in.o
>    CC      common/stdio.o
>    LD      drivers/pinctrl/broadcom/built-in.o
>    LD      drivers/pinctrl/nxp/built-in.o
>    CC      drivers/pinctrl/pinctrl-uclass.o
>    CC      drivers/pinctrl/pinctrl-generic.o
>    LD      drivers/pwm/built-in.o
>    CC      drivers/pinctrl/pinctrl-single.o
>    CC      common/cli.o
>    CC      cmd/net.o
>    LD      drivers/reset/built-in.o
>    CC      cmd/nvedit_efi.o
>    CC      drivers/usb/musb-new/musb_core.o
>    LD      drivers/pinctrl/built-in.o
>    CC      drivers/rtc/date.o
>    CC      common/command.o
>    CC      drivers/usb/musb-new/musb_uboot.o
>    CC      drivers/usb/musb-new/da8xx.o
>    CC      drivers/rtc/rtc-lib.o
>    LD      drivers/usb/host/built-in.o
>    CC      cmd/part.o
>    CC      common/s_record.o
>    CC      common/xyzModem.o
>    LD      drivers/usb/musb/built-in.o
>    LD      drivers/usb/phy/built-in.o
>    CC      cmd/pinmux.o
>    LD      drivers/scsi/built-in.o
>    LD      drivers/usb/ulpi/built-in.o
>    LD      drivers/rtc/built-in.o
>    LD      drivers/smem/built-in.o
>    LD      drivers/soc/built-in.o
>    CC      env/common.o
>    CC      cmd/sf.o
>    LD      drivers/sound/built-in.o
>    CC      env/env.o
>    CC      fs/ext4/ext4fs.o
>    LD      drivers/usb/musb-new/built-in.o
>    LD      drivers/spmi/built-in.o
>    CC      fs/ext4/ext4_common.o
>    LD      drivers/sysreset/built-in.o
>    LD      drivers/thermal/built-in.o
>    LD      drivers/watchdog/built-in.o
>    LD      drivers/video/bridge/built-in.o
>    CC      env/attr.o
>    LD      drivers/video/sunxi/built-in.o
>    LD      drivers/video/built-in.o
>    LD      common/built-in.o
>    LD      drivers/built-in.o
>    CC      cmd/spi.o
>    CC      fs/ext4/dev.o
>    CC      env/callback.o
>    CC      fs/fat/fat.o
>    CC      env/flags.o
>    CC      cmd/test.o
>    CC      env/nand.o
>    CC      fs/fs.o
>    CC      net/checksum.o
>    CC      lib/efi_driver/efi_uclass.o
>    CC      cmd/usb.o
>    LD      fs/ext4/built-in.o
>    CC      lib/efi_driver/efi_block_device.o
>    CC      net/arp.o
>    LD      env/built-in.o
>    CC      cmd/disk.o
>    CC      lib/efi_loader/efi_bootmgr.o
>    CC      lib/libfdt/fdt.o
>    LD      lib/efi_driver/built-in.o
>    CC      net/bootp.o
>    CC      net/eth-uclass.o
>    CC      lib/efi_loader/efi_boottime.o
>    LD      fs/fat/built-in.o
>    CC      fs/fs_internal.o
>    CC      cmd/ximg.o
>    CC      cmd/nvedit.o
>    CC      lib/libfdt/fdt_wip.o
>    CC      lib/zlib/zlib.o
>    LD      fs/built-in.o
>    CC      lib/libfdt/fdt_strerror.o
>    CC      lib/charset.o
>    CC      lib/crc7.o
>    CC      lib/libfdt/fdt_sw.o
>    CC      lib/libfdt/fdt_rw.o
>    CC      net/eth_common.o
>    CC      lib/crc8.o
>    CC      lib/crc16.o
>    CC      net/net.o
>    CC      net/nfs.o
>    CC      lib/smbios.o
>    CC      lib/libfdt/fdt_empty_tree.o
>    LD      cmd/built-in.o
>    CC      lib/ldiv.o
>    CC      lib/libfdt/fdt_addresses.o
>    CC      lib/net_utils.o
>    CC      lib/rc4.o
>    CC      lib/libfdt/fdt_ro.o
>    CC      lib/libfdt/fdt_region.o
>    CC      lib/list_sort.o
>    CC      net/ping.o
>    CC      lib/efi_loader/efi_console.o
>    CC      lib/gunzip.o
>    CC      net/tftp.o
>    CC      lib/efi_loader/efi_device_path.o
>    CC      lib/efi_loader/efi_device_path_to_text.o
>    CC      lib/fdtdec_common.o
>    LD      lib/libfdt/built-in.o
>    CC      lib/fdtdec.o
>    CC      lib/efi_loader/efi_device_path_utilities.o
>    CC      lib/efi_loader/efi_file.o
>    LD      lib/zlib/built-in.o
>    LD      net/built-in.o
>    CC      lib/qsort.o
>    CC      lib/efi_loader/efi_hii.o
>    CC      lib/hashtable.o
>    CC      lib/errno.o
>    CC      lib/efi_loader/efi_hii_config.o
>    CC      lib/display_options.o
>    CC      lib/efi_loader/efi_image_loader.o
>    CC      lib/efi_loader/efi_memory.o
>    CC      lib/efi_loader/efi_root_node.o
>    CC      lib/efi_loader/efi_runtime.o
>    CC      lib/efi_loader/efi_setup.o
>    CC      lib/crc32.o
>    CC      lib/efi_loader/efi_unicode_collation.o
>    CC      lib/efi_loader/efi_variable.o
>    CC      lib/ctype.o
>    CC      lib/efi_loader/efi_watchdog.o
>    CC      lib/div64.o
>    CC      lib/efi_loader/efi_disk.o
>    CC      lib/efi_loader/efi_net.o
>    CC      lib/hang.o
>    CC      lib/linux_compat.o
>    CC      lib/linux_string.o
>    CC      lib/lmb.o
>    CC      lib/efi_loader/efi_smbios.o
>    CC      lib/membuff.o
>    CC      lib/slre.o
>    CC      lib/efi_loader/helloworld.o
>    AS      lib/efi_loader/efi_crt0.o
>    CC      lib/efi_loader/efi_reloc.o
>    CC      lib/efi_loader/efi_freestanding.o
>    CC      lib/string.o
>    CC      lib/tables_csum.o
>    CC      lib/time.o
>    CC      lib/hexdump.o
>    CC      lib/uuid.o
>    LD      lib/efi_loader/built-in.o
>    CC      lib/panic.o
>    LD      lib/efi_loader/helloworld_efi.so
>    OBJCOPY lib/efi_loader/helloworld.efi
>    CC      lib/vsprintf.o
>    CC      lib/strto.o
>    CC      lib/strmhz.o
>    LD      lib/built-in.o
>    CC      examples/standalone/hello_world.o
>    CC      examples/standalone/stubs.o
>    LD      examples/standalone/libstubs.o
>    LD      examples/standalone/hello_world
>    OBJCOPY examples/standalone/hello_world.srec
>    OBJCOPY examples/standalone/hello_world.bin
>    LD      u-boot
>    OBJCOPY u-boot-nodtb.bin
>    OBJCOPY u-boot.srec
>    SYM     u-boot.sym
>    DTC     arch/arm/dts/da850-lcdk.dtb
>    DTC     arch/arm/dts/da850-lego-ev3.dtb
>    DTC     arch/arm/dts/da850-evm.dtb
>    SHIPPED dts/dt.dtb
>    FDTGREP dts/dt-spl.dtb
>    CAT     u-boot-dtb.bin
>    COPY    u-boot.dtb
>    COPY    u-boot.bin
>    MKIMAGE u-boot.img
>    MKIMAGE u-boot-dtb.img
>    LD      spl/arch/arm/cpu/built-in.o
>    CC      spl/board/davinci/da8xxevm/da850evm.o
>    CC      spl/common/init/board_init.o
>    CC      spl/arch/arm/cpu/arm926ejs/cpu.o
>    CC      spl/arch/arm/cpu/arm926ejs/cache.o
>    CC      spl/common/spl/spl.o
>    CC      spl/arch/arm/mach-davinci/cpu.o
>    AS      spl/arch/arm/lib/vectors.o
>    CC      spl/common/fdt_support.o
>    CC      spl/common/usb.o
>    LD      spl/common/init/built-in.o
>    AS      spl/arch/arm/lib/crt0.o
>    AS      spl/arch/arm/cpu/arm926ejs/start.o
>    CC      spl/common/hwconfig.o
>    CC      spl/arch/arm/mach-davinci/misc.o
>    AS      spl/arch/arm/lib/setjmp.o
>    LD      spl/arch/arm/cpu/arm926ejs/built-in.o
>    CC      spl/arch/arm/lib/spl.o
>    CC      spl/common/console.o
>    LD      spl/board/davinci/da8xxevm/built-in.o
>    CC      spl/common/spl/spl_nand.o
>    LD      spl/cmd/ti/built-in.o
>    CC      spl/arch/arm/mach-davinci/timer.o
>    CC      spl/cmd/nvedit.o
>    CC      spl/arch/arm/lib/zimage.o
>    CC      spl/common/dlmalloc.o
>    CC      spl/arch/arm/lib/bootm-fdt.o
>    CC      spl/common/spl/spl_spi.o
>    CC      spl/common/malloc_simple.o
>    CC      spl/arch/arm/mach-davinci/psc.o
>    LD      spl/cmd/built-in.o
>    AS      spl/arch/arm/lib/memset.o
>    CC      spl/env/common.o
>    AS      spl/arch/arm/lib/memcpy.o
>    CC      spl/env/env.o
>    LD      spl/common/spl/built-in.o
>    CC      spl/arch/arm/lib/sections.o
>    CC      spl/arch/arm/mach-davinci/pinmux.o
>    CC      spl/arch/arm/lib/stack.o
>    CC      spl/arch/arm/lib/interrupts.o
>    CC      spl/arch/arm/mach-davinci/reset.o
>    CC      spl/common/image.o
>    CC      spl/disk/part.o
>    CC      spl/lib/fdtdec_common.o
>    LD      spl/env/built-in.o
>    CC      spl/arch/arm/lib/reset.o
>    CC      spl/lib/libfdt/fdt.o
>    CC      spl/arch/arm/lib/cache.o
>    CC      spl/arch/arm/mach-davinci/da850_pinmux.o
>    CC      spl/arch/arm/mach-davinci/spl.o
>    CC      spl/arch/arm/mach-davinci/da850_lowlevel.o
>    CC      spl/common/image-fdt.o
>    CC      spl/arch/arm/lib/cache-cp15.o
>    CC      spl/arch/arm/lib/psci-dt.o
>    CC      spl/lib/libfdt/fdt_wip.o
>    CC      spl/lib/libfdt/fdt_strerror.o
>    CC      spl/disk/part_dos.o
>    AS      spl/arch/arm/lib/ashldi3.o
>    CC      spl/common/memsize.o
>    AS      spl/arch/arm/lib/ashrdi3.o
>    CC      spl/common/stdio.o
>    CC      spl/lib/libfdt/fdt_sw.o
>    CC      spl/common/cli.o
>    LD      spl/arch/arm/mach-davinci/built-in.o
>    CC      spl/common/command.o
>    CC      spl/arch/arm/lib/div0.o
>    AS      spl/arch/arm/lib/div64.o
>    CC      spl/drivers/block/blk-uclass.o
>    AS      spl/arch/arm/lib/lib1funcs.o
>    CC      spl/lib/libfdt/fdt_rw.o
>    CC      spl/common/s_record.o
>    AS      spl/arch/arm/lib/lshrdi3.o
>    LD      spl/disk/built-in.o
>    CC      spl/lib/fdtdec.o
>    CC      spl/drivers/core/device.o
>    AS      spl/arch/arm/lib/muldi3.o
>    CC      spl/drivers/core/fdtaddr.o
>    AS      spl/arch/arm/lib/uldivmod.o
>    CC      spl/arch/arm/lib/eabi_compat.o
>    LD      spl/dts/built-in.o
>    CC      spl/common/xyzModem.o
>    CC      spl/drivers/mtd/nand/raw/nand_spl_simple.o
>    AS      spl/arch/arm/lib/crt0_arm_efi.o
>    CC      spl/arch/arm/lib/reloc_arm_efi.o
>    LD      spl/drivers/block/built-in.o
>    CC      spl/drivers/mtd/nand/raw/nand_spl_load.o
>    CC      spl/fs/fs_internal.o
>    LD      spl/arch/arm/lib/built-in.o
>    AR      spl/arch/arm/lib/lib.a
>    CC      spl/lib/libfdt/fdt_empty_tree.o
>    LDS     spl/u-boot-spl.lds
>    COPY    spl/u-boot-spl.dtb
>    CC      spl/lib/libfdt/fdt_addresses.o
>    CC      spl/lib/libfdt/fdt_ro.o
>    CC      spl/drivers/core/lists.o
>    CC      spl/drivers/core/root.o
>    LD      spl/fs/built-in.o
>    CC      spl/drivers/core/uclass.o
>    CC      spl/drivers/mtd/nand/raw/nand_ecc.o
>    CC      spl/drivers/mtd/nand/raw/nand_base.o
>    LD      spl/common/built-in.o
>    CC      spl/drivers/mtd/nand/raw/davinci_nand.o
>    CC      spl/drivers/core/util.o
>    CC      spl/lib/qsort.o
>    CC      spl/drivers/core/simple-bus.o
>    CC      spl/lib/hashtable.o
>    CC      spl/lib/libfdt/fdt_region.o
>    CC      spl/drivers/mtd/spi/sf-uclass.o
>    CC      spl/drivers/mtd/spi/sf_probe.o
>    CC      spl/drivers/serial/serial-uclass.o
>    CC      spl/drivers/spi/spi-uclass.o
>    CC      spl/drivers/core/dump.o
>    CC      spl/drivers/core/of_extra.o
>    CC      spl/drivers/mtd/spi/spi-nor-ids.o
>    CC      spl/drivers/serial/ns16550.o
>    CC      spl/lib/errno.o
>    CC      spl/drivers/core/ofnode.o
>    LD      spl/lib/libfdt/built-in.o
>    CC      spl/lib/display_options.o
>    CC      spl/drivers/mtd/spi/spi-nor-tiny.o
>    CC      spl/drivers/spi/spi-mem.o
>    CC      spl/lib/ctype.o
>    CC      spl/lib/crc32.o
>    CC      spl/lib/div64.o
>    LD      spl/drivers/serial/built-in.o
>    CC      spl/drivers/mtd/spi/sf_mtd.o
>    CC      spl/drivers/spi/davinci_spi.o
>    CC      spl/drivers/core/read_extra.o
>    CC      spl/lib/hang.o
>    CC      spl/lib/linux_compat.o
>    LD      spl/drivers/mtd/spi/spi-nor.o
>    CC      spl/lib/linux_string.o
>    LD      spl/drivers/core/built-in.o
>    CC      spl/lib/lmb.o
>    CC      spl/lib/membuff.o
>    LD      spl/drivers/mtd/spi/built-in.o
>    CC      spl/lib/slre.o
>    CC      spl/lib/string.o
>    CC      spl/lib/tables_csum.o
>    CC      spl/lib/time.o
>    LD      spl/drivers/spi/built-in.o
>    CC      spl/lib/hexdump.o
>    CC      spl/lib/uuid.o
>    CC      spl/lib/panic.o
>    CC      spl/lib/tiny-printf.o
>    CC      spl/lib/strto.o
>    LD      spl/lib/built-in.o
>    LD      spl/drivers/mtd/nand/raw/built-in.o
>    LD      spl/drivers/built-in.o
>    LD      spl/u-boot-spl
>    OBJCOPY spl/u-boot-spl-nodtb.bin
>    CAT     spl/u-boot-spl-dtb.bin
>    COPY    spl/u-boot-spl.bin
>    MKIMAGE spl/u-boot-spl.ais
>    CAT     u-boot.ais
>    CFGCHK  u-boot.cfg
> 
> 
> 
>> +CC Heiko
> 

Same for me here for "da850_am18xxevm_defconfig", "da850evm_nand_defconfig"
and "da850evm_direct_nor_defconfig", based on current u-boot-usb.git:

* 9812437f97 - (HEAD -> master, origin/master, origin/HEAD) fastboot: Remove "bootloader-version" 
variable (vor 16 Stunden) <Sam Protsenko>

Hmm.. strange. Some toolchain problem?

I use the toolchain buildman fetches for arm:

hs@xmglap:u-boot-usb  [master] $ ./tools/buildman/buildman --list-tool-chains
List of available toolchains (2):
arm       : /home/hs/.buildman-toolchains/gcc-7.3.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc
powerpc   : /home/hs/.buildman-toolchains/gcc-7.3.0-nolibc/powerpc-linux/bin/powerpc-linux-gcc

hs@xmglap:u-boot-usb  [master] $
same as on travis build:

https://travis-ci.org/marex/u-boot-usb/jobs/563567741#L1024

and for me, buildman build also works (Ok, beside warnings ... board
should be moved to DM):

hs@xmglap:u-boot-usb  [master] $ ./tools/buildman/buildman -Vde 
--boards=da850evm_nand,da850_am18xxevm,da850evm_direct_nor
boards.cfg is up to date. Nothing to do.
Building current source for 3 boards (3 threads, 3 jobs per thread)
        arm:  w+   da850_am18xxevm
+===================== WARNING ======================
+This board uses CONFIG_DM_I2C_COMPAT. Please remove
+(possibly in a subsequent patch in your series)
+before sending patches to the mailing list.
+====================================================
+This board does not use CONFIG_DM_MMC. Please update
+the board to use CONFIG_DM_MMC before the v2019.04 release.
+Failure to update by the deadline may result in board removal.
+See doc/driver-model/MIGRATION.txt for more info.
+This board does not use CONFIG_DM_USB. Please update
+the board to use CONFIG_DM_USB before the v2019.07 release.
     2    1    0 /3      0:00:08  : da850evm_nand
hs@xmglap:u-boot-usb  [master] $

bye,
Heiko
Marek Vasut July 30, 2019, 12:04 p.m. UTC | #9
On 7/30/19 7:08 AM, Heiko Schocher wrote:

[...]

https://travis-ci.org/marex/u-boot-usb/builds/564952927

Still fails, now it fails elsewhere though.
Heiko Schocher July 30, 2019, 1:04 p.m. UTC | #10
Hello Marek,

Am 30.07.2019 um 14:04 schrieb Marek Vasut:
> On 7/30/19 7:08 AM, Heiko Schocher wrote:
> 
> [...]
> 
> https://travis-ci.org/marex/u-boot-usb/builds/564952927
> 
> Still fails, now it fails elsewhere though.

Hmm.. it does not fail anymore for the
"buildman arm926ejs (non-NXP,siemens,at91,kirkwood,spear)" job!

Ah [1] was based on commit "f0bfa096dd5c2"

Your new travis build is based on commit "9812437f976c" ...

And there are now no problems with
"buildman arm926ejs (non-NXP,siemens,at91,kirkwood,spear)"
job!

good ... remaining in both builds problems with:

- buildman catch-all AArch64

    aarch64:  w+   puma-rk3399
+WARNING: BL31 file bl31.bin NOT found, resulting binary is non-functional
+Please read Building section in doc/README.rockchip
+WARNING: PMUM0 file rk3399m0.bin NOT found, resulting binary is non-functional
    aarch64:  +   u200
+drivers/usb/gadget/udc/built-in.o: In function `usb_gadget_register_driver':
+drivers/usb/gadget/udc/udc-core.c:325: multiple definition of `usb_gadget_register_driver'
+drivers/usb/gadget/built-in.o:drivers/usb/gadget/dwc2_udc_otg.c:238: first defined here
+drivers/usb/gadget/udc/built-in.o: In function `usb_gadget_unregister_driver':
+drivers/usb/gadget/udc/udc-core.c:334: multiple definition of `usb_gadget_unregister_driver'
+drivers/usb/gadget/built-in.o:drivers/usb/gadget/dwc2_udc_otg.c:287: first defined here
+make[1]: *** [u-boot] Error 1
+make: *** [sub-make] Error 2

   seems like a config problem ... both C files define the same function.

- buildman rockchip
   same problem as above

bye,
Heiko

[1] travis build based on "f0bfa096dd5c2"
https://travis-ci.org/marex/u-boot-usb/builds/563567738
Heiko Schocher July 30, 2019, 2:01 p.m. UTC | #11
Hello Marek, Jean,

as travis build for u-boot-usb.git still fails, see

https://travis-ci.org/marex/u-boot-usb/builds/564952927

just did a bisect (tried to build u200 board) on u-boot-usb.git master:

Reason for build failure is:

67ebbc98a19c35eb42e0fbdb00983ea548647c9d is the first bad commit
commit 67ebbc98a19c35eb42e0fbdb00983ea548647c9d
Author: Jean-Jacques Hiblot <jjhiblot@ti.com>
Date:   Thu Jun 27 15:06:29 2019 +0200

     usb: dwc3: Kconfig: get rid of obsolete mode selection

     The mode selection for the DWC3 is kind of obsolete. The driver does not
     have to be host only or gadget only. This choice is confusing.
     All the remaining callers of dwc3_uboot_init() explicitly set dr_mode
     before calling the function, so none rely on a default behavior.

     Remove the choice menu and keep only the USB_DWC3_GADGET option. Enable it
     by default if USB_GADGET and USB_DWC3 are enabled.
     It must be disabled for the evb-rk3328 as it uses DWC2 for the gadget and
     DWC3 for the host.

     Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>

:040000 040000 8eccbadb6c99f6e723989838d7052e9ee9685fb7 4f968001c148a3d0361463dff85f3e6eb4481495 M 
    configs
:040000 040000 6ab49bab2c8ef2b48504ed9f5c921a2c9b34f928 8f071c247ecdf431020bb786c1aea35d328e84b3 M 
    drivers
hs@xmglap:u-boot-usb  [(kein Branch, binäre Suche begonnen bei master)] $ git bisect history
Verwendung: git bisect [help|start|bad|good|new|old|terms|skip|next|reset|visualize|replay|log|run]
hs@xmglap:u-boot-usb  [(kein Branch, binäre Suche begonnen bei master)] $ git bisect visualize
hs@xmglap:u-boot-usb  [(kein Branch, binäre Suche begonnen bei master)] $ git bisect log
git bisect start
# good: [75551c8bfc9545e31ec2ce238cac3857904007b8] Merge branch '2019-07-26-ti-imports'
git bisect good 75551c8bfc9545e31ec2ce238cac3857904007b8
# bad: [9812437f976c025775ddd36eede30605d0607ba8] fastboot: Remove "bootloader-version" variable
git bisect bad 9812437f976c025775ddd36eede30605d0607ba8
# bad: [942c5da4b141b670d1eefdd650dd3d08648e6c80] configs: k2g_evm_defconfig: disable XHCI_DWC3 and 
enable KEYSTONE_USB_PHY
git bisect bad 942c5da4b141b670d1eefdd650dd3d08648e6c80
# good: [14b619de1fa7417018c8a560a92ce6ed89b567f2] usb: dwc3-generic: add a new host driver that 
uses the dwc3 core
git bisect good 14b619de1fa7417018c8a560a92ce6ed89b567f2
# bad: [67ebbc98a19c35eb42e0fbdb00983ea548647c9d] usb: dwc3: Kconfig: get rid of obsolete mode selection
git bisect bad 67ebbc98a19c35eb42e0fbdb00983ea548647c9d
# good: [2cbadc18b019d0276618e4d4907bf27753d7ce07] usb: dwc3: Add dwc3_of_parse() to get quirks 
information from DT
git bisect good 2cbadc18b019d0276618e4d4907bf27753d7ce07
# first bad commit: [67ebbc98a19c35eb42e0fbdb00983ea548647c9d] usb: dwc3: Kconfig: get rid of 
obsolete mode selection
hs@xmglap:u-boot-usb  [(kein Branch, binäre Suche begonnen bei master)] $

@Jean: Can you please check, and fix the boards which fail?

Thanks!

bye,
Heiko

Am 30.07.2019 um 15:04 schrieb Heiko Schocher:
> Hello Marek,
> 
> Am 30.07.2019 um 14:04 schrieb Marek Vasut:
>> On 7/30/19 7:08 AM, Heiko Schocher wrote:
>>
>> [...]
>>
>> https://travis-ci.org/marex/u-boot-usb/builds/564952927
>>
>> Still fails, now it fails elsewhere though.
> 
> Hmm.. it does not fail anymore for the
> "buildman arm926ejs (non-NXP,siemens,at91,kirkwood,spear)" job!
> 
> Ah [1] was based on commit "f0bfa096dd5c2"
> 
> Your new travis build is based on commit "9812437f976c" ...
> 
> And there are now no problems with
> "buildman arm926ejs (non-NXP,siemens,at91,kirkwood,spear)"
> job!
> 
> good ... remaining in both builds problems with:
> 
> - buildman catch-all AArch64
> 
>     aarch64:  w+   puma-rk3399
> +WARNING: BL31 file bl31.bin NOT found, resulting binary is non-functional
> +Please read Building section in doc/README.rockchip
> +WARNING: PMUM0 file rk3399m0.bin NOT found, resulting binary is non-functional
>     aarch64:  +   u200
> +drivers/usb/gadget/udc/built-in.o: In function `usb_gadget_register_driver':
> +drivers/usb/gadget/udc/udc-core.c:325: multiple definition of `usb_gadget_register_driver'
> +drivers/usb/gadget/built-in.o:drivers/usb/gadget/dwc2_udc_otg.c:238: first defined here
> +drivers/usb/gadget/udc/built-in.o: In function `usb_gadget_unregister_driver':
> +drivers/usb/gadget/udc/udc-core.c:334: multiple definition of `usb_gadget_unregister_driver'
> +drivers/usb/gadget/built-in.o:drivers/usb/gadget/dwc2_udc_otg.c:287: first defined here
> +make[1]: *** [u-boot] Error 1
> +make: *** [sub-make] Error 2
> 
>    seems like a config problem ... both C files define the same function.
> 
> - buildman rockchip
>    same problem as above
> 
> bye,
> Heiko
> 
> [1] travis build based on "f0bfa096dd5c2"
> https://travis-ci.org/marex/u-boot-usb/builds/563567738
>
diff mbox series

Patch

diff --git a/arch/arm/include/asm/ehci-omap.h b/arch/arm/include/asm/ehci-omap.h
index 1549f7bf21..f970bba937 100644
--- a/arch/arm/include/asm/ehci-omap.h
+++ b/arch/arm/include/asm/ehci-omap.h
@@ -123,6 +123,7 @@  struct omap_ehci {
 	u32 insreg08;		/* 0xb0 */
 };
 
+#if !CONFIG_IS_ENABLED(DM_USB) || !CONFIG_IS_ENABLED(OF_CONTROL)
 /*
  * FIXME: forward declaration of this structs needed because omap got the
  * ehci implementation backwards. move out ehci_hcd_x from board files
@@ -133,5 +134,6 @@  struct ehci_hcor;
 int omap_ehci_hcd_init(int index, struct omap_usbhs_board_data *usbhs_pdata,
 		       struct ehci_hccr **hccr, struct ehci_hcor **hcor);
 int omap_ehci_hcd_stop(void);
+#endif
 
 #endif /* _OMAP_COMMON_EHCI_H_ */
diff --git a/drivers/usb/host/ehci-omap.c b/drivers/usb/host/ehci-omap.c
index ab459c8cc9..bf83a4adb3 100644
--- a/drivers/usb/host/ehci-omap.c
+++ b/drivers/usb/host/ehci-omap.c
@@ -9,7 +9,6 @@ 
  *	Shashi Ranjan <shashiranjanmca05@gmail.com>
  *
  */
-
 #include <common.h>
 #include <usb.h>
 #include <usb/ulpi.h>
@@ -18,6 +17,10 @@ 
 #include <asm/gpio.h>
 #include <asm/arch/ehci.h>
 #include <asm/ehci-omap.h>
+#include <dm.h>
+#include <dm/device-internal.h>
+#include <dm/lists.h>
+#include <power/regulator.h>
 
 #include "ehci.h"
 
@@ -177,8 +180,13 @@  int omap_ehci_hcd_stop(void)
  * Based on "drivers/usb/host/ehci-omap.c" from Linux 3.1
  * See there for additional Copyrights.
  */
+#if !CONFIG_IS_ENABLED(DM_USB) || !CONFIG_IS_ENABLED(OF_CONTROL)
+
 int omap_ehci_hcd_init(int index, struct omap_usbhs_board_data *usbhs_pdata,
 		       struct ehci_hccr **hccr, struct ehci_hcor **hcor)
+#else
+int omap_ehci_hcd_init(int index, struct omap_usbhs_board_data *usbhs_pdata)
+#endif
 {
 	int ret;
 	unsigned int i, reg = 0, rev = 0;
@@ -285,10 +293,130 @@  int omap_ehci_hcd_init(int index, struct omap_usbhs_board_data *usbhs_pdata,
 	for (i = 0; i < OMAP_HS_USB_PORTS; i++)
 		if (is_ehci_phy_mode(usbhs_pdata->port_mode[i]))
 			omap_ehci_soft_phy_reset(i);
-
+#if !CONFIG_IS_ENABLED(DM_USB) || !CONFIG_IS_ENABLED(OF_CONTROL)
 	*hccr = (struct ehci_hccr *)(OMAP_EHCI_BASE);
 	*hcor = (struct ehci_hcor *)(OMAP_EHCI_BASE + 0x10);
+#endif
 
 	debug("OMAP EHCI init done\n");
 	return 0;
 }
+
+#if CONFIG_IS_ENABLED(DM_USB)
+
+struct ehci_omap_priv_data {
+	struct ehci_ctrl ctrl;
+	struct omap_ehci *ehci;
+#ifdef CONFIG_DM_REGULATOR
+	struct udevice *vbus_supply;
+#endif
+	enum usb_init_type init_type;
+	int portnr;
+	struct phy phy[OMAP_HS_USB_PORTS];
+	int nports;
+};
+
+static struct omap_usbhs_board_data usbhs_bdata = {
+	.port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED,
+	.port_mode[1] = OMAP_USBHS_PORT_MODE_UNUSED,
+	.port_mode[2] = OMAP_USBHS_PORT_MODE_UNUSED,
+};
+
+/* Match this order enums usbhs_omap_port_mode */
+static char *phy_strings[] = {
+	"",
+	"ehci-phy",
+	"ehci-tll",
+	"ehci-hsic",
+};
+
+static int find_phy_mode(const char *phy_type)
+{
+	int i;
+
+	for (i = 0; i < OMAP_HS_USB_PORTS; i++) {
+		if (!strcmp(phy_type, phy_strings[i]))
+			return i;
+	}
+	return 0;
+}
+
+static const struct ehci_ops omap_ehci_ops = {
+};
+
+static int ehci_usb_probe(struct udevice *dev)
+{
+	struct usb_platdata *plat = dev_get_platdata(dev);
+	const void *fdt = gd->fdt_blob;
+	struct omap_ehci *ehci;
+	struct ehci_omap_priv_data *priv = dev_get_priv(dev);
+	struct ehci_hccr *hccr;
+	struct ehci_hcor *hcor;
+	ofnode node;
+	ofnode parent_node = dev->node;
+	int ret = -1;
+	int off, i;
+	const char *mode;
+	char prop[11];
+
+	priv->ehci = (struct omap_ehci *)devfdt_get_addr(dev);
+	priv->portnr = dev->seq;
+	priv->init_type = plat->init_type;
+
+	/* Go through each port portX-mode to determing phy mode */
+	for (i = 0; i < 3; i++) {
+		snprintf(prop, sizeof(prop), "port%d-mode", i + 1);
+		mode = dev_read_string(dev, prop);
+		if (mode)
+			usbhs_bdata.port_mode[i] = find_phy_mode(mode);
+	}
+
+	ofnode_for_each_subnode(node, parent_node) {
+		/* Locate node for ti,ehci-omap */
+		off = ofnode_to_offset(node);
+		ret = fdt_node_check_compatible(fdt, off, "ti,ehci-omap");
+
+		if (!ret) {
+			/* If EHCI node is found, set the pointer to it */
+			ehci = (struct omap_ehci *)ofnode_get_addr(node);
+			hccr = (struct ehci_hccr *)&ehci->hccapbase;
+			hcor = (struct ehci_hcor *)&ehci->usbcmd;
+
+			/* Do the actual EHCI initialization */
+			omap_ehci_hcd_init(0, &usbhs_bdata);
+			ret = ehci_register(dev, hccr, hcor, &omap_ehci_ops, 0,
+					    USB_INIT_HOST);
+		}
+	}
+
+	return ret;
+}
+
+static const struct udevice_id omap_ehci_dt_ids[] = {
+	{ .compatible = "ti,usbhs-host" },
+	{ }
+};
+
+static int ehci_usb_ofdata_to_platdata(struct udevice *dev)
+{
+	struct usb_platdata *plat = dev_get_platdata(dev);
+
+	plat->init_type = USB_INIT_HOST;
+
+	return 0;
+}
+
+U_BOOT_DRIVER(usb_omaphs_host) = {
+	.name	= "usbhs-host",
+	.id	= UCLASS_USB,
+	.of_match = omap_ehci_dt_ids,
+	.ofdata_to_platdata = ehci_usb_ofdata_to_platdata,
+	.probe	= ehci_usb_probe,
+	.remove = ehci_deregister,
+	.ops	= &ehci_usb_ops,
+	.platdata_auto_alloc_size = sizeof(struct usb_platdata),
+	.priv_auto_alloc_size = sizeof(struct ehci_omap_priv_data),
+	.flags	= DM_FLAG_ALLOC_PRIV_DMA,
+};
+
+#endif
diff --git a/include/configs/omap3_logic.h b/include/configs/omap3_logic.h
index e318a9f896..65d8487c18 100644
--- a/include/configs/omap3_logic.h
+++ b/include/configs/omap3_logic.h
@@ -30,6 +30,8 @@ 
 /* I2C */
 #define CONFIG_SYS_I2C_EEPROM_ADDR	0x50	/* EEPROM AT24C64      */
 
+#define CONFIG_OMAP_EHCI_PHY1_RESET_GPIO	4
+
 /* Board NAND Info. */
 #ifdef CONFIG_NAND
 #define CONFIG_SYS_MAX_NAND_DEVICE	1	  /* Max number of */