Fix for Bochs 2.2.6.
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 8 Apr 2006 00:23:31 +0000 (00:23 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 8 Apr 2006 00:23:31 +0000 (00:23 +0000)
(I think this might actually be a bug in Bochs, though.)

src/threads/loader.S

index 2d76763cffc3dcdc2aa339404bfb674360e22ae1..987feb1ad1ced9742500198ab77f3f44b4553041 100644 (file)
@@ -220,6 +220,17 @@ start:
 
        movl $1, %ebx
        movl $LOADER_KERN_BASE + LOADER_PHYS_BASE, %edi
+
+#### Disable interrupt delivery by IDE controller, because we will be
+#### polling for data.
+#### (If we don't do this, Bochs 2.2.6 will never deliver any IDE
+#### interrupt to us later after we reset the interrupt controller
+#### during boot, even if we also reset the IDE controller.)
+
+       movw $0x3f6, %dx
+       movb $0x02, %al
+       outb %al, %dx
+       
 read_sector:
 
 # Poll status register while controller busy.