X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fthreads%2Floader.S;h=b7842d3840743c6f25ab0bceaafcbd97e74e65fd;hb=03f3426d4da28916900a7b811e72b862c5411d0d;hp=987feb1ad1ced9742500198ab77f3f44b4553041;hpb=53b0d95c490021039ac2b5b1b7a80d82cefb2709;p=pintos-anon diff --git a/src/threads/loader.S b/src/threads/loader.S index 987feb1..b7842d3 100644 --- a/src/threads/loader.S +++ b/src/threads/loader.S @@ -56,14 +56,16 @@ #define CR0_PG 0x80000000 /* Paging. */ #define CR0_WP 0x00010000 /* Write-Protect enable in kernel mode. */ -# Code runs in real mode, which is a 16-bit segment. .globl start start: + +# Code runs in real mode, which is a 16-bit segment. .code16 -# Disable interrupts. -# String instructions go upward. +# Disable interrupts, because we will not be prepared to handle them +# in protected mode until much later. +# String instructions go upward (e.g. for "rep stosl" below). cli cld @@ -221,11 +223,11 @@ 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.) +# 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