]> git.sur5r.net Git - u-boot/commitdiff
Merge branch 'master' of git://git.denx.de/u-boot-uniphier
authorTom Rini <trini@konsulko.com>
Tue, 17 Jan 2017 16:39:43 +0000 (11:39 -0500)
committerTom Rini <trini@konsulko.com>
Tue, 17 Jan 2017 16:39:43 +0000 (11:39 -0500)
  - Enable eMMC driver for LD11/LD20 SoCs
  - Refactoring of SoC init code
  - Bug fix of pinctrl driver

22 files changed:
cmd/usb.c
common/image-fit.c
common/splash_source.c
common/usb_storage.c
configs/mx6sllevk_defconfig
configs/mx6sllevk_plugin_defconfig
configs/xilinx_zynqmp_ep_defconfig
configs/xilinx_zynqmp_zc1751_xm015_dc1_defconfig
configs/xilinx_zynqmp_zc1751_xm016_dc2_defconfig
configs/xilinx_zynqmp_zcu102_defconfig
configs/xilinx_zynqmp_zcu102_revB_defconfig
doc/README.splashprepare
drivers/usb/gadget/dwc2_udc_otg.c
drivers/usb/gadget/ether.c
drivers/usb/host/Kconfig
drivers/usb/host/ehci-mx6.c
drivers/video/cfb_console.c
include/configs/mx6sllevk.h
include/configs/xilinx_zynqmp.h
include/image.h
include/splash.h
scripts/config_whitelist.txt

index 455127c844b9937c60f9a1a8047d409b4694f635..4fa456e318347452785edf5a2239fda63a1a6458 100644 (file)
--- a/cmd/usb.c
+++ b/cmd/usb.c
@@ -571,11 +571,11 @@ static void do_usb_start(void)
                return;
 
        /* Driver model will probe the devices as they are found */
-#ifndef CONFIG_DM_USB
 # ifdef CONFIG_USB_STORAGE
        /* try to recognize storage devices immediately */
        usb_stor_curr_dev = usb_stor_scan(1);
 # endif
+#ifndef CONFIG_DM_USB
 # ifdef CONFIG_USB_KEYBOARD
        drv_usb_kbd_init();
 # endif
index 95d8bf4bb88512ea02910f04a8783935d1bb6cc9..109ecfaaccb79f2a6401938e2180c511e3af9eef 100644 (file)
@@ -777,6 +777,54 @@ int fit_image_get_data(const void *fit, int noffset,
        return 0;
 }
 
+/**
+ * Get 'data-offset' property from a given image node.
+ *
+ * @fit: pointer to the FIT image header
+ * @noffset: component image node offset
+ * @data_offset: holds the data-offset property
+ *
+ * returns:
+ *     0, on success
+ *     -ENOENT if the property could not be found
+ */
+int fit_image_get_data_offset(const void *fit, int noffset, int *data_offset)
+{
+       const fdt32_t *val;
+
+       val = fdt_getprop(fit, noffset, FIT_DATA_OFFSET_PROP, NULL);
+       if (!val)
+               return -ENOENT;
+
+       *data_offset = fdt32_to_cpu(*val);
+
+       return 0;
+}
+
+/**
+ * Get 'data-size' property from a given image node.
+ *
+ * @fit: pointer to the FIT image header
+ * @noffset: component image node offset
+ * @data_size: holds the data-size property
+ *
+ * returns:
+ *     0, on success
+ *     -ENOENT if the property could not be found
+ */
+int fit_image_get_data_size(const void *fit, int noffset, int *data_size)
+{
+       const fdt32_t *val;
+
+       val = fdt_getprop(fit, noffset, FIT_DATA_SIZE_PROP, NULL);
+       if (!val)
+               return -ENOENT;
+
+       *data_size = fdt32_to_cpu(*val);
+
+       return 0;
+}
+
 /**
  * fit_image_hash_get_algo - get hash algorithm name
  * @fit: pointer to the FIT format image header
index 230b2db4d5b654f01568b3b01ac18f8317328153..a5eeb3f12c581e0f1d58792a250da16345e551c6 100644 (file)
@@ -7,15 +7,17 @@
  */
 
 #include <common.h>
-#include <nand.h>
+#include <bmp_layout.h>
 #include <errno.h>
-#include <splash.h>
-#include <spi_flash.h>
+#include <fs.h>
+#include <fdt_support.h>
+#include <image.h>
+#include <nand.h>
+#include <sata.h>
 #include <spi.h>
+#include <spi_flash.h>
+#include <splash.h>
 #include <usb.h>
-#include <sata.h>
-#include <bmp_layout.h>
-#include <fs.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -295,6 +297,72 @@ static struct splash_location *select_splash_location(
        return NULL;
 }
 
+#ifdef CONFIG_FIT
+static int splash_load_fit(struct splash_location *location, u32 bmp_load_addr)
+{
+       int res;
+       int node_offset;
+       int splash_offset;
+       int splash_size;
+       struct image_header *img_header;
+       const u32 *fit_header;
+       u32 fit_size;
+       const size_t header_size = sizeof(struct image_header);
+
+       /* Read in image header */
+       res = splash_storage_read_raw(location, bmp_load_addr, header_size);
+       if (res < 0)
+               return res;
+
+       img_header = (struct image_header *)bmp_load_addr;
+       fit_size = fdt_totalsize(img_header);
+
+       /* Read in entire FIT */
+       fit_header = (const u32 *)(bmp_load_addr + header_size);
+       res = splash_storage_read_raw(location, (u32)fit_header, fit_size);
+       if (res < 0)
+               return res;
+
+       res = fit_check_format(fit_header);
+       if (!res) {
+               debug("Could not find valid FIT image\n");
+               return -EINVAL;
+       }
+
+       node_offset = fit_image_get_node(fit_header, location->name);
+       if (node_offset < 0) {
+               debug("Could not find splash image '%s' in FIT\n",
+                     location->name);
+               return -ENOENT;
+       }
+
+       res = fit_image_get_data_offset(fit_header, node_offset,
+                                       &splash_offset);
+       if (res < 0) {
+               printf("Failed to load splash image (err=%d)\n", res);
+               return res;
+       }
+
+       res = fit_image_get_data_size(fit_header, node_offset, &splash_size);
+       if (res < 0) {
+               printf("Failed to load splash image (err=%d)\n", res);
+               return res;
+       }
+
+       /* Align data offset to 4-byte boundrary */
+       fit_size = fdt_totalsize(fit_header);
+       fit_size = (fit_size + 3) & ~3;
+
+       /* Read in the splash data */
+       location->offset = (location->offset + fit_size + splash_offset);
+       res = splash_storage_read_raw(location, bmp_load_addr , splash_size);
+       if (res < 0)
+               return res;
+
+       return 0;
+}
+#endif /* CONFIG_FIT */
+
 /**
  * splash_source_load - load splash image from a supported location.
  *
@@ -327,10 +395,13 @@ int splash_source_load(struct splash_location *locations, uint size)
        if (!splash_location)
                return -EINVAL;
 
-       if (splash_location->flags & SPLASH_STORAGE_RAW)
+       if (splash_location->flags == SPLASH_STORAGE_RAW)
                return splash_load_raw(splash_location, bmp_load_addr);
-       else if (splash_location->flags & SPLASH_STORAGE_FS)
+       else if (splash_location->flags == SPLASH_STORAGE_FS)
                return splash_load_fs(splash_location, bmp_load_addr);
-
+#ifdef CONFIG_FIT
+       else if (splash_location->flags == SPLASH_STORAGE_FIT)
+               return splash_load_fit(splash_location, bmp_load_addr);
+#endif
        return -EINVAL;
 }
index 0345aa22eff5f79e6266b7ce7fd07a3207674d27..b524a15e2bf93714c9ea758046d6c651decc4723 100644 (file)
@@ -303,7 +303,6 @@ void usb_stor_reset(void)
        usb_max_devs = 0;
 }
 
-#ifndef CONFIG_DM_USB
 /*******************************************************************************
  * scan the usb and reports device info
  * to the user if mode = 1
@@ -311,11 +310,12 @@ void usb_stor_reset(void)
  */
 int usb_stor_scan(int mode)
 {
-       unsigned char i;
-
        if (mode == 1)
                printf("       scanning usb for storage devices... ");
 
+#ifndef CONFIG_DM_USB
+       unsigned char i;
+
        usb_disable_asynch(1); /* asynch transfer not allowed */
 
        usb_stor_reset();
@@ -329,12 +329,12 @@ int usb_stor_scan(int mode)
        } /* for */
 
        usb_disable_asynch(0); /* asynch transfer allowed */
+#endif
        printf("%d Storage Device(s) found\n", usb_max_devs);
        if (usb_max_devs > 0)
                return 0;
        return -1;
 }
-#endif
 
 static int usb_stor_irq(struct usb_device *dev)
 {
index 8ae049e208ed3369f48fa90c9fc3ca34d60f8f2a..267cdc615666fc8f3f644a940ea6a38d42677fb3 100644 (file)
@@ -10,6 +10,7 @@ CONFIG_CMD_BOOTZ=y
 CONFIG_CMD_MEMTEST=y
 CONFIG_CMD_MMC=y
 CONFIG_CMD_I2C=y
+CONFIG_CMD_USB=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_PING=y
@@ -34,3 +35,7 @@ CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_PFUZE100=y
 CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_STORAGE=y
index e6be9795078dd99c7c97d69850e0ceed8f1b5d03..63d5bbc1c652dc225c0e1e9b300c5061853eafea 100644 (file)
@@ -11,6 +11,7 @@ CONFIG_CMD_BOOTZ=y
 CONFIG_CMD_MEMTEST=y
 CONFIG_CMD_MMC=y
 CONFIG_CMD_I2C=y
+CONFIG_CMD_USB=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_DHCP=y
 CONFIG_CMD_PING=y
@@ -35,3 +36,7 @@ CONFIG_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_PFUZE100=y
 CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_STORAGE=y
index ef7bf8b4d6a121a16407f24cf4a6e76dad99daf1..5a564a602afe26f74e8999e1b6ae73cf17ef26ab 100644 (file)
@@ -66,6 +66,7 @@ CONFIG_DEBUG_UART_ANNOUNCE=y
 CONFIG_USB=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
+CONFIG_USB_XHCI_ZYNQMP=y
 CONFIG_USB_DWC3=y
 CONFIG_USB_DWC3_GADGET=y
 CONFIG_USB_STORAGE=y
index 9da03069bff2e12a17ef831583df8dac20d12352..41fcc8dc99c9140f22c5fd5aed3186bb549272f1 100644 (file)
@@ -58,6 +58,7 @@ CONFIG_DEBUG_UART_ANNOUNCE=y
 CONFIG_USB=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
+CONFIG_USB_XHCI_ZYNQMP=y
 CONFIG_USB_DWC3=y
 CONFIG_USB_DWC3_GADGET=y
 CONFIG_USB_ULPI_VIEWPORT=y
index d0b19f4d88ca6b23310ef8ab74b5695c7c0e52f3..c09d4ba87f7399f7adc2da3ef89c371df61b4511 100644 (file)
@@ -58,6 +58,7 @@ CONFIG_DEBUG_UART_ANNOUNCE=y
 CONFIG_USB=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
+CONFIG_USB_XHCI_ZYNQMP=y
 CONFIG_USB_DWC3=y
 CONFIG_USB_DWC3_GADGET=y
 CONFIG_USB_ULPI_VIEWPORT=y
index 71ada10ada500878461a27e2289b84efd7e9ee3e..09cf4e161c4fc94b40cccf714af58d2f5c56827f 100644 (file)
@@ -58,6 +58,7 @@ CONFIG_DEBUG_UART_ANNOUNCE=y
 CONFIG_USB=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
+CONFIG_USB_XHCI_ZYNQMP=y
 CONFIG_USB_DWC3=y
 CONFIG_USB_DWC3_GADGET=y
 CONFIG_USB_ULPI_VIEWPORT=y
index 64aa32f7e6a3e0ec094954f3ffa3184d9f2cc80f..98209ba7466c9fa92bcfe1a9372b60568aa820a0 100644 (file)
@@ -58,6 +58,7 @@ CONFIG_DEBUG_UART_ANNOUNCE=y
 CONFIG_USB=y
 CONFIG_USB_XHCI_HCD=y
 CONFIG_USB_XHCI_DWC3=y
+CONFIG_USB_XHCI_ZYNQMP=y
 CONFIG_USB_DWC3=y
 CONFIG_USB_DWC3_GADGET=y
 CONFIG_USB_ULPI_VIEWPORT=y
index 56c1bef66216310667b2110103224fe5dc5fd6bd..f1418de18b017ee8b67484927636afdef3e83107 100644 (file)
@@ -5,7 +5,7 @@ The splash_screen_prepare() function is a weak function defined in
 common/splash.c. It is called as part of the splash screen display
 sequence. It gives the board an opportunity to prepare the splash
 image data before it is processed and sent to the frame buffer by
-U-Boot.  Define your own version to use this feature.
+U-Boot. Define your own version to use this feature.
 
 CONFIG_SPLASH_SOURCE
 
@@ -20,7 +20,12 @@ splashsource works as follows:
 - If splashsource is undefined, use the first splash location as default.
 - If splashsource is set to an unsupported value, do not load a splash screen.
 
-A splash source location can describe either storage with raw data, or storage
-formatted with a file system. In case of a filesystem, the splash screen data is
-loaded as a file. The name of the splash screen file can be controlled with the
-environment variable "splashfile".
+A splash source location can describe either storage with raw data, a storage
+formatted with a file system or a FIT image. In case of a filesystem, the splash
+screen data is loaded as a file. The name of the splash screen file can be
+controlled with the environment variable "splashfile".
+
+To enable loading the splash image from a FIT image, CONFIG_FIT must be
+enabled. Struct splash_location field 'name' should match the splash image
+name within the FIT and the FIT should start at the 'offset' field address in
+the specified storage.
index d72bfdfdd883421de6ae05633377a922d7ef940b..cb44374e81a615c2c4cccdc7cb526ee5b5444721 100644 (file)
@@ -63,13 +63,11 @@ static char *state_names[] = {
        "WAIT_FOR_NULL_COMPLETE",
 };
 
-#define DRIVER_DESC "DWC2 HS USB OTG Device Driver, (c) Samsung Electronics"
 #define DRIVER_VERSION "15 March 2009"
 
 struct dwc2_udc        *the_controller;
 
 static const char driver_name[] = "dwc2-udc";
-static const char driver_desc[] = DRIVER_DESC;
 static const char ep0name[] = "ep0-control";
 
 /* Max packet size*/
index f1b070982190362afbccfb9b55f6274e5abdf2b9..4137d76c42afb29a95a29b66a49798e54322af64 100644 (file)
@@ -507,6 +507,7 @@ static const struct usb_cdc_mdlm_desc mdlm_desc = {
  * can't really use its struct.  All we do here is say that we're using
  * the submode of "SAFE" which directly matches the CDC Subset.
  */
+#ifdef CONFIG_USB_ETH_SUBSET
 static const u8 mdlm_detail_desc[] = {
        6,
        USB_DT_CS_INTERFACE,
@@ -516,6 +517,7 @@ static const u8 mdlm_detail_desc[] = {
        0,      /* network control capabilities (none) */
        0,      /* network data capabilities ("raw" encapsulation) */
 };
+#endif
 
 #endif
 
index b9c5fbe381fb3e460f8085e5f059cd2bd96e0571..5129a573042ce5e5211c3b35da9b9755078dc28b 100644 (file)
@@ -37,6 +37,12 @@ config USB_XHCI_ROCKCHIP
        help
          Enables support for the on-chip xHCI controller on Rockchip SoCs.
 
+config USB_XHCI_ZYNQMP
+       bool "Support for Xilinx ZynqMP on-chip xHCI USB controller"
+       depends on ARCH_ZYNQMP
+       help
+         Enables support for the on-chip xHCI controller on Xilinx ZynqMP SoCs.
+
 endif # USB_XHCI_HCD
 
 config USB_EHCI_HCD
index 48889c19562b0b91bc006cc109e5ea5688fdd4ba..7b309b7b9617a95fd5f02429053812fb93b158c7 100644 (file)
 #include <asm/arch/imx-regs.h>
 #include <asm/arch/clock.h>
 #include <asm/imx-common/iomux-v3.h>
+#include <asm/imx-common/sys_proto.h>
 #include <dm.h>
+#include <power/regulator.h>
 
 #include "ehci.h"
 
+DECLARE_GLOBAL_DATA_PTR;
+
 #define USB_OTGREGS_OFFSET     0x000
 #define USB_H1REGS_OFFSET      0x200
 #define USB_H2REGS_OFFSET      0x400
@@ -48,6 +52,7 @@
 #define ANADIG_USB2_PLL_480_CTRL_EN_USB_CLKS   0x00000040
 
 #define USBNC_OFFSET           0x200
+#define USBNC_PHY_STATUS_OFFSET        0x23C
 #define USBNC_PHYSTATUS_ID_DIG (1 << 4) /* otg_id status */
 #define USBNC_PHYCFG2_ACAENB   (1 << 4) /* otg_id detection enable */
 #define UCTRL_PWR_POL          (1 << 9) /* OTG Polarity of Power Pin */
@@ -384,6 +389,7 @@ int ehci_hcd_stop(int index)
 struct ehci_mx6_priv_data {
        struct ehci_ctrl ctrl;
        struct usb_ehci *ehci;
+       struct udevice *vbus_supply;
        enum usb_init_type init_type;
        int portnr;
 };
@@ -399,7 +405,15 @@ static int mx6_init_after_reset(struct ehci_ctrl *dev)
        if (ret)
                return ret;
 
-       board_ehci_power(priv->portnr, (type == USB_INIT_DEVICE) ? 0 : 1);
+       if (priv->vbus_supply) {
+               ret = regulator_set_enable(priv->vbus_supply,
+                                          (type == USB_INIT_DEVICE) ?
+                                          false : true);
+               if (ret) {
+                       puts("Error enabling VBUS supply\n");
+                       return ret;
+               }
+       }
 
        if (type == USB_INIT_DEVICE)
                return 0;
@@ -417,24 +431,108 @@ static const struct ehci_ops mx6_ehci_ops = {
        .init_after_reset = mx6_init_after_reset
 };
 
+static int ehci_usb_phy_mode(struct udevice *dev)
+{
+       struct usb_platdata *plat = dev_get_platdata(dev);
+       void *__iomem addr = (void *__iomem)dev_get_addr(dev);
+       void *__iomem phy_ctrl, *__iomem phy_status;
+       const void *blob = gd->fdt_blob;
+       int offset = dev->of_offset, phy_off;
+       u32 val;
+
+       /*
+        * About fsl,usbphy, Refer to
+        * Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt.
+        */
+       if (is_mx6()) {
+               phy_off = fdtdec_lookup_phandle(blob,
+                                               offset,
+                                               "fsl,usbphy");
+               if (phy_off < 0)
+                       return -EINVAL;
+
+               addr = (void __iomem *)fdtdec_get_addr(blob, phy_off,
+                                                      "reg");
+               if ((fdt_addr_t)addr == FDT_ADDR_T_NONE)
+                       return -EINVAL;
+
+               phy_ctrl = (void __iomem *)(addr + USBPHY_CTRL);
+               val = readl(phy_ctrl);
+
+               if (val & USBPHY_CTRL_OTG_ID)
+                       plat->init_type = USB_INIT_DEVICE;
+               else
+                       plat->init_type = USB_INIT_HOST;
+       } else if (is_mx7()) {
+               phy_status = (void __iomem *)(addr +
+                                             USBNC_PHY_STATUS_OFFSET);
+               val = readl(phy_status);
+
+               if (val & USBNC_PHYSTATUS_ID_DIG)
+                       plat->init_type = USB_INIT_DEVICE;
+               else
+                       plat->init_type = USB_INIT_HOST;
+       } else {
+               return -EINVAL;
+       }
+
+       return 0;
+}
+
+static int ehci_usb_ofdata_to_platdata(struct udevice *dev)
+{
+       struct usb_platdata *plat = dev_get_platdata(dev);
+       const char *mode;
+
+       mode = fdt_getprop(gd->fdt_blob, dev->of_offset, "dr_mode", NULL);
+       if (mode) {
+               if (strcmp(mode, "peripheral") == 0)
+                       plat->init_type = USB_INIT_DEVICE;
+               else if (strcmp(mode, "host") == 0)
+                       plat->init_type = USB_INIT_HOST;
+               else if (strcmp(mode, "otg") == 0)
+                       return ehci_usb_phy_mode(dev);
+               else
+                       return -EINVAL;
+
+               return 0;
+       }
+
+       return ehci_usb_phy_mode(dev);
+}
+
 static int ehci_usb_probe(struct udevice *dev)
 {
        struct usb_platdata *plat = dev_get_platdata(dev);
        struct usb_ehci *ehci = (struct usb_ehci *)dev_get_addr(dev);
        struct ehci_mx6_priv_data *priv = dev_get_priv(dev);
+       enum usb_init_type type = plat->init_type;
        struct ehci_hccr *hccr;
        struct ehci_hcor *hcor;
        int ret;
 
        priv->ehci = ehci;
        priv->portnr = dev->seq;
-       priv->init_type = plat->init_type;
+       priv->init_type = type;
+
+       ret = device_get_supply_regulator(dev, "vbus-supply",
+                                         &priv->vbus_supply);
+       if (ret)
+               debug("%s: No vbus supply\n", dev->name);
 
        ret = ehci_mx6_common_init(ehci, priv->portnr);
        if (ret)
                return ret;
 
-       board_ehci_power(priv->portnr, (priv->init_type == USB_INIT_DEVICE) ? 0 : 1);
+       if (priv->vbus_supply) {
+               ret = regulator_set_enable(priv->vbus_supply,
+                                          (type == USB_INIT_DEVICE) ?
+                                          false : true);
+               if (ret) {
+                       puts("Error enabling VBUS supply\n");
+                       return ret;
+               }
+       }
 
        if (priv->init_type == USB_INIT_HOST) {
                setbits_le32(&ehci->usbmode, CM_HOST);
@@ -460,6 +558,7 @@ U_BOOT_DRIVER(usb_mx6) = {
        .name   = "ehci_mx6",
        .id     = UCLASS_USB,
        .of_match = mx6_usb_ids,
+       .ofdata_to_platdata = ehci_usb_ofdata_to_platdata,
        .probe  = ehci_usb_probe,
        .remove = ehci_deregister,
        .ops    = &ehci_usb_ops,
index c0b1b8dc17e2bd15785e97a209f42ea9843be0cf..a4cbc4456491a1afc7cbe1d69d9e226fc62ca75e 100644 (file)
@@ -1861,14 +1861,16 @@ static void *video_logo(void)
        __maybe_unused int y_off = 0;
        __maybe_unused ulong addr;
        __maybe_unused char *s;
-       __maybe_unused int len, space;
+       __maybe_unused int len, ret, space;
 
        splash_get_pos(&video_logo_xpos, &video_logo_ypos);
 
 #ifdef CONFIG_SPLASH_SCREEN
        s = getenv("splashimage");
        if (s != NULL) {
-               splash_screen_prepare();
+               ret = splash_screen_prepare();
+               if (ret < 0)
+                       return video_fb_address;
                addr = simple_strtoul(s, NULL, 16);
 
                if (video_display_bitmap(addr,
index b9f25cf0fcc423d3f3d0b8ab612f4911810e2abc..be4d147546daa56d2212be280f7730ba7da4bf6d 100644 (file)
 
 #define CONFIG_IOMUX_LPSR
 
+/* USB Configs */
+#ifdef CONFIG_CMD_USB
+#define CONFIG_USB_HOST_ETHER
+#define CONFIG_USB_ETHER_ASIX
+#define CONFIG_USB_ETHER_RTL8152
+#define CONFIG_MXC_USB_PORTSC          (PORT_PTS_UTMI | PORT_PTS_PTW)
+#endif
+
 #endif                         /* __CONFIG_H */
index bb749c5e8eaa04838dc6f11bcf55ce03c73dd714..9be9d474d1ed503838e3fb92d7ceb1ad422bc028 100644 (file)
 
 #if defined(CONFIG_ZYNQMP_USB)
 #define CONFIG_SYS_USB_XHCI_MAX_ROOT_PORTS      2
-#define CONFIG_USB_XHCI_ZYNQMP
 
 #define CONFIG_SYS_DFU_DATA_BUF_SIZE   0x1800000
 #define DFU_DEFAULT_POLL_TIMEOUT       300
index 6207d62d3c38da17b579ba8fef1ec036a0e85f3b..164b5845332c6ee11a95b2f5b3379ddbb8b8bb51 100644 (file)
@@ -872,6 +872,8 @@ int bootz_setup(ulong image, ulong *start, ulong *end);
 
 /* image node */
 #define FIT_DATA_PROP          "data"
+#define FIT_DATA_OFFSET_PROP   "data-offset"
+#define FIT_DATA_SIZE_PROP     "data-size"
 #define FIT_TIMESTAMP_PROP     "timestamp"
 #define FIT_DESC_PROP          "description"
 #define FIT_ARCH_PROP          "arch"
@@ -950,6 +952,8 @@ int fit_image_get_load(const void *fit, int noffset, ulong *load);
 int fit_image_get_entry(const void *fit, int noffset, ulong *entry);
 int fit_image_get_data(const void *fit, int noffset,
                                const void **data, size_t *size);
+int fit_image_get_data_offset(const void *fit, int noffset, int *data_offset);
+int fit_image_get_data_size(const void *fit, int noffset, int *data_size);
 
 int fit_image_hash_get_algo(const void *fit, int noffset, char **algo);
 int fit_image_hash_get_value(const void *fit, int noffset, uint8_t **value,
index 136eac7402465e34488687ccaa9d6d1bbb1b75b6..228aff441b87f46c3747d5376773b559898ebea5 100644 (file)
@@ -33,8 +33,9 @@ enum splash_storage {
 };
 
 enum splash_flags {
-       SPLASH_STORAGE_RAW,
-       SPLASH_STORAGE_FS,
+       SPLASH_STORAGE_RAW, /* Stored in raw memory */
+       SPLASH_STORAGE_FS,  /* Stored within a file system */
+       SPLASH_STORAGE_FIT, /* Stored inside a FIT image */
 };
 
 struct splash_location {
index 4935b91a40d391f432eb94dff529ca7e6737ebd9..12c787817a5ad1adf592e823a327a3c4c364f62d 100644 (file)
@@ -6819,7 +6819,6 @@ CONFIG_USB_XHCI_FSL
 CONFIG_USB_XHCI_KEYSTONE
 CONFIG_USB_XHCI_OMAP
 CONFIG_USB_XHCI_PCI
-CONFIG_USB_XHCI_ZYNQMP
 CONFIG_USER_LOWLEVEL_INIT
 CONFIG_USE_FDT
 CONFIG_USE_INTERRUPT