Hi Marek, On Mon, Nov 20, 2017 at 6:34 PM, Marek Vasut <marek.va...@gmail.com> wrote: > On 11/20/2017 09:46 AM, Bin Meng wrote: >> Hi Marek, >> >> On Sun, Oct 15, 2017 at 11:17 PM, Marek Vasut <marek.va...@gmail.com> wrote: >>> On 10/15/2017 05:11 PM, Bin Meng wrote: >>>> Hi Marek, >>>> >>>> On Sun, Oct 15, 2017 at 9:01 PM, Marek Vasut <marek.va...@gmail.com> wrote: >>>>> Add firmware V3, firmware loader and XHCI glue for the Renesas R-Car >>>>> Gen3 SoCs XHCI controller. Thus far only the R-Car Gen3 R8A7795 ES2.0+ >>>>> and R8A7796 are supported. >>>>> >>>>> Signed-off-by: Marek Vasut <marek.vasut+rene...@gmail.com> >>>>> Cc: Nobuhiro Iwamatsu <iwama...@nigauri.org> >>>>> Cc: Bin Meng <bmeng...@gmail.com> >>>>> --- >>>>> V2: Drop GD access >>>>> Add xhci_deregister >>>>> V3: Use BIT() macro instead of ad-hoc mask >>>>> --- >>>>> Licenses/r8a779x_usb3.txt | 26 ++ >>>>> drivers/usb/host/Kconfig | 8 + >>>>> drivers/usb/host/Makefile | 1 + >>>>> drivers/usb/host/xhci-rcar-r8a779x_usb3_v3.h | 643 >>>>> +++++++++++++++++++++++++++ >>>>> drivers/usb/host/xhci-rcar.c | 159 +++++++ >>>>> 5 files changed, 837 insertions(+) >>>>> create mode 100644 Licenses/r8a779x_usb3.txt >>>>> create mode 100644 drivers/usb/host/xhci-rcar-r8a779x_usb3_v3.h >>>>> create mode 100644 drivers/usb/host/xhci-rcar.c >>>>> >>>>> diff --git a/Licenses/r8a779x_usb3.txt b/Licenses/r8a779x_usb3.txt >>>>> new file mode 100644 >>>>> index 0000000000..e2afcc9e81 >>>>> --- /dev/null >>>>> +++ b/Licenses/r8a779x_usb3.txt >>>>> @@ -0,0 +1,26 @@ >>>>> +Copyright (c) 2014, Renesas Electronics Corporation >>>>> +All rights reserved. >>>>> + >>>>> +Redistribution and use in binary form, without modification, are >>>>> permitted >>>>> +provided that the following conditions are met: >>>>> + >>>>> +1. Redistribution in binary form must reproduce the above copyright >>>>> notice, >>>>> + this list of conditions and the following disclaimer in the >>>>> documentation >>>>> + and/or other materials provided with the distribution. >>>>> +2. The name of Renesas Electronics Corporation may not be used to >>>>> endorse or >>>>> + promote products derived from this software without specific prior >>>>> written >>>>> + permission. >>>>> +3. Reverse engineering, decompilation, or disassembly of this software is >>>>> + not permitted. >>>>> + >>>>> +THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS ELECTRONICS CORPORATION >>>>> DISCLAIMS >>>>> +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE >>>>> IMPLIED >>>>> +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, AND >>>>> +NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL RENESAS >>>>> ELECTRONICS >>>>> +CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, >>>>> EXEMPLARY, >>>>> +OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF >>>>> +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS >>>>> +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN >>>>> +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) >>>>> +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF >>>>> THE >>>>> +POSSIBILITY OF SUCH DAMAGE. >>>>> diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig >>>>> index f5f19ed775..cad9af6977 100644 >>>>> --- a/drivers/usb/host/Kconfig >>>>> +++ b/drivers/usb/host/Kconfig >>>>> @@ -47,6 +47,14 @@ config USB_XHCI_ROCKCHIP >>>>> help >>>>> Enables support for the on-chip xHCI controller on Rockchip >>>>> SoCs. >>>>> >>>>> +config USB_XHCI_RCAR >>>>> + bool "Renesas RCar USB 3.0 support" >>>>> + default y >>>>> + depends on ARCH_RMOBILE >>>>> + help >>>>> + Choose this option to add support for USB 3.0 driver on Renesas >>>>> + RCar Gen3 SoCs. >>>>> + >>>>> config USB_XHCI_STI >>>>> bool "Support for STMicroelectronics STiH407 family on-chip xHCI >>>>> USB controller" >>>>> depends on ARCH_STI >>>>> diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile >>>>> index 83903fcf99..79df888fce 100644 >>>>> --- a/drivers/usb/host/Makefile >>>>> +++ b/drivers/usb/host/Makefile >>>>> @@ -59,6 +59,7 @@ obj-$(CONFIG_USB_XHCI_FSL) += xhci-fsl.o >>>>> obj-$(CONFIG_USB_XHCI_MVEBU) += xhci-mvebu.o >>>>> obj-$(CONFIG_USB_XHCI_OMAP) += xhci-omap.o >>>>> obj-$(CONFIG_USB_XHCI_PCI) += xhci-pci.o >>>>> +obj-$(CONFIG_USB_XHCI_RCAR) += xhci-rcar.o >>>>> obj-$(CONFIG_USB_XHCI_STI) += dwc3-sti-glue.o >>>>> >>>>> # designware >>>>> diff --git a/drivers/usb/host/xhci-rcar-r8a779x_usb3_v3.h >>>>> b/drivers/usb/host/xhci-rcar-r8a779x_usb3_v3.h >>>>> new file mode 100644 >>>>> index 0000000000..f0f48a3354 >>>>> --- /dev/null >>>>> +++ b/drivers/usb/host/xhci-rcar-r8a779x_usb3_v3.h >>>>> @@ -0,0 +1,643 @@ >>>>> +/* >>>>> + * Renesas RCar xHCI controller firmware version 3 >>>>> + * >>>>> + * Copyright (c) 2014, Renesas Electronics Corporation >>>>> + * All rights reserved. >>>>> + * >>>>> + * Redistribution and use in binary form, without modification, are >>>>> permitted >>>>> + * provided that the following conditions are met: >>>>> + * >>>>> + * 1. Redistribution in binary form must reproduce the above copyright >>>>> notice, >>>>> + * this list of conditions and the following disclaimer in the >>>>> documentation >>>>> + * and/or other materials provided with the distribution. >>>>> + * 2. The name of Renesas Electronics Corporation may not be used to >>>>> endorse or >>>>> + * promote products derived from this software without specific prior >>>>> written >>>>> + * permission. >>>>> + * 3. Reverse engineering, decompilation, or disassembly of this >>>>> software is >>>>> + * not permitted. >>>>> + * >>>>> + * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS ELECTRONICS CORPORATION >>>>> DISCLAIMS >>>>> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE >>>>> IMPLIED >>>>> + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, >>>>> AND >>>>> + * NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL RENESAS >>>>> ELECTRONICS >>>>> + * CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, >>>>> EXEMPLARY, >>>>> + * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT >>>>> OF >>>>> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR >>>>> BUSINESS >>>>> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER >>>>> IN >>>>> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR >>>>> OTHERWISE) >>>>> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED >>>>> OF THE >>>>> + * POSSIBILITY OF SUCH DAMAGE. >>>>> + * >>>>> + * This file is generated from the firmware blob r8a779x_usb3_v3.dlmem >>>>> + * with associated license file LICENCE.r8a779x_usb3, both taken from >>>>> + * linux-firmware.git [1] as of: >>>>> + * >>>>> + * commit 7c3dfc0bb21bf717dc19a6b677a866aef8b70c35 >>>>> + * Author: Yoshihiro Shimoda >>>>> + * Date: Wed Aug 10 19:56:39 2016 +0900 >>>>> + * >>>>> + * usb: host: xhci-rcar: update firmware for R-Car H3 and M3-W >>>>> + * >>>>> + * To generate the content of the array below, use ie. the following >>>>> command: >>>>> + * $ hexdump -v -e '/4 "0x%08x, "' r8a779x_usb3_v3.dlmem | \ >>>>> + * sed "s@\(.\{47\}\) @\1\n@g" >>>>> + * >>>>> + * [1] >>>>> git://git.kernel.org/pub/scm/linux/kernel/git/dwmw2/linux-firmware.git >>>>> + */ >>>>> + >>>>> +#ifndef __FIRMWARE_R8A779X_USB3_V3__ >>>>> +#define __FIRMWARE_R8A779X_USB3_V3__ >>>>> + >>>>> +static const u32 firmware_r8a779x_usb3_v3[] = { >>>> >>>> Did you investigate the way to include this firmware image file >>>> directly via binman? >>> >>> Yes, but binman is not what you want to use -- I discussed this with >>> Simon and binman is for assembling the final image and attaching blobs >>> to it. I need to access the firmware from within U-Boot. >> >> There is no problem for any blobs in the binman assembled image to be >> accessible from within U-Boot. x86 uses this way. > > Where ? :-)
You can check CONFIG_FSP_ADDR in arch/x86/dts/u-boot.dtsi, which is the FSP firmware binary blob and is accessed at U-Boot runtime in find_fsp_header() in arch/x86/lib/fsp/fsp_support.c > >>> >>>> +Tom, Simon, >>>> >>>> What's the preferred way to handle such case in U-Boot? I believe >>>> binman was created for this, but so far binman is only used in sunxi >>>> and x86. >>> >>> I am pushing Altera to implement a proper firmware loader by factoring >>> out parts of the "splash" command . The "splash" command can be made >>> into generic firmware loader quite easily, so that's what I'd like to >>> switch to later on. >>> >>>> But I am fine either way: >>>> Reviewed-by: Bin Meng <bmeng...@gmail.com> >>>> >> >> Does this apply anywhere or should it go via the usb xhci tree? > > I'll pick it via USB shortly. > Regards, Bin _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot