All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Simek <monstr@monstr.eu>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/3] zynqmp: usb: Add usb dwc3 driver support for zynqmp
Date: Wed, 12 Aug 2015 12:24:12 +0200	[thread overview]
Message-ID: <55CB1ECC.7030608@monstr.eu> (raw)
In-Reply-To: <1438673608-17853-1-git-send-email-sivadur@xilinx.com>

On 08/04/2015 09:33 AM, Siva Durga Prasad Paladugu wrote:
> Added usb dwc3 driver support for zynqmp
> this also supports the DFU and LTHOR to download
> the linux images on to RAM and cen be booted from
> those linux images.
> 
> Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
> ---
>  arch/arm/cpu/armv8/zynqmp/Kconfig           |    3 ++
>  arch/arm/include/asm/arch-zynqmp/hardware.h |    3 ++
>  board/xilinx/zynqmp/zynqmp.c                |   27 +++++++++++++++++
>  configs/xilinx_zynqmp_ep_defconfig          |    1 +
>  include/configs/xilinx_zynqmp.h             |   41 +++++++++++++++++++++++++-
>  5 files changed, 73 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/cpu/armv8/zynqmp/Kconfig b/arch/arm/cpu/armv8/zynqmp/Kconfig
> index c8fcfb6..9a19dfa 100644
> --- a/arch/arm/cpu/armv8/zynqmp/Kconfig
> +++ b/arch/arm/cpu/armv8/zynqmp/Kconfig
> @@ -20,4 +20,7 @@ config SYS_SOC
>  config SYS_CONFIG_NAME
>  	default "xilinx_zynqmp_ep" if TARGET_ZYNQMP_EP
>  
> +config ZYNQMP_USB
> +	bool "Configure ZynqMP USB"
> +
>  endif
> diff --git a/arch/arm/include/asm/arch-zynqmp/hardware.h b/arch/arm/include/asm/arch-zynqmp/hardware.h
> index 7640eab..8c041c0 100644
> --- a/arch/arm/include/asm/arch-zynqmp/hardware.h
> +++ b/arch/arm/include/asm/arch-zynqmp/hardware.h
> @@ -27,6 +27,9 @@
>  
>  #define ZYNQMP_SATA_BASEADDR	0xFD0C0000
>  
> +#define ZYNQMP_USB0_XHCI_BASEADDR	0xFE200000
> +#define ZYNQMP_USB1_XHCI_BASEADDR	0xFE300000
> +
>  #define ZYNQMP_CRL_APB_BASEADDR	0xFF5E0000
>  #define ZYNQMP_CRL_APB_TIMESTAMP_REF_CTRL_CLKACT	0x1000000
>  
> diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c
> index 70d9c2c..d105bb4 100644
> --- a/board/xilinx/zynqmp/zynqmp.c
> +++ b/board/xilinx/zynqmp/zynqmp.c
> @@ -12,6 +12,8 @@
>  #include <asm/arch/hardware.h>
>  #include <asm/arch/sys_proto.h>
>  #include <asm/io.h>
> +#include <usb.h>
> +#include <dwc3-uboot.h>
>  
>  DECLARE_GLOBAL_DATA_PTR;
>  
> @@ -137,3 +139,28 @@ int checkboard(void)
>  	return 0;
>  }
>  
> +#ifdef CONFIG_USB_DWC3
> +static struct dwc3_device dwc3_device_data = {
> +	.maximum_speed = USB_SPEED_HIGH,
> +	.base = ZYNQMP_USB0_XHCI_BASEADDR,
> +	.dr_mode = USB_DR_MODE_PERIPHERAL,
> +	.index = 0,
> +};
> +
> +int usb_gadget_handle_interrupts(void)
> +{
> +	dwc3_uboot_handle_interrupt(0);
> +	return 0;
> +}
> +
> +int board_usb_init(int index, enum usb_init_type init)
> +{
> +	return dwc3_uboot_init(&dwc3_device_data);
> +}
> +
> +int board_usb_cleanup(int index, enum usb_init_type init)
> +{
> +	dwc3_uboot_exit(index);
> +	return 0;
> +}
> +#endif
> diff --git a/configs/xilinx_zynqmp_ep_defconfig b/configs/xilinx_zynqmp_ep_defconfig
> index fda44ea..efc1bbe 100644
> --- a/configs/xilinx_zynqmp_ep_defconfig
> +++ b/configs/xilinx_zynqmp_ep_defconfig
> @@ -16,3 +16,4 @@ CONFIG_DEFAULT_DEVICE_TREE="zynqmp-ep"
>  CONFIG_CMD_TIME=y
>  CONFIG_CMD_TIMER=y
>  CONFIG_SYS_TEXT_BASE=0x8000000
> +CONFIG_ZYNQMP_USB=y
> diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h
> index 68853b6..927c917 100644
> --- a/include/configs/xilinx_zynqmp.h
> +++ b/include/configs/xilinx_zynqmp.h
> @@ -49,7 +49,7 @@
>  #define COUNTER_FREQUENCY		4000000
>  
>  /* Size of malloc() pool */
> -#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 0x400000)
> +#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 0x2000000)
>  
>  /* Serial setup */
>  #if defined(CONFIG_ZYNQMP_DCC)
> @@ -108,13 +108,50 @@
>  /* Miscellaneous configurable options */
>  #define CONFIG_SYS_LOAD_ADDR		0x8000000
>  
> +#if defined(CONFIG_ZYNQMP_USB)
> +#define CONFIG_USB_DWC3
> +#define CONFIG_USB_DWC3_GADGET
> +
> +#define CONFIG_USB_GADGET
> +#define CONFIG_USB_GADGET_DUALSPEED
> +#define CONFIG_USB_GADGET_VBUS_DRAW	2
> +#define CONFIG_USBDOWNLOAD_GADGET
> +#define CONFIG_SYS_DFU_DATA_BUF_SIZE	0x1800000
> +#define DFU_DEFAULT_POLL_TIMEOUT	300
> +#define CONFIG_DFU_FUNCTION
> +#define CONFIG_DFU_RAM
> +#define CONFIG_G_DNL_VENDOR_NUM		0x03FD
> +#define CONFIG_G_DNL_PRODUCT_NUM	0x0300
> +#define CONFIG_G_DNL_MANUFACTURER	"Xilinx"
> +#define CONFIG_USB_CABLE_CHECK
> +#define CONFIG_CMD_DFU
> +#define CONFIG_CMD_THOR_DOWNLOAD
> +#define CONFIG_THOR_FUNCTION
> +#define CONFIG_THOR_RESET_OFF
> +#define DFU_ALT_INFO_RAM \
> +	"dfu_ram_info=" \
> +	"set dfu_alt_info " \
> +	"Image ram 0x200000 0x1800000\\\\;" \
> +	"system.dtb ram 0x7000000 0x40000\0" \
> +	"dfu_ram=run dfu_ram_info && dfu 0 ram 0\0" \
> +	"thor_ram=run dfu_ram_info && thordown 0 ram 0\0"
> +
> +#define DFU_ALT_INFO  \
> +		DFU_ALT_INFO_RAM
> +#endif
> +
> +#if !defined(DFU_ALT_INFO)
> +# define DFU_ALT_INFO
> +#endif
> +
>  /* Initial environment variables */
>  #define CONFIG_EXTRA_ENV_SETTINGS \
>  	"kernel_addr=0x80000\0" \
>  	"fdt_addr=0x7000000\0" \
>  	"fdt_high=0x10000000\0" \
>  	"sdboot=mmcinfo && load mmc 0:0 $fdt_addr system.dtb && " \
> -		"load mmc 0:0 $kernel_addr Image && booti $kernel_addr - $fdt_addr\0"
> +		"load mmc 0:0 $kernel_addr Image && booti $kernel_addr - $fdt_addr\0" \
> +	DFU_ALT_INFO
>  
>  #define CONFIG_BOOTARGS		"setenv bootargs console=ttyPS0,${baudrate} " \
>  				"earlycon=cdns,mmio,0xff000000,${baudrate}n8"
> 

Applied.

Thanks,
Michal


-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150812/a22a1980/attachment.sig>

      parent reply	other threads:[~2015-08-12 10:24 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-04  7:33 [U-Boot] [PATCH 1/3] zynqmp: usb: Add usb dwc3 driver support for zynqmp Siva Durga Prasad Paladugu
2015-08-04  7:33 ` [U-Boot] [PATCH 2/3] usb: zynqmp: Add XHCI driver support Siva Durga Prasad Paladugu
2015-08-19  5:26   ` Marek Vasut
2015-08-04  7:33 ` [U-Boot] [PATCH 3/3] usb: zynqmp: Enable USB XHCI support Siva Durga Prasad Paladugu
2015-08-12 10:24 ` Michal Simek [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55CB1ECC.7030608@monstr.eu \
    --to=monstr@monstr.eu \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.