From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:56256) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QTYgf-0003Vc-HB for qemu-devel@nongnu.org; Mon, 06 Jun 2011 08:13:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QTYgc-00087E-Ky for qemu-devel@nongnu.org; Mon, 06 Jun 2011 08:13:40 -0400 Received: from mail-qw0-f45.google.com ([209.85.216.45]:41090) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QTYgb-00086A-UA for qemu-devel@nongnu.org; Mon, 06 Jun 2011 08:13:38 -0400 Received: by qwj8 with SMTP id 8so1969828qwj.4 for ; Mon, 06 Jun 2011 05:13:36 -0700 (PDT) MIME-Version: 1.0 Sender: xvilka@gmail.com Date: Mon, 6 Jun 2011 16:13:36 +0400 Message-ID: From: =?UTF-8?B?0JDQvdGC0L7QvSDQmtC+0YfQutC+0LI=?= Content-Type: multipart/mixed; boundary=001485f33b0e70e83d04a50a0807 Subject: [Qemu-devel] [PATCH] Initial support for loading bootrom for OMAP3 from file (with "-bios" option) Reply-To: anton.kochkov@gmail.com List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel Cc: Peter Maydell , linaro-toolchain@linaro.org --001485f33b0e70e83d04a50a0807 Content-Type: text/plain; charset=UTF-8 Initial support for loading bootrom for OMAP3 from file (with "-bios" option) Signed-off-by: Anton Kochkov This patch adds support of loading bootrom for OMAP3 platform from file, for booting. Here is example, how-to use qemu with it: qemu-system-arm -M n900 -m 256 -L . -bios bootrom.bin -mtdblock bootloader.raw -d in_asm,cpu,exec -nographic Right now it only placed in GPMC memory region. But need to be implemented with independend OCM (On-Chip Memory) controller. Because, when bootrom call GPMC init function (there is place, where it filling by zeroes, so rewrite bootrom, in memory). This need to be fixed. Right now it can be easy skipped with gdb. Here is use case https://www.droid-developers.org/wiki/QEMU Best regards, Anton Kochkov. --001485f33b0e70e83d04a50a0807 Content-Type: application/octet-stream; name="0001-Initial-support-for-loading-bootrom-for-OMAP3-from-f.patch" Content-Disposition: attachment; filename="0001-Initial-support-for-loading-bootrom-for-OMAP3-from-f.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_goldlore0 RnJvbSA5YmQzM2MyZDU2NTU5NDZkNTM5NmMwYWIzOWZiODQ1MzhkMWE0Y2E1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbiBLb2Noa292IDx4dmlsa2FAZ21haWwuY29tPgpEYXRl OiBTYXQsIDE5IEZlYiAyMDExIDA5OjMyOjA0ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gSW5pdGlh bCBzdXBwb3J0IGZvciBsb2FkaW5nIGJvb3Ryb20gZm9yIE9NQVAzIGZyb20gZmlsZSAod2l0aCAi LWJpb3MiCiBvcHRpb24pCgoKU2lnbmVkLW9mZi1ieTogQW50b24gS29jaGtvdiA8eHZpbGthQGdt YWlsLmNvbT4KLS0tCiBody9iZWFnbGUuYyAgICAgICB8ICAgIDIgKy0KIGh3L25zZXJpZXMuYyAg ICAgIHwgICAgMiArLQogaHcvb21hcC5oICAgICAgICAgfCAgICA1ICsrKy0KIGh3L29tYXAzLmMg ICAgICAgIHwgICAxOCArKysrKysrKysrLS0tCiBody9vbWFwM19ib290LmMgICB8ICAgNzAgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGh3L29t YXBfZ3BtYy5jICAgIHwgICAgMSArCiBody9vbWFwX2dwdGltZXIuYyB8ICAgIDYgKysrKwogNyBm aWxlcyBjaGFuZ2VkLCA5NyBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2h3L2JlYWdsZS5jIGIvaHcvYmVhZ2xlLmMKaW5kZXggZTg1OTExOC4uMzYwZTkzYiAxMDA2 NDQKLS0tIGEvaHcvYmVhZ2xlLmMKKysrIGIvaHcvYmVhZ2xlLmMKQEAgLTY5LDcgKzY5LDcgQEAg c3RhdGljIHZvaWQgYmVhZ2xlX2NvbW1vbl9pbml0KHJhbV9hZGRyX3QgcmFtX3NpemUsCiAjZXJy b3IgTUFYX1NFUklBTF9QT1JUUyBtdXN0IGJlIGF0IGxlYXN0IDEhCiAjZW5kaWYKICAgICBzLT5j cHUgPSBvbWFwM19tcHVfaW5pdChjcHVfbW9kZWwsIDEsIHJhbV9zaXplLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsIHNlcmlhbF9oZHNbMF0sIE5VTEwpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsIHNlcmlhbF9oZHNbMF0sIE5VTEwsIDAp OwogCiAgICAgcy0+bmFuZCA9IG5hbmRfaW5pdChOQU5EX01GUl9NSUNST04sIDB4YmEsIGRtdGQg PyBkbXRkLT5iZHJ2IDogTlVMTCk7CiAgICAgbmFuZF9zZXRwaW5zKHMtPm5hbmQsIDAsIDAsIDAs IDEsIDApOyAvKiBubyB3cml0ZS1wcm90ZWN0ICovCmRpZmYgLS1naXQgYS9ody9uc2VyaWVzLmMg Yi9ody9uc2VyaWVzLmMKaW5kZXggN2I2YTlkYi4uYjg0ZDIzOCAxMDA2NDQKLS0tIGEvaHcvbnNl cmllcy5jCisrKyBiL2h3L25zZXJpZXMuYwpAQCAtMjUyOSw3ICsyNTI5LDcgQEAgc3RhdGljIHZv aWQgbjkwMF9pbml0KHJhbV9hZGRyX3QgcmFtX3NpemUsCiAjZW5kaWYKICAgICBzLT5jcHUgPSBv bWFwM19tcHVfaW5pdChvbWFwMzQzMCwgMSwgTjkwMF9TRFJBTV9TSVpFLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlcmlhbF9oZHNbMV0sIHNlcmlhbF9oZHNbMl0sCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VyaWFsX2hkc1swXSwgTlVMTCk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VyaWFsX2hkc1swXSwgTlVMTCwgMCk7CiAgICAgb21hcF9sY2RfcGFuZWxf YXR0YWNoKHMtPmNwdS0+ZHNzKTsKIAogICAgIHMtPnRzYzIwMDUgPSBzcGlfY3JlYXRlX2Rldmlj ZShvbWFwX21jc3BpX2J1cyhzLT5jcHUtPm1jc3BpLCAwKSwKZGlmZiAtLWdpdCBhL2h3L29tYXAu aCBiL2h3L29tYXAuaAppbmRleCBjN2ViYzhhLi5lZjdhMThhIDEwMDY0NAotLS0gYS9ody9vbWFw LmgKKysrIGIvaHcvb21hcC5oCkBAIC0xMTIxLDYgKzExMjEsNyBAQCBzdHJ1Y3Qgb21hcF9tcHVf c3RhdGVfcyB7CiAgICAgRGV2aWNlU3RhdGUgKm9tYXAzX3VzYl9vdGc7CiAgICAgRGV2aWNlU3Rh dGUgKm9tYXAzX3VzYl9ob3N0OwogICAgIHJhbV9hZGRyX3QgYm9vdHJvbV9iYXNlOworCWludCBz ZWN1cml0eV9tb2RlOwogfTsKIAogLyogb21hcDEuYyAqLwpAQCAtMTEzNywxMCArMTEzOCwxMiBA QCBzdHJ1Y3Qgb21hcF9tcHVfc3RhdGVfcyAqb21hcDNfbXB1X2luaXQoaW50IG1vZGVsLCBpbnQg ZW11bGF0ZV9ib290cm9tLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IENoYXJEcml2ZXJTdGF0ZSAqY2hyX3VhcnQxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENoYXJEcml2ZXJTdGF0ZSAqY2hyX3VhcnQyLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJEcml2ZXJTdGF0ZSAqY2hyX3VhcnQzLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYXJEcml2ZXJTdGF0ZSAqY2hy X3VhcnQ0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDaGFyRHJp dmVyU3RhdGUgKmNocl91YXJ0NCwgaW50IHNlY3VyaXR5X21vZGUpOwogCiAvKiBvbWFwM19ib290 LmMgKi8KK3ZvaWQgb21hcDNfYm9vdF9yb21fYWxsb2NhdGUoc3RydWN0IG9tYXBfbXB1X3N0YXRl X3MgKnMsIGludCBoaWdoKTsKIHZvaWQgb21hcDNfYm9vdF9yb21faW5pdChzdHJ1Y3Qgb21hcF9t cHVfc3RhdGVfcyAqcyk7Cit2b2lkIG9tYXAzX2Jvb3Rfcm9tX3J1bihzdHJ1Y3Qgb21hcF9tcHVf c3RhdGVfcyAqcyk7CiB2b2lkIG9tYXAzX2Jvb3Rfcm9tX2VtdShzdHJ1Y3Qgb21hcF9tcHVfc3Rh dGVfcyAqcyk7CiAKICMgaWYgVEFSR0VUX1BIWVNfQUREUl9CSVRTID09IDMyCmRpZmYgLS1naXQg YS9ody9vbWFwMy5jIGIvaHcvb21hcDMuYwppbmRleCBkZjJkNDVhLi41OTE4ODA2IDEwMDY0NAot LS0gYS9ody9vbWFwMy5jCisrKyBiL2h3L29tYXAzLmMKQEAgLTMzODcsNiArMzM4Nyw3IEBAIHN0 cnVjdCBvbWFwM19zY21fcyB7CiAJdWludDggbWVtX3drdXBbMTAyNF07ICAgIC8qMHg0ODAwIDI2 MDAqLwogCXVpbnQ4IHBhZGNvbmZzX3drdXBbOTZdOyAvKjB4NDgwMCAyYTAwKi8KIAl1aW50MzIg Z2VuZXJhbF93a3VwWzhdOyAgLyoweDQ4MDAgMmE2MCovCisJaW50IHNlY3VyaXR5X21vZGU7CiB9 OwogCiAjZGVmaW5lIFBBRENPTkZTX1ZBTFVFKHdha2V1cDAsd2FrZXVwMSxvZmZtb2RlMCxvZmZt b2RlMSwgXApAQCAtMzU0OCwxMCArMzU0OSwxNyBAQCBzdGF0aWMgdm9pZCBvbWFwM19zY21fcmVz ZXQoc3RydWN0IG9tYXAzX3NjbV9zICpzKQogICAgIG1lbXNldChzLT5nZW5lcmFsLCAwLCBzaXpl b2Yocy0+Z2VuZXJhbCkpOwogCXMtPmdlbmVyYWxbMHgwMV0gPSAweDQwMDAwMDA7ICAvKiBDT05U Uk9MX0RFVkNPTkZfMCAqLwogCXMtPmdlbmVyYWxbMHgxY10gPSAweDE7ICAgICAgICAvKiAweDQ4 MDAyMmUwPz8gKi8KKyAgICBpZiAocy0+c2VjdXJpdHlfbW9kZSA9PSAwKSB7CiAgICAgcy0+Z2Vu ZXJhbFsweDIwXSA9IDB4MzBmOyAgICAgIC8qIENPTlRST0xfU1RBVFVTOgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKiAtIGRldmljZSB0eXBlICA9IEdQIERldmljZQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAtIHN5c19ib290OjYgICA9IG9zY2ls bGF0b3IgYnlwYXNzIG1vZGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICog LSBzeXNfYm9vdDowLTUgPSBOQU5ELCBVU0IsIFVBUlQzLCBNTUMxKi8KKwl9IGVsc2UgeworCQlz LT5nZW5lcmFsWzB4MjBdID0gMHhmOyAgICAgIC8qIENPTlRST0xfU1RBVFVTOgorCQkJCQkJCQkJ CSogLSBkZXZpY2UgdHlwZSAgPSBHUCBEZXZpY2UKKwkJCQkJCQkJCQkqIC0gc3lzX2Jvb3Q6NiAg ID0gb3NjaWxsYXRvciBieXBhc3MgbW9kZQorCQkJCQkJCQkJCSogLSBzeXNfYm9vdDowLTUgPSBO QU5ELCBVU0IsIFVBUlQzLCBNTUMxKi8KKwl9CiAJcy0+Z2VuZXJhbFsweDc1XSA9IDB4N2ZjMDsg ICAgIC8qIENPTlRST0xfUFJPR19JTzAgKi8KIAlzLT5nZW5lcmFsWzB4NzZdID0gMHhhYTsgICAg ICAgLyogQ09OVFJPTF9QUk9HX0lPMSAqLwogCXMtPmdlbmVyYWxbMHg3Y10gPSAweDI3MDA7ICAg ICAvKiBDT05UUk9MX1NEUkNfU0hBUklORyAqLwpAQCAtMzY5MSw2ICszNjk5LDcgQEAgc3RhdGlj IHN0cnVjdCBvbWFwM19zY21fcyAqb21hcDNfc2NtX2luaXQoc3RydWN0IG9tYXBfdGFyZ2V0X2Fn ZW50X3MgKnRhLAogICAgIHN0cnVjdCBvbWFwM19zY21fcyAqcyA9IChzdHJ1Y3Qgb21hcDNfc2Nt X3MgKikgcWVtdV9tYWxsb2N6KHNpemVvZigqcykpOwogCiAgICAgcy0+bXB1ID0gbXB1OworCXMt PnNlY3VyaXR5X21vZGUgPSBtcHUtPnNlY3VyaXR5X21vZGU7CiAKICAgICBvbWFwM19zY21fcmVz ZXQocyk7CiAKQEAgLTQwNDksOCArNDA1OCw5IEBAIHN0YXRpYyB2b2lkIG9tYXAzX3Jlc2V0KHZv aWQgKm9wYXF1ZSkKICAgICBvbWFwX3N5bmN0aW1lcl9yZXNldChzLT5zeW5jdGltZXIpOwogICAg IG9tYXBfc2RyY19yZXNldChzLT5zZHJjKTsKICAgICBvbWFwX2dwbWNfcmVzZXQocy0+Z3BtYyk7 Ci0KLSAgICBvbWFwM19ib290X3JvbV9lbXUocyk7CisJb21hcDNfYm9vdF9yb21fYWxsb2NhdGUo cywgMCk7CisJaWYgKGJpb3NfbmFtZSA9PSBOVUxMKSBvbWFwM19ib290X3JvbV9lbXUocyk7CisJ ZWxzZSBvbWFwM19ib290X3JvbV9ydW4ocyk7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1h X2lycV9tYXAgb21hcDNfZG1hX2lycV9tYXBbXSA9IHsKQEAgLTQwNzEsNyArNDA4MSw3IEBAIHN0 cnVjdCBvbWFwX21wdV9zdGF0ZV9zICpvbWFwM19tcHVfaW5pdChpbnQgbW9kZWwsIGludCBlbXVs YXRlX2Jvb3Ryb20sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hh ckRyaXZlclN0YXRlICpjaHJfdWFydDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQ2hhckRyaXZlclN0YXRlICpjaHJfdWFydDIsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ2hhckRyaXZlclN0YXRlICpjaHJfdWFydDMsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhckRyaXZlclN0YXRlICpjaHJfdWFy dDQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2hhckRyaXZlclN0 YXRlICpjaHJfdWFydDQsIGludCBzZWN1cml0eV9tb2RlKQogewogICAgIHN0cnVjdCBvbWFwX21w dV9zdGF0ZV9zICpzID0gcWVtdV9tYWxsb2N6KHNpemVvZigqcykpOwogICAgIHJhbV9hZGRyX3Qg c3JhbV9iYXNlLCBxMl9iYXNlOwpAQCAtNDA4OSw2ICs0MDk5LDcgQEAgc3RydWN0IG9tYXBfbXB1 X3N0YXRlX3MgKm9tYXAzX21wdV9pbml0KGludCBtb2RlbCwgaW50IGVtdWxhdGVfYm9vdHJvbSwK ICAgICB9CiAgICAgcy0+c2RyYW1fc2l6ZSA9IHNkcmFtX3NpemU7CiAgICAgcy0+c3JhbV9zaXpl ID0gT01BUDNYWFhfU1JBTV9TSVpFOworCXMtPnNlY3VyaXR5X21vZGUgPSBzZWN1cml0eV9tb2Rl OwogCiAgICAgLyogQ2xvY2tzICovCiAgICAgb21hcF9jbGtfaW5pdChzKTsKQEAgLTQxMDksNyAr NDEyMCw2IEBAIHN0cnVjdCBvbWFwX21wdV9zdGF0ZV9zICpvbWFwM19tcHVfaW5pdChpbnQgbW9k ZWwsIGludCBlbXVsYXRlX2Jvb3Ryb20sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y3B1X2lycVtBUk1fUElDX0NQVV9GSVFdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9tYXBfZmluZGNsayhzLCAib21hcDNfbXB1X2ludGNfZmNsayIpLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9tYXBfZmluZGNsayhzLCAib21hcDNfbXB1X2ludGNfaWNsayIpKTsK LQogICAgIGZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKICAgICAgICAgZHJxc1tpXSA9IHMtPmly cVtvbWFwM19kbWFfaXJxX21hcFtpXS5paF1bb21hcDNfZG1hX2lycV9tYXBbaV0uaW50cl07CiAg ICAgfQpkaWZmIC0tZ2l0IGEvaHcvb21hcDNfYm9vdC5jIGIvaHcvb21hcDNfYm9vdC5jCmluZGV4 IDY1NWE0NTYuLjA0YTM1YzkgMTAwNjQ0Ci0tLSBhL2h3L29tYXAzX2Jvb3QuYworKysgYi9ody9v bWFwM19ib290LmMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJhcm0tbWlzYy5oIgogI2lu Y2x1ZGUgIm9tYXAuaCIKICNpbmNsdWRlICJzeXNlbXUuaCIKKyNpbmNsdWRlICJsb2FkZXIuaCIK ICNpbmNsdWRlICJxZW11LWNoYXIuaCIKICNpbmNsdWRlICJmbGFzaC5oIgogI2luY2x1ZGUgImJs b2NrZGV2LmgiCkBAIC00MCw2ICs0MSw4IEBACiAjZGVmaW5lIFRSQUNFKC4uLikKICNlbmRpZgog CisjZGVmaW5lIEJPT1RST01fRklMRU5BTUUgImJvb3Ryb20uYmluIgorCiAvKiBsaXN0IG9mIHN1 cHBvcnRlZCBOQU5EIGRldmljZXMgYWNjb3JkaW5nIHRvIHRoZSBPTUFQMzR4eCBUUk0gKi8KIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgewogICAgIHVpbnQ4X3QgaWQ7CkBAIC04NzEsMTEgKzg3NCw2MiBA QCBzdGF0aWMgaW50IG9tYXAzX29uZW5hbmRfYm9vdChzdHJ1Y3Qgb21hcF9tcHVfc3RhdGVfcyAq cykKICAgICByZXR1cm4gcmVzdWx0OwogfQogCit2b2lkIG9tYXAzX2Jvb3Rfcm9tX2FsbG9jYXRl KHN0cnVjdCBvbWFwX21wdV9zdGF0ZV9zICpzLCBpbnQgaGlnaCkKK3sKKwljaGFyKiBmaWxlbmFt ZTsKKwljb25zdCBjaGFyKiBib290cm9tX25hbWU7CisJdWludDhfdCAqYm9vdF9yb20gPSBOVUxM OworCisJaW50IGJvb3Ryb21fc2l6ZSwgcmV0OworCQorCWJvb3Ryb21fbmFtZSA9IGJpb3NfbmFt ZTsKKwlpZiAoYm9vdHJvbV9uYW1lID09IE5VTEwpIGJvb3Ryb21fbmFtZSA9IEJPT1RST01fRklM RU5BTUU7CisJCisJZmlsZW5hbWUgPSBxZW11X2ZpbmRfZmlsZShRRU1VX0ZJTEVfVFlQRV9CSU9T LCBib290cm9tX25hbWUpOworCWlmIChmaWxlbmFtZSkgeworCQlib290cm9tX3NpemUgPSBnZXRf aW1hZ2Vfc2l6ZShmaWxlbmFtZSk7CisJfSBlbHNlIHsKKwkJYm9vdHJvbV9zaXplID0gLTE7CisJ fQorCWlmIChib290cm9tX3NpemUgPD0gMCB8fCAoYm9vdHJvbV9zaXplICUgMzI3NjgpICE9IDAp IHsKKwkJZnByaW50ZihzdGRlcnIsICJxZW11OiBjb3VsZCBub3QgbG9hZCBBUk0gQm9vdCBST00g JyVzJ1xuIiwgYm9vdHJvbV9uYW1lKTsKKwlleGl0KDEpOworCX0KKwkKKwlpZiAoaGlnaCA9PSAx KSB7CisJCXMtPmJvb3Ryb21fYmFzZSA9IHFlbXVfcmFtX2FsbG9jKE5VTEwsICJvbWFwM19ib290 X3JvbSIsIGJvb3Ryb21fc2l6ZSk7CisJCXJldCA9IHJvbV9hZGRfZmlsZV9maXhlZChib290cm9t X25hbWUsIE9NQVAzX1ExX0JBU0UgKyAweDE0MDAwLCAtMSk7CisJCWlmIChyZXQgIT0gMCkgewor CQkJZnByaW50ZihzdGRlcnIsICJxZW11OiBjb3VsZCBub3QgbG9hZCBBUk0gQm9vdCBST00gJyVz J1xuIiwgYm9vdHJvbV9uYW1lKTsKKwkJCWV4aXQoMSk7CisJCX0KKwkJY3B1X3JlZ2lzdGVyX3Bo eXNpY2FsX21lbW9yeShPTUFQM19RMV9CQVNFICsgMHgxNDAwMCwKKwkJCQkJCQkJCQkJCQlib290 cm9tX3NpemUsCisJCQkJCQkJCQkJCQkJcy0+Ym9vdHJvbV9iYXNlIHwgSU9fTUVNX1JPTSk7CisJ fSBlbHNlIHsKKwkJYm9vdF9yb20gPSBxZW11X21hbGxvY3ooYm9vdHJvbV9zaXplKTsKKwkJcm9t X2NvcHkoYm9vdF9yb20sIE9NQVAzX1ExX0JBU0UgKyAweDE0MDAwLCBib290cm9tX3NpemUpOwor CQlzLT5ib290cm9tX2Jhc2UgPSBxZW11X3JhbV9hbGxvYyhOVUxMLCAib21hcDNfbG93X3JvbSIs IGJvb3Ryb21fc2l6ZSk7CisJCWNwdV9yZWdpc3Rlcl9waHlzaWNhbF9tZW1vcnkoT01BUF9DUzBf QkFTRSArIDB4MTQwMDAsIGJvb3Ryb21fc2l6ZSwgcy0+Ym9vdHJvbV9iYXNlIHwgSU9fTUVNX1JP TSk7CisJCWNwdV9waHlzaWNhbF9tZW1vcnlfd3JpdGVfcm9tKE9NQVBfQ1MwX0JBU0UgKyAweDE0 MDAwLCBib290X3JvbSwgYm9vdHJvbV9zaXplKTsKKwkJY3B1X3BoeXNpY2FsX21lbW9yeV9yZWFk KE9NQVBfQ1MwX0JBU0UgKyAweDE0MDAwLCBib290X3JvbSwgYm9vdHJvbV9zaXplKTsKKwkJZnJl ZShib290X3JvbSk7CisJfQorCWNwdV9waHlzaWNhbF9tZW1vcnlfd3JpdGUoT01BUDNfU1JBTV9C QVNFICsgMHhmZmM4LAorCQkJCQkJCQkJCQkJb21hcDNfc3JhbV92ZWN0b3JzLAorCQkJCQkJCQkJ CQkJc2l6ZW9mKG9tYXAzX3NyYW1fdmVjdG9ycykpOworfQorCiB2b2lkIG9tYXAzX2Jvb3Rfcm9t X2luaXQoc3RydWN0IG9tYXBfbXB1X3N0YXRlX3MgKnMpCiB7CiAgICAgY29uc3QgdWludDhfdCBy b21fdmVyc2lvbls0XSA9IHsgMHgwMCwgMHgxNCwgMHgwMCwgMHgwMCB9OyAvKiB2LiAxNC4wMCAq LwogCisJaW50IGJvb3Rfcm9tX2Zyb21fZmlsZSA9IDA7CisKKwlpZiAoYmlvc19uYW1lICE9IE5V TEwpIGJvb3Rfcm9tX2Zyb21fZmlsZSA9IDE7CisKICAgICBpZiAoIXMtPmJvb3Ryb21fYmFzZSkg eworICAgICAgICBpZiAoIWJvb3Rfcm9tX2Zyb21fZmlsZSkgewogICAgICAgICBzLT5ib290cm9t X2Jhc2UgPSBxZW11X3JhbV9hbGxvYyhOVUxMLCAib21hcDNfYm9vdF9yb20iLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPTUFQM1hYWF9CT09UUk9NX1NJWkUpOwog ICAgICAgICBjcHVfcmVnaXN0ZXJfcGh5c2ljYWxfbWVtb3J5KE9NQVAzX1ExX0JBU0UgKyAweDE0 MDAwLApAQCAtODkxLDYgKzk0NSwyMiBAQCB2b2lkIG9tYXAzX2Jvb3Rfcm9tX2luaXQoc3RydWN0 IG9tYXBfbXB1X3N0YXRlX3MgKnMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b21hcDNfc3JhbV92ZWN0b3JzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp emVvZihvbWFwM19zcmFtX3ZlY3RvcnMpKTsKICAgICB9CisJCWVsc2UgeworCQkJb21hcDNfYm9v dF9yb21fYWxsb2NhdGUocywgMSk7CQorCQl9CisgICAgfQorfQorCit2b2lkIG9tYXAzX2Jvb3Rf cm9tX3J1bihzdHJ1Y3Qgb21hcF9tcHVfc3RhdGVfcyAqcykKK3sKKyAgICAvKiBvbmx5IHJ1biB0 aGUgYm9vdCByb20gaWYgaXQgd2FzIGluaXRpYWxpemVkIGVhcmxpZXIgKi8KKyAgICBpZiAoIXMt PmJvb3Ryb21fYmFzZSkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisJLyogbW92ZSBQQyB0 byB0aGUgYm9vdCBST00gcmVzZXQgdmVjdG9yICovCisgICAgcy0+ZW52LT5yZWdzWzE1XSA9IDB4 NDAwMTQwMDA7CisJcHJpbnRmKCJ1c2luZyBvbWFwM19ib290X3JvbV9ydW4gZnVuY3Rpb25cbiIp OwogfQogCiB2b2lkIG9tYXAzX2Jvb3Rfcm9tX2VtdShzdHJ1Y3Qgb21hcF9tcHVfc3RhdGVfcyAq cykKZGlmZiAtLWdpdCBhL2h3L29tYXBfZ3BtYy5jIGIvaHcvb21hcF9ncG1jLmMKaW5kZXggYzVl NTc2NC4uODNhOWQwNSAxMDA2NDQKLS0tIGEvaHcvb21hcF9ncG1jLmMKKysrIGIvaHcvb21hcF9n cG1jLmMKQEAgLTQxOSw2ICs0MTksNyBAQCBzdGF0aWMgdm9pZCBvbWFwX2dwbWNfY3NfbWFwKHN0 cnVjdCBvbWFwX2dwbWNfcyAqcywgaW50IGNzKQogICAgIHVpbnQzMl90IG1hc2sgPSAoZi0+Y29u ZmlnWzZdID4+IDgpICYgMHhmOwogICAgIHVpbnQzMl90IGJhc2UgPSBmLT5jb25maWdbNl0gJiAw eDNmOwogICAgIHVpbnQzMl90IHNpemU7CisKICAgICAvKiBUT0RPOiBjaGVjayBmb3Igb3Zlcmxh cHBpbmcgcmVnaW9ucyBhbmQgcmVwb3J0IGFjY2VzcyBlcnJvcnMgKi8KICAgICBpZiAobWFzayAh PSAweDggJiYgbWFzayAhPSAweGMgJiYgbWFzayAhPSAweGUgJiYgbWFzayAhPSAweGYKICAgICAg ICAgICYmICEocy0+YWNjZXB0XzI1NiAmJiAhbWFzaykpIHsKZGlmZiAtLWdpdCBhL2h3L29tYXBf Z3B0aW1lci5jIGIvaHcvb21hcF9ncHRpbWVyLmMKaW5kZXggYmNlZWVkNC4uM2M3NDVkYSAxMDA2 NDQKLS0tIGEvaHcvb21hcF9ncHRpbWVyLmMKKysrIGIvaHcvb21hcF9ncHRpbWVyLmMKQEAgLTQy NSwxMSArNDI1LDE3IEBAIHN0YXRpYyB2b2lkIG9tYXBfZ3BfdGltZXJfd3JpdGUodm9pZCAqb3Bh cXVlLCB0YXJnZXRfcGh5c19hZGRyX3QgYWRkciwKICAgICAgICAgcy0+YXIgPSAodmFsdWUgPj4g MSkgJiAxOwogICAgICAgICBzLT5zdCA9ICh2YWx1ZSA+PiAwKSAmIDE7CiAgICAgICAgIGlmIChz LT5pbm91dCAmJiBzLT50cmlnZ2VyICE9IGdwdF90cmlnZ2VyX25vbmUpCisJCXsKKyAgICAgICAg ICAgIHByaW50ZigiZ3B0X3RyaWdnZXJfbm9uZTogJWRcbiIsIGdwdF90cmlnZ2VyX25vbmUpOwog ICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczogR1AgdGltZXIgcGluIG11c3QgYmUgYW4g b3V0cHV0ICIKICAgICAgICAgICAgICAgICAgICAgImZvciB0aGlzIHRyaWdnZXIgbW9kZVxuIiwg X19GVU5DVElPTl9fKTsKKyAgICAgICAgfQogICAgICAgICBpZiAoIXMtPmlub3V0ICYmIHMtPmNh cHR1cmUgIT0gZ3B0X2NhcHR1cmVfbm9uZSkKKwkJeworICAgICAgICAgICAgcHJpbnRmKCJncHRf Y2FwdHVyZV9ub25lOiAlZFxuIiwgZ3B0X2NhcHR1cmVfbm9uZSk7CiAgICAgICAgICAgICBmcHJp bnRmKHN0ZGVyciwgIiVzOiBHUCB0aW1lciBwaW4gbXVzdCBiZSBhbiBpbnB1dCAiCiAgICAgICAg ICAgICAgICAgICAgICJmb3IgdGhpcyBjYXB0dXJlIG1vZGVcbiIsIF9fRlVOQ1RJT05fXyk7CisJ CX0KICAgICAgICAgaWYgKHMtPnRyaWdnZXIgPT0gZ3B0X3RyaWdnZXJfbm9uZSkKICAgICAgICAg ICAgIG9tYXBfZ3BfdGltZXJfb3V0KHMsIHMtPnNjcHdtKTsKICAgICAgICAgLyogVE9ETzogbWFr ZSBzdXJlIHRoaXMgZG9lc24ndCBvdmVyZmxvdyAzMi1iaXRzICovCi0tIAoxLjcuNC5yYzMKCg== --001485f33b0e70e83d04a50a0807--