cvs commit: src/sys/boot/i386/boot2 boot1.S
John Baldwin
jhb at FreeBSD.org
Wed Jun 2 09:55:14 PDT 2004
On Wednesday 02 June 2004 12:36 pm, Nate Lawson wrote:
> 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?
No.
> > /*
> > * 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.)
xor %cx,%cx is smaller
> > +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
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the cvs-src
mailing list