On 11/20/2017 01:41 PM, Bin Meng wrote: > 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 Thanks, I'll check that. Although, I'd rather use the FW loader that Chee (from altera) is working on.
-- Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot