diff options
-rw-r--r-- | payloads/libpayload/drivers/usb/ehci.c | 18 | ||||
-rw-r--r-- | payloads/libpayload/drivers/usb/ehci_rh.c | 12 | ||||
-rw-r--r-- | payloads/libpayload/drivers/usb/ohci.c | 18 | ||||
-rw-r--r-- | payloads/libpayload/drivers/usb/ohci_rh.c | 18 | ||||
-rw-r--r-- | payloads/libpayload/drivers/usb/quirks.c | 2 | ||||
-rw-r--r-- | payloads/libpayload/drivers/usb/uhci.c | 46 | ||||
-rw-r--r-- | payloads/libpayload/drivers/usb/uhci_rh.c | 18 | ||||
-rw-r--r-- | payloads/libpayload/drivers/usb/usb.c | 28 | ||||
-rw-r--r-- | payloads/libpayload/drivers/usb/usbhid.c | 18 | ||||
-rw-r--r-- | payloads/libpayload/drivers/usb/usbhub.c | 4 | ||||
-rw-r--r-- | payloads/libpayload/drivers/usb/usbmsc.c | 18 | ||||
-rw-r--r-- | payloads/libpayload/drivers/usb/xhci.c | 36 | ||||
-rw-r--r-- | payloads/libpayload/drivers/usb/xhci_rh.c | 8 | ||||
-rw-r--r-- | payloads/libpayload/include/usb/usb.h | 10 |
14 files changed, 129 insertions, 125 deletions
diff --git a/payloads/libpayload/drivers/usb/ehci.c b/payloads/libpayload/drivers/usb/ehci.c index 4d0a209977..29b399a324 100644 --- a/payloads/libpayload/drivers/usb/ehci.c +++ b/payloads/libpayload/drivers/usb/ehci.c @@ -34,8 +34,8 @@ static void dump_td(u32 addr) { qtd_t *td = phys_to_virt(addr); - debug("td at phys(%x): status: %x\n\n", addr, td->token & QTD_STATUS_MASK); - debug("- cerr: %x, total_len: %x\n\n", (td->token & QTD_CERR_MASK) >> QTD_CERR_SHIFT, + usb_debug("td at phys(%x): status: %x\n\n", addr, td->token & QTD_STATUS_MASK); + usb_debug("- cerr: %x, total_len: %x\n\n", (td->token & QTD_CERR_MASK) >> QTD_CERR_SHIFT, (td->token & QTD_TOTAL_LEN_MASK) >> QTD_TOTAL_LEN_SHIFT); } @@ -70,7 +70,7 @@ static int ehci_set_periodic_schedule(ehci_t *ehcic, int enable) && timeout--) mdelay(1); if (timeout < 0) { - debug("ehci periodic schedule status change timed out.\n"); + usb_debug("ehci periodic schedule status change timed out.\n"); return 1; } return 0; @@ -110,7 +110,7 @@ static int closest_usb2_hub(const usbdev_t *dev, int *const addr, int *const por *port = usb1dev->port; return 0; } else { - debug("ehci: Couldn't find closest USB2.0 hub.\n"); + usb_debug("ehci: Couldn't find closest USB2.0 hub.\n"); return 1; } } @@ -192,7 +192,7 @@ static int wait_for_tds(qtd_t *head) if (cur->token & QTD_HALTED) { printf("ERROR with packet\n"); dump_td(virt_to_phys(cur)); - debug("-----------------\n"); + usb_debug("-----------------\n"); return 1; } if (cur->next_qtd & 1) { @@ -200,7 +200,7 @@ static int wait_for_tds(qtd_t *head) } if (0) dump_td(virt_to_phys(cur)); /* helps debugging the TD chain */ - if (0) debug("\nmoving from %x to %x\n", cur, phys_to_virt(cur->next_qtd)); + if (0) usb_debug("\nmoving from %x to %x\n", cur, phys_to_virt(cur->next_qtd)); cur = phys_to_virt(cur->next_qtd); } return result; @@ -222,7 +222,7 @@ static int ehci_set_async_schedule(ehci_t *ehcic, int enable) && timeout--) mdelay(1); if (timeout < 0) { - debug("ehci async schedule status change timed out.\n"); + usb_debug("ehci async schedule status change timed out.\n"); return 1; } return 0; @@ -590,7 +590,7 @@ static u8 *ehci_poll_intr_queue(void *const queue) if (!(intrq->head->td.token & QTD_STATUS_MASK)) ret = intrq->head->data; else - debug("ehci_poll_intr_queue: transfer failed, " + usb_debug("ehci_poll_intr_queue: transfer failed, " "status == 0x%02x\n", intrq->head->td.token & QTD_STATUS_MASK); @@ -606,7 +606,7 @@ static u8 *ehci_poll_intr_queue(void *const queue) } /* reset queue if we fully processed it after underrun */ else if (intrq->qh.td.next_qtd & QTD_TERMINATE) { - debug("resetting underrun ehci interrupt queue.\n"); + usb_debug("resetting underrun ehci interrupt queue.\n"); memset(&intrq->qh.td, 0, sizeof(intrq->qh.td)); intrq->qh.td.next_qtd = virt_to_phys(&intrq->head->td); } diff --git a/payloads/libpayload/drivers/usb/ehci_rh.c b/payloads/libpayload/drivers/usb/ehci_rh.c index 5f92bd7894..f58e1cf36c 100644 --- a/payloads/libpayload/drivers/usb/ehci_rh.c +++ b/payloads/libpayload/drivers/usb/ehci_rh.c @@ -53,7 +53,7 @@ ehci_rh_destroy (usbdev_t *dev) static void ehci_rh_hand_over_port (usbdev_t *dev, int port) { - debug("giving up port %x, it's USB1\n", port+1); + usb_debug("giving up port %x, it's USB1\n", port+1); /* Clear ConnectStatusChange before evaluation */ /* RW/C register, so clear it by writing 1 */ @@ -67,7 +67,7 @@ ehci_rh_hand_over_port (usbdev_t *dev, int port) while (!(RH_INST(dev)->ports[port] & P_CONN_STATUS_CHANGE) && timeout--) mdelay(10); if (!(RH_INST(dev)->ports[port] & P_CONN_STATUS_CHANGE)) { - debug("Warning: Handing port over to companion timed out.\n"); + usb_debug("Warning: Handing port over to companion timed out.\n"); } /* RW/C register, so clear it by writing 1 */ @@ -79,7 +79,7 @@ static void ehci_rh_scanport (usbdev_t *dev, int port) { if (RH_INST(dev)->devices[port]!=-1) { - debug("Unregister device at port %x\n", port+1); + usb_debug("Unregister device at port %x\n", port+1); usb_detach_device(dev->controller, RH_INST(dev)->devices[port]); RH_INST(dev)->devices[port]=-1; } @@ -118,7 +118,7 @@ ehci_rh_scanport (usbdev_t *dev, int port) ehci_rh_hand_over_port(dev, port); return; } - debug("port %x hosts a USB2 device\n", port+1); + usb_debug("port %x hosts a USB2 device\n", port+1); RH_INST(dev)->devices[port] = usb_attach_device(dev->controller, dev->address, port, 2); } /* RW/C register, so clear it by writing 1 */ @@ -157,14 +157,14 @@ ehci_rh_init (usbdev_t *dev) RH_INST(dev)->n_ports = EHCI_INST(dev->controller)->capabilities->hcsparams & HCS_NPORTS_MASK; RH_INST(dev)->ports = EHCI_INST(dev->controller)->operation->portsc; - debug("root hub has %x ports\n", RH_INST(dev)->n_ports); + usb_debug("root hub has %x ports\n", RH_INST(dev)->n_ports); /* If the host controller has port power control, enable power on * all ports and wait 20ms. */ if (EHCI_INST(dev->controller)->capabilities->hcsparams & HCS_PORT_POWER_CONTROL) { - debug("host controller has port power control, " + usb_debug("host controller has port power control, " "giving power to all ports.\n"); for (i=0; i < RH_INST(dev)->n_ports; i++) RH_INST(dev)->ports[i] |= P_PP; diff --git a/payloads/libpayload/drivers/usb/ohci.c b/payloads/libpayload/drivers/usb/ohci.c index 570851559e..095eec93b0 100644 --- a/payloads/libpayload/drivers/usb/ohci.c +++ b/payloads/libpayload/drivers/usb/ohci.c @@ -206,9 +206,9 @@ dump_td(td_t *cur, int level) #ifdef USB_DEBUG static const char *spaces=" "; const char *spc=spaces+(10-level); - debug("%std at %x (%s), condition code: %s\n", spc, cur, direction[(cur->config & TD_DIRECTION_MASK) >> TD_DIRECTION_SHIFT], + usb_debug("%std at %x (%s), condition code: %s\n", spc, cur, direction[(cur->config & TD_DIRECTION_MASK) >> TD_DIRECTION_SHIFT], completion_codes[(cur->config & TD_CC_MASK) >> TD_CC_SHIFT]); - debug("%s toggle: %x\n", spc, !!(cur->config & TD_TOGGLE_DATA1)); + usb_debug("%s toggle: %x\n", spc, !!(cur->config & TD_TOGGLE_DATA1)); #endif } @@ -227,7 +227,7 @@ wait_for_ed(usbdev_t *dev, ed_t *head, int pages) timeout--) { /* don't log every ms */ if (!(timeout % 100)) - debug("intst: %x; ctrl: %x; cmdst: %x; head: %x -> %x, tail: %x, condition: %x\n", + usb_debug("intst: %x; ctrl: %x; cmdst: %x; head: %x -> %x, tail: %x, condition: %x\n", OHCI_INST(dev->controller)->opreg->HcInterruptStatus, OHCI_INST(dev->controller)->opreg->HcControl, OHCI_INST(dev->controller)->opreg->HcCommandStatus, @@ -244,7 +244,7 @@ wait_for_ed(usbdev_t *dev, ed_t *head, int pages) ohci_process_done_queue(OHCI_INST(dev->controller), 1); if (head->head_pointer & 1) { - debug("HALTED!\n"); + usb_debug("HALTED!\n"); return 1; } return 0; @@ -363,7 +363,7 @@ ohci_control (usbdev_t *dev, direction_t dir, int drlen, void *devreq, int dalen head->tail_pointer = virt_to_phys(final_td); head->head_pointer = virt_to_phys(first_td); - debug("doing control transfer with %x. first_td at %x\n", + usb_debug("doing control transfer with %x. first_td at %x\n", head->config & ED_FUNC_MASK, virt_to_phys(first_td)); /* activate schedule */ @@ -389,7 +389,7 @@ static int ohci_bulk (endpoint_t *ep, int dalen, u8 *data, int finalize) { int i; - debug("bulk: %x bytes from %x, finalize: %x, maxpacketsize: %x\n", dalen, data, finalize, ep->maxpacketsize); + usb_debug("bulk: %x bytes from %x, finalize: %x, maxpacketsize: %x\n", dalen, data, finalize, ep->maxpacketsize); td_t *cur, *next; @@ -465,7 +465,7 @@ ohci_bulk (endpoint_t *ep, int dalen, u8 *data, int finalize) head->tail_pointer = virt_to_phys(cur); head->head_pointer = virt_to_phys(first_td) | (ep->toggle?ED_TOGGLE:0); - debug("doing bulk transfer with %x(%x). first_td at %x, last %x\n", + usb_debug("doing bulk transfer with %x(%x). first_td at %x, last %x\n", head->config & ED_FUNC_MASK, (head->config & ED_EP_MASK) >> ED_EP_SHIFT, virt_to_phys(first_td), virt_to_phys(cur)); @@ -738,7 +738,7 @@ ohci_process_done_queue(ohci_t *const ohci, const int spew_debug) ++i; } if (spew_debug) - debug("Processed %d done TDs.\n", i); + usb_debug("Processed %d done TDs.\n", i); j = 0; /* Process interrupt queue TDs in right order. */ @@ -763,6 +763,6 @@ ohci_process_done_queue(ohci_t *const ohci, const int spew_debug) ++j; } if (spew_debug) - debug("processed %d done tds, %d intr tds thereof.\n", i, j); + usb_debug("processed %d done tds, %d intr tds thereof.\n", i, j); } diff --git a/payloads/libpayload/drivers/usb/ohci_rh.c b/payloads/libpayload/drivers/usb/ohci_rh.c index ac92f45a46..eb3e10b26c 100644 --- a/payloads/libpayload/drivers/usb/ohci_rh.c +++ b/payloads/libpayload/drivers/usb/ohci_rh.c @@ -65,17 +65,17 @@ ohci_rh_enable_port (usbdev_t *dev, int port) } if (OHCI_INST (dev->controller)->opreg->HcRhPortStatus[port] & PortResetStatus) { - debug("Warning: root-hub port reset timed out.\n"); + usb_debug("Warning: root-hub port reset timed out.\n"); break; } if ((200-timeout) < 20) - debug("Warning: port reset too short: %dms; " + usb_debug("Warning: port reset too short: %dms; " "should be at least 10ms.\n", (200-timeout)/2); /* clear reset status change */ OHCI_INST (dev->controller)->opreg->HcRhPortStatus[port] = PortResetStatusChange; - debug ("rh port reset finished after %dms.\n", (200-timeout)/2); + usb_debug ("rh port reset finished after %dms.\n", (200-timeout)/2); } } @@ -96,7 +96,7 @@ static void ohci_rh_scanport (usbdev_t *dev, int port) { if (port >= RH_INST(dev)->numports) { - debug("Invalid port %d\n", port); + usb_debug("Invalid port %d\n", port); return; } @@ -117,7 +117,7 @@ ohci_rh_scanport (usbdev_t *dev, int port) mdelay(100); // wait for signal to stabilize if (!(OHCI_INST(dev->controller)->opreg->HcRhPortStatus[port] & PortEnableStatus)) { - debug ("port enable failed\n"); + usb_debug ("port enable failed\n"); return; } @@ -132,12 +132,12 @@ ohci_rh_report_port_changes (usbdev_t *dev) if (!(OHCI_INST (dev->controller)->opreg->HcInterruptStatus & RootHubStatusChange)) return -1; OHCI_INST (dev->controller)->opreg->HcInterruptStatus = RootHubStatusChange; - debug("port change\n"); + usb_debug("port change\n"); for (i = 0; i < RH_INST(dev)->numports; i++) { // maybe detach+attach happened between two scans? if (OHCI_INST (dev->controller)->opreg->HcRhPortStatus[i] & ConnectStatusChange) { - debug("attachment change on port %d\n", i); + usb_debug("attachment change on port %d\n", i); return i; } } @@ -177,7 +177,7 @@ ohci_rh_init (usbdev_t *dev) RH_INST (dev)->numports = OHCI_INST (dev->controller)->opreg->HcRhDescriptorA & NumberDownstreamPortsMask; RH_INST (dev)->port = malloc(sizeof(int) * RH_INST (dev)->numports); - debug("%d ports registered\n", RH_INST (dev)->numports); + usb_debug("%d ports registered\n", RH_INST (dev)->numports); for (i = 0; i < RH_INST (dev)->numports; i++) { ohci_rh_enable_port (dev, i); @@ -190,5 +190,5 @@ ohci_rh_init (usbdev_t *dev) dev->hub = -1; dev->port = -1; - debug("rh init done\n"); + usb_debug("rh init done\n"); } diff --git a/payloads/libpayload/drivers/usb/quirks.c b/payloads/libpayload/drivers/usb/quirks.c index 96acd082ea..a8f2622e31 100644 --- a/payloads/libpayload/drivers/usb/quirks.c +++ b/payloads/libpayload/drivers/usb/quirks.c @@ -64,7 +64,7 @@ u32 usb_quirk_check(u16 vendor, u16 device) for (i = 0; i < ARRAY_SIZE(usb_quirks); i++) { if ((usb_quirks[i].vendor == vendor) && (usb_quirks[i].device == device)) { - debug("USB quirks enabled: %08x\n", + usb_debug("USB quirks enabled: %08x\n", usb_quirks[i].quirks); return usb_quirks[i].quirks; } diff --git a/payloads/libpayload/drivers/usb/uhci.c b/payloads/libpayload/drivers/usb/uhci.c index 764770763a..ab4f7982d1 100644 --- a/payloads/libpayload/drivers/usb/uhci.c +++ b/payloads/libpayload/drivers/usb/uhci.c @@ -50,14 +50,14 @@ static u8* uhci_poll_intr_queue (void *queue); static void uhci_dump (hci_t *controller) { - debug ("dump:\nUSBCMD: %x\n", uhci_reg_read16 (controller, USBCMD)); - debug ("USBSTS: %x\n", uhci_reg_read16 (controller, USBSTS)); - debug ("USBINTR: %x\n", uhci_reg_read16 (controller, USBINTR)); - debug ("FRNUM: %x\n", uhci_reg_read16 (controller, FRNUM)); - debug ("FLBASEADD: %x\n", uhci_reg_read32 (controller, FLBASEADD)); - debug ("SOFMOD: %x\n", uhci_reg_read8 (controller, SOFMOD)); - debug ("PORTSC1: %x\n", uhci_reg_read16 (controller, PORTSC1)); - debug ("PORTSC2: %x\n", uhci_reg_read16 (controller, PORTSC2)); + usb_debug ("dump:\nUSBCMD: %x\n", uhci_reg_read16 (controller, USBCMD)); + usb_debug ("USBSTS: %x\n", uhci_reg_read16 (controller, USBSTS)); + usb_debug ("USBINTR: %x\n", uhci_reg_read16 (controller, USBINTR)); + usb_debug ("FRNUM: %x\n", uhci_reg_read16 (controller, FRNUM)); + usb_debug ("FLBASEADD: %x\n", uhci_reg_read32 (controller, FLBASEADD)); + usb_debug ("SOFMOD: %x\n", uhci_reg_read8 (controller, SOFMOD)); + usb_debug ("PORTSC1: %x\n", uhci_reg_read16 (controller, PORTSC1)); + usb_debug ("PORTSC2: %x\n", uhci_reg_read16 (controller, PORTSC2)); } #endif @@ -80,22 +80,22 @@ td_dump (td_t *td) sprintf(td_value, "%x", td->token & TD_PID_MASK); td_type=td_value; } - debug ("%s packet (at %lx) to %x.%x failed\n", td_type, + usb_debug ("%s packet (at %lx) to %x.%x failed\n", td_type, virt_to_phys (td), (td->token & TD_DEVADDR_MASK) >> TD_DEVADDR_SHIFT, (td->token & TD_EP_MASK) >> TD_EP_SHIFT); - debug ("td (counter at %x) returns: ", td->ctrlsts >> TD_COUNTER_SHIFT); - debug (" bitstuff err: %x, ", !!(td->ctrlsts & TD_STATUS_BITSTUFF_ERR)); - debug (" CRC err: %x, ", !!(td->ctrlsts & TD_STATUS_CRC_ERR)); - debug (" NAK rcvd: %x, ", !!(td->ctrlsts & TD_STATUS_NAK_RCVD)); - debug (" Babble: %x, ", !!(td->ctrlsts & TD_STATUS_BABBLE)); - debug (" Data Buffer err: %x, ", !!(td->ctrlsts & TD_STATUS_DATABUF_ERR)); - debug (" Stalled: %x, ", !!(td->ctrlsts & TD_STATUS_STALLED)); - debug (" Active: %x\n", !!(td->ctrlsts & TD_STATUS_ACTIVE)); + usb_debug ("td (counter at %x) returns: ", td->ctrlsts >> TD_COUNTER_SHIFT); + usb_debug (" bitstuff err: %x, ", !!(td->ctrlsts & TD_STATUS_BITSTUFF_ERR)); + usb_debug (" CRC err: %x, ", !!(td->ctrlsts & TD_STATUS_CRC_ERR)); + usb_debug (" NAK rcvd: %x, ", !!(td->ctrlsts & TD_STATUS_NAK_RCVD)); + usb_debug (" Babble: %x, ", !!(td->ctrlsts & TD_STATUS_BABBLE)); + usb_debug (" Data Buffer err: %x, ", !!(td->ctrlsts & TD_STATUS_DATABUF_ERR)); + usb_debug (" Stalled: %x, ", !!(td->ctrlsts & TD_STATUS_STALLED)); + usb_debug (" Active: %x\n", !!(td->ctrlsts & TD_STATUS_ACTIVE)); if (td->ctrlsts & TD_STATUS_BABBLE) - debug (" Babble because of %s\n", + usb_debug (" Babble because of %s\n", (td->ctrlsts & TD_STATUS_BITSTUFF_ERR) ? "host" : "device"); if (td->ctrlsts & TD_STATUS_ACTIVE) - debug (" still active - timeout?\n"); + usb_debug (" still active - timeout?\n"); } static void @@ -113,12 +113,12 @@ uhci_reset (hci_t *controller) while (((uhci_reg_read16 (controller, USBCMD) & 2) != 0) && timeout--) udelay (500); if (timeout < 0) - debug ("Warning: uhci: host controller reset timed out.\n"); + usb_debug ("Warning: uhci: host controller reset timed out.\n"); uhci_reg_write32 (controller, FLBASEADD, (u32) virt_to_phys (UHCI_INST (controller)-> framelistptr)); - //debug ("framelist at %p\n",UHCI_INST(controller)->framelistptr); + //usb_debug ("framelist at %p\n",UHCI_INST(controller)->framelistptr); /* disable irqs */ uhci_reg_write16 (controller, USBINTR, 0); @@ -364,7 +364,7 @@ uhci_control (usbdev_t *dev, direction_t dir, int drlen, void *devreq, int dalen if (td == 0) { result = 0; } else { - debug ("control packet, req %x\n", req); + usb_debug ("control packet, req %x\n", req); td_dump (td); result = 1; } @@ -445,7 +445,7 @@ uhci_bulk (endpoint_t *ep, int size, u8 *data, int finalize) size -= maxpsize; } if (run_schedule (ep->dev, tds) == 1) { - debug("Stalled. Trying to clean up.\n"); + usb_debug("Stalled. Trying to clean up.\n"); clear_stall (ep); free (tds); return 1; diff --git a/payloads/libpayload/drivers/usb/uhci_rh.c b/payloads/libpayload/drivers/usb/uhci_rh.c index 547f0644b4..44ba498274 100644 --- a/payloads/libpayload/drivers/usb/uhci_rh.c +++ b/payloads/libpayload/drivers/usb/uhci_rh.c @@ -49,7 +49,7 @@ uhci_rh_enable_port (usbdev_t *dev, int port) else if (port == 2) port = PORTSC2; else { - debug("Invalid port %d\n", port); + usb_debug("Invalid port %d\n", port); return; } @@ -73,7 +73,7 @@ uhci_rh_enable_port (usbdev_t *dev, int port) udelay(500); timeout--; } while (((value & (1 << 2)) == 0) && (value & 0x01) && timeout); if (!timeout) - debug("Warning: uhci_rh: port enabling timed out.\n"); + usb_debug("Warning: uhci_rh: port enabling timed out.\n"); } /* disable root hub */ @@ -86,7 +86,7 @@ uhci_rh_disable_port (usbdev_t *dev, int port) else if (port == 2) port = PORTSC2; else { - debug("Invalid port %d\n", port); + usb_debug("Invalid port %d\n", port); return; } uhci_reg_write16(controller, port, @@ -100,7 +100,7 @@ uhci_rh_disable_port (usbdev_t *dev, int port) udelay(500); timeout--; } while (((value & (1 << 2)) != 0) && timeout); if (!timeout) - debug("Warning: uhci_rh: port disabling timed out.\n"); + usb_debug("Warning: uhci_rh: port disabling timed out.\n"); } static void @@ -114,7 +114,7 @@ uhci_rh_scanport (usbdev_t *dev, int port) portsc = PORTSC2; offset = 1; } else { - debug("Invalid port %d\n", port); + usb_debug("Invalid port %d\n", port); return; } int devno = RH_INST (dev)->port[offset]; @@ -147,25 +147,25 @@ uhci_rh_report_port_changes (usbdev_t *dev) stored = (RH_INST (dev)->port[0] == -1); real = ((uhci_reg_read16 (dev->controller, PORTSC1) & 1) == 0); if (stored != real) { - debug("change on port 1\n"); + usb_debug("change on port 1\n"); return 1; } stored = (RH_INST (dev)->port[1] == -1); real = ((uhci_reg_read16 (dev->controller, PORTSC2) & 1) == 0); if (stored != real) { - debug("change on port 2\n"); + usb_debug("change on port 2\n"); return 2; } // maybe detach+attach happened between two scans? if ((uhci_reg_read16 (dev->controller, PORTSC1) & 2) > 0) { - debug("possibly re-attached on port 1\n"); + usb_debug("possibly re-attached on port 1\n"); return 1; } if ((uhci_reg_read16 (dev->controller, PORTSC2) & 2) > 0) { - debug("possibly re-attached on port 2\n"); + usb_debug("possibly re-attached on port 2\n"); return 2; } diff --git a/payloads/libpayload/drivers/usb/usb.c b/payloads/libpayload/drivers/usb/usb.c index d5514f980c..e51adaca7f 100644 --- a/payloads/libpayload/drivers/usb/usb.c +++ b/payloads/libpayload/drivers/usb/usb.c @@ -108,7 +108,7 @@ void init_device_entry (hci_t *controller, int i) { if (controller->devices[i] != 0) - debug("warning: device %d reassigned?\n", i); + usb_debug("warning: device %d reassigned?\n", i); controller->devices[i] = malloc(sizeof(usbdev_t)); controller->devices[i]->controller = controller; controller->devices[i]->address = -1; @@ -162,13 +162,13 @@ get_descriptor (usbdev_t *dev, unsigned char bmRequestType, int descType, dr.wIndex = langID; dr.wLength = 8; if (dev->controller->control (dev, IN, sizeof (dr), &dr, 8, buf)) { - debug ("getting descriptor size (type %x) failed\n", + usb_debug ("getting descriptor size (type %x) failed\n", descType); } if (descType == 1) { device_descriptor_t *dd = (device_descriptor_t *) buf; - debug ("maxPacketSize0: %x\n", dd->bMaxPacketSize0); + usb_debug ("maxPacketSize0: %x\n", dd->bMaxPacketSize0); if (dd->bMaxPacketSize0 != 0) dev->endpoints[0].maxpacketsize = dd->bMaxPacketSize0; } @@ -186,7 +186,7 @@ get_descriptor (usbdev_t *dev, unsigned char bmRequestType, int descType, dr.wLength = size; if (dev->controller-> control (dev, IN, sizeof (dr), &dr, size, result)) { - debug ("getting descriptor (type %x, size %x) failed\n", + usb_debug ("getting descriptor (type %x, size %x) failed\n", descType, size); } @@ -242,7 +242,7 @@ get_free_address (hci_t *controller) if (controller->devices[i] == 0) return i; } - debug ("no free address found\n"); + usb_debug ("no free address found\n"); return -1; // no free address } @@ -277,7 +277,7 @@ set_address (hci_t *controller, int speed, int hubport, int hubaddr) dev->endpoints[0].direction = SETUP; mdelay (50); if (dev->controller->control (dev, OUT, sizeof (dr), &dr, 0, 0)) { - debug ("set_address failed\n"); + usb_debug ("set_address failed\n"); return -1; } mdelay (50); @@ -291,7 +291,7 @@ set_address (hci_t *controller, int speed, int hubport, int hubaddr) dd->bcdUSB >> 8, dd->bcdUSB & 0xff); dev->quirks = usb_quirk_check(dd->idVendor, dd->idProduct); - debug ("\ndevice has %x configurations\n", dd->bNumConfigurations); + usb_debug ("\ndevice has %x configurations\n", dd->bNumConfigurations); if (dd->bNumConfigurations == 0) { /* device isn't usable */ printf ("... no usable configuration!\n"); @@ -309,7 +309,7 @@ set_address (hci_t *controller, int speed, int hubport, int hubaddr) int i; int num = cd->bNumInterfaces; interface_descriptor_t *current = interface; - debug ("device has %x interfaces\n", num); + usb_debug ("device has %x interfaces\n", num); if (num > 1) { int interfaces = usb_interface_check(dd->idVendor, dd->idProduct); if (interfaces) { @@ -331,7 +331,7 @@ set_address (hci_t *controller, int speed, int hubport, int hubaddr) } for (i = 0; i < num; i++) { int j; - debug (" #%x has %x endpoints, interface %x:%x, protocol %x\n", + usb_debug (" #%x has %x endpoints, interface %x:%x, protocol %x\n", current->bInterfaceNumber, current->bNumEndpoints, current->bInterfaceClass, current->bInterfaceSubClass, current->bInterfaceProtocol); endpoint_descriptor_t *endp = (endpoint_descriptor_t *) (((char *) current) @@ -349,7 +349,7 @@ set_address (hci_t *controller, int speed, int hubport, int hubaddr) static const char *transfertypes[4] = { "control", "isochronous", "bulk", "interrupt" }; - debug (" #%x: Endpoint %x (%s), max packet size %x, type %s\n", j, endp->bEndpointAddress & 0x7f, ((endp->bEndpointAddress & 0x80) != 0) ? "in" : "out", endp->wMaxPacketSize, transfertypes[endp->bmAttributes]); + usb_debug (" #%x: Endpoint %x (%s), max packet size %x, type %s\n", j, endp->bEndpointAddress & 0x7f, ((endp->bEndpointAddress & 0x80) != 0) ? "in" : "out", endp->wMaxPacketSize, transfertypes[endp->bmAttributes]); #endif endpoint_t *ep = &dev->endpoints[dev->num_endp++]; @@ -403,7 +403,7 @@ set_address (hci_t *controller, int speed, int hubport, int hubaddr) #ifdef CONFIG_USB_HID controller->devices[adr]->init = usb_hid_init; #else - debug ("NOTICE: USB HID support not compiled in\n"); + usb_debug ("NOTICE: USB HID support not compiled in\n"); #endif break; case physical_device: @@ -420,7 +420,7 @@ set_address (hci_t *controller, int speed, int hubport, int hubaddr) #ifdef CONFIG_USB_MSC controller->devices[adr]->init = usb_msc_init; #else - debug ("NOTICE: USB MSC support not compiled in\n"); + usb_debug ("NOTICE: USB MSC support not compiled in\n"); #endif break; case hub_device: @@ -428,7 +428,7 @@ set_address (hci_t *controller, int speed, int hubport, int hubaddr) #ifdef CONFIG_USB_HUB controller->devices[adr]->init = usb_hub_init; #else - debug ("NOTICE: USB hub support not compiled in.\n"); + usb_debug ("NOTICE: USB hub support not compiled in.\n"); #endif break; case cdc_device: @@ -480,7 +480,7 @@ int usb_attach_device(hci_t *controller, int hubaddress, int port, int speed) { static const char* speeds[] = { "full", "low", "high" }; - debug ("%sspeed device\n", (speed <= 2) ? speeds[speed] : "invalid value - no"); + usb_debug ("%sspeed device\n", (speed <= 2) ? speeds[speed] : "invalid value - no"); int newdev = set_address (controller, speed, port, hubaddress); if (newdev == -1) return -1; diff --git a/payloads/libpayload/drivers/usb/usbhid.c b/payloads/libpayload/drivers/usb/usbhid.c index d5141c6353..496fbaa3f7 100644 --- a/payloads/libpayload/drivers/usb/usbhid.c +++ b/payloads/libpayload/drivers/usb/usbhid.c @@ -324,7 +324,7 @@ usb_hid_process_keyboard_event(usb_hid_keyboard_event_t *current, if (keypress == -1) { /* Debug: Print unknown keys */ - debug ("usbhid: <%x> %x [ %x %x %x %x %x %x ] %d\n", + usb_debug ("usbhid: <%x> %x [ %x %x %x %x %x %x ] %d\n", current->modifiers, current->repeats, current->keys[0], current->keys[1], current->keys[2], current->keys[3], @@ -429,18 +429,18 @@ usb_hid_init (usbdev_t *dev) if (interface->bInterfaceSubClass == hid_subclass_boot) { u8 countrycode; - debug (" supports boot interface..\n"); - debug (" it's a %s\n", + usb_debug (" supports boot interface..\n"); + usb_debug (" it's a %s\n", boot_protos[interface->bInterfaceProtocol]); switch (interface->bInterfaceProtocol) { case hid_boot_proto_keyboard: dev->data = malloc (sizeof (usbhid_inst_t)); if (!dev->data) fatal("Not enough memory for USB HID device.\n"); - debug (" configuring...\n"); + usb_debug (" configuring...\n"); usb_hid_set_protocol(dev, interface, hid_proto_boot); usb_hid_set_idle(dev, interface, KEYBOARD_REPEAT_MS); - debug (" activating...\n"); + usb_debug (" activating...\n"); HID_INST (dev)->descriptor = (hid_descriptor_t *) @@ -451,7 +451,7 @@ usb_hid_init (usbdev_t *dev) /* 35 countries defined: */ if (countrycode > 35) countrycode = 0; - debug (" Keyboard has %s layout (country code %02x)\n", + usb_debug (" Keyboard has %s layout (country code %02x)\n", countries[countrycode][0], countrycode); /* Set keyboard layout accordingly */ @@ -470,14 +470,14 @@ usb_hid_init (usbdev_t *dev) continue; break; } - debug (" found endpoint %x for interrupt-in\n", i); + usb_debug (" found endpoint %x for interrupt-in\n", i); /* 20 buffers of 8 bytes, for every 10 msecs */ HID_INST(dev)->queue = dev->controller->create_intr_queue (&dev->endpoints[i], 8, 20, 10); keycount = 0; - debug (" configuration done.\n"); + usb_debug (" configuration done.\n"); break; case hid_boot_proto_mouse: - debug("NOTICE: USB mice are not supported.\n"); + usb_debug("NOTICE: USB mice are not supported.\n"); break; } } diff --git a/payloads/libpayload/drivers/usb/usbhub.c b/payloads/libpayload/drivers/usb/usbhub.c index 09ab9ccb29..47215fcf10 100644 --- a/payloads/libpayload/drivers/usb/usbhub.c +++ b/payloads/libpayload/drivers/usb/usbhub.c @@ -97,7 +97,7 @@ usb_hub_scanport (usbdev_t *dev, int port) mdelay(1); timeout--; } while ((buf[0] & PORT_RESET) && timeout); if (!timeout) - debug("Warning: usbhub: port reset timed out.\n"); + usb_debug("Warning: usbhub: port reset timed out.\n"); /* wait for port to be enabled. the hub is responsible for this */ timeout = 500; /* time out after 500ms */ @@ -106,7 +106,7 @@ usb_hub_scanport (usbdev_t *dev, int port) mdelay(1); timeout--; } while (!(buf[0] & PORT_ENABLE) && timeout); if (!timeout) - debug("Warning: usbhub: port enabling timed out.\n"); + usb_debug("Warning: usbhub: port enabling timed out.\n"); get_status (dev, port, DR_PORT, 4, buf); /* bit 10 9 diff --git a/payloads/libpayload/drivers/usb/usbmsc.c b/payloads/libpayload/drivers/usb/usbmsc.c index ac1284129b..db369f7bd1 100644 --- a/payloads/libpayload/drivers/usb/usbmsc.c +++ b/payloads/libpayload/drivers/usb/usbmsc.c @@ -381,7 +381,7 @@ read_capacity (usbdev_t *dev) cb.command = 0x25; // read capacity u8 buf[8]; - debug ("Reading capacity of mass storage device.\n"); + usb_debug ("Reading capacity of mass storage device.\n"); int count = 0, ret; while (count++ < 20) { switch (ret = execute_command @@ -430,9 +430,9 @@ usb_msc_init (usbdev_t *dev) interface_descriptor_t *interface = (interface_descriptor_t *) (((char *) cd) + cd->bLength); - debug (" it uses %s command set\n", + usb_debug (" it uses %s command set\n", msc_subclass_strings[interface->bInterfaceSubClass]); - debug (" it uses %s protocol\n", + usb_debug (" it uses %s protocol\n", msc_protocol_strings[interface->bInterfaceProtocol]); @@ -479,11 +479,11 @@ usb_msc_init (usbdev_t *dev) printf("couldn't find bulk-out endpoint"); return; } - debug (" using endpoint %x as in, %x as out\n", + usb_debug (" using endpoint %x as in, %x as out\n", MSC_INST (dev)->bulk_in->endpoint, MSC_INST (dev)->bulk_out->endpoint); - debug (" has %d luns\n", get_max_luns (dev) + 1); + usb_debug (" has %d luns\n", get_max_luns (dev) + 1); printf (" Waiting for device to become ready..."); timeout = 30 * 10; /* SCSI/ATA specs say we have to wait up to 30s. Ugh */ @@ -507,12 +507,12 @@ usb_msc_init (usbdev_t *dev) printf ("ok.\n"); } - debug (" spin up"); + usb_debug (" spin up"); for (i = 0; i < 30; i++) { - debug ("."); + usb_debug ("."); switch (spin_up (dev)) { case MSC_COMMAND_OK: - debug (" OK."); + usb_debug (" OK."); break; case MSC_COMMAND_FAIL: mdelay (100); @@ -522,7 +522,7 @@ usb_msc_init (usbdev_t *dev) } break; } - debug ("\n"); + usb_debug ("\n"); if ((read_capacity (dev) == MSC_COMMAND_OK) && usbdisk_create) { usbdisk_create (dev); diff --git a/payloads/libpayload/drivers/usb/xhci.c b/payloads/libpayload/drivers/usb/xhci.c index 828e0eaec7..f784686b69 100644 --- a/payloads/libpayload/drivers/usb/xhci.c +++ b/payloads/libpayload/drivers/usb/xhci.c @@ -86,27 +86,27 @@ xhci_init (pcidev_t addr) if (pci_read_config32 (controller->bus_address, 0x14) > 0) { fatal("We don't do 64bit addressing.\n"); } - debug("regbase: %lx\n", controller->reg_base); + usb_debug("regbase: %lx\n", controller->reg_base); XHCI_INST (controller)->capreg = (void*)controller->reg_base; XHCI_INST (controller)->opreg = (void*)(controller->reg_base + XHCI_INST (controller)->capreg->caplength); XHCI_INST (controller)->hcrreg = (void*)(controller->reg_base + XHCI_INST (controller)->capreg->rtsoff); XHCI_INST (controller)->dbreg = (void*)(controller->reg_base + XHCI_INST (controller)->capreg->dboff); - debug("caplen: %lx\nrtsoff: %lx\ndboff: %lx\n", XHCI_INST (controller)->capreg->caplength, XHCI_INST (controller)->capreg->rtsoff, XHCI_INST (controller)->capreg->dboff); - debug("caplength: %x\n", XHCI_INST (controller)->capreg->caplength); - debug("hciversion: %x.%x\n", XHCI_INST (controller)->capreg->hciver_hi, XHCI_INST (controller)->capreg->hciver_lo); + usb_debug("caplen: %lx\nrtsoff: %lx\ndboff: %lx\n", XHCI_INST (controller)->capreg->caplength, XHCI_INST (controller)->capreg->rtsoff, XHCI_INST (controller)->capreg->dboff); + usb_debug("caplength: %x\n", XHCI_INST (controller)->capreg->caplength); + usb_debug("hciversion: %x.%x\n", XHCI_INST (controller)->capreg->hciver_hi, XHCI_INST (controller)->capreg->hciver_lo); if ((XHCI_INST (controller)->capreg->hciversion < 0x96) || (XHCI_INST (controller)->capreg->hciversion > 0x100)) { fatal("Unsupported xHCI version\n"); } - debug("maxslots: %x\n", XHCI_INST (controller)->capreg->MaxSlots); - debug("maxports: %x\n", XHCI_INST (controller)->capreg->MaxPorts); + usb_debug("maxslots: %x\n", XHCI_INST (controller)->capreg->MaxSlots); + usb_debug("maxports: %x\n", XHCI_INST (controller)->capreg->MaxPorts); int pagesize = XHCI_INST (controller)->opreg->pagesize << 12; - debug("pagesize: %x\n", pagesize); + usb_debug("pagesize: %x\n", pagesize); XHCI_INST (controller)->dcbaa = memalign(64, (XHCI_INST (controller)->capreg->MaxSlots+1)*sizeof(devctxp_t)); memset((void*)XHCI_INST (controller)->dcbaa, 0, (XHCI_INST (controller)->capreg->MaxSlots+1)*sizeof(devctxp_t)); - debug("max scratchpad bufs: %x\n", XHCI_INST (controller)->capreg->Max_Scratchpad_Bufs); + usb_debug("max scratchpad bufs: %x\n", XHCI_INST (controller)->capreg->Max_Scratchpad_Bufs); if (XHCI_INST (controller)->capreg->Max_Scratchpad_Bufs > 0) { XHCI_INST (controller)->dcbaa->ptr = memalign(64, XHCI_INST (controller)->capreg->Max_Scratchpad_Bufs * 8); } @@ -118,7 +118,7 @@ xhci_init (pcidev_t addr) while ((XHCI_INST (controller)->opreg->usbsts & USBSTS_CNR) != 0) mdelay(1); printf("ok.\n"); - debug("ERST Max: %lx -> %lx entries\n", XHCI_INST (controller)->capreg->ERST_Max, 1<<(XHCI_INST (controller)->capreg->ERST_Max)); + usb_debug("ERST Max: %lx -> %lx entries\n", XHCI_INST (controller)->capreg->ERST_Max, 1<<(XHCI_INST (controller)->capreg->ERST_Max)); // enable all available slots XHCI_INST (controller)->opreg->config = XHCI_INST (controller)->capreg->MaxSlots & CONFIG_MASK_MaxSlotsEn; @@ -161,7 +161,7 @@ xhci_init (pcidev_t addr) cmd->cmd_No_Op.TRB_Type = TRB_CMD_NOOP; // ring the HC doorbell - debug("Posting command at %lx\n", virt_to_phys(cmd)); + usb_debug("Posting command at %lx\n", virt_to_phys(cmd)); cmd->cmd_No_Op.C = XHCI_INST (controller)->cmd_ccs; // enable command XHCI_INST (controller)->dbreg[0] = 0; // and tell controller to consume commands @@ -169,27 +169,27 @@ xhci_init (pcidev_t addr) trb_t *ev = &XHCI_INST (controller)->ev_ring[0]; trb_t *ev1 = &XHCI_INST (controller)->ev_ring[1]; while (ev->event_cmd_cmpl.C != XHCI_INST (controller)->ev_ccs) { - debug("CRCR: %lx, USBSTS: %lx\n", XHCI_INST (controller)->opreg->crcr_lo, XHCI_INST (controller)->opreg->usbsts); - debug("ev0.C %x, ev1.C %x\n", ev->event_cmd_cmpl.C, ev1->event_cmd_cmpl.C); + usb_debug("CRCR: %lx, USBSTS: %lx\n", XHCI_INST (controller)->opreg->crcr_lo, XHCI_INST (controller)->opreg->usbsts); + usb_debug("ev0.C %x, ev1.C %x\n", ev->event_cmd_cmpl.C, ev1->event_cmd_cmpl.C); mdelay(100); } - debug("command ring is %srunning\n", (XHCI_INST (controller)->opreg->crcr_lo & CRCR_CRR)?"":"not "); + usb_debug("command ring is %srunning\n", (XHCI_INST (controller)->opreg->crcr_lo & CRCR_CRR)?"":"not "); switch (ev->event_cmd_cmpl.TRB_Type) { case TRB_EV_CMD_CMPL: - debug("Completed command TRB at %lx. Code: %d\n", + usb_debug("Completed command TRB at %lx. Code: %d\n", ev->event_cmd_cmpl.Cmd_TRB_Pointer_lo, ev->event_cmd_cmpl.Completion_Code); break; case TRB_EV_PORTSC: - debug("Port Status Change Event. Completion Code: %d\n Port: %d. Ignoring.\n", + usb_debug("Port Status Change Event. Completion Code: %d\n Port: %d. Ignoring.\n", ev->event_cmd_cmpl.Completion_Code, ev->event_portsc.Port); // we ignore the event as we look for the PORTSC registers instead, at a time when it suits _us_ break; default: - debug("Unknown event: %d, Completion Code: %d\n", ev->event_cmd_cmpl.TRB_Type, ev->event_cmd_cmpl.Completion_Code); + usb_debug("Unknown event: %d, Completion Code: %d\n", ev->event_cmd_cmpl.TRB_Type, ev->event_cmd_cmpl.Completion_Code); break; } - debug("CRCR: %lx, USBSTS: %lx\n", XHCI_INST (controller)->opreg->crcr_lo, XHCI_INST (controller)->opreg->usbsts); - debug("ev0.C %x, ev1.C %x, ev1.CC %d\n", ev->event_cmd_cmpl.C, ev1->event_cmd_cmpl.C, ev1->event_cmd_cmpl.Completion_Code); + usb_debug("CRCR: %lx, USBSTS: %lx\n", XHCI_INST (controller)->opreg->crcr_lo, XHCI_INST (controller)->opreg->usbsts); + usb_debug("ev0.C %x, ev1.C %x, ev1.CC %d\n", ev->event_cmd_cmpl.C, ev1->event_cmd_cmpl.C, ev1->event_cmd_cmpl.Completion_Code); controller->devices[0]->controller = controller; controller->devices[0]->init = xhci_rh_init; diff --git a/payloads/libpayload/drivers/usb/xhci_rh.c b/payloads/libpayload/drivers/usb/xhci_rh.c index 1547ef62e2..58eb6c328d 100644 --- a/payloads/libpayload/drivers/usb/xhci_rh.c +++ b/payloads/libpayload/drivers/usb/xhci_rh.c @@ -64,7 +64,7 @@ xhci_rh_scanport (usbdev_t *dev, int port) val |= PORTSC_CSC; XHCI_INST (dev->controller)->opreg->prs[port].portsc = val; - debug("device attach status on port %x: %x\n", port, XHCI_INST (dev->controller)->opreg->prs[port].portsc & PORTSC_CCS); + usb_debug("device attach status on port %x: %x\n", port, XHCI_INST (dev->controller)->opreg->prs[port].portsc & PORTSC_CCS); } static int @@ -77,7 +77,7 @@ xhci_rh_report_port_changes (usbdev_t *dev) for (i = 0; i < RH_INST (dev)->numports; i++) { if (XHCI_INST (dev->controller)->opreg->prs[i].portsc & PORTSC_CSC) { - debug("found connect status change on port %d\n", i); + usb_debug("found connect status change on port %d\n", i); return i; } } @@ -116,7 +116,7 @@ xhci_rh_init (usbdev_t *dev) RH_INST (dev)->numports = XHCI_INST (dev->controller)->capreg->MaxPorts; RH_INST (dev)->port = malloc(sizeof(int) * RH_INST (dev)->numports); - debug("%d ports registered\n", RH_INST (dev)->numports); + usb_debug("%d ports registered\n", RH_INST (dev)->numports); for (i = 0; i < RH_INST (dev)->numports; i++) { xhci_rh_enable_port (dev, i); @@ -129,5 +129,5 @@ xhci_rh_init (usbdev_t *dev) dev->hub = -1; dev->port = -1; - debug("rh init done\n"); + usb_debug("rh init done\n"); } diff --git a/payloads/libpayload/include/usb/usb.h b/payloads/libpayload/include/usb/usb.h index 27af9bc3a0..17eca01bd1 100644 --- a/payloads/libpayload/include/usb/usb.h +++ b/payloads/libpayload/include/usb/usb.h @@ -253,10 +253,14 @@ int usb_interface_check(u16 vendor, u16 device); #define USB_QUIRK_TEST (1 << 31) #define USB_QUIRK_NONE 0 +static inline void usb_debug(const char *fmt, ...) +{ #ifdef USB_DEBUG -# define debug(fmt, ...) printf(fmt, ##__VA_ARGS__) -#else -# define debug(fmt, ...) while (0) { printf(fmt, ##__VA_ARGS__); } + va_list ap; + va_start(ap, fmt); + vprintf(fmt, ap); + va_end(ap); #endif +} #endif |