From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=34706 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PXgN7-0008Qg-CO for qemu-devel@nongnu.org; Tue, 28 Dec 2010 15:42:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PXgN0-0003uU-Cd for qemu-devel@nongnu.org; Tue, 28 Dec 2010 15:42:17 -0500 Received: from mail-px0-f173.google.com ([209.85.212.173]:46085) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PXgN0-0003u4-8F for qemu-devel@nongnu.org; Tue, 28 Dec 2010 15:42:10 -0500 Received: by pxi16 with SMTP id 16so2298878pxi.4 for ; Tue, 28 Dec 2010 12:42:08 -0800 (PST) MIME-Version: 1.0 In-Reply-To: References: <5C297A9E-0B1C-4273-9A7B-8190CE4DB87E@dlh.net> From: Blue Swirl Date: Tue, 28 Dec 2010 20:41:46 +0000 Message-ID: Subject: Re: [Qemu-devel] possible regression in qemu-kvm 0.13.0 (memtest) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi Cc: Peter Lieven , qemu-devel@nongnu.org, kvm@vger.kernel.org On Mon, Dec 27, 2010 at 3:47 AM, Stefan Hajnoczi wrote= : > On Sat, Dec 25, 2010 at 7:02 PM, Peter Lieven wrote: >> this was the outcome of my bisect session: >> >> 956a3e6bb7386de48b642d4fee11f7f86a2fcf9a is first bad commit >> commit 956a3e6bb7386de48b642d4fee11f7f86a2fcf9a >> Author: Blue Swirl >> Date: =C2=A0 Sat May 22 07:59:01 2010 +0000 >> >> =C2=A0 =C2=A0Compile pckbd only once >> >> =C2=A0 =C2=A0Use a qemu_irq to indicate A20 line changes. Move I/O port = 92 >> =C2=A0 =C2=A0to pckbd.c. >> >> =C2=A0 =C2=A0Signed-off-by: Blue Swirl >> >> :100644 100644 acbaf227455f931f3ef6dbe0bb4494c6b41f2cd9 1a33d4eb4a5624c5= 5896871b5f4ecde78a49ff28 M =C2=A0 =C2=A0 =C2=A0Makefile.objs >> :100644 100644 a22484e1e98355a35deeb5038a45fb8fe8685a91 ba5147fbc48e4fae= f072a5be6b0d69d3201c1e18 M =C2=A0 =C2=A0 =C2=A0Makefile.target >> :040000 040000 dd03f81a42b5162c93c40c517f45eb9f7bece93c 309f472328632319= a15128a59715aa63daf4d92c M =C2=A0 =C2=A0 =C2=A0default-configs >> :040000 040000 83201c4fcde2f592a771479246e0a33a8906515b b1192bce85f2a712= 9fb19cf2fe7462ef168165cb M =C2=A0 =C2=A0 =C2=A0hw >> bisect run success > > Nice job bisecting this! =C2=A0I can reproduce the Memtest86+ V4.10 syste= m > reset with qemu-kvm.git and qemu.git. > > The following code path is hit when val=3D0x2: > if (!(val & 1)) { > =C2=A0 =C2=A0qemu_system_reset_request(); > } > > I think unifying ioport 0x92 and KBD_CCMD_WRITE_OUTPORT was incorrect. > =C2=A0ioport 0x92 is the System Control Port A and resets the system if b= it > 0 is 1. =C2=A0The keyboard outport seems to reset if bit 0 is 0. > > Here are the links I've found describing the i8042 keyboard controller > and System Control Port A: > http://www.computer-engineering.org/ps2keyboard/ > http://www.win.tue.nl/~aeb/linux/kbd/A20.html > > Blue Swirl: Any thoughts on this? SMSC LPC47S45x data sheet (p. 112) also confirms this. The proper fix is to split the ports. But then A20 logic becomes more complex, disabling either of keyboard or port 92 A20 lines should disable system A20 gate. I think we should move port 92 back to pc.c and add the missing A20 logic there as well.