From 4d611c9a2f4c5d9080d8b6a6f0d7431233cd56f9 Mon Sep 17 00:00:00 2001 From: pbrook Date: Sat, 12 Aug 2006 01:04:27 +0000 Subject: [PATCH] SCSI and USB async IO support. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2107 c046a42c-6fe2-441c-8c8c-71466251a162 --- hw/esp.c | 142 ++++++++++++++++----------- hw/lsi53c895a.c | 80 +++++++++------ hw/scsi-disk.c | 152 ++++++++++++++++++++++------- hw/usb-hid.c | 11 +-- hw/usb-hub.c | 46 ++++----- hw/usb-msd.c | 68 ++++++++++--- hw/usb-ohci.c | 156 +++++++++++++++++++++-------- hw/usb-uhci.c | 244 ++++++++++++++++++++++++++++++++++------------ hw/usb.c | 32 +++--- hw/usb.h | 58 +++++++++-- pc-bios/openbios-esp.diff | 30 ++++++ pc-bios/openbios-sparc32 | Bin 506966 -> 246036 bytes usb-linux.c | 11 +-- vl.h | 9 ++ 14 files changed, 746 insertions(+), 293 deletions(-) create mode 100644 pc-bios/openbios-esp.diff rewrite pc-bios/openbios-sparc32 (76%) diff --git a/hw/esp.c b/hw/esp.c index cdd062f789..17e70dd03b 100644 --- a/hw/esp.c +++ b/hw/esp.c @@ -62,6 +62,11 @@ struct ESPState { uint8_t cmdbuf[TI_BUFSZ]; int cmdlen; int do_cmd; + + uint32_t dma_left; + uint8_t async_buf[TARGET_PAGE_SIZE]; + uint32_t async_ptr; + uint32_t async_len; }; #define STAT_DO 0x00 @@ -72,6 +77,8 @@ struct ESPState { #define STAT_MO 0x07 #define STAT_TC 0x10 +#define STAT_PE 0x20 +#define STAT_GE 0x40 #define STAT_IN 0x80 #define INTR_FC 0x08 @@ -195,26 +202,85 @@ static void write_response(ESPState *s) } -static void esp_command_complete(void *opaque, uint32_t tag, int sense) +static void esp_do_dma(ESPState *s) +{ + uint32_t dmaptr, minlen, len, from, to; + int to_device; + dmaptr = iommu_translate(s->espdmaregs[1]); + to_device = (s->espdmaregs[0] & DMA_WRITE_MEM) == 0; + from = s->espdmaregs[1]; + minlen = s->dma_left; + to = from + minlen; + dmaptr = iommu_translate(s->espdmaregs[1]); + if ((from & TARGET_PAGE_MASK) != (to & TARGET_PAGE_MASK)) { + len = TARGET_PAGE_SIZE - (from & ~TARGET_PAGE_MASK); + } else { + len = to - from; + } + DPRINTF("DMA address p %08x v %08x len %08x, from %08x, to %08x\n", dmaptr, s->espdmaregs[1], len, from, to); + s->espdmaregs[1] += len; + if (s->do_cmd) { + s->ti_size -= len; + DPRINTF("command len %d + %d\n", s->cmdlen, len); + cpu_physical_memory_read(dmaptr, &s->cmdbuf[s->cmdlen], len); + s->ti_size = 0; + s->cmdlen = 0; + s->do_cmd = 0; + do_cmd(s, s->cmdbuf); + return; + } else { + s->async_len = len; + s->dma_left -= len; + if (to_device) { + s->async_ptr = -1; + cpu_physical_memory_read(dmaptr, s->async_buf, len); + scsi_write_data(s->current_dev, s->async_buf, len); + } else { + s->async_ptr = dmaptr; + scsi_read_data(s->current_dev, s->async_buf, len); + } + } +} + +static void esp_command_complete(void *opaque, uint32_t reason, int sense) { ESPState *s = (ESPState *)opaque; - DPRINTF("SCSI Command complete\n"); - if (s->ti_size != 0) - DPRINTF("SCSI command completed unexpectedly\n"); - s->ti_size = 0; - if (sense) - DPRINTF("Command failed\n"); - s->sense = sense; - s->rregs[4] = STAT_IN | STAT_TC | STAT_ST; + s->ti_size -= s->async_len; + s->espdmaregs[1] += s->async_len; + if (s->async_ptr != (uint32_t)-1) { + cpu_physical_memory_write(s->async_ptr, s->async_buf, s->async_len); + } + if (reason == SCSI_REASON_DONE) { + DPRINTF("SCSI Command complete\n"); + if (s->ti_size != 0) + DPRINTF("SCSI command completed unexpectedly\n"); + s->ti_size = 0; + if (sense) + DPRINTF("Command failed\n"); + s->sense = sense; + } else { + DPRINTF("transfer %d/%d\n", s->dma_left, s->ti_size); + } + if (s->dma_left) { + esp_do_dma(s); + } else { + if (s->ti_size) { + s->rregs[4] |= STAT_IN | STAT_TC; + } else { + s->rregs[4] = STAT_IN | STAT_TC | STAT_ST; + } + s->rregs[5] = INTR_BS; + s->rregs[6] = 0; + s->rregs[7] = 0; + s->espdmaregs[0] |= DMA_INTR; + pic_set_irq(s->irq, 1); + } } static void handle_ti(ESPState *s) { - uint32_t dmaptr, dmalen, minlen, len, from, to; - unsigned int i; - int to_device; - uint8_t buf[TARGET_PAGE_SIZE]; + uint32_t dmalen, minlen; dmalen = s->wregs[0] | (s->wregs[1] << 8); if (dmalen==0) { @@ -227,47 +293,9 @@ static void handle_ti(ESPState *s) minlen = (dmalen < s->ti_size) ? dmalen : s->ti_size; DPRINTF("Transfer Information len %d\n", minlen); if (s->dma) { - dmaptr = iommu_translate(s->espdmaregs[1]); - /* Check if the transfer writes to to reads from the device. */ - to_device = (s->espdmaregs[0] & DMA_WRITE_MEM) == 0; - DPRINTF("DMA Direction: %c, addr 0x%8.8x %08x\n", - to_device ? 'r': 'w', dmaptr, s->ti_size); - from = s->espdmaregs[1]; - to = from + minlen; - for (i = 0; i < minlen; i += len, from += len) { - dmaptr = iommu_translate(s->espdmaregs[1] + i); - if ((from & TARGET_PAGE_MASK) != (to & TARGET_PAGE_MASK)) { - len = TARGET_PAGE_SIZE - (from & ~TARGET_PAGE_MASK); - } else { - len = to - from; - } - DPRINTF("DMA address p %08x v %08x len %08x, from %08x, to %08x\n", dmaptr, s->espdmaregs[1] + i, len, from, to); - s->ti_size -= len; - if (s->do_cmd) { - DPRINTF("command len %d + %d\n", s->cmdlen, len); - cpu_physical_memory_read(dmaptr, &s->cmdbuf[s->cmdlen], len); - s->ti_size = 0; - s->cmdlen = 0; - s->do_cmd = 0; - do_cmd(s, s->cmdbuf); - return; - } else { - if (to_device) { - cpu_physical_memory_read(dmaptr, buf, len); - scsi_write_data(s->current_dev, buf, len); - } else { - scsi_read_data(s->current_dev, buf, len); - cpu_physical_memory_write(dmaptr, buf, len); - } - } - } - if (s->ti_size) { - s->rregs[4] = STAT_IN | STAT_TC | (to_device ? STAT_DO : STAT_DI); - } - s->rregs[5] = INTR_BS; - s->rregs[6] = 0; - s->rregs[7] = 0; - s->espdmaregs[0] |= DMA_INTR; + s->dma_left = minlen; + s->rregs[4] &= ~STAT_TC; + esp_do_dma(s); } else if (s->do_cmd) { DPRINTF("command len %d\n", s->cmdlen); s->ti_size = 0; @@ -276,7 +304,6 @@ static void handle_ti(ESPState *s) do_cmd(s, s->cmdbuf); return; } - pic_set_irq(s->irq, 1); } static void esp_reset(void *opaque) @@ -320,8 +347,8 @@ static uint32_t esp_mem_readb(void *opaque, target_phys_addr_t addr) break; case 5: // interrupt - // Clear status bits except TC - s->rregs[4] &= STAT_TC; + // Clear interrupt/error status bits + s->rregs[4] &= ~(STAT_IN | STAT_GE | STAT_PE); pic_set_irq(s->irq, 0); s->espdmaregs[0] &= ~DMA_INTR; break; @@ -342,6 +369,7 @@ static void esp_mem_writeb(void *opaque, target_phys_addr_t addr, uint32_t val) case 0: case 1: s->rregs[saddr] = val; + s->rregs[4] &= ~STAT_TC; break; case 2: // FIFO diff --git a/hw/lsi53c895a.c b/hw/lsi53c895a.c index 24dff0eff5..8f56725348 100644 --- a/hw/lsi53c895a.c +++ b/hw/lsi53c895a.c @@ -152,6 +152,9 @@ do { fprintf(stderr, "lsi_scsi: " fmt , ##args); } while (0) /* The HBA is ID 7, so for simplicitly limit to 7 devices. */ #define LSI_MAX_DEVS 7 +/* Size of internal DMA buffer for async IO requests. */ +#define LSI_DMA_BLOCK_SIZE 0x10000 + typedef struct { PCIDevice pci_dev; int mmio_io_addr; @@ -162,7 +165,9 @@ typedef struct { int carry; /* ??? Should this be an a visible register somewhere? */ int sense; uint8_t msg; - /* Nonzero if a Wait Reselect instruction has been issued. */ + /* 0 if SCRIPTS are running or stopped. + * 1 if a Wait Reselect instruction has been issued. + * 2 if a DMA operation is in progress. */ int waiting; SCSIDevice *scsi_dev[LSI_MAX_DEVS]; SCSIDevice *current_dev; @@ -226,6 +231,7 @@ typedef struct { uint32_t csbc; uint32_t scratch[13]; /* SCRATCHA-SCRATCHR */ + uint8_t dma_buf[LSI_DMA_BLOCK_SIZE]; /* Script ram is stored as 32-bit words in host byteorder. */ uint32_t script_ram[2048]; } LSIState; @@ -295,6 +301,7 @@ static void lsi_soft_reset(LSIState *s) static uint8_t lsi_reg_readb(LSIState *s, int offset); static void lsi_reg_writeb(LSIState *s, int offset, uint8_t val); +static void lsi_execute_script(LSIState *s); static inline uint32_t read_dword(LSIState *s, uint32_t addr) { @@ -402,21 +409,20 @@ static void lsi_bad_phase(LSIState *s, int out, int new_phase) lsi_set_phase(s, new_phase); } +/* Initiate a SCSI layer data transfer. */ static void lsi_do_dma(LSIState *s, int out) { - uint8_t buf[TARGET_PAGE_SIZE]; - uint32_t addr; uint32_t count; - int n; count = s->dbc; - addr = s->dnad; - DPRINTF("DMA %s addr=0x%08x len=%d avail=%d\n", out ? "out" : "in", + if (count > LSI_DMA_BLOCK_SIZE) + count = LSI_DMA_BLOCK_SIZE; + DPRINTF("DMA addr=0x%08x len=%d avail=%d\n", addr, count, s->data_len); /* ??? Too long transfers are truncated. Don't know if this is the correct behavior. */ if (count > s->data_len) { - /* If the DMA length is greater then the device data length then + /* If the DMA length is greater than the device data length then a phase mismatch will occur. */ count = s->data_len; s->dbc = count; @@ -426,20 +432,47 @@ static void lsi_do_dma(LSIState *s, int out) s->csbc += count; /* ??? Set SFBR to first data byte. */ - while (count) { - n = (count > TARGET_PAGE_SIZE) ? TARGET_PAGE_SIZE : count; - if (out) { - cpu_physical_memory_read(addr, buf, n); - scsi_write_data(s->current_dev, buf, n); - } else { - scsi_read_data(s->current_dev, buf, n); - cpu_physical_memory_write(addr, buf, n); - } - addr += n; - count -= n; + if ((s->sstat1 & PHASE_MASK) == PHASE_DO) { + cpu_physical_memory_read(s->dnad, s->dma_buf, count); + scsi_write_data(s->current_dev, s->dma_buf, count); + } else { + scsi_read_data(s->current_dev, s->dma_buf, count); } + /* If the DMA did not complete then suspend execution. */ + if (s->dbc) + s->waiting = 2; } +/* Callback to indicate that the SCSI layer has completed a transfer. */ +static void lsi_command_complete(void *opaque, uint32_t reason, int sense) +{ + LSIState *s = (LSIState *)opaque; + uint32_t count; + int out; + + out = ((s->sstat1 & PHASE_MASK) == PHASE_DO); + count = s->dbc; + if (count > LSI_DMA_BLOCK_SIZE) + count = LSI_DMA_BLOCK_SIZE; + if (!out) + cpu_physical_memory_write(s->dnad, s->dma_buf, count); + s->dnad += count; + s->dbc -= count; + + if (reason == SCSI_REASON_DONE) { + DPRINTF("Command complete sense=%d\n", sense); + s->sense = sense; + lsi_set_phase(s, PHASE_ST); + } + + if (s->dbc) { + lsi_do_dma(s, out); + } else if (s->waiting == 2) { + /* Restart SCRIPTS execution. */ + s->waiting = 0; + lsi_execute_script(s); + } +} static void lsi_do_command(LSIState *s) { @@ -461,15 +494,6 @@ static void lsi_do_command(LSIState *s) } } -static void lsi_command_complete(void *opaque, uint32_t tag, int sense) -{ - LSIState *s = (LSIState *)opaque; - - DPRINTF("Command complete sense=%d\n", sense); - s->sense = sense; - lsi_set_phase(s, PHASE_ST); -} - static void lsi_do_status(LSIState *s) { DPRINTF("Get status len=%d sense=%d\n", s->dbc, s->sense); @@ -1134,7 +1158,7 @@ static void lsi_reg_writeb(LSIState *s, int offset, uint8_t val) s->istat0 &= ~LSI_ISTAT0_INTF; lsi_update_irq(s); } - if (s->waiting && val & LSI_ISTAT0_SIGP) { + if (s->waiting == 1 && val & LSI_ISTAT0_SIGP) { DPRINTF("Woken by SIGP\n"); s->waiting = 0; s->dsp = s->dnad; diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c index 3419c8e2d2..a2f299e951 100644 --- a/hw/scsi-disk.c +++ b/hw/scsi-disk.c @@ -25,6 +25,7 @@ do { fprintf(stderr, "scsi-disk: " fmt , ##args); } while (0) #define SENSE_NO_SENSE 0 #define SENSE_NOT_READY 2 +#define SENSE_HARDWARE_ERROR 4 #define SENSE_ILLEGAL_REQUEST 5 struct SCSIDevice @@ -46,7 +47,13 @@ struct SCSIDevice int buf_pos; int buf_len; int sense; + BlockDriverAIOCB *aiocb; + /* Data still to be transfered after this request completes. */ + uint8_t *aiodata; + uint32_t aiolen; char buf[512]; + /* Completion functions may be called from either scsi_{read,write}_data + or from the AIO completion routines. */ scsi_completionfn completion; void *opaque; }; @@ -54,10 +61,49 @@ struct SCSIDevice static void scsi_command_complete(SCSIDevice *s, int sense) { s->sense = sense; - s->completion(s->opaque, s->tag, sense); + s->completion(s->opaque, SCSI_REASON_DONE, sense); } -/* Read data from a scsi device. Returns nonzero on failure. */ +static void scsi_transfer_complete(SCSIDevice *s) +{ + s->completion(s->opaque, SCSI_REASON_DATA, 0); + s->aiocb = NULL; +} + +static void scsi_read_complete(void * opaque, int ret) +{ + SCSIDevice *s = (SCSIDevice *)opaque; + + if (ret) { + DPRINTF("IO error\n"); + scsi_command_complete(s, SENSE_HARDWARE_ERROR); + } + + if (s->aiolen) { + /* Read the remaining data. Full and partial sectors are transferred + separately. */ + scsi_read_data(s, s->aiodata, s->aiolen); + } else { + if (s->buf_len == 0 && s->sector_count == 0) + scsi_command_complete(s, SENSE_NO_SENSE); + else + scsi_transfer_complete(s); + } +} + +/* Cancel a pending data transfer. */ +void scsi_cancel_io(SCSIDevice *s) +{ + if (!s->aiocb) { + BADF("Cancel with no pending IO\n"); + return; + } + bdrv_aio_cancel(s->aiocb); + s->aiocb = NULL; +} + +/* Read data from a scsi device. Returns nonzero on failure. + The transfer may complete asynchronously. */ int scsi_read_data(SCSIDevice *s, uint8_t *data, uint32_t len) { uint32_t n; @@ -84,14 +130,19 @@ int scsi_read_data(SCSIDevice *s, uint8_t *data, uint32_t len) n = s->sector_count; if (n != 0) { - bdrv_read(s->bdrv, s->sector, data, n); - data += n * 512; - len -= n * 512; + s->aiolen = len - n * 512; + s->aiodata = data + n * 512; + s->aiocb = bdrv_aio_read(s->bdrv, s->sector, data, n, + scsi_read_complete, s); + if (s->aiocb == NULL) + scsi_command_complete(s, SENSE_HARDWARE_ERROR); s->sector += n; s->sector_count -= n; + return 0; } if (len && s->sector_count) { + /* TODO: Make this use AIO. */ bdrv_read(s->bdrv, s->sector, s->buf, 1); s->sector++; s->sector_count--; @@ -106,11 +157,53 @@ int scsi_read_data(SCSIDevice *s, uint8_t *data, uint32_t len) if (s->buf_len == 0 && s->sector_count == 0) scsi_command_complete(s, SENSE_NO_SENSE); + else + scsi_transfer_complete(s); return 0; } -/* Read data to a scsi device. Returns nonzero on failure. */ +static void scsi_write_complete(void * opaque, int ret) +{ + SCSIDevice *s = (SCSIDevice *)opaque; + + if (ret) { + fprintf(stderr, "scsi-disc: IO write error\n"); + exit(1); + } + + if (s->sector_count == 0) + scsi_command_complete(s, SENSE_NO_SENSE); + else + scsi_transfer_complete(s); +} + +static uint32_t scsi_write_partial_sector(SCSIDevice *s, uint8_t *data, + uint32_t len) +{ + int n; + + n = 512 - s->buf_len; + if (n > len) + n = len; + + memcpy(s->buf + s->buf_len, data, n); + data += n; + s->buf_len += n; + len -= n; + if (s->buf_len == 512) { + /* A full sector has been accumulated. Write it to disk. */ + /* TODO: Make this use async IO. */ + bdrv_write(s->bdrv, s->sector, s->buf, 1); + s->buf_len = 0; + s->sector++; + s->sector_count--; + } + return n; +} + +/* Write data to a scsi device. Returns nonzero on failure. + The transfer may complete asynchronously. */ int scsi_write_data(SCSIDevice *s, uint8_t *data, uint32_t len) { uint32_t n; @@ -125,48 +218,39 @@ int scsi_write_data(SCSIDevice *s, uint8_t *data, uint32_t len) return 1; if (s->buf_len != 0 || len < 512) { - n = 512 - s->buf_len; - if (n > len) - n = len; - - memcpy(s->buf + s->buf_len, data, n); - data += n; - s->buf_len += n; + n = scsi_write_partial_sector(s, data, len); len -= n; - if (s->buf_len == 512) { - /* A full sector has been accumulated. Write it to disk. */ - bdrv_write(s->bdrv, s->sector, s->buf, 1); - s->buf_len = 0; - s->sector++; - s->sector_count--; - } + data += n; } n = len / 512; if (n > s->sector_count) - n = s->sector_count; + return 1; if (n != 0) { - bdrv_write(s->bdrv, s->sector, data, n); + s->aiocb = bdrv_aio_write(s->bdrv, s->sector, data, n, + scsi_write_complete, s); + if (s->aiocb == NULL) + scsi_command_complete(s, SENSE_HARDWARE_ERROR); data += n * 512; len -= n * 512; s->sector += n; s->sector_count -= n; } - if (len >= 512) - return 1; - - if (len && s->sector_count) { - /* Recurse to complete the partial write. */ - return scsi_write_data(s, data, len); + if (len) { + if (s->sector_count == 0) + return 1; + /* Complete a partial write. */ + scsi_write_partial_sector(s, data, len); + } + if (n == 0) { + /* Transfer completes immediately. */ + if (s->sector_count == 0) + scsi_command_complete(s, SENSE_NO_SENSE); + else + scsi_transfer_complete(s); } - - if (len != 0) - return 1; - - if (s->sector_count == 0) - scsi_command_complete(s, SENSE_NO_SENSE); return 0; } diff --git a/hw/usb-hid.c b/hw/usb-hid.c index 8fc0b744b7..095fcb3e6c 100644 --- a/hw/usb-hid.c +++ b/hw/usb-hid.c @@ -474,19 +474,18 @@ static int usb_mouse_handle_control(USBDevice *dev, int request, int value, return ret; } -static int usb_mouse_handle_data(USBDevice *dev, int pid, - uint8_t devep, uint8_t *data, int len) +static int usb_mouse_handle_data(USBDevice *dev, USBPacket *p) { USBMouseState *s = (USBMouseState *)dev; int ret = 0; - switch(pid) { + switch(p->pid) { case USB_TOKEN_IN: - if (devep == 1) { + if (p->devep == 1) { if (s->kind == USB_MOUSE) - ret = usb_mouse_poll(s, data, len); + ret = usb_mouse_poll(s, p->data, p->len); else if (s->kind == USB_TABLET) - ret = usb_tablet_poll(s, data, len); + ret = usb_tablet_poll(s, p->data, p->len); } else { goto fail; } diff --git a/hw/usb-hub.c b/hw/usb-hub.c index 8350931be6..651dac2109 100644 --- a/hw/usb-hub.c +++ b/hw/usb-hub.c @@ -180,8 +180,7 @@ static void usb_hub_attach(USBPort *port1, USBDevice *dev) port->wPortStatus &= ~PORT_STAT_LOW_SPEED; port->port.dev = dev; /* send the attach message */ - dev->handle_packet(dev, - USB_MSG_ATTACH, 0, 0, NULL, 0); + usb_send_msg(dev, USB_MSG_ATTACH); } else { dev = port->port.dev; if (dev) { @@ -192,8 +191,7 @@ static void usb_hub_attach(USBPort *port1, USBDevice *dev) port->wPortChange |= PORT_STAT_C_ENABLE; } /* send the detach message */ - dev->handle_packet(dev, - USB_MSG_DETACH, 0, 0, NULL, 0); + usb_send_msg(dev, USB_MSG_DETACH); port->port.dev = NULL; } } @@ -349,8 +347,7 @@ static int usb_hub_handle_control(USBDevice *dev, int request, int value, break; case PORT_RESET: if (dev) { - dev->handle_packet(dev, - USB_MSG_RESET, 0, 0, NULL, 0); + usb_send_msg(dev, USB_MSG_RESET); port->wPortChange |= PORT_STAT_C_RESET; /* set enable bit */ port->wPortStatus |= PORT_STAT_ENABLE; @@ -434,22 +431,21 @@ static int usb_hub_handle_control(USBDevice *dev, int request, int value, return ret; } -static int usb_hub_handle_data(USBDevice *dev, int pid, - uint8_t devep, uint8_t *data, int len) +static int usb_hub_handle_data(USBDevice *dev, USBPacket *p) { USBHubState *s = (USBHubState *)dev; int ret; - switch(pid) { + switch(p->pid) { case USB_TOKEN_IN: - if (devep == 1) { + if (p->devep == 1) { USBHubPort *port; unsigned int status; int i, n; n = (s->nb_ports + 1 + 7) / 8; - if (len == 1) { /* FreeBSD workaround */ + if (p->len == 1) { /* FreeBSD workaround */ n = 1; - } else if (n > len) { + } else if (n > p->len) { return USB_RET_BABBLE; } status = 0; @@ -460,7 +456,7 @@ static int usb_hub_handle_data(USBDevice *dev, int pid, } if (status != 0) { for(i = 0; i < n; i++) { - data[i] = status >> (8 * i); + p->data[i] = status >> (8 * i); } ret = n; } else { @@ -479,9 +475,7 @@ static int usb_hub_handle_data(USBDevice *dev, int pid, return ret; } -static int usb_hub_broadcast_packet(USBHubState *s, int pid, - uint8_t devaddr, uint8_t devep, - uint8_t *data, int len) +static int usb_hub_broadcast_packet(USBHubState *s, USBPacket *p) { USBHubPort *port; USBDevice *dev; @@ -491,9 +485,7 @@ static int usb_hub_broadcast_packet(USBHubState *s, int pid, port = &s->ports[i]; dev = port->port.dev; if (dev && (port->wPortStatus & PORT_STAT_ENABLE)) { - ret = dev->handle_packet(dev, pid, - devaddr, devep, - data, len); + ret = dev->handle_packet(dev, p); if (ret != USB_RET_NODEV) { return ret; } @@ -502,9 +494,7 @@ static int usb_hub_broadcast_packet(USBHubState *s, int pid, return USB_RET_NODEV; } -static int usb_hub_handle_packet(USBDevice *dev, int pid, - uint8_t devaddr, uint8_t devep, - uint8_t *data, int len) +static int usb_hub_handle_packet(USBDevice *dev, USBPacket *p) { USBHubState *s = (USBHubState *)dev; @@ -513,14 +503,14 @@ static int usb_hub_handle_packet(USBDevice *dev, int pid, #endif if (dev->state == USB_STATE_DEFAULT && dev->addr != 0 && - devaddr != dev->addr && - (pid == USB_TOKEN_SETUP || - pid == USB_TOKEN_OUT || - pid == USB_TOKEN_IN)) { + p->devaddr != dev->addr && + (p->pid == USB_TOKEN_SETUP || + p->pid == USB_TOKEN_OUT || + p->pid == USB_TOKEN_IN)) { /* broadcast the packet to the devices */ - return usb_hub_broadcast_packet(s, pid, devaddr, devep, data, len); + return usb_hub_broadcast_packet(s, p); } - return usb_generic_handle_packet(dev, pid, devaddr, devep, data, len); + return usb_generic_handle_packet(dev, p); } static void usb_hub_handle_destroy(USBDevice *dev) diff --git a/hw/usb-msd.c b/hw/usb-msd.c index ff2047d4b2..7d1f35d064 100644 --- a/hw/usb-msd.c +++ b/hw/usb-msd.c @@ -33,9 +33,12 @@ typedef struct { USBDevice dev; enum USBMSDMode mode; uint32_t data_len; + uint32_t transfer_len; uint32_t tag; SCSIDevice *scsi_dev; int result; + /* For async completion. */ + USBPacket *packet; } MSDState; static const uint8_t qemu_msd_dev_descriptor[] = { @@ -103,13 +106,27 @@ static const uint8_t qemu_msd_config_descriptor[] = { 0x00 /* u8 ep_bInterval; */ }; -static void usb_msd_command_complete(void *opaque, uint32_t tag, int fail) +static void usb_msd_command_complete(void *opaque, uint32_t reason, int fail) { MSDState *s = (MSDState *)opaque; - - DPRINTF("Command complete\n"); - s->result = fail; - s->mode = USB_MSDM_CSW; + USBPacket *p; + + s->data_len -= s->transfer_len; + s->transfer_len = 0; + if (reason == SCSI_REASON_DONE) { + DPRINTF("Command complete %d\n", fail); + s->result = fail; + s->mode = USB_MSDM_CSW; + } + if (s->packet) { + /* Set s->packet to NULL before calling usb_packet_complete because + annother request may be issues before usb_packet_complete returns. + */ + DPRINTF("Packet complete %p\n", p); + p = s->packet; + s->packet = NULL; + usb_packet_complete(p); + } } static void usb_msd_handle_reset(USBDevice *dev) @@ -250,15 +267,24 @@ struct usb_msd_csw { uint8_t status; }; -static int usb_msd_handle_data(USBDevice *dev, int pid, uint8_t devep, - uint8_t *data, int len) +static void usb_msd_cancel_io(USBPacket *p, void *opaque) +{ + MSDState *s = opaque; + scsi_cancel_io(s->scsi_dev); + s->packet = NULL; +} + +static int usb_msd_handle_data(USBDevice *dev, USBPacket *p) { MSDState *s = (MSDState *)dev; int ret = 0; struct usb_msd_cbw cbw; struct usb_msd_csw csw; + uint8_t devep = p->devep; + uint8_t *data = p->data; + int len = p->len; - switch (pid) { + switch (p->pid) { case USB_TOKEN_OUT: if (devep != 2) goto fail; @@ -300,13 +326,18 @@ static int usb_msd_handle_data(USBDevice *dev, int pid, uint8_t devep, if (len > s->data_len) goto fail; + s->transfer_len = len; if (scsi_write_data(s->scsi_dev, data, len)) goto fail; - s->data_len -= len; - if (s->data_len == 0) - s->mode = USB_MSDM_CSW; - ret = len; + if (s->transfer_len == 0) { + ret = len; + } else { + DPRINTF("Deferring packet %p\n", p); + usb_defer_packet(p, usb_msd_cancel_io, s); + s->packet = p; + ret = USB_RET_ASYNC; + } break; default: @@ -340,13 +371,18 @@ static int usb_msd_handle_data(USBDevice *dev, int pid, uint8_t devep, if (len > s->data_len) len = s->data_len; + s->transfer_len = len; if (scsi_read_data(s->scsi_dev, data, len)) goto fail; - s->data_len -= len; - if (s->data_len == 0) - s->mode = USB_MSDM_CSW; - ret = len; + if (s->transfer_len == 0) { + ret = len; + } else { + DPRINTF("Deferring packet %p\n", p); + usb_defer_packet(p, usb_msd_cancel_io, s); + s->packet = p; + ret = USB_RET_ASYNC; + } break; default: diff --git a/hw/usb-ohci.c b/hw/usb-ohci.c index e87d9da70a..de113e9a30 100644 --- a/hw/usb-ohci.c +++ b/hw/usb-ohci.c @@ -89,6 +89,14 @@ typedef struct { uint32_t rhdesc_a, rhdesc_b; uint32_t rhstatus; OHCIPort rhport[OHCI_MAX_PORTS]; + + /* Active packets. */ + uint32_t old_ctl; + USBPacket usb_packet; + uint8_t usb_buf[8192]; + uint32_t async_td; + int async_complete; + } OHCIState; /* Host Controller Communications Area */ @@ -288,8 +296,7 @@ static void ohci_attach(USBPort *port1, USBDevice *dev) port->ctrl &= ~OHCI_PORT_LSDA; port->port.dev = dev; /* send the attach message */ - dev->handle_packet(dev, - USB_MSG_ATTACH, 0, 0, NULL, 0); + usb_send_msg(dev, USB_MSG_ATTACH); dprintf("usb-ohci: Attached port %d\n", port1->index); } else { /* set connect status */ @@ -305,8 +312,7 @@ static void ohci_attach(USBPort *port1, USBDevice *dev) dev = port->port.dev; if (dev) { /* send the detach message */ - dev->handle_packet(dev, - USB_MSG_DETACH, 0, 0, NULL, 0); + usb_send_msg(dev, USB_MSG_DETACH); } port->port.dev = NULL; dprintf("usb-ohci: Detached port %d\n", port1->index); @@ -323,6 +329,7 @@ static void ohci_reset(OHCIState *ohci) int i; ohci->ctl = 0; + ohci->old_ctl = 0; ohci->status = 0; ohci->intr_status = 0; ohci->intr = OHCI_INTR_MIE; @@ -356,6 +363,10 @@ static void ohci_reset(OHCIState *ohci) if (port->port.dev) ohci_attach(&port->port, port->port.dev); } + if (ohci->async_td) { + usb_cancel_packet(&ohci->usb_packet); + ohci->async_td = 0; + } dprintf("usb-ohci: Reset %s\n", ohci->pci_dev.name); } @@ -423,6 +434,18 @@ static void ohci_copy_td(struct ohci_td *td, uint8_t *buf, int len, int write) cpu_physical_memory_rw(ptr, buf, len - n, write); } +static void ohci_process_lists(OHCIState *ohci); + +static void ohci_async_complete_packet(USBPacket * packet, void *opaque) +{ + OHCIState *ohci = opaque; +#ifdef DEBUG_PACKET + dprintf("Async packet complete\n"); +#endif + ohci->async_complete = 1; + ohci_process_lists(ohci); +} + /* Service a transport descriptor. Returns nonzero to terminate processing of this endpoint. */ @@ -430,7 +453,6 @@ static int ohci_service_td(OHCIState *ohci, struct ohci_ed *ed) { int dir; size_t len = 0; - uint8_t buf[8192]; char *str = NULL; int pid; int ret; @@ -439,8 +461,17 @@ static int ohci_service_td(OHCIState *ohci, struct ohci_ed *ed) struct ohci_td td; uint32_t addr; int flag_r; + int completion; addr = ed->head & OHCI_DPTR_MASK; + /* See if this TD has already been submitted to the device. */ + completion = (addr == ohci->async_td); + if (completion && !ohci->async_complete) { +#ifdef DEBUG_PACKET + dprintf("Skipping async TD\n"); +#endif + return 1; + } if (!ohci_read_td(addr, &td)) { fprintf(stderr, "usb-ohci: TD read error at %x\n", addr); return 0; @@ -481,8 +512,8 @@ static int ohci_service_td(OHCIState *ohci, struct ohci_ed *ed) len = (td.be - td.cbp) + 1; } - if (len && dir != OHCI_TD_DIR_IN) { - ohci_copy_td(&td, buf, len, 0); + if (len && dir != OHCI_TD_DIR_IN && !completion) { + ohci_copy_td(&td, ohci->usb_buf, len, 0); } } @@ -494,31 +525,58 @@ static int ohci_service_td(OHCIState *ohci, struct ohci_ed *ed) if (len >= 0 && dir != OHCI_TD_DIR_IN) { dprintf(" data:"); for (i = 0; i < len; i++) - printf(" %.2x", buf[i]); + printf(" %.2x", ohci->usb_buf[i]); dprintf("\n"); } #endif - ret = USB_RET_NODEV; - for (i = 0; i < ohci->num_ports; i++) { - dev = ohci->rhport[i].port.dev; - if ((ohci->rhport[i].ctrl & OHCI_PORT_PES) == 0) - continue; - - ret = dev->handle_packet(dev, pid, OHCI_BM(ed->flags, ED_FA), - OHCI_BM(ed->flags, ED_EN), buf, len); - if (ret != USB_RET_NODEV) - break; - } + if (completion) { + ret = ohci->usb_packet.len; + ohci->async_td = 0; + ohci->async_complete = 0; + } else { + ret = USB_RET_NODEV; + for (i = 0; i < ohci->num_ports; i++) { + dev = ohci->rhport[i].port.dev; + if ((ohci->rhport[i].ctrl & OHCI_PORT_PES) == 0) + continue; + + if (ohci->async_td) { + /* ??? The hardware should allow one active packet per + endpoint. We only allow one active packet per controller. + This should be sufficient as long as devices respond in a + timely manner. + */ #ifdef DEBUG_PACKET - dprintf("ret=%d\n", ret); + dprintf("Too many pending packets\n"); #endif + return 1; + } + ohci->usb_packet.pid = pid; + ohci->usb_packet.devaddr = OHCI_BM(ed->flags, ED_FA); + ohci->usb_packet.devep = OHCI_BM(ed->flags, ED_EN); + ohci->usb_packet.data = ohci->usb_buf; + ohci->usb_packet.len = len; + ohci->usb_packet.complete_cb = ohci_async_complete_packet; + ohci->usb_packet.complete_opaque = ohci; + ret = dev->handle_packet(dev, &ohci->usb_packet); + if (ret != USB_RET_NODEV) + break; + } +#ifdef DEBUG_PACKET + dprintf("ret=%d\n", ret); +#endif + if (ret == USB_RET_ASYNC) { + ohci->async_td = addr; + return 1; + } + } if (ret >= 0) { if (dir == OHCI_TD_DIR_IN) { - ohci_copy_td(&td, buf, ret, 1); + ohci_copy_td(&td, ohci->usb_buf, ret, 1); #ifdef DEBUG_PACKET dprintf(" data:"); for (i = 0; i < ret; i++) - printf(" %.2x", buf[i]); + printf(" %.2x", ohci->usb_buf[i]); dprintf("\n"); #endif } else { @@ -608,8 +666,16 @@ static int ohci_service_ed_list(OHCIState *ohci, uint32_t head) next_ed = ed.next & OHCI_DPTR_MASK; - if ((ed.head & OHCI_ED_H) || (ed.flags & OHCI_ED_K)) + if ((ed.head & OHCI_ED_H) || (ed.flags & OHCI_ED_K)) { + uint32_t addr; + /* Cancel pending packets for ED that have been paused. */ + addr = ed.head & OHCI_DPTR_MASK; + if (ohci->async_td && addr == ohci->async_td) { + usb_cancel_packet(&ohci->usb_packet); + ohci->async_td = 0; + } continue; + } /* Skip isochronous endpoints. */ if (ed.flags & OHCI_ED_F) @@ -646,6 +712,26 @@ static void ohci_sof(OHCIState *ohci) ohci_set_interrupt(ohci, OHCI_INTR_SF); } +/* Process Control and Bulk lists. */ +static void ohci_process_lists(OHCIState *ohci) +{ + if ((ohci->ctl & OHCI_CTL_CLE) && (ohci->status & OHCI_STATUS_CLF)) { + if (ohci->ctrl_cur && ohci->ctrl_cur != ohci->ctrl_head) + dprintf("usb-ohci: head %x, cur %x\n", ohci->ctrl_head, ohci->ctrl_cur); + if (!ohci_service_ed_list(ohci, ohci->ctrl_head)) { + ohci->ctrl_cur = 0; + ohci->status &= ~OHCI_STATUS_CLF; + } + } + + if ((ohci->ctl & OHCI_CTL_BLE) && (ohci->status & OHCI_STATUS_BLF)) { + if (!ohci_service_ed_list(ohci, ohci->bulk_head)) { + ohci->bulk_cur = 0; + ohci->status &= ~OHCI_STATUS_BLF; + } + } +} + /* Do frame processing on frame boundary */ static void ohci_frame_boundary(void *opaque) { @@ -661,21 +747,15 @@ static void ohci_frame_boundary(void *opaque) n = ohci->frame_number & 0x1f; ohci_service_ed_list(ohci, le32_to_cpu(hcca.intr[n])); } - if ((ohci->ctl & OHCI_CTL_CLE) && (ohci->status & OHCI_STATUS_CLF)) { - if (ohci->ctrl_cur && ohci->ctrl_cur != ohci->ctrl_head) - dprintf("usb-ohci: head %x, cur %x\n", ohci->ctrl_head, ohci->ctrl_cur); - if (!ohci_service_ed_list(ohci, ohci->ctrl_head)) { - ohci->ctrl_cur = 0; - ohci->status &= ~OHCI_STATUS_CLF; - } - } - if ((ohci->ctl & OHCI_CTL_BLE) && (ohci->status & OHCI_STATUS_BLF)) { - if (!ohci_service_ed_list(ohci, ohci->bulk_head)) { - ohci->bulk_cur = 0; - ohci->status &= ~OHCI_STATUS_BLF; - } + /* Cancel all pending packets if either of the lists has been disabled. */ + if (ohci->async_td && + ohci->old_ctl & (~ohci->ctl) & (OHCI_CTL_BLE | OHCI_CTL_CLE)) { + usb_cancel_packet(&ohci->usb_packet); + ohci->async_td = 0; } + ohci->old_ctl = ohci->ctl; + ohci_process_lists(ohci); /* Frame boundary, so do EOF stuf here */ ohci->frt = ohci->fit; @@ -907,8 +987,7 @@ static void ohci_port_set_status(OHCIState *ohci, int portnum, uint32_t val) if (ohci_port_set_if_connected(ohci, portnum, val & OHCI_PORT_PRS)) { dprintf("usb-ohci: port %d: RESET\n", portnum); - port->port.dev->handle_packet(port->port.dev, USB_MSG_RESET, - 0, 0, NULL, 0); + usb_send_msg(port->port.dev, USB_MSG_RESET); port->ctrl &= ~OHCI_PORT_PRS; /* ??? Should this also set OHCI_PORT_PESC. */ port->ctrl |= OHCI_PORT_PES | OHCI_PORT_PRSC; @@ -1186,5 +1265,6 @@ void usb_ohci_init(struct PCIBus *bus, int num_ports, int devfn) qemu_register_usb_port(&ohci->rhport[i].port, ohci, i, ohci_attach); } + ohci->async_td = 0; ohci_reset(ohci); } diff --git a/hw/usb-uhci.c b/hw/usb-uhci.c index 1a6e0130f9..29809f96bf 100644 --- a/hw/usb-uhci.c +++ b/hw/usb-uhci.c @@ -76,6 +76,18 @@ typedef struct UHCIState { uint8_t status2; /* bit 0 and 1 are used to generate UHCI_STS_USBINT */ QEMUTimer *frame_timer; UHCIPort ports[NB_PORTS]; + + /* Interrupts that should be raised at the end of the current frame. */ + uint32_t pending_int_mask; + /* For simplicity of implementation we only allow a single pending USB + request. This means all usb traffic on this controller is effectively + suspended until that transfer completes. When the transfer completes + the next transfer from that queue will be processed. However + other queues will not be processed until the next frame. The solution + is to allow multiple pending requests. */ + uint32_t async_qh; + USBPacket usb_packet; + uint8_t usb_buf[1280]; } UHCIState; typedef struct UHCI_TD { @@ -188,8 +200,7 @@ static void uhci_ioport_writew(void *opaque, uint32_t addr, uint32_t val) port = &s->ports[i]; dev = port->port.dev; if (dev) { - dev->handle_packet(dev, - USB_MSG_RESET, 0, 0, NULL, 0); + usb_send_msg(dev, USB_MSG_RESET); } } uhci_reset(s); @@ -232,8 +243,7 @@ static void uhci_ioport_writew(void *opaque, uint32_t addr, uint32_t val) /* port reset */ if ( (val & UHCI_PORT_RESET) && !(port->ctrl & UHCI_PORT_RESET) ) { - dev->handle_packet(dev, - USB_MSG_RESET, 0, 0, NULL, 0); + usb_send_msg(dev, USB_MSG_RESET); } } port->ctrl = (port->ctrl & 0x01fb) | (val & ~0x01fb); @@ -336,8 +346,7 @@ static void uhci_attach(USBPort *port1, USBDevice *dev) port->ctrl &= ~UHCI_PORT_LSDA; port->port.dev = dev; /* send the attach message */ - dev->handle_packet(dev, - USB_MSG_ATTACH, 0, 0, NULL, 0); + usb_send_msg(dev, USB_MSG_ATTACH); } else { /* set connect status */ if (port->ctrl & UHCI_PORT_CCS) { @@ -352,16 +361,13 @@ static void uhci_attach(USBPort *port1, USBDevice *dev) dev = port->port.dev; if (dev) { /* send the detach message */ - dev->handle_packet(dev, - USB_MSG_DETACH, 0, 0, NULL, 0); + usb_send_msg(dev, USB_MSG_DETACH); } port->port.dev = NULL; } } -static int uhci_broadcast_packet(UHCIState *s, uint8_t pid, - uint8_t devaddr, uint8_t devep, - uint8_t *data, int len) +static int uhci_broadcast_packet(UHCIState *s, USBPacket *p) { UHCIPort *port; USBDevice *dev; @@ -370,18 +376,18 @@ static int uhci_broadcast_packet(UHCIState *s, uint8_t pid, #ifdef DEBUG_PACKET { const char *pidstr; - switch(pid) { + switch(p->pid) { case USB_TOKEN_SETUP: pidstr = "SETUP"; break; case USB_TOKEN_IN: pidstr = "IN"; break; case USB_TOKEN_OUT: pidstr = "OUT"; break; default: pidstr = "?"; break; } printf("frame %d: pid=%s addr=0x%02x ep=%d len=%d\n", - s->frnum, pidstr, devaddr, devep, len); - if (pid != USB_TOKEN_IN) { + s->frnum, pidstr, p->devaddr, p->devep, p->len); + if (p->pid != USB_TOKEN_IN) { printf(" data_out="); - for(i = 0; i < len; i++) { - printf(" %02x", data[i]); + for(i = 0; i < p->len; i++) { + printf(" %02x", p->data[i]); } printf("\n"); } @@ -391,17 +397,17 @@ static int uhci_broadcast_packet(UHCIState *s, uint8_t pid, port = &s->ports[i]; dev = port->port.dev; if (dev && (port->ctrl & UHCI_PORT_EN)) { - ret = dev->handle_packet(dev, pid, - devaddr, devep, - data, len); + ret = dev->handle_packet(dev, p); if (ret != USB_RET_NODEV) { #ifdef DEBUG_PACKET - { + if (ret == USB_RET_ASYNC) { + printf("usb-uhci: Async packet\n"); + } else { printf(" ret=%d ", ret); - if (pid == USB_TOKEN_IN && ret > 0) { + if (p->pid == USB_TOKEN_IN && ret > 0) { printf("data_in="); for(i = 0; i < ret; i++) { - printf(" %02x", data[i]); + printf(" %02x", p->data[i]); } } printf("\n"); @@ -414,6 +420,8 @@ static int uhci_broadcast_packet(UHCIState *s, uint8_t pid, return USB_RET_NODEV; } +static void uhci_async_complete_packet(USBPacket * packet, void *opaque); + /* return -1 if fatal error (frame must be stopped) 0 if TD successful 1 if TD unsuccessful or inactive @@ -421,9 +429,9 @@ static int uhci_broadcast_packet(UHCIState *s, uint8_t pid, static int uhci_handle_td(UHCIState *s, UHCI_TD *td, int *int_mask) { uint8_t pid; - uint8_t buf[1280]; int len, max_len, err, ret; + /* ??? This is wrong for async completion. */ if (td->ctrl & TD_CTRL_IOC) { *int_mask |= 0x01; } @@ -434,21 +442,8 @@ static int uhci_handle_td(UHCIState *s, UHCI_TD *td, int *int_mask) /* TD is active */ max_len = ((td->token >> 21) + 1) & 0x7ff; pid = td->token & 0xff; - switch(pid) { - case USB_TOKEN_OUT: - case USB_TOKEN_SETUP: - cpu_physical_memory_read(td->buffer, buf, max_len); - ret = uhci_broadcast_packet(s, pid, - (td->token >> 8) & 0x7f, - (td->token >> 15) & 0xf, - buf, max_len); - len = max_len; - break; - case USB_TOKEN_IN: - ret = uhci_broadcast_packet(s, pid, - (td->token >> 8) & 0x7f, - (td->token >> 15) & 0xf, - buf, max_len); + if (s->async_qh) { + ret = s->usb_packet.len; if (ret >= 0) { len = ret; if (len > max_len) { @@ -457,17 +452,52 @@ static int uhci_handle_td(UHCIState *s, UHCI_TD *td, int *int_mask) } if (len > 0) { /* write the data back */ - cpu_physical_memory_write(td->buffer, buf, len); + cpu_physical_memory_write(td->buffer, s->usb_buf, len); } } else { len = 0; } - break; - default: - /* invalid pid : frame interrupted */ - s->status |= UHCI_STS_HCPERR; - uhci_update_irq(s); - return -1; + s->async_qh = 0; + } else { + s->usb_packet.pid = pid; + s->usb_packet.devaddr = (td->token >> 8) & 0x7f; + s->usb_packet.devep = (td->token >> 15) & 0xf; + s->usb_packet.data = s->usb_buf; + s->usb_packet.len = max_len; + s->usb_packet.complete_cb = uhci_async_complete_packet; + s->usb_packet.complete_opaque = s; + switch(pid) { + case USB_TOKEN_OUT: + case USB_TOKEN_SETUP: + cpu_physical_memory_read(td->buffer, s->usb_buf, max_len); + ret = uhci_broadcast_packet(s, &s->usb_packet); + len = max_len; + break; + case USB_TOKEN_IN: + ret = uhci_broadcast_packet(s, &s->usb_packet); + if (ret >= 0) { + len = ret; + if (len > max_len) { + len = max_len; + ret = USB_RET_BABBLE; + } + if (len > 0) { + /* write the data back */ + cpu_physical_memory_write(td->buffer, s->usb_buf, len); + } + } else { + len = 0; + } + break; + default: + /* invalid pid : frame interrupted */ + s->status |= UHCI_STS_HCPERR; + uhci_update_irq(s); + return -1; + } + } + if (ret == USB_RET_ASYNC) { + return 2; } if (td->ctrl & TD_CTRL_IOS) td->ctrl &= ~TD_CTRL_ACTIVE; @@ -520,6 +550,61 @@ static int uhci_handle_td(UHCIState *s, UHCI_TD *td, int *int_mask) } } +static void uhci_async_complete_packet(USBPacket * packet, void *opaque) +{ + UHCIState *s = opaque; + UHCI_QH qh; + UHCI_TD td; + uint32_t link; + uint32_t old_td_ctrl; + uint32_t val; + int ret; + + link = s->async_qh; + if (!link) { + /* This should never happen. It means a TD somehow got removed + without cancelling the associated async IO request. */ + return; + } + cpu_physical_memory_read(link & ~0xf, (uint8_t *)&qh, sizeof(qh)); + le32_to_cpus(&qh.link); + le32_to_cpus(&qh.el_link); + /* Re-process the queue containing the async packet. */ + while (1) { + cpu_physical_memory_read(qh.el_link & ~0xf, + (uint8_t *)&td, sizeof(td)); + le32_to_cpus(&td.link); + le32_to_cpus(&td.ctrl); + le32_to_cpus(&td.token); + le32_to_cpus(&td.buffer); + old_td_ctrl = td.ctrl; + ret = uhci_handle_td(s, &td, &s->pending_int_mask); + /* update the status bits of the TD */ + if (old_td_ctrl != td.ctrl) { + val = cpu_to_le32(td.ctrl); + cpu_physical_memory_write((qh.el_link & ~0xf) + 4, + (const uint8_t *)&val, + sizeof(val)); + } + if (ret < 0) + break; /* interrupted frame */ + if (ret == 2) { + s->async_qh = link; + break; + } else if (ret == 0) { + /* update qh element link */ + qh.el_link = td.link; + val = cpu_to_le32(qh.el_link); + cpu_physical_memory_write((link & ~0xf) + 4, + (const uint8_t *)&val, + sizeof(val)); + if (!(qh.el_link & 4)) + break; + } + break; + } +} + static void uhci_frame_timer(void *opaque) { UHCIState *s = opaque; @@ -528,6 +613,7 @@ static void uhci_frame_timer(void *opaque) int int_mask, cnt, ret; UHCI_TD td; UHCI_QH qh; + uint32_t old_async_qh; if (!(s->cmd & UHCI_CMD_RS)) { qemu_del_timer(s->frame_timer); @@ -535,6 +621,14 @@ static void uhci_frame_timer(void *opaque) s->status |= UHCI_STS_HCHALTED; return; } + /* Complete the previous frame. */ + s->frnum = (s->frnum + 1) & 0x7ff; + if (s->pending_int_mask) { + s->status2 |= s->pending_int_mask; + s->status |= UHCI_STS_USBINT; + uhci_update_irq(s); + } + old_async_qh = s->async_qh; frame_addr = s->fl_base_addr + ((s->frnum & 0x3ff) << 2); cpu_physical_memory_read(frame_addr, (uint8_t *)&link, 4); le32_to_cpus(&link); @@ -546,6 +640,12 @@ static void uhci_frame_timer(void *opaque) /* valid frame */ if (link & 2) { /* QH */ + if (link == s->async_qh) { + /* We've found a previously issues packet. + Nothing else to do. */ + old_async_qh = 0; + break; + } cpu_physical_memory_read(link & ~0xf, (uint8_t *)&qh, sizeof(qh)); le32_to_cpus(&qh.link); le32_to_cpus(&qh.el_link); @@ -556,6 +656,10 @@ static void uhci_frame_timer(void *opaque) } else if (qh.el_link & 2) { /* QH */ link = qh.el_link; + } else if (s->async_qh) { + /* We can only cope with one pending packet. Keep looking + for the previously issued packet. */ + link = qh.link; } else { /* TD */ if (--cnt == 0) @@ -577,7 +681,9 @@ static void uhci_frame_timer(void *opaque) } if (ret < 0) break; /* interrupted frame */ - if (ret == 0) { + if (ret == 2) { + s->async_qh = link; + } else if (ret == 0) { /* update qh element link */ qh.el_link = td.link; val = cpu_to_le32(qh.el_link); @@ -599,25 +705,41 @@ static void uhci_frame_timer(void *opaque) le32_to_cpus(&td.ctrl); le32_to_cpus(&td.token); le32_to_cpus(&td.buffer); - old_td_ctrl = td.ctrl; - ret = uhci_handle_td(s, &td, &int_mask); - /* update the status bits of the TD */ - if (old_td_ctrl != td.ctrl) { - val = cpu_to_le32(td.ctrl); - cpu_physical_memory_write((link & ~0xf) + 4, - (const uint8_t *)&val, - sizeof(val)); + /* Ignore isochonous transfers while there is an async packet + pending. This is wrong, but we don't implement isochronous + transfers anyway. */ + if (s->async_qh == 0) { + old_td_ctrl = td.ctrl; + ret = uhci_handle_td(s, &td, &int_mask); + /* update the status bits of the TD */ + if (old_td_ctrl != td.ctrl) { + val = cpu_to_le32(td.ctrl); + cpu_physical_memory_write((link & ~0xf) + 4, + (const uint8_t *)&val, + sizeof(val)); + } + if (ret < 0) + break; /* interrupted frame */ + if (ret == 2) { + /* We can't handle async isochronous transfers. + Cancel The packet. */ + fprintf(stderr, "usb-uhci: Unimplemented async packet\n"); + usb_cancel_packet(&s->usb_packet); + } } - if (ret < 0) - break; /* interrupted frame */ link = td.link; } } - s->frnum = (s->frnum + 1) & 0x7ff; - if (int_mask) { - s->status2 |= int_mask; - s->status |= UHCI_STS_USBINT; - uhci_update_irq(s); + s->pending_int_mask = int_mask; + if (old_async_qh) { + /* A previously started transfer has disappeared from the transfer + list. There's nothing useful we can do with it now, so just + discard the packet and hope it wasn't too important. */ +#ifdef DEBUG + printf("Discarding USB packet\n"); +#endif + usb_cancel_packet(&s->usb_packet); + s->async_qh = 0; } /* prepare the timer for the next frame */ expire_time = qemu_get_clock(vm_clock) + diff --git a/hw/usb.c b/hw/usb.c index 34aac5fa9b..efbc6dbe98 100644 --- a/hw/usb.c +++ b/hw/usb.c @@ -38,13 +38,13 @@ void usb_attach(USBPort *port, USBDevice *dev) #define SETUP_STATE_DATA 1 #define SETUP_STATE_ACK 2 -int usb_generic_handle_packet(USBDevice *s, int pid, - uint8_t devaddr, uint8_t devep, - uint8_t *data, int len) +int usb_generic_handle_packet(USBDevice *s, USBPacket *p) { int l, ret = 0; + int len = p->len; + uint8_t *data = p->data; - switch(pid) { + switch(p->pid) { case USB_MSG_ATTACH: s->state = USB_STATE_ATTACHED; break; @@ -58,7 +58,7 @@ int usb_generic_handle_packet(USBDevice *s, int pid, s->handle_reset(s); break; case USB_TOKEN_SETUP: - if (s->state < USB_STATE_DEFAULT || devaddr != s->addr) + if (s->state < USB_STATE_DEFAULT || p->devaddr != s->addr) return USB_RET_NODEV; if (len != 8) goto fail; @@ -85,9 +85,9 @@ int usb_generic_handle_packet(USBDevice *s, int pid, } break; case USB_TOKEN_IN: - if (s->state < USB_STATE_DEFAULT || devaddr != s->addr) + if (s->state < USB_STATE_DEFAULT || p->devaddr != s->addr) return USB_RET_NODEV; - switch(devep) { + switch(p->devep) { case 0: switch(s->setup_state) { case SETUP_STATE_ACK: @@ -125,14 +125,14 @@ int usb_generic_handle_packet(USBDevice *s, int pid, } break; default: - ret = s->handle_data(s, pid, devep, data, len); + ret = s->handle_data(s, p); break; } break; case USB_TOKEN_OUT: - if (s->state < USB_STATE_DEFAULT || devaddr != s->addr) + if (s->state < USB_STATE_DEFAULT || p->devaddr != s->addr) return USB_RET_NODEV; - switch(devep) { + switch(p->devep) { case 0: switch(s->setup_state) { case SETUP_STATE_ACK: @@ -163,7 +163,7 @@ int usb_generic_handle_packet(USBDevice *s, int pid, } break; default: - ret = s->handle_data(s, pid, devep, data, len); + ret = s->handle_data(s, p); break; } break; @@ -191,3 +191,13 @@ int set_usb_string(uint8_t *buf, const char *str) } return q - buf; } + +/* Send an internal message to a USB device. */ +void usb_send_msg(USBDevice *dev, int msg) +{ + USBPacket p; + memset(&p, 0, sizeof(p)); + p.pid = msg; + dev->handle_packet(dev, &p); +} + diff --git a/hw/usb.h b/hw/usb.h index 98fde06569..ed8890e39a 100644 --- a/hw/usb.h +++ b/hw/usb.h @@ -34,6 +34,7 @@ #define USB_RET_NAK (-2) #define USB_RET_STALL (-3) #define USB_RET_BABBLE (-4) +#define USB_RET_ASYNC (-5) #define USB_SPEED_LOW 0 #define USB_SPEED_FULL 1 @@ -109,13 +110,12 @@ typedef struct USBPort USBPort; typedef struct USBDevice USBDevice; +typedef struct USBPacket USBPacket; /* definition of a USB device */ struct USBDevice { void *opaque; - int (*handle_packet)(USBDevice *dev, int pid, - uint8_t devaddr, uint8_t devep, - uint8_t *data, int len); + int (*handle_packet)(USBDevice *dev, USBPacket *p); void (*handle_destroy)(USBDevice *dev); int speed; @@ -126,8 +126,7 @@ struct USBDevice { void (*handle_reset)(USBDevice *dev); int (*handle_control)(USBDevice *dev, int request, int value, int index, int length, uint8_t *data); - int (*handle_data)(USBDevice *dev, int pid, uint8_t devep, - uint8_t *data, int len); + int (*handle_data)(USBDevice *dev, USBPacket *p); uint8_t addr; char devname[32]; @@ -151,11 +150,54 @@ struct USBPort { struct USBPort *next; /* Used internally by qemu. */ }; +typedef void USBCallback(USBPacket * packet, void *opaque); + +/* Structure used to hold information about an active USB packet. */ +struct USBPacket { + /* Data fields for use by the driver. */ + int pid; + uint8_t devaddr; + uint8_t devep; + uint8_t *data; + int len; + /* Internal use by the USB layer. */ + USBCallback *complete_cb; + void *complete_opaque; + USBCallback *cancel_cb; + void * *cancel_opaque; +}; + +/* Defer completion of a USB packet. The hadle_packet routine should then + return USB_RET_ASYNC. Packets that complete immediately (before + handle_packet returns) should not call this method. */ +static inline void usb_defer_packet(USBPacket *p, USBCallback *cancel, + void * opaque) +{ + p->cancel_cb = cancel; + p->cancel_opaque = opaque; +} + +/* Notify the controller that an async packet is complete. This should only + be called for packets previously deferred with usb_defer_packet, and + should never be called from within handle_packet. */ +static inline void usb_packet_complete(USBPacket *p) +{ + p->complete_cb(p, p->complete_opaque); +} + +/* Cancel an active packet. The packed must have been deferred with + usb_defer_packet, and not yet completed. */ +static inline void usb_cancel_packet(USBPacket * p) +{ + p->cancel_cb(p, p->cancel_opaque); +} + void usb_attach(USBPort *port, USBDevice *dev); -int usb_generic_handle_packet(USBDevice *s, int pid, - uint8_t devaddr, uint8_t devep, - uint8_t *data, int len); +int usb_generic_handle_packet(USBDevice *s, USBPacket *p); int set_usb_string(uint8_t *buf, const char *str); +void usb_send_msg(USBDevice *dev, int msg); + +void usb_packet_complete(USBPacket *p); /* usb hub */ USBDevice *usb_hub_init(int nb_ports); diff --git a/pc-bios/openbios-esp.diff b/pc-bios/openbios-esp.diff new file mode 100644 index 0000000000..5d4f836f12 --- /dev/null +++ b/pc-bios/openbios-esp.diff @@ -0,0 +1,30 @@ +The ESP SCSI driver currently doesn't check whether a DMA requests has +completed before checking its status. On older qemu versions this works ok +because DMA happens instantly. On never qemu DMA can take an indeterminate +amount of time ooto complete, just like on real hardware. + +The patch below waits for the controller to raise the DMA interrupt after +initiating a DMA request. + +Index: drivers/esp.c +=================================================================== +--- drivers/esp.c (revision 61) ++++ drivers/esp.c (working copy) +@@ -113,6 +113,8 @@ do_command(esp_private_t *esp, sd_privat + esp->espdma.regs->cond_reg = 0; + // Set ATN, issue command + esp->ll->regs[ESP_CMD] = ESP_CMD_SELA | ESP_CMD_DMA; ++ // Wait for DMA to complete ++ while ((esp->espdma.regs->cond_reg & DMA_HNDL_INTR) == 0) /* no-op */; + // Check status + status = esp->ll->regs[ESP_STATUS]; + +@@ -129,6 +131,8 @@ do_command(esp_private_t *esp, sd_privat + esp->espdma.regs->cond_reg = DMA_ST_WRITE; + // Transfer + esp->ll->regs[ESP_CMD] = ESP_CMD_TI | ESP_CMD_DMA; ++ // Wait for DMA to complete ++ while ((esp->espdma.regs->cond_reg & DMA_HNDL_INTR) == 0) /* no-op */; + // Check status + status = esp->ll->regs[ESP_STATUS]; + diff --git a/pc-bios/openbios-sparc32 b/pc-bios/openbios-sparc32 dissimilarity index 76% index 7a729aa81ba39b3ed037ac7fad1db4616818738b..04b60776df5cb83e617cab5e714a87210dbff365 100644 GIT binary patch delta 69895 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

*%A!UmU>eT2vcDfcEX%ij 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 De0kp+ diff --git a/usb-linux.c b/usb-linux.c index 0a13753d48..77436927cd 100644 --- a/usb-linux.c +++ b/usb-linux.c @@ -114,22 +114,21 @@ static int usb_host_handle_control(USBDevice *dev, } } -static int usb_host_handle_data(USBDevice *dev, int pid, - uint8_t devep, - uint8_t *data, int len) +static int usb_host_handle_data(USBDevice *dev, USBPacket *p) { USBHostDevice *s = (USBHostDevice *)dev; struct usbdevfs_bulktransfer bt; int ret; + uint8_t devep = p->devep; /* XXX: optimize and handle all data types by looking at the config descriptor */ - if (pid == USB_TOKEN_IN) + if (p->pid == USB_TOKEN_IN) devep |= 0x80; bt.ep = devep; - bt.len = len; + bt.len = p->len; bt.timeout = 50; - bt.data = data; + bt.data = p->data; ret = ioctl(s->fd, USBDEVFS_BULK, &bt); if (ret < 0) { switch(errno) { diff --git a/vl.h b/vl.h index 1632e35711..5a1032681d 100644 --- a/vl.h +++ b/vl.h @@ -1146,6 +1146,11 @@ void do_usb_del(const char *devname); void usb_info(void); /* scsi-disk.c */ +enum scsi_reason { + SCSI_REASON_DONE, /* Command complete. */ + SCSI_REASON_DATA /* Transfer complete, more data required. */ +}; + typedef struct SCSIDevice SCSIDevice; typedef void (*scsi_completionfn)(void *, uint32_t, int); @@ -1155,8 +1160,12 @@ SCSIDevice *scsi_disk_init(BlockDriverState *bdrv, void scsi_disk_destroy(SCSIDevice *s); int32_t scsi_send_command(SCSIDevice *s, uint32_t tag, uint8_t *buf, int lun); +/* SCSI data transfers are asynchrnonous. However, unlike the block IO + layer the completion routine may be called directly by + scsi_{read,write}_data. */ int scsi_read_data(SCSIDevice *s, uint8_t *data, uint32_t len); int scsi_write_data(SCSIDevice *s, uint8_t *data, uint32_t len); +void scsi_cancel_io(SCSIDevice *s); /* lsi53c895a.c */ void lsi_scsi_attach(void *opaque, BlockDriverState *bd, int id); -- 2.11.4.GIT