Hi Guenter, Philippe,
On Tue, Feb 18, 2020 at 7:39 AM Philippe Mathieu-Daudé <
address@hidden> wrote:
Cc'ing Niek.
On 2/17/20 9:48 PM, Guenter Roeck wrote:
> Instantiate EHCI and OHCI controllers on Allwinner A10.
>
> The first patch in the series moves the declaration of EHCISysBusState
> from hcd-ohci.c to hcd-ohci.h. This lets us add the structure to
> AwA10State. Similar, TYPE_SYSBUS_OHCI is moved to be able to use it
> outside its driver.
>
> The second patch introduces the ehci-sysbus property "companion-enable".
> This lets us use object_property_set_bool() to enable companion mode.
>
> The third patch instantiates EHCI and OHCI ports for Allwinner-A10
> and marks the OHCI ports as companions of the respective EHCI ports.
>
> Tested by attaching various high speed and full speed devices, and by
> booting from USB drive.
>
> v3: Rebased to master
> v2: Add summary
> Rewrite to instantiate OHCI in companion mode; add patch 2/3
> Merge EHCI and OHCI instantiation into a single patch
>
> ----------------------------------------------------------------
> Guenter Roeck (3):
> hw: usb: hcd-ohci: Move OHCISysBusState and TYPE_SYSBUS_OHCI to include file
> hcd-ehci: Introduce "companion-enable" sysbus property
> arm: allwinner: Wire up USB ports
>
> hw/arm/allwinner-a10.c | 43 ++++++++++++++++++++++++++++++++++++++++++
> hw/usb/hcd-ehci-sysbus.c | 2 ++
> hw/usb/hcd-ohci.c | 15 ---------------
> hw/usb/hcd-ohci.h | 16 ++++++++++++++++
> include/hw/arm/allwinner-a10.h | 6 ++++++
> 5 files changed, 67 insertions(+), 15 deletions(-)
>
Thanks for contributing this! I was able to test & verify it on my local machine using latest Qemu master and linux 5.5.0.
I just had to add the -usb flag to the Qemu command and re-compile linux with CONFIG_USB_STORAGE.
Output with buildroot on a USB mass storage disk as rootfs:
++ ./arm-softmmu/qemu-system-arm -M cubieboard -kernel $HOME/cubie/linux.git/arch/arm/boot/zImage -nographic -append 'console=ttyS0,115200 earlyprintk debug rootwait root=/dev/sda ro init=/sbin/init' -dtb $HOME/cubie/linux.git/arch/arm/boot/dts/sun4i-a10-cubieboard.dtb -m 512 -s -usb -drive if=none,id=stick,file=$HOME/cubie/buildroot-2019.11/output/images/rootfs.ext2 -device usb-storage,bus=usb-bus.1,drive=stick -nic user
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.5.0-rc3 (me@host) (gcc version 7.4.0 (Ubuntu/Linaro 7.4.0-1ubuntu1~18.04.1)) #6 SMP Tue Feb 18 23:21:36 CET 2020
[ 0.000000] CPU: ARMv7 Processor [410fc080] revision 0 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[ 0.000000] OF: fdt: Machine model: Cubietech Cubieboard
[ 0.000000] Memory policy: Data cache writeback
...
[ 4.559154] random: fast init done
[ 5.481107] scsi 1:0:0:0: Direct-Access QEMU QEMU HARDDISK 2.5+ PQ: 0 ANSI: 5
[ 5.493282] sd 1:0:0:0: Power-on or device reset occurred
[ 5.513539] sd 1:0:0:0: [sda] 122880 512-byte logical blocks: (62.9 MB/60.0 MiB)
[ 5.521970] sd 1:0:0:0: [sda] Write Protect is off
[ 5.522683] sd 1:0:0:0: [sda] Mode Sense: 63 00 00 08
[ 5.524552] sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 5.613064] sd 1:0:0:0: [sda] Attached SCSI disk
[ 5.681764] EXT4-fs (sda): INFO: recovery required on readonly filesystem
[ 5.682530] EXT4-fs (sda): write access will be enabled during recovery
...
[ 6.129348] EXT4-fs (sda): re-mounted. Opts: (null)
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Initializing random number generator: OK
Saving random seed: [ 7.205617] random: dd: uninitialized urandom read (512 bytes read)
OK
Starting network: OK
Welcome to Cubieboard2!
Cubieboard2 login:
Thanks!
Regards,
Niek
--