Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Sep 2009 11:09:09 +0400
From:      Anonymous <swell.k@gmail.com>
To:        d@delphij.net
Cc:        paradox <ddkprog@yahoo.com>, current@freebsd.org, Joel Dahl <joel@FreeBSD.org>
Subject:   Re: svn rev 197392 hangs during boot
Message-ID:  <86ab0nxxpm.fsf@gmail.com>
In-Reply-To: <4AB825B6.6010602@delphij.net> (Xin LI's message of "Mon, 21 Sep 2009 18:17:42 -0700")
References:  <4AB7D081.8090203@FreeBSD.org> <4AB82303.9030109@delphij.net> <4AB825B6.6010602@delphij.net>

next in thread | previous in thread | raw e-mail | index | archive | help
--=-=-=

Xin LI <delphij@delphij.net> writes:

> Xin LI wrote:
>> Hi,
>> 
>> Joel Dahl wrote:
>>> Fresh FreeBSD 9-CURRENT (svn 197392) hangs at:
>> 
>>> atkbd: the current kbd controller command byte 0047
>>> atkbd: keyboard ID 0x41ab (2)
>>> kbdc: RESET_KBD return code:00fa
>>> kbdc: RESET_KBD status:00aa
>> 
>> Will reverting revision 197384 help?
>
> Forgot the attachment.
>

Before trying to revert it can make sense to try place back u_int32_t
cast first

[...]
> -        p = BIOS_PADDRTOVADDR((regs.R_ES << 4) + regs.R_BX);
> +        p = BIOS_PADDRTOVADDR(((u_int32_t)vmf.vmf_es << 4) + vmf.vmf_bx);

that I accidentally removed here.


--=-=-=
Content-Type: text/x-patch
Content-Disposition: inline; filename=a.diff

Index: sys/dev/atkbdc/atkbd.c
===================================================================
--- sys/dev/atkbdc/atkbd.c	(revision 197392)
+++ sys/dev/atkbdc/atkbd.c	(working copy)
@@ -1101,7 +1101,7 @@
 	x86biosCall(&regs, 0x15);
 	if ((regs.R_EFLG & PSL_C) || regs.R_AH)
 		return ENODEV;
-        p = BIOS_PADDRTOVADDR((regs.R_ES << 4) + regs.R_BX);
+        p = BIOS_PADDRTOVADDR(((uint32_t)regs.R_ES << 4) + regs.R_BX);
 	if ((readb(p + 6) & 0x40) == 0)	/* int 16, function 0x09 supported? */
 		return ENODEV;
 	regs.R_AX = 0x0900;

--=-=-=--



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