From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HSfLW-0004Tv-Q4 for qemu-devel@nongnu.org; Sat, 17 Mar 2007 16:17:46 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HSfLS-0004S3-SF for qemu-devel@nongnu.org; Sat, 17 Mar 2007 16:17:46 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HSfLS-0004Rs-PH for qemu-devel@nongnu.org; Sat, 17 Mar 2007 15:17:42 -0500 Received: from wx-out-0506.google.com ([66.249.82.236]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1HSfKB-0004Fr-V8 for qemu-devel@nongnu.org; Sat, 17 Mar 2007 16:16:24 -0400 Received: by wx-out-0506.google.com with SMTP id i30so1390857wxd for ; Sat, 17 Mar 2007 13:16:23 -0700 (PDT) Message-ID: Date: Sat, 17 Mar 2007 21:16:23 +0100 From: "andrzej zaborowski" Sender: balrogg@gmail.com Subject: Re: [Qemu-devel] [PATCH] PXA-specific ARM hacks. In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_109328_21038457.1174162583350" References: <200703171503.59810.paul@codesourcery.com> Reply-To: balrogg@gmail.com, qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Brook Cc: qemu-devel@nongnu.org ------=_Part_109328_21038457.1174162583350 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline On 17/03/07, andrzej zaborowski wrote: > On 17/03/07, Paul Brook wrote: > > On Friday 16 March 2007 22:06, andrzej zaborowski wrote: > > > This patch contains some ugly but very useful chnages: > > > - in cpu-exec.c, halt the arm CPU on CPU_INTERRUPT_HALT like in other > > > architectures. > > > > This is ok. Though I'd prefer it to actually be common code (like > > CPU_INTERRUPT_DEBUG). > > > > > - wake the cpu up on CPU_INTERRUPT_EXITTB - this serves waking the > > > CPU up without asserting IRQ or FIQ, which is possible on PXA. Would > > > it be better to add a separate interrupt type instead? > > > > I think this is probably ok. Could do with a comment somewhere saying so. > > > > > - in target-arm/translate.c, don't terminate the TB after a CP15 > > > write. The purpose of this is to imitate the real processor's > > > instruction cache (to some degree). OSes should never need rely on the > > > cache prefetch but unfortunately Linux for pxa does when it's waking > > > up from sleep or deep idle, when enabling the MMU (simplifies things a > > > lot for Linux). > > > > This is not acceptable in its current form. IIRC on arm cores the effects take > > effect once all insn have worked through the pipeline (typically a few > > cycles), and I bet there's code that relies on this. ie: > > mcr cp15, ...;nop;nop;nop;nop;@expect cp15 write to have taken effect by now > > > > A more acceptable solution would be: > > - Only extend the TB for the specific instruction that linux abuses > > - Limit the number of instructions that can follow before the end of the TB. > > - Add a comment saying what this hack is for. > > Ok. Attaching a second version of this patch. The number of > instructions after MMU enable and before TB ends is limited by the > obligatory CPWAIT rather than in qemu. Oops, one more try. This time removing the use of cpu_reset() on entering Standby because cpu_reset() now does more than we want. Andrzej ------=_Part_109328_21038457.1174162583350 Content-Type: text/plain; name=0015-PXA-specific-ARM-hacks.txt; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_ezek6emm Content-Disposition: attachment; filename="0015-PXA-specific-ARM-hacks.txt" RnJvbSA4ZDRkODRlZTcxMDQ4NjM4ZmQxMDFlZDI3YmEzN2IwMzhkZGY0NjUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyemVqIFphYm9yb3dza2kgPGJhbHJvZ0B6YWJvci5vcmc+ CkRhdGU6IFNhdCwgMTcgTWFyIDIwMDcgMjI6MTM6MjkgKzAxMDAKU3ViamVjdDogW1BBVENIXSBQ WEEtc3BlY2lmaWMgQVJNIGhhY2tzLgoKLS0tCiBjcHUtYWxsLmggICAgICAgICAgICAgIHwgICAg MyArKy0KIGNwdS1leGVjLmMgICAgICAgICAgICAgfCAgIDIwICsrKysrKysrKysrLS0tLS0tLS0t CiBody9weGEyeHguYyAgICAgICAgICAgIHwgICAgMyArKy0KIHRhcmdldC1hcm0vdHJhbnNsYXRl LmMgfCAgIDExICsrKysrKysrLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyks IDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NwdS1hbGwuaCBiL2NwdS1hbGwuaAppbmRl eCA5YjYxN2ZjLi4xNzdiY2JhIDEwMDY0NAotLS0gYS9jcHUtYWxsLmgKKysrIGIvY3B1LWFsbC5o CkBAIC03NjMsNyArNzYzLDggQEAgdm9pZCBjcHVfZHVtcF9zdGF0aXN0aWNzIChDUFVTdGF0ZSAq ZW52LCBGSUxFICpmLAogICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpjcHVfZnByaW50 ZikoRklMRSAqZiwgY29uc3QgY2hhciAqZm10LCAuLi4pLAogICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgZmxhZ3MpOwogCi12b2lkIGNwdV9hYm9ydChDUFVTdGF0ZSAqZW52LCBjb25zdCBj aGFyICpmbXQsIC4uLik7Cit2b2lkIGNwdV9hYm9ydChDUFVTdGF0ZSAqZW52LCBjb25zdCBjaGFy ICpmbXQsIC4uLikKKyAgICBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19wcmludGZfXywg MiwgMykpKTsKIGV4dGVybiBDUFVTdGF0ZSAqZmlyc3RfY3B1OwogZXh0ZXJuIENQVVN0YXRlICpj cHVfc2luZ2xlX2VudjsKIGV4dGVybiBpbnQgY29kZV9jb3B5X2VuYWJsZWQ7CmRpZmYgLS1naXQg YS9jcHUtZXhlYy5jIGIvY3B1LWV4ZWMuYwppbmRleCA0OGMyYTkzLi4xMGUyZjJiIDEwMDY0NAot LS0gYS9jcHUtZXhlYy5jCisrKyBiL2NwdS1leGVjLmMKQEAgLTI3NSw5ICsyNzUsMTAgQEAgaW50 IGNwdV9leGVjKENQVVN0YXRlICplbnYxKQogI2VsaWYgZGVmaW5lZChUQVJHRVRfQVJNKQogICAg IGlmIChlbnYxLT5oYWx0ZWQpIHsKICAgICAgICAgLyogQW4gaW50ZXJydXB0IHdha2VzIHRoZSBD UFUgZXZlbiBpZiB0aGUgSSBhbmQgRiBDUFNSIGJpdHMgYXJlCi0gICAgICAgICAgIHNldC4gICov Ci0gICAgICAgIGlmIChlbnYxLT5pbnRlcnJ1cHRfcmVxdWVzdAotICAgICAgICAgICAgJiAoQ1BV X0lOVEVSUlVQVF9GSVEgfCBDUFVfSU5URVJSVVBUX0hBUkQpKSB7CisgICAgICAgICAgIHNldC4g IFdlIHVzZSBFWElUVEIgdG8gc2lsZW50bHkgd2FrZSBDUFUgd2l0aG91dCBjYXVzaW5nIGFuCisg ICAgICAgICAgIGFjdHVhbCBpbnRlcnJ1cHQuICAqLworICAgICAgICBpZiAoZW52MS0+aW50ZXJy dXB0X3JlcXVlc3QgJgorICAgICAgICAgICAgKENQVV9JTlRFUlJVUFRfRklRIHwgQ1BVX0lOVEVS UlVQVF9IQVJEIHwgQ1BVX0lOVEVSUlVQVF9FWElUVEIpKSB7CiAgICAgICAgICAgICBlbnYxLT5o YWx0ZWQgPSAwOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcmV0dXJuIEVYQ1BfSEFM VEVEOwpAQCAtNDE0LDYgKzQxNSwxMiBAQCBpbnQgY3B1X2V4ZWMoQ1BVU3RhdGUgKmVudjEpCiAg ICAgICAgICAgICAgICAgICAgICAgICBlbnYtPmV4Y2VwdGlvbl9pbmRleCA9IEVYQ1BfREVCVUc7 CiAgICAgICAgICAgICAgICAgICAgICAgICBjcHVfbG9vcF9leGl0KCk7CiAgICAgICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGludGVycnVwdF9yZXF1ZXN0ICYgQ1BV X0lOVEVSUlVQVF9IQUxUKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBlbnYtPmludGVycnVw dF9yZXF1ZXN0ICY9IH5DUFVfSU5URVJSVVBUX0hBTFQ7CisgICAgICAgICAgICAgICAgICAgICAg ICBlbnYtPmhhbHRlZCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICBlbnYtPmV4Y2VwdGlv bl9pbmRleCA9IEVYQ1BfSExUOworICAgICAgICAgICAgICAgICAgICAgICAgY3B1X2xvb3BfZXhp dCgpOworICAgICAgICAgICAgICAgICAgICB9CiAjaWYgZGVmaW5lZChUQVJHRVRfSTM4NikKICAg ICAgICAgICAgICAgICAgICAgaWYgKChpbnRlcnJ1cHRfcmVxdWVzdCAmIENQVV9JTlRFUlJVUFRf U01JKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgIShlbnYtPmhmbGFncyAmIEhGX1NNTV9N QVNLKSkgewpAQCAtNTExLDEyICs1MTgsNyBAQCBpbnQgY3B1X2V4ZWMoQ1BVU3RhdGUgKmVudjEp CiAJCSAgICB9IGVsc2UgaWYgKGludGVycnVwdF9yZXF1ZXN0ICYgQ1BVX0lOVEVSUlVQVF9USU1F UikgewogCQkJLy9kb19pbnRlcnJ1cHQoMCwgMCwgMCwgMCwgMCk7CiAJCQllbnYtPmludGVycnVw dF9yZXF1ZXN0ICY9IH5DUFVfSU5URVJSVVBUX1RJTUVSOwotCQkgICAgfSBlbHNlIGlmIChpbnRl cnJ1cHRfcmVxdWVzdCAmIENQVV9JTlRFUlJVUFRfSEFMVCkgewotCQkJZW52LT5pbnRlcnJ1cHRf cmVxdWVzdCAmPSB+Q1BVX0lOVEVSUlVQVF9IQUxUOwotCQkJZW52LT5oYWx0ZWQgPSAxOwotCQkJ ZW52LT5leGNlcHRpb25faW5kZXggPSBFWENQX0hMVDsKLQkJCWNwdV9sb29wX2V4aXQoKTsKLSAg ICAgICAgICAgICAgICAgICAgfQorCQkgICAgfQogI2VsaWYgZGVmaW5lZChUQVJHRVRfQVJNKQog ICAgICAgICAgICAgICAgICAgICBpZiAoaW50ZXJydXB0X3JlcXVlc3QgJiBDUFVfSU5URVJSVVBU X0ZJUQogICAgICAgICAgICAgICAgICAgICAgICAgJiYgIShlbnYtPnVuY2FjaGVkX2Nwc3IgJiBD UFNSX0YpKSB7CmRpZmYgLS1naXQgYS9ody9weGEyeHguYyBiL2h3L3B4YTJ4eC5jCmluZGV4IGM4 YzZlYjQuLjJkMmQ3MmEgMTAwNjQ0Ci0tLSBhL2h3L3B4YTJ4eC5jCisrKyBiL2h3L3B4YTJ4eC5j CkBAIC0yNTksNyArMjU5LDggQEAgc3RhdGljIHZvaWQgcHhhMnh4X2Nsa3B3cl93cml0ZSh2b2lk ICpvcGFxdWUsIGludCBvcDIsIGludCByZWcsIGludCBjcm0sCiAgICAgICAgICAgICBnb3RvIG1l c3NhZ2U7CiAKICAgICAgICAgY2FzZSAzOgotICAgICAgICAgICAgY3B1X3Jlc2V0KHMtPmVudik7 CisgICAgICAgICAgICBzLT5lbnYtPnVuY2FjaGVkX2Nwc3IgPQorICAgICAgICAgICAgICAgICAg ICBBUk1fQ1BVX01PREVfU1ZDIHwgQ1BTUl9BIHwgQ1BTUl9GIHwgQ1BTUl9JOwogICAgICAgICAg ICAgcy0+ZW52LT5jcDE1LmMxX3N5cyA9IDA7CiAgICAgICAgICAgICBzLT5lbnYtPmNwMTUuYzFf Y29wcm9jID0gMDsKICAgICAgICAgICAgIHMtPmVudi0+Y3AxNS5jMiA9IDA7CmRpZmYgLS1naXQg YS90YXJnZXQtYXJtL3RyYW5zbGF0ZS5jIGIvdGFyZ2V0LWFybS90cmFuc2xhdGUuYwppbmRleCBj ZDFjMDRkLi4zZTgzNjdhIDEwMDY0NAotLS0gYS90YXJnZXQtYXJtL3RyYW5zbGF0ZS5jCisrKyBi L3RhcmdldC1hcm0vdHJhbnNsYXRlLmMKQEAgLTE1NzksNyArMTU3OSw3IEBAIHN0YXRpYyBpbnQg ZGlzYXNfY3BfaW5zbihEaXNhc0NvbnRleHQgKnMsIHVpbnQzMl90IGluc24pCiAKIC8qIERpc2Fz c2VtYmxlIHN5c3RlbSBjb3Byb2Nlc3NvciAoY3AxNSkgaW5zdHJ1Y3Rpb24uICBSZXR1cm4gbm9u emVybyBpZgogICAgaW5zdHJ1Y3Rpb24gaXMgbm90IGRlZmluZWQuICAqLwotc3RhdGljIGludCBk aXNhc19jcDE1X2luc24oRGlzYXNDb250ZXh0ICpzLCB1aW50MzJfdCBpbnNuKQorc3RhdGljIGlu dCBkaXNhc19jcDE1X2luc24oQ1BVU3RhdGUgKmVudiwgRGlzYXNDb250ZXh0ICpzLCB1aW50MzJf dCBpbnNuKQogewogICAgIHVpbnQzMl90IHJkOwogCkBAIC0xNjA1LDggKzE2MDUsMTMgQEAgc3Rh dGljIGludCBkaXNhc19jcDE1X2luc24oRGlzYXNDb250ZXh0ICpzLCB1aW50MzJfdCBpbnNuKQog ICAgIH0gZWxzZSB7CiAgICAgICAgIGdlbl9tb3ZsX1QwX3JlZyhzLCByZCk7CiAgICAgICAgIGdl bl9vcF9tb3ZsX2NwMTVfVDAoaW5zbik7CisgICAgICAgIC8qIE5vcm1hbGx5IHdlIHdvdWxkIGFs d2F5cyBlbmQgdGhlIFRCIGhlcmUsIGJ1dCBMaW51eAorICAgICAgICAgKiBhcmNoL2FybS9tYWNo LXB4YS9zbGVlcC5TIGV4cGVjdHMgdHdvIGluc3RydWN0aW9ucyBmb2xsb3dpbmcKKyAgICAgICAg ICogYW4gTU1VIGVuYWJsZSB0byBleGVjdXRlIGZyb20gY2FjaGUuICBJbWl0YXRlIHRoaXMgYmVo YXZpb3VyLiAgKi8KKyAgICAgICAgaWYgKCFhcm1fZmVhdHVyZShlbnYsIEFSTV9GRUFUVVJFX1hT Q0FMRSkgfHwKKyAgICAgICAgICAgICAgICAoaW5zbiAmIDB4MGZmZjBmZmYpICE9IDB4MGUwMTBm MTApCisgICAgICAgICAgICBnZW5fbG9va3VwX3RiKHMpOwogICAgIH0KLSAgICBnZW5fbG9va3Vw X3RiKHMpOwogICAgIHJldHVybiAwOwogfQogCkBAIC0yOTA3LDcgKzI5MTIsNyBAQCBzdGF0aWMg dm9pZCBkaXNhc19hcm1faW5zbihDUFVTdGF0ZSAqIGVudiwgRGlzYXNDb250ZXh0ICpzKQogICAg ICAgICAgICAgICAgICAgICBnb3RvIGlsbGVnYWxfb3A7CiAgICAgICAgICAgICAgICAgYnJlYWs7 CiAgICAgICAgICAgICBjYXNlIDE1OgotICAgICAgICAgICAgICAgIGlmIChkaXNhc19jcDE1X2lu c24gKHMsIGluc24pKQorICAgICAgICAgICAgICAgIGlmIChkaXNhc19jcDE1X2luc24gKGVudiwg cywgaW5zbikpCiAgICAgICAgICAgICAgICAgICAgIGdvdG8gaWxsZWdhbF9vcDsKICAgICAgICAg ICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6Ci0tIAoxLjQuNC4zCgo= ------=_Part_109328_21038457.1174162583350--