cvs commit: src/sys/boot/i386/boot2 boot1.S
Nate Lawson
nate at root.org
Wed Jun 2 09:36:26 PDT 2004
On Wed, 2 Jun 2004, Poul-Henning Kamp wrote:
> phk 2004/06/02 02:38:33 PDT
>
> FreeBSD src repository
>
> Modified files:
> sys/boot/i386/boot2 boot1.S
> Log:
> Some embedded platforms have no keyboard controller. Give up waiting
> for it to react after a timeout.
>
> Revision Changes Path
> 1.28 +11 -4 src/sys/boot/i386/boot2/boot1.S
>
> --- src/sys/boot/i386/boot2/boot1.S:1.27 Fri May 14 13:29:29 2004
> +++ src/sys/boot/i386/boot2/boot1.S Wed Jun 2 02:38:32 2004
> @@ -197,13 +197,16 @@
> xorb %al,%al # Zero assumed bss from
> rep # the end of boot2.bin
> stosb # up to 0x10000
> - callw seta20 # Enable A20
> - jmp start+MEM_JMP-MEM_ORG # Start BTX
> +
By removing the callw/retw and moving the jmp to the end, A20 enable can't
be called as a subroutine from elsewhere. Will it be needed elsewhere?
> /*
> * Enable A20 so we can access memory above 1 meg.
> + * Use the zero-valued %cx as a timeout for embedded hardware which do not
> + * have a keyboard controller.
> */
> seta20: cli # Disable interrupts
> -seta20.1: inb $0x64,%al # Get status
Should be a "movw TIMEOUT, %cx" here. (Or whatever the timeout constant
is.)
> +seta20.1: dec %cx # Timeout?
> + jz seta20.3 # Yes
> + inb $0x64,%al # Get status
> testb $0x2,%al # Busy?
> jnz seta20.1 # Yes
> movb $0xd1,%al # Command: Write
-Nate
More information about the cvs-src
mailing list