Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Jun 2004 09:36:20 -0700 (PDT)
From:      Nate Lawson <nate@root.org>
To:        Poul-Henning Kamp <phk@FreeBSD.org>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/boot/i386/boot2 boot1.S
Message-ID:  <20040602093149.D35427@root.org>
In-Reply-To: <20040602093847.D53A516A520@hub.freebsd.org>
References:  <20040602093847.D53A516A520@hub.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040602093149.D35427>