Message ID | 20200214060548.24939-1-linux@roeck-us.net (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] hw/arm/xilinx_zynq: Fix USB port instantiation | expand |
On Fri, 14 Feb 2020 at 06:05, Guenter Roeck <linux@roeck-us.net> wrote: > > USB ports must be instantiated as TYPE_CHIPIDEA to work. > Linux expects and checks various chipidea registers, which > do not exist with the basic ehci emulation. Hi; I didn't see a cover letter email for this series (sorry if I missed it). Would you mind including a cover letter email for any more-than-one-patch set, please? It helps the automatic tools and it also decreases the chances that I miss the patches when I'm scanning through my email (when I'm tagging things I might want to review I basically look through subject lines for single patch patches and for 00/nn cover letters and ignore middle-of-patchset emails...) thanks -- PMM
On 2/14/20 1:26 AM, Peter Maydell wrote: > On Fri, 14 Feb 2020 at 06:05, Guenter Roeck <linux@roeck-us.net> wrote: >> >> USB ports must be instantiated as TYPE_CHIPIDEA to work. >> Linux expects and checks various chipidea registers, which >> do not exist with the basic ehci emulation. > > Hi; I didn't see a cover letter email for this series (sorry if > I missed it). Would you mind including a cover letter email I didn't send a cover letter, sorry. > for any more-than-one-patch set, please? It helps the > automatic tools and it also decreases the chances that > I miss the patches when I'm scanning through my email > (when I'm tagging things I might want to review I basically > look through subject lines for single patch patches > and for 00/nn cover letters and ignore middle-of-patchset > emails...) > Sure, NP. I'll resend with a cover letter. Guenter
diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c index 3a0fa5b23f..b4a8b2f2c6 100644 --- a/hw/arm/xilinx_zynq.c +++ b/hw/arm/xilinx_zynq.c @@ -29,6 +29,7 @@ #include "hw/loader.h" #include "hw/misc/zynq-xadc.h" #include "hw/ssi/ssi.h" +#include "hw/usb/chipidea.h" #include "qemu/error-report.h" #include "hw/sd/sdhci.h" #include "hw/char/cadence_uart.h" @@ -228,8 +229,8 @@ static void zynq_init(MachineState *machine) zynq_init_spi_flashes(0xE0007000, pic[81-IRQ_OFFSET], false); zynq_init_spi_flashes(0xE000D000, pic[51-IRQ_OFFSET], true); - sysbus_create_simple("xlnx,ps7-usb", 0xE0002000, pic[53-IRQ_OFFSET]); - sysbus_create_simple("xlnx,ps7-usb", 0xE0003000, pic[76-IRQ_OFFSET]); + sysbus_create_simple(TYPE_CHIPIDEA, 0xE0002000, pic[53 - IRQ_OFFSET]); + sysbus_create_simple(TYPE_CHIPIDEA, 0xE0003000, pic[76 - IRQ_OFFSET]); cadence_uart_create(0xE0000000, pic[59 - IRQ_OFFSET], serial_hd(0)); cadence_uart_create(0xE0001000, pic[82 - IRQ_OFFSET], serial_hd(1));
USB ports must be instantiated as TYPE_CHIPIDEA to work. Linux expects and checks various chipidea registers, which do not exist with the basic ehci emulation. Without this patch, USB ports fail to instantiate under Linux. ci_hdrc ci_hdrc.0: doesn't support host ci_hdrc ci_hdrc.0: no supported roles With this patch, USB ports are instantiated, and it is possible to boot from USB drive. ci_hdrc ci_hdrc.0: EHCI Host Controller ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1 ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00 usb 1-1: new full-speed USB device number 2 using ci_hdrc usb 1-1: not running at top speed; connect to a high speed hub usb 1-1: config 1 interface 0 altsetting 0 endpoint 0x81 has invalid maxpacket 512, setting to 64 usb 1-1: config 1 interface 0 altsetting 0 endpoint 0x2 has invalid maxpacket 512, setting to 64 usb-storage 1-1:1.0: USB Mass Storage device detected scsi host0: usb-storage 1-1:1.0 Signed-off-by: Guenter Roeck <linux@roeck-us.net> --- hw/arm/xilinx_zynq.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)