Commit 69fba4a51edb69fb983ca887d985c1d9a1c62e5e
1 parent
4d611c9a
Remove OpenBIOS ESP patch. Merged upstream.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2108 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
0 additions
and
30 deletions
pc-bios/openbios-esp.diff deleted
100644 → 0
| 1 | -The ESP SCSI driver currently doesn't check whether a DMA requests has | |
| 2 | -completed before checking its status. On older qemu versions this works ok | |
| 3 | -because DMA happens instantly. On never qemu DMA can take an indeterminate | |
| 4 | -amount of time ooto complete, just like on real hardware. | |
| 5 | - | |
| 6 | -The patch below waits for the controller to raise the DMA interrupt after | |
| 7 | -initiating a DMA request. | |
| 8 | - | |
| 9 | -Index: drivers/esp.c | |
| 10 | -=================================================================== | |
| 11 | ---- drivers/esp.c (revision 61) | |
| 12 | -+++ drivers/esp.c (working copy) | |
| 13 | -@@ -113,6 +113,8 @@ do_command(esp_private_t *esp, sd_privat | |
| 14 | - esp->espdma.regs->cond_reg = 0; | |
| 15 | - // Set ATN, issue command | |
| 16 | - esp->ll->regs[ESP_CMD] = ESP_CMD_SELA | ESP_CMD_DMA; | |
| 17 | -+ // Wait for DMA to complete | |
| 18 | -+ while ((esp->espdma.regs->cond_reg & DMA_HNDL_INTR) == 0) /* no-op */; | |
| 19 | - // Check status | |
| 20 | - status = esp->ll->regs[ESP_STATUS]; | |
| 21 | - | |
| 22 | -@@ -129,6 +131,8 @@ do_command(esp_private_t *esp, sd_privat | |
| 23 | - esp->espdma.regs->cond_reg = DMA_ST_WRITE; | |
| 24 | - // Transfer | |
| 25 | - esp->ll->regs[ESP_CMD] = ESP_CMD_TI | ESP_CMD_DMA; | |
| 26 | -+ // Wait for DMA to complete | |
| 27 | -+ while ((esp->espdma.regs->cond_reg & DMA_HNDL_INTR) == 0) /* no-op */; | |
| 28 | - // Check status | |
| 29 | - status = esp->ll->regs[ESP_STATUS]; | |
| 30 | - |