aboutsummaryrefslogtreecommitdiff
path: root/pc-bios/openbios-esp.diff
diff options
context:
space:
mode:
Diffstat (limited to 'pc-bios/openbios-esp.diff')
-rw-r--r--pc-bios/openbios-esp.diff30
1 files changed, 0 insertions, 30 deletions
diff --git a/pc-bios/openbios-esp.diff b/pc-bios/openbios-esp.diff
deleted file mode 100644
index 5d4f836f12..0000000000
--- a/pc-bios/openbios-esp.diff
+++ /dev/null
@@ -1,30 +0,0 @@
-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];
-