return -1;
// Find usb - for example: /pci@i0cf8/usb@1,2/storage@1/channel@0/disk@0,0
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);