On Wed, Sep 30, 2020 at 01:14:31PM +0200, Gerd Hoffmann wrote:
> Add mmio field to usb controller struct, add support for mmio-mapped
> usb host adapters to boot order handling.
> 
> Signed-off-by: Gerd Hoffmann <kra...@redhat.com>
> ---
>  src/hw/usb.h |  1 +
>  src/boot.c   | 10 +++++++++-
>  2 files changed, 10 insertions(+), 1 deletion(-)
> 
> diff --git a/src/hw/usb.h b/src/hw/usb.h
> index 2cfb5721775a..887f2064cf3a 100644
> --- a/src/hw/usb.h
> +++ b/src/hw/usb.h
> @@ -35,6 +35,7 @@ struct usb_s {
>      struct usb_pipe *freelist;
>      struct mutex_s resetlock;
>      struct pci_device *pci;
> +    void *mmio;
>      u8 type;
>      u8 maxaddr;
>  };
> diff --git a/src/boot.c b/src/boot.c
> index a715e37356e2..bd78fb907c5a 100644
> --- a/src/boot.c
> +++ b/src/boot.c
> @@ -425,7 +425,15 @@ int bootprio_find_usb(struct usbdevice_s *usbdev, int 
> lun)
>          return -1;
>      // Find usb - for example: 
> /pci@i0cf8/usb@1,2/storage@1/channel@0/disk@0,0

What does an example usb descriptor look like with mmio?

>      char desc[256], *p;
> -    p = build_pci_path(desc, sizeof(desc), "usb", usbdev->hub->cntl->pci);
> +
> +    if (usbdev->hub->cntl->pci)
> +        p = build_pci_path(desc, sizeof(desc), "usb", 
> usbdev->hub->cntl->pci);
> +    else if (usbdev->hub->cntl->mmio)
> +        p = desc + snprintf(desc, sizeof(desc), "/*@%016x"
> +                            , (u32)usbdev->hub->cntl->mmio);
> +    else
> +        return -1;
> +
>      p = build_usb_path(p, desc+sizeof(desc)-p, usbdev->hub);
>      snprintf(p, desc+sizeof(desc)-p, "/storage@%x/*@0/*@0,%x"
>               , usb_portmap(usbdev), lun);
> -- 
> 2.27.0
> _______________________________________________
> SeaBIOS mailing list -- seabios@seabios.org
> To unsubscribe send an email to seabios-le...@seabios.org
_______________________________________________
SeaBIOS mailing list -- seabios@seabios.org
To unsubscribe send an email to seabios-le...@seabios.org

Reply via email to