[OpenBIOS] r665 - trunk/openbios-devel/drivers

svn at openbios.org svn at openbios.org
Sat Jan 16 09:47:40 CET 2010


Author: blueswirl
Date: 2010-01-16 09:47:39 +0100 (Sat, 16 Jan 2010)
New Revision: 665

Modified:
   trunk/openbios-devel/drivers/esp.c
Log:
ESP: fix spurious guest interrupts during boot

Signed-off-by: Blue Swirl <blauwirbel at gmail.com>

Modified: trunk/openbios-devel/drivers/esp.c
===================================================================
--- trunk/openbios-devel/drivers/esp.c	2010-01-10 18:26:34 UTC (rev 664)
+++ trunk/openbios-devel/drivers/esp.c	2010-01-16 08:47:39 UTC (rev 665)
@@ -101,6 +101,9 @@
     esp->ll->regs[ESP_CMD] = ESP_CMD_SELA | ESP_CMD_DMA;
     // Wait for DMA to complete. Can this fail?
     while ((esp->espdma.regs->cond_reg & DMA_HNDL_INTR) == 0) /* no-op */;
+    // Clear interrupts to avoid guests seeing spurious interrupts
+    (void)esp->ll->regs[ESP_INTRPT];
+
     // Check status
     status = esp->ll->regs[ESP_STATUS];
 
@@ -124,6 +127,10 @@
     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 */;
+
+    // Clear interrupts to avoid guests seeing spurious interrupts
+    (void)esp->ll->regs[ESP_INTRPT];
+
     // Check status
     status = esp->ll->regs[ESP_STATUS];
 




More information about the OpenBIOS mailing list