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 | - |