From: Ben Pfaff Date: Sat, 8 Apr 2006 00:23:31 +0000 (+0000) Subject: Fix for Bochs 2.2.6. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pintos-anon;a=commitdiff_plain;h=53b0d95c490021039ac2b5b1b7a80d82cefb2709 Fix for Bochs 2.2.6. (I think this might actually be a bug in Bochs, though.) --- diff --git a/src/threads/loader.S b/src/threads/loader.S index 2d76763..987feb1 100644 --- a/src/threads/loader.S +++ b/src/threads/loader.S @@ -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.