When start a secondary process, we got error message "EAL: pci_map_resource(): cannot mmap(11, 0x7ffff7fba000, 0x20000, 0x0): Bad file descriptor (0x7ffff7fb9000)" The secondary process link difference shared libraries, so the 0x7ffff7fba000 is used. We know the --base_virtaddr is designed for this situation for hugepages. This patch map the device resouce into address that is after hugepages when --base_virtaddr is configured. From manoj.viswanath@gmail.com Wed Nov 5 10:48:52 2014 Return-Path: Received: from mail-ob0-f170.google.com (mail-ob0-f170.google.com [209.85.214.170]) by dpdk.org (Postfix) with ESMTP id 36B862E89 for ; Wed, 5 Nov 2014 10:48:52 +0100 (CET) Received: by mail-ob0-f170.google.com with SMTP id nt9so315052obb.1 for ; Wed, 05 Nov 2014 01:58:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s 120113; h=mime-version:date:message-id:subject:from:to:content-type; bhDAPZ6qQDhsdW8LRX4pKdlFFOcb/zov1yz2YyOy+Vg=; b=lwPfCfnMSmurZHOxWkvWnOvhNv7mYJVuIHS+eZgUkt4zFsTcQUeDf8raqnQhP8WCUo AG9soPcPi/tyNGNbXKcum/rUZzjiIm98Uu0TfQgH+zVK7y2kTW1H1ajWGvrNlOJSxR2r FqApkql22smaBHBLWvfzbt+lOM6Jcz1sAFYXATPWaiClASSNkM10OKJSml/TxYPBXoFt tFartJiyVeeeExRXkmQpJsB7/QyCOBzzZd4nRDQ3enc5IrZtDkYvBq58Xk/CcQz7ckz1 /db84KgIxyzrICFdCzqyZDeUxuuON807ok3GmtPpYmnjIp1HGumRDm+ciukJ/lWs9wCb U0cQ=MIME-Version: 1.0 X-Received: by 10.60.177.41 with SMTP id cn9mr1040644oec.63.1415181493591; Wed, 05 Nov 2014 01:58:13 -0800 (PST) Received: by 10.202.232.66 with HTTP; Wed, 5 Nov 2014 01:58:13 -0800 (PST) Date: Wed, 5 Nov 2014 15:28:13 +0530 Message-ID: From: Manoj Viswanath To: dev@dpdk.org Content-Type: multipart/mixed; boundary7d7bd75f263805d80507199e76 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: [dpdk-dev] Ports not detected by IGB_UIO in DPDK 1.7.1 in QEMU_KVM environment X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Nov 2014 09:48:52 -0000 --047d7bd75f263805d80507199e76 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi, I have a DPDK application running on QEMU-KVM environment using DPDK 1.6.0. I am trying to port the same to DPDK version 1.7.1. I am using Virt-manager GUI to assign e1000 emulated port to the VM. This works fine in DPDK 1.6.0. The device is identified by IGB_UIO and initialized by my application as expected. However in case of DPDK 1.7.1, the emulated e1000 devices do not seem to be recognized. Following is my analysis: 1. The API pci_get_uio_dev() is returning ERROR. This is called from pci_uio_map_resource() in the flow of PCI PROBE [rte_eal_pci_probe()]. 2. Due to this, the PCI device is not getting mapped to the correct driver (EM ​ Driver​ ). 3. The reason for the error in [1] appears to be that "uio" sub-directory doesn't seem to be correctly created for interfaces assigned to this VM. 4. Upon further analysis i found that IGB_UIO probe function ["igbuio_pci_probe()"] is not getting triggered indicating the port has *not been assigned* to the IGB_UIO. Kindly refer to the attachments:- - "Output of sys-bus-pci-devices" - indicating "uio" subdirectory not created for PCI devices in case of DPDK 1.7.1 - "Output of lspci -v" - indicating device not bound to driver in case of DPDK 1.7.1 - IGB_UIO init log snippet - indicating PCI devices not detected and initialized by IGB_UIO in case of DPDK 1.7.1 - CONFIG file used for DPDK compilation Not sure what has changed between 1.6.0 and 1.7.1 which is impacting this. Could someone throw light in this regard as to what i may be missing ? Thanks in advance. Regards, Manoj --047d7bd75f263805d80507199e76 Content-Type: text/plain; charset=US-ASCII; name="IGB_UIO INIT Logs.txt" Content-Disposition: attachment; filename="IGB_UIO INIT Logs.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i24idzgt1 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KW0FdIElHQiBV SU8gSU5JVCBMT0dTIC0gVk0gcnVubmluZyBEUERLIDEuNi4wDQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk9jdCAyMCAwNToxNDozMSBsb2NhbGhvc3Qg a2VybmVsOiBVc2UgTVNJWCBpbnRlcnJ1cHQgYnkgZGVmYXVsdA0KT2N0IDIwIDA1OjE0OjMxIGxv Y2FsaG9zdCBrZXJuZWw6IFVzZSBNU0lYIGludGVycnVwdCBieSBkZWZhdWx0DQoNCk9jdCAyMCAw NToxNDozMSBsb2NhbGhvc3Qga2VybmVsOiBpZ2JfdWlvIDAwMDA6MDA6MDQuMDogc2V0dGluZyBs YXRlbmN5IHRpbWVyIHRvDQogNjQNCk9jdCAyMCAwNToxNDozMSBsb2NhbGhvc3Qga2VybmVsOiBm YWlsIHRvIGVuYWJsZSBwY2kgbXNpeCwgb3Igbm90IGVub3VnaCBtc2l4IGVuDQp0cmllcw0KT2N0 IDIwIDA1OjE0OjMxIGxvY2FsaG9zdCBrZXJuZWw6IGZhaWwgdG8gZW5hYmxlIHBjaSBtc2l4LCBv ciBub3QgZW5vdWdoIG1zaXggZW4NCnRyaWVzDQpPY3QgMjAgMDU6MTQ6MzEgbG9jYWxob3N0IGtl cm5lbDogdWlvIGRldmljZSByZWdpc3RlcmVkIHdpdGggaXJxIGIJLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLT4gUENJIGRldmljZSBib3VuZCB0byBkcml2ZXINCk9jdCAyMCAw NToxNDozMSBsb2NhbGhvc3Qga2VybmVsOiB1aW8gZGV2aWNlIHJlZ2lzdGVyZWQgd2l0aCBpcnEg Yg0KDQpPY3QgMjAgMDU6MTQ6MzEgbG9jYWxob3N0IGtlcm5lbDogaWdiX3VpbyAwMDAwOjAwOjA4 LjA6IHNldHRpbmcgbGF0ZW5jeSB0aW1lciB0bw0KIDY0DQpPY3QgMjAgMDU6MTQ6MzEgbG9jYWxo b3N0IGtlcm5lbDogZmFpbCB0byBlbmFibGUgcGNpIG1zaXgsIG9yIG5vdCBlbm91Z2ggbXNpeCBl bg0KdHJpZXMNCk9jdCAyMCAwNToxNDozMSBsb2NhbGhvc3Qga2VybmVsOiBmYWlsIHRvIGVuYWJs ZSBwY2kgbXNpeCwgb3Igbm90IGVub3VnaCBtc2l4IGVuDQp0cmllcw0KT2N0IDIwIDA1OjE0OjMx IGxvY2FsaG9zdCBrZXJuZWw6IHVpbyBkZXZpY2UgcmVnaXN0ZXJlZCB3aXRoIGlycSBiCS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+IFBDSSBkZXZpY2UgYm91bmQgdG8gZHJp dmVyDQpPY3QgMjAgMDU6MTQ6MzEgbG9jYWxob3N0IGtlcm5lbDogdWlvIGRldmljZSByZWdpc3Rl cmVkIHdpdGggaXJxIGINCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KW0JdIElHQiBVSU8gSU5JVCBMT0dTIC0gVk0gcnVubmluZyBEUERLIDEuNy4xDQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk9jdCAyMCAw NToxMDo0MCBsb2NhbGhvc3Qga2VybmVsOiBpZ2JfdWlvOiBVc2UgTVNJWCBpbnRlcnJ1cHQgYnkg ZGVmYXVsdA0KT2N0IDIwIDA1OjEwOjQwIGxvY2FsaG9zdCBrZXJuZWw6IGlnYl91aW86IFVzZSBN U0lYIGludGVycnVwdCBieSBkZWZhdWx0DQo9PT09PT4gTm8gb3V0cHV0IGZvciBQQ0kgaW5pdGlh bGl6YXRpb24gYnkgSUdCX1VJTyA--047d7bd75f263805d80507199e76 Content-Type: text/plain; charset=US-ASCII; name="Output of lspci -v.txt" Content-Disposition: attachment; filename="Output of lspci -v.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i24idzh62 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KW1ZNLTIgcnVubmluZyBEUERLIDEuNi4wXQ0KLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KMDA6MDguMCBFdGhlcm5ldCBjb250cm9sbGVyOiBJbnRl bCBDb3Jwb3JhdGlvbiA4MjU0MEVNIEdpZ2FiaXQgRXRoZXJuZXQgQ29udHJvbGwNCmVyIChyZXYg MDMpDQogICAgU3Vic3lzdGVtOiBSZWQgSGF0LCBJbmMgRGV2aWNlIDExMDANCiAgICBGbGFnczog YnVzIG1hc3RlciwgZmFzdCBkZXZzZWwsIGxhdGVuY3kgMCwgSVJRIDExDQogICAgTWVtb3J5IGF0 IGYyMGEwMDAwICgzMi1iaXQsIG5vbi1wcmVmZXRjaGFibGUpIFtzaXplPTEyOEtdDQogICAgSS9P IHBvcnRzIGF0IGMxNDAgW3NpemU9NjRdDQogICAgRXhwYW5zaW9uIFJPTSBhdCBmMjBjMDAwMCBb ZGlzYWJsZWRdIFtzaXplPTEyOEtdDQogICAgS2VybmVsIGRyaXZlciBpbiB1c2U6IGlnYl91aW89 PT09PT09PT09PT09PT09PT4gRHJpdmVyIGJpbmRpbmcgc3VjY2VzZnVsbA0KICAgIEtlcm5lbCBt b2R1bGVzOiBpZ2JfdWlvCT09PT09PT09PT09PT09PT09PT4gRHJpdmVyIGJpbmRpbmcgc3VjY2Vz ZnVsbA0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpbVk0tMSBydW5uaW5nIERQREsgMS43 LjFdDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQowMDowNC4wIEV0aGVybmV0IGNvbnRyb2xs ZXI6IEludGVsIENvcnBvcmF0aW9uIDgyNTQwRU0gR2lnYWJpdCBFdGhlcm5ldCBDb250cm9sbA0K ZXIgKHJldiAwMykNCiAgICBTdWJzeXN0ZW06IFJlZCBIYXQsIEluYyBEZXZpY2UgMTEwMA0KICAg IEZsYWdzOiBmYXN0IGRldnNlbCwgSVJRIDExDQogICAgTWVtb3J5IGF0IGYyMDQwMDAwICgzMi1i aXQsIG5vbi1wcmVmZXRjaGFibGUpIFtzaXplPTEyOEtdDQogICAgSS9PIHBvcnRzIGF0IGMwODAg W3NpemU9NjRdDQogICAgRXhwYW5zaW9uIFJPTSBhdCBmMjA2MDAwMCBbZGlzYWJsZWRdIFtzaXpl PTEyOEtdDQo9PT0+IE1pc3NpbmcgZHJpdmVyIGJpbmRpbmcgaW5mbw0KDQo--047d7bd75f263805d80507199e76 Content-Type: text/plain; charset=US-ASCII; name="Output of sys-bus-pci-devices.txt" Content-Disposition: attachment; filename="Output of sys-bus-pci-devices.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i24idzh93 DQpAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEANCkAgT24gVk0tMSBydW5uaW5nIERQREsg MS43LjEgQA0KQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBADQoNCmJhc2gtNC4yIyBsc3Bj aSB8IGdyZXAgODI1NDBFTQ0KMDA6MDQuMCBFdGhlcm5ldCBjb250cm9sbGVyOiBJbnRlbCBDb3Jw b3JhdGlvbiA4MjU0MEVNIEdpZ2FiaXQgRXRoZXJuZXQgQ29udHJvbGxlciAocmV2IDAzKQ0KMDA6 MDUuMCBFdGhlcm5ldCBjb250cm9sbGVyOiBJbnRlbCBDb3Jwb3JhdGlvbiA4MjU0MEVNIEdpZ2Fi aXQgRXRoZXJuZXQgQ29udHJvbGxlciAocmV2IDAzKQ0KDQojI1NZUy1CVVMNCmJhc2gtNC4yIyBs cyAvc3lzL2J1cy9wY2kvZGV2aWNlcy8gICAgICAgICAgICAgICANCjAwMDA6MDA6MDAuMCAgMDAw MDowMDowMS4yICAwMDAwOjAwOjAzLjAgIDAwMDA6MDA6MDYuMA0KMDAwMDowMDowMS4wICAwMDAw OjAwOjAxLjMgIDAwMDA6MDA6MDQuMCAgMDAwMDowMDowNy4wDQowMDAwOjAwOjAxLjEgIDAwMDA6 MDA6MDIuMCAgMDAwMDowMDowNS4wICAwMDAwOjAwOjA4LjANCg0KYmFzaC00LjIjIGxzIC9zeXMv YnVzL3BjaS9kZXZpY2VzLzAwMDBcOjAwXDowNC4wLw0KYnJva2VuX3Bhcml0eV9zdGF0dXMgICAg ICBsb2NhbF9jcHVsaXN0ICAgICAgICAgICAgIHJlc291cmNlMA0KY2xhc3MgICAgICAgICAgICAg ICAgICAgICBsb2NhbF9jcHVzICAgICAgICAgICAgICAgIHJlc291cmNlMQ0KY29uZmlnICAgICAg ICAgICAgICAgICAgICBtb2RhbGlhcyAgICAgICAgICAgICAgICAgIHJvbQ0KY29uc2lzdGVudF9k bWFfbWFza19iaXRzICBtc2lfYnVzICAgICAgICAgICAgICAgICAgIHN1YnN5c3RlbS8NCmRldmlj ZSAgICAgICAgICAgICAgICAgICAgbnVtYV9ub2RlICAgICAgICAgICAgICAgICBzdWJzeXN0ZW1f ZGV2aWNlDQpkbWFfbWFza19iaXRzICAgICAgICAgICAgIHBvd2VyLyAgICAgICAgICAgICAgICAg ICAgc3Vic3lzdGVtX3ZlbmRvcg0KZW5hYmxlICAgICAgICAgICAgICAgICAgICByZW1vdmUgICAg ICAgICAgICAgICAgICAgIHVldmVudA0KZmlybXdhcmVfbm9kZS8gICAgICAgICAgICByZXNjYW4g ICAgICAgICAgICAgICAgICAgIHZlbmRvcg0KaXJxICAgICAgICAgICAgICAgICAgICAgICByZXNv dXJjZSAgICAgICAgICAgICAgICAgIA0KYmFzaC00LjIjIGxzIC9zeXMvYnVzL3BjaS9kZXZpY2Vz LzAwMDBcOjAwXDowNC4wL3VpbyAgICANCmxzOiBjYW5ub3QgYWNjZXNzIC9zeXMvYnVzL3BjaS9k ZXZpY2VzLzAwMDA6MDA6MDQuMC91aW86IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkJPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT4gTm8gZGlyZWN0b3J5DQoNCmJhc2gtNC4yIyBscyAvc3lz L2J1cy9wY2kvZGV2aWNlcy8wMDAwXDowMFw6MDUuMC8NCmJyb2tlbl9wYXJpdHlfc3RhdHVzICAg ICAgbG9jYWxfY3B1bGlzdCAgICAgICAgICAgICByZXNvdXJjZTANCmNsYXNzICAgICAgICAgICAg ICAgICAgICAgbG9jYWxfY3B1cyAgICAgICAgICAgICAgICByZXNvdXJjZTENCmNvbmZpZyAgICAg ICAgICAgICAgICAgICAgbW9kYWxpYXMgICAgICAgICAgICAgICAgICByb20NCmNvbnNpc3RlbnRf ZG1hX21hc2tfYml0cyAgbXNpX2J1cyAgICAgICAgICAgICAgICAgICBzdWJzeXN0ZW0vDQpkZXZp Y2UgICAgICAgICAgICAgICAgICAgIG51bWFfbm9kZSAgICAgICAgICAgICAgICAgc3Vic3lzdGVt X2RldmljZQ0KZG1hX21hc2tfYml0cyAgICAgICAgICAgICBwb3dlci8gICAgICAgICAgICAgICAg ICAgIHN1YnN5c3RlbV92ZW5kb3INCmVuYWJsZSAgICAgICAgICAgICAgICAgICAgcmVtb3ZlICAg ICAgICAgICAgICAgICAgICB1ZXZlbnQNCmZpcm13YXJlX25vZGUvICAgICAgICAgICAgcmVzY2Fu ICAgICAgICAgICAgICAgICAgICB2ZW5kb3INCmlycSAgICAgICAgICAgICAgICAgICAgICAgcmVz b3VyY2UgICAgICAgICAgICAgICAgICANCmJhc2gtNC4yIyBscyAvc3lzL2J1cy9wY2kvZGV2aWNl cy8wMDAwXDowMFw6MDUuMC91aW8gICAgDQpsczogY2Fubm90IGFjY2VzcyAvc3lzL2J1cy9wY2kv ZGV2aWNlcy8wMDAwOjAwOjA1LjAvdWlvOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0+IE5vIGRpcmVjdG9yeQ0KYmFzaC00LjIjDQoNCiMjU1lT LURFVklDRVMNCmJhc2gtNC4yIyBscyAvc3lzL2RldmljZXMvcGNpMDAwMFw6MDAvDQowMDAwOjAw OjAwLjAvICAwMDAwOjAwOjAxLjMvICAwMDAwOjAwOjA1LjAvICBmaXJtd2FyZV9ub2RlLyANCjAw MDA6MDA6MDEuMC8gIDAwMDA6MDA6MDIuMC8gIDAwMDA6MDA6MDYuMC8gIHBjaV9idXMvICAgICAg IA0KMDAwMDowMDowMS4xLyAgMDAwMDowMDowMy4wLyAgMDAwMDowMDowNy4wLyAgcG93ZXIvICAg ICAgICAgDQowMDAwOjAwOjAxLjIvICAwMDAwOjAwOjA0LjAvICAwMDAwOjAwOjA4LjAvICB1ZXZl bnQgICAgICAgICANCmJhc2gtNC4yIyBscyAvc3lzL2RldmljZXMvcGNpMDAwMFw6MDAvMDAwMDow MDowNC4wL3Vpbw0KbHM6IGNhbm5vdCBhY2Nlc3MgL3N5cy9kZXZpY2VzL3BjaTAwMDA6MDAvMDAw MDowMDowNC4wL3VpbzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQk9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PiBObyBkaXJlY3RvcnkNCmJhc2gtNC4yIyBscyAvc3lzL2RldmljZXMvcGNp MDAwMFw6MDAvMDAwMDowMDowNC4wLyAgIA0KYnJva2VuX3Bhcml0eV9zdGF0dXMJICBlbmFibGUJ IG1zaV9idXMgICAgcmVzb3VyY2UwCSAgICAgIHVldmVudA0KY2xhc3MJCQkgIGZpcm13YXJlX25v ZGUgIG51bWFfbm9kZSAgcmVzb3VyY2UxCSAgICAgIHZlbmRvcg0KY29uZmlnCQkJICBpcnEJCSBw b3dlcgkgICAgcm9tDQpjb25zaXN0ZW50X2RtYV9tYXNrX2JpdHMgIGxvY2FsX2NwdWxpc3QgIHJl bW92ZSAgICAgc3Vic3lzdGVtDQpkZXZpY2UJCQkgIGxvY2FsX2NwdXMJIHJlc2NhbiAgICAgc3Vi c3lzdGVtX2RldmljZQ0KZG1hX21hc2tfYml0cwkJICBtb2RhbGlhcwkgcmVzb3VyY2UgICBzdWJz eXN0ZW1fdmVuZG9yDQpiYXNoLTQuMiMgDQoNCmJhc2gtNC4yIyBscyAvc3lzL2RldmljZXMvcGNp MDAwMFw6MDAvMDAwMDowMDowNS4wL3Vpbw0KbHM6IGNhbm5vdCBhY2Nlc3MgL3N5cy9kZXZpY2Vz L3BjaTAwMDA6MDAvMDAwMDowMDowNS4wL3VpbzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQk9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PiBObyBkaXJlY3RvcnkNCg0KYmFzaC00LjIjIGxz IC9zeXMvZGV2aWNlcy9wY2kwMDAwXDowMC8wMDAwOjAwOjA1LjAvDQpicm9rZW5fcGFyaXR5X3N0 YXR1cwkgIGVuYWJsZQkgbXNpX2J1cyAgICByZXNvdXJjZTAJICAgICAgdWV2ZW50DQpjbGFzcwkJ CSAgZmlybXdhcmVfbm9kZSAgbnVtYV9ub2RlICByZXNvdXJjZTEJICAgICAgdmVuZG9yDQpjb25m aWcJCQkgIGlycQkJIHBvd2VyCSAgICByb20NCmNvbnNpc3RlbnRfZG1hX21hc2tfYml0cyAgbG9j YWxfY3B1bGlzdCAgcmVtb3ZlICAgICBzdWJzeXN0ZW0NCmRldmljZQkJCSAgbG9jYWxfY3B1cwkg cmVzY2FuICAgICBzdWJzeXN0ZW1fZGV2aWNlDQpkbWFfbWFza19iaXRzCQkgIG1vZGFsaWFzCSBy ZXNvdXJjZSAgIHN1YnN5c3RlbV92ZW5kb3INCg0KDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQoNCkBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQA0KQCBPbiBW TS0yIHJ1bm5pbmcgRFBESyAxLjYuMCBADQpAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAN Cg0KYmFzaC00LjIjIGxzcGNpIHwgZ3JlcCA4MjU0MEVNDQowMDowNC4wIEV0aGVybmV0IGNvbnRy b2xsZXI6IEludGVsIENvcnBvcmF0aW9uIDgyNTQwRU0gR2lnYWJpdCBFdGhlcm5ldCBDb250cm9s bGVyIChyZXYgMDMpDQowMDowOC4wIEV0aGVybmV0IGNvbnRyb2xsZXI6IEludGVsIENvcnBvcmF0 aW9uIDgyNTQwRU0gR2lnYWJpdCBFdGhlcm5ldCBDb250cm9sbGVyIChyZXYgMDMpDQoNCiMjU1lT LUJVUw0KYmFzaC00LjIjIC9zeXMvYnVzL3BjaS9kZXZpY2VzLzAwMDBcOjAwXDowNC4wL3Vpby91 aW8wLwkJCT09PT09PT09PT09PT09PT09PT09PT09PT09PT0+IERpcmVjdG9yeSBjcmVhdGVkIGNv cnJlY3RseQ0KZGV2aWNlLyAgICBtYXBzLyAgICAgIHBvcnRpby8gICAgcG93ZXIvICAgICBzdWJz eXN0ZW0vIA0KYmFzaC00LjIjIGxzIC9zeXMvYnVzL3BjaS9kZXZpY2VzLzAwMDBcOjAwXDowNC4w L3Vpby91aW8wLw0KZGV2ICBkZXZpY2UgIGV2ZW50ICBtYXBzICBuYW1lCXBvcnRpbwlwb3dlciAg c3Vic3lzdGVtICB1ZXZlbnQgIHZlcnNpb24NCg0KYmFzaC00LjIjIGxzIC9zeXMvYnVzL3BjaS9k ZXZpY2VzLzAwMDBcOjAwXDowOC4wL3Vpby91aW8xLwkJPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT4gRGlyZWN0b3J5IGNyZWF0ZWQgY29ycmVjdGx5DQpkZXYgIGRldmljZSAgZXZlbnQgIG1h cHMgIG5hbWUJcG9ydGlvCXBvd2VyICBzdWJzeXN0ZW0gIHVldmVudCAgdmVyc2lvbg0KDQoNCiMj U1lTLURFVklDRVMNCmJhc2gtNC4yIyBscyAvc3lzL2RldmljZXMvcGNpMDAwMDowMC8wMDAwOjAw OjA0LjAvdWlvL3VpbzANCmRldiAgZGV2aWNlICBldmVudCAgbWFwcyAgbmFtZQlwb3J0aW8JcG93 ZXIgIHN1YnN5c3RlbSAgdWV2ZW50ICB2ZXJzaW9uDQpiYXNoLTQuMiMgDQoNCg=--047d7bd75f263805d80507199e76--