From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HSeei-0001iN-TK for qemu-devel@nongnu.org; Sat, 17 Mar 2007 15:33:33 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HSeei-0001hZ-E9 for qemu-devel@nongnu.org; Sat, 17 Mar 2007 15:33:32 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HSeeh-0001hS-Uw for qemu-devel@nongnu.org; Sat, 17 Mar 2007 14:33:32 -0500 Received: from ug-out-1314.google.com ([66.249.92.175]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1HSedP-0006Ne-Qw for qemu-devel@nongnu.org; Sat, 17 Mar 2007 15:32:13 -0400 Received: by ug-out-1314.google.com with SMTP id j40so1074620ugd for ; Sat, 17 Mar 2007 12:32:06 -0700 (PDT) Message-ID: Date: Sat, 17 Mar 2007 20:32:05 +0100 From: "andrzej zaborowski" Sender: balrogg@gmail.com Subject: Re: [Qemu-devel] [PATCH] PXA-specific ARM hacks. In-Reply-To: <200703171503.59810.paul@codesourcery.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_109083_18093669.1174159925320" 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_109083_18093669.1174159925320 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline 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. Regards, Andrzej ------=_Part_109083_18093669.1174159925320 Content-Type: text/plain; name=0015-PXA-specific-ARM-hacks.txt; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_ezeibn9a Content-Disposition: attachment; filename="0015-PXA-specific-ARM-hacks.txt" RnJvbSAzNzMzNjAwNGY2MTFmNTQ0ZmM3ZDJlYjc2MzQ0NWZkY2EzMTA5Y2RmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyemVqIFphYm9yb3dza2kgPGJhbHJvZ0B6YWJvci5vcmc+ CkRhdGU6IFNhdCwgMTcgTWFyIDIwMDcgMjE6MjY6MTIgKzAxMDAKU3ViamVjdDogW1BBVENIXSBQ WEEtc3BlY2lmaWMgQVJNIGhhY2tzLgoKLS0tCiBjcHUtYWxsLmggICAgICAgICAgICAgIHwgICAg MyArKy0KIGNwdS1leGVjLmMgICAgICAgICAgICAgfCAgIDIwICsrKysrKysrKysrLS0tLS0tLS0t CiB0YXJnZXQtYXJtL3RyYW5zbGF0ZS5jIHwgICAgNyArKysrKystCiAzIGZpbGVzIGNoYW5nZWQs IDE5IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NwdS1hbGwu aCBiL2NwdS1hbGwuaAppbmRleCA5YjYxN2ZjLi4xNzdiY2JhIDEwMDY0NAotLS0gYS9jcHUtYWxs LmgKKysrIGIvY3B1LWFsbC5oCkBAIC03NjMsNyArNzYzLDggQEAgdm9pZCBjcHVfZHVtcF9zdGF0 aXN0aWNzIChDUFVTdGF0ZSAqZW52LCBGSUxFICpmLAogICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgKCpjcHVfZnByaW50ZikoRklMRSAqZiwgY29uc3QgY2hhciAqZm10LCAuLi4pLAogICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmxhZ3MpOwogCi12b2lkIGNwdV9hYm9ydChDUFVT dGF0ZSAqZW52LCBjb25zdCBjaGFyICpmbXQsIC4uLik7Cit2b2lkIGNwdV9hYm9ydChDUFVTdGF0 ZSAqZW52LCBjb25zdCBjaGFyICpmbXQsIC4uLikKKyAgICBfX2F0dHJpYnV0ZV9fICgoX19mb3Jt YXRfXyAoX19wcmludGZfXywgMiwgMykpKTsKIGV4dGVybiBDUFVTdGF0ZSAqZmlyc3RfY3B1Owog ZXh0ZXJuIENQVVN0YXRlICpjcHVfc2luZ2xlX2VudjsKIGV4dGVybiBpbnQgY29kZV9jb3B5X2Vu YWJsZWQ7CmRpZmYgLS1naXQgYS9jcHUtZXhlYy5jIGIvY3B1LWV4ZWMuYwppbmRleCA0OGMyYTkz Li4xMGUyZjJiIDEwMDY0NAotLS0gYS9jcHUtZXhlYy5jCisrKyBiL2NwdS1leGVjLmMKQEAgLTI3 NSw5ICsyNzUsMTAgQEAgaW50IGNwdV9leGVjKENQVVN0YXRlICplbnYxKQogI2VsaWYgZGVmaW5l ZChUQVJHRVRfQVJNKQogICAgIGlmIChlbnYxLT5oYWx0ZWQpIHsKICAgICAgICAgLyogQW4gaW50 ZXJydXB0IHdha2VzIHRoZSBDUFUgZXZlbiBpZiB0aGUgSSBhbmQgRiBDUFNSIGJpdHMgYXJlCi0g ICAgICAgICAgIHNldC4gICovCi0gICAgICAgIGlmIChlbnYxLT5pbnRlcnJ1cHRfcmVxdWVzdAot ICAgICAgICAgICAgJiAoQ1BVX0lOVEVSUlVQVF9GSVEgfCBDUFVfSU5URVJSVVBUX0hBUkQpKSB7 CisgICAgICAgICAgIHNldC4gIFdlIHVzZSBFWElUVEIgdG8gc2lsZW50bHkgd2FrZSBDUFUgd2l0 aG91dCBjYXVzaW5nIGFuCisgICAgICAgICAgIGFjdHVhbCBpbnRlcnJ1cHQuICAqLworICAgICAg ICBpZiAoZW52MS0+aW50ZXJydXB0X3JlcXVlc3QgJgorICAgICAgICAgICAgKENQVV9JTlRFUlJV UFRfRklRIHwgQ1BVX0lOVEVSUlVQVF9IQVJEIHwgQ1BVX0lOVEVSUlVQVF9FWElUVEIpKSB7CiAg ICAgICAgICAgICBlbnYxLT5oYWx0ZWQgPSAwOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAg ICAgcmV0dXJuIEVYQ1BfSEFMVEVEOwpAQCAtNDE0LDYgKzQxNSwxMiBAQCBpbnQgY3B1X2V4ZWMo Q1BVU3RhdGUgKmVudjEpCiAgICAgICAgICAgICAgICAgICAgICAgICBlbnYtPmV4Y2VwdGlvbl9p bmRleCA9IEVYQ1BfREVCVUc7CiAgICAgICAgICAgICAgICAgICAgICAgICBjcHVfbG9vcF9leGl0 KCk7CiAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGludGVy cnVwdF9yZXF1ZXN0ICYgQ1BVX0lOVEVSUlVQVF9IQUxUKSB7CisgICAgICAgICAgICAgICAgICAg ICAgICBlbnYtPmludGVycnVwdF9yZXF1ZXN0ICY9IH5DUFVfSU5URVJSVVBUX0hBTFQ7CisgICAg ICAgICAgICAgICAgICAgICAgICBlbnYtPmhhbHRlZCA9IDE7CisgICAgICAgICAgICAgICAgICAg ICAgICBlbnYtPmV4Y2VwdGlvbl9pbmRleCA9IEVYQ1BfSExUOworICAgICAgICAgICAgICAgICAg ICAgICAgY3B1X2xvb3BfZXhpdCgpOworICAgICAgICAgICAgICAgICAgICB9CiAjaWYgZGVmaW5l ZChUQVJHRVRfSTM4NikKICAgICAgICAgICAgICAgICAgICAgaWYgKChpbnRlcnJ1cHRfcmVxdWVz dCAmIENQVV9JTlRFUlJVUFRfU01JKSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgIShlbnYt PmhmbGFncyAmIEhGX1NNTV9NQVNLKSkgewpAQCAtNTExLDEyICs1MTgsNyBAQCBpbnQgY3B1X2V4 ZWMoQ1BVU3RhdGUgKmVudjEpCiAJCSAgICB9IGVsc2UgaWYgKGludGVycnVwdF9yZXF1ZXN0ICYg Q1BVX0lOVEVSUlVQVF9USU1FUikgewogCQkJLy9kb19pbnRlcnJ1cHQoMCwgMCwgMCwgMCwgMCk7 CiAJCQllbnYtPmludGVycnVwdF9yZXF1ZXN0ICY9IH5DUFVfSU5URVJSVVBUX1RJTUVSOwotCQkg ICAgfSBlbHNlIGlmIChpbnRlcnJ1cHRfcmVxdWVzdCAmIENQVV9JTlRFUlJVUFRfSEFMVCkgewot CQkJZW52LT5pbnRlcnJ1cHRfcmVxdWVzdCAmPSB+Q1BVX0lOVEVSUlVQVF9IQUxUOwotCQkJZW52 LT5oYWx0ZWQgPSAxOwotCQkJZW52LT5leGNlcHRpb25faW5kZXggPSBFWENQX0hMVDsKLQkJCWNw dV9sb29wX2V4aXQoKTsKLSAgICAgICAgICAgICAgICAgICAgfQorCQkgICAgfQogI2VsaWYgZGVm aW5lZChUQVJHRVRfQVJNKQogICAgICAgICAgICAgICAgICAgICBpZiAoaW50ZXJydXB0X3JlcXVl c3QgJiBDUFVfSU5URVJSVVBUX0ZJUQogICAgICAgICAgICAgICAgICAgICAgICAgJiYgIShlbnYt PnVuY2FjaGVkX2Nwc3IgJiBDUFNSX0YpKSB7CmRpZmYgLS1naXQgYS90YXJnZXQtYXJtL3RyYW5z bGF0ZS5jIGIvdGFyZ2V0LWFybS90cmFuc2xhdGUuYwppbmRleCBjZDFjMDRkLi44ODU2MzdjIDEw MDY0NAotLS0gYS90YXJnZXQtYXJtL3RyYW5zbGF0ZS5jCisrKyBiL3RhcmdldC1hcm0vdHJhbnNs YXRlLmMKQEAgLTE2MDUsOCArMTYwNSwxMyBAQCBzdGF0aWMgaW50IGRpc2FzX2NwMTVfaW5zbihE aXNhc0NvbnRleHQgKnMsIHVpbnQzMl90IGluc24pCiAgICAgfSBlbHNlIHsKICAgICAgICAgZ2Vu X21vdmxfVDBfcmVnKHMsIHJkKTsKICAgICAgICAgZ2VuX29wX21vdmxfY3AxNV9UMChpbnNuKTsK KyAgICAgICAgLyogTm9ybWFsbHkgd2Ugd291bGQgYWx3YXlzIGVuZCB0aGUgVEIgaGVyZSwgYnV0 IExpbnV4CisgICAgICAgICAqIGFyY2gvYXJtL21hY2gtcHhhL3NsZWVwLlMgZXhwZWN0cyB0d28g aW5zdHJ1Y3Rpb25zIGZvbGxvd2luZworICAgICAgICAgKiBhbiBNTVUgZW5hYmxlIHRvIGV4ZWN1 dGUgZnJvbSBjYWNoZS4gIEltaXRhdGUgdGhpcyBiZWhhdmlvdXIuICAqLworICAgICAgICBpZiAo IWFybV9mZWF0dXJlKGVudiwgQVJNX0ZFQVRVUkVfWFNDQUxFKSB8fAorICAgICAgICAgICAgICAg IChpbnNuICYgMHgwZmZmMGZmZikgIT0gMHgwZTAxMGYxMCkKKyAgICAgICAgICAgIGdlbl9sb29r dXBfdGIocyk7CiAgICAgfQotICAgIGdlbl9sb29rdXBfdGIocyk7CiAgICAgcmV0dXJuIDA7CiB9 CiAKLS0gCjEuNC40LjMKCg== ------=_Part_109083_18093669.1174159925320--