From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1L4ifC-0003BN-Aj for qemu-devel@nongnu.org; Mon, 24 Nov 2008 16:08:10 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1L4ifA-00038r-GR for qemu-devel@nongnu.org; Mon, 24 Nov 2008 16:08:09 -0500 Received: from [199.232.76.173] (port=41852 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1L4ifA-00038X-BD for qemu-devel@nongnu.org; Mon, 24 Nov 2008 16:08:08 -0500 Received: from smtp7-g19.free.fr ([212.27.42.64]:48324) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1L4if9-0001ej-On for qemu-devel@nongnu.org; Mon, 24 Nov 2008 16:08:08 -0500 Received: from smtp7-g19.free.fr (localhost [127.0.0.1]) by smtp7-g19.free.fr (Postfix) with ESMTP id B9466B02E2 for ; Mon, 24 Nov 2008 22:08:05 +0100 (CET) Received: from [192.168.0.32] (rob92-10-88-171-126-33.fbx.proxad.net [88.171.126.33]) by smtp7-g19.free.fr (Postfix) with ESMTP id 8CA42B02A0 for ; Mon, 24 Nov 2008 22:08:05 +0100 (CET) Message-ID: <492B1791.2080808@reactos.org> Date: Mon, 24 Nov 2008 22:07:29 +0100 From: =?ISO-8859-1?Q?Herv=E9_Poussineau?= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------050108070207020407080200" Subject: [Qemu-devel] [PATCH] Fix memory-mapped i8042 on MIPS Magnum Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This is a multi-part message in MIME format. --------------050108070207020407080200 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Hi, Current implementation of memory-mapped i8042 controller is atm=20 implemented with an interface shift (it_shift) parameter, like most all=20 memory-mapped devices in Qemu. However, this isn't suitable for MIPS Magnum, where i8042 controller is=20 at 0x80005000 up to 0x80005fff. Thomas Bogendoerfer (from #mipslinux) tested the behaviour of a real=20 machine, and found that odd addresses are for status/command register,=20 and even addresses for data register. Attached patch implements this behaviour by replacing the it_shift=20 parameter by a mask one. Incidentally, keyboard now works on OpenBSD 2.3, which accesses i8042=20 controller at 0x80005060 and 0x80005061. Signed-off-by: Herv=E9 Poussineau Herv=E9 --------------050108070207020407080200 Content-Type: plain/text; name="pckbd.diff" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="pckbd.diff" 77u/SW5kZXg6IGh3L21pcHNfamF6ei5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaHcvbWlwc19q YXp6LmMJKHJldmlzaW9uIDU3NzEpDQorKysgaHcvbWlwc19qYXp6LmMJKHdvcmtpbmcgY29w eSkNCkBAIC0yMjksNyArMjI5LDcgQEANCiAgICAgY3B1X3JlZ2lzdGVyX3BoeXNpY2FsX21l bW9yeSgweDgwMDA0MDAwLCAweDAwMDAxMDAwLCBzX3J0Yyk7CiAKICAgICAvKiBLZXlib2Fy ZCAoaTgwNDIpICovCi0gICAgaTgwNDJfbW1faW5pdChyYzQwMzBbNl0sIHJjNDAzMFs3XSwg MHg4MDAwNTAwMCwgMCk7CisgICAgaTgwNDJfbW1faW5pdChyYzQwMzBbNl0sIHJjNDAzMFs3 XSwgMHg4MDAwNTAwMCwgMHgxMDAwLCAweDEpOwogCiAgICAgLyogU2VyaWFsIHBvcnRzICov CiAgICAgaWYgKHNlcmlhbF9oZHNbMF0pCkluZGV4OiBody9wYy5oDQo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQotLS0gaHcvcGMuaAkocmV2aXNpb24gNTc3MSkNCisrKyBody9wYy5oCSh3b3JraW5nIGNv cHkpDQpAQCAtNzEsNyArNzEsNyBAQA0KIAogdm9pZCBpODA0Ml9pbml0KHFlbXVfaXJxIGti ZF9pcnEsIHFlbXVfaXJxIG1vdXNlX2lycSwgdWludDMyX3QgaW9fYmFzZSk7CiB2b2lkIGk4 MDQyX21tX2luaXQocWVtdV9pcnEga2JkX2lycSwgcWVtdV9pcnEgbW91c2VfaXJxLAotICAg ICAgICAgICAgICAgICAgIHRhcmdldF9waHlzX2FkZHJfdCBiYXNlLCBpbnQgaXRfc2hpZnQp OworICAgICAgICAgICAgICAgICAgIHRhcmdldF9waHlzX2FkZHJfdCBiYXNlLCByYW1fYWRk cl90IHNpemUsIHJhbV9hZGRyX3QgbWFzayk7CiAKIC8qIG1jMTQ2ODE4cnRjLmMgKi8KIApJ bmRleDogaHcvcGNrYmQuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGh3L3Bja2JkLmMJKHJldmlz aW9uIDU3NzEpDQorKysgaHcvcGNrYmQuYwkod29ya2luZyBjb3B5KQ0KQEAgLTEyNSw4ICsx MjUsNyBAQA0KIAogICAgIHFlbXVfaXJxIGlycV9rYmQ7CiAgICAgcWVtdV9pcnEgaXJxX21v dXNlOwotICAgIHRhcmdldF9waHlzX2FkZHJfdCBiYXNlOwotICAgIGludCBpdF9zaGlmdDsK KyAgICByYW1fYWRkcl90IG1hc2s7CiB9IEtCRFN0YXRlOwogCiBzdGF0aWMgS0JEU3RhdGUg a2JkX3N0YXRlOwpAQCAtMzkyLDI4ICszOTEsMjAgQEANCiB7CiAgICAgS0JEU3RhdGUgKnMg PSBvcGFxdWU7CiAKLSAgICBzd2l0Y2ggKChhZGRyIC0gcy0+YmFzZSkgPj4gcy0+aXRfc2hp ZnQpIHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIHJldHVybiBrYmRfcmVhZF9kYXRhKHMsIDAp ICYgMHhmZjsKLSAgICBjYXNlIDE6CisgICAgaWYgKGFkZHIgJiBzLT5tYXNrKQogICAgICAg ICByZXR1cm4ga2JkX3JlYWRfc3RhdHVzKHMsIDApICYgMHhmZjsKLSAgICBkZWZhdWx0Ogot ICAgICAgICByZXR1cm4gMHhmZjsKLSAgICB9CisgICAgZWxzZQorICAgICAgICByZXR1cm4g a2JkX3JlYWRfZGF0YShzLCAwKSAmIDB4ZmY7CiB9CiAKIHN0YXRpYyB2b2lkIGtiZF9tbV93 cml0ZWIgKHZvaWQgKm9wYXF1ZSwgdGFyZ2V0X3BoeXNfYWRkcl90IGFkZHIsIHVpbnQzMl90 IHZhbHVlKQogewogICAgIEtCRFN0YXRlICpzID0gb3BhcXVlOwogCi0gICAgc3dpdGNoICgo YWRkciAtIHMtPmJhc2UpID4+IHMtPml0X3NoaWZ0KSB7Ci0gICAgY2FzZSAwOgotICAgICAg ICBrYmRfd3JpdGVfZGF0YShzLCAwLCB2YWx1ZSAmIDB4ZmYpOwotICAgICAgICBicmVhazsK LSAgICBjYXNlIDE6CisgICAgaWYgKGFkZHIgJiBzLT5tYXNrKQogICAgICAgICBrYmRfd3Jp dGVfY29tbWFuZChzLCAwLCB2YWx1ZSAmIDB4ZmYpOwotICAgICAgICBicmVhazsKLSAgICB9 CisgICAgZWxzZQorICAgICAgICBrYmRfd3JpdGVfZGF0YShzLCAwLCB2YWx1ZSAmIDB4ZmYp OwogfQogCiBzdGF0aWMgQ1BVUmVhZE1lbW9yeUZ1bmMgKmtiZF9tbV9yZWFkW10gPSB7CkBA IC00MjksMjAgKzQyMCwxOSBAQA0KIH07CiAKIHZvaWQgaTgwNDJfbW1faW5pdChxZW11X2ly cSBrYmRfaXJxLCBxZW11X2lycSBtb3VzZV9pcnEsCi0gICAgICAgICAgICAgICAgICAgdGFy Z2V0X3BoeXNfYWRkcl90IGJhc2UsIGludCBpdF9zaGlmdCkKKyAgICAgICAgICAgICAgICAg ICB0YXJnZXRfcGh5c19hZGRyX3QgYmFzZSwgcmFtX2FkZHJfdCBzaXplLCByYW1fYWRkcl90 IG1hc2spCiB7CiAgICAgS0JEU3RhdGUgKnMgPSAma2JkX3N0YXRlOwogICAgIGludCBzX2lv X21lbW9yeTsKIAogICAgIHMtPmlycV9rYmQgPSBrYmRfaXJxOwogICAgIHMtPmlycV9tb3Vz ZSA9IG1vdXNlX2lycTsKLSAgICBzLT5iYXNlID0gYmFzZTsKLSAgICBzLT5pdF9zaGlmdCA9 IGl0X3NoaWZ0OworICAgIHMtPm1hc2sgPSBtYXNrOwogCiAgICAga2JkX3Jlc2V0KHMpOwog ICAgIHJlZ2lzdGVyX3NhdmV2bSgicGNrYmQiLCAwLCAzLCBrYmRfc2F2ZSwga2JkX2xvYWQs IHMpOwogICAgIHNfaW9fbWVtb3J5ID0gY3B1X3JlZ2lzdGVyX2lvX21lbW9yeSgwLCBrYmRf bW1fcmVhZCwga2JkX21tX3dyaXRlLCBzKTsKLSAgICBjcHVfcmVnaXN0ZXJfcGh5c2ljYWxf bWVtb3J5KGJhc2UsIDIgPDwgaXRfc2hpZnQsIHNfaW9fbWVtb3J5KTsKKyAgICBjcHVfcmVn aXN0ZXJfcGh5c2ljYWxfbWVtb3J5KGJhc2UsIHNpemUsIHNfaW9fbWVtb3J5KTsKIAogICAg IHMtPmtiZCA9IHBzMl9rYmRfaW5pdChrYmRfdXBkYXRlX2tiZF9pcnEsIHMpOwogICAgIHMt Pm1vdXNlID0gcHMyX21vdXNlX2luaXQoa2JkX3VwZGF0ZV9hdXhfaXJxLCBzKTsK --------------050108070207020407080200--