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