From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27245 invoked by alias); 25 Jan 2008 04:16:54 -0000 Received: (qmail 27233 invoked by uid 22791); 25 Jan 2008 04:16:52 -0000 X-Spam-Check-By: sourceware.org Received: from bay0-omc1-s22.bay0.hotmail.com (HELO bay0-omc1-s22.bay0.hotmail.com) (65.54.246.94) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 25 Jan 2008 04:16:17 +0000 Received: from BAY110-W38 ([65.54.229.138]) by bay0-omc1-s22.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 24 Jan 2008 20:16:15 -0800 Message-ID: Content-Type: multipart/mixed; boundary="_51f362c2-fdac-4fdd-bede-7abd8b286636_" From: wangcui To: Laurie Gellatly , Grant Edwards , Date: Fri, 25 Jan 2008 04:16:00 -0000 MIME-Version: 1.0 X-IsSubscribed: yes Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Subject: RE: [ECOS] Re: Half Duplex RS485 X-SW-Source: 2008-01/txt/msg00159.txt.bz2 --_51f362c2-fdac-4fdd-bede-7abd8b286636_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: 8bit Content-length: 4662 Here is the patch, shows all modifications in my working folder. Acutally, I did more than FIFO stuff, I also made it support 2 diffent 16x5x chips on my target(different register-offset-step), and something else. BTW, I prefer to solve half-duplex problem on hardware level, which avoid lots of effort on software level. > From: laurie.gellatly@netic.com > To: iucgnaw@msn.com; grante@visi.com; ecos-discuss@sources.redhat.com > Subject: RE: [ECOS] Re: Half Duplex RS485 > Date: Fri, 25 Jan 2008 12:59:54 +1100 > > Hi Wang, > I'd be interested to see what you had to modify to make the FIFO work. > > The eCos source does not know about the fractional divider. > Did you enable fix that as well? > > ...Laurie:{) > > -----Original Message----- > From: wangcui [mailto:iucgnaw@msn.com] > Sent: Friday, 25 January 2008 12:33 PM > To: Laurie Gellatly; Grant Edwards; ecos-discuss@sources.redhat.com > Subject: RE: [ECOS] Re: Half Duplex RS485 > > > > Just FYI, the LPC2XXX's UART0 is not fully functional. So when the 16x5x > serial driver check FIFO(in serial_config_port()), it will fail, thus FIFO > is disabled for UART0. But UART1 works fine. > > To resolve it, I have to modified 16x5x driver code, force enable FIFO for > UART0 and UART1. > >> From: laurie.gellatly@netic.com >> To: grante@visi.com; ecos-discuss@sources.redhat.com >> Date: Thu, 24 Jan 2008 08:12:17 +1100 >> Subject: RE: [ECOS] Re: Half Duplex RS485 >> >> Wang/Grant, thanks for the replies. >> >>>> My project has RS485 half duplex driven by UART0 of an >>>> LPC2112. At present I've modified pc_serial_start_xmit and >>>> pc_serial_stop_xmit to change a pin state so that the same >>>> wires can be used for transmit and receive. >>>> >>>> This does not see to work when the FIFO is enabled. >>> >>>Then you probably did it wrong. :) >>> >>>I imagine that RTS is shutting off too soon. The problem is >>>that pc_serial_stop_xmit() is called when the driver has no >>>more data to send _to_ the UART. That's not when you need to >>>shut off RTS. You need to shut off RTS when the UART is done >>>sending data and both the FIFO and shift register are empty. >>> >>>You're probably shutting off RTS while the UART still has data >>>in the tx FIFO and the tx shift register. >> Funny thing is that it appears that the first part of the >> transmission is lost. >> >>>> Has anyone else done RS485 half duplex? >>> >>>Many, many times. >>> >>>> Did you modify these routines or write your own? >>> >>>I usually pick a UART that supports half-duplex operation, and >>>then just enabled that feature in the UART. [I use a custom >>>eCos serial driver that supports quite a few more advanced UART >>>features than the standard driver (e.g. flow control, >>>half-duplex, inter-byte timeouts, 9-bit modes, FIFO control, >>>etc.). >>> >>>If you don't have a proper UART, you need to enable the tx >>>shift register empty interrupt and use that to trigger code >>>that de-asserts RTS. If you're using a broken UART that >>>doesn't have a tx shift register empty interrupt, then you'll >>>have to poll for the tx shift register empty status. If you're >>>using a really broken UART that doesn't have a _working_ >>>shift-register empty status[1], then you may have to start a >>>timer that will wake you up at the point in time where RTS >>>needs to be changed. >>> >>>> Did you get the FIFO to work? >>> >>>When there was one, yes. >>> >>> >>>[1] There are broken UARTs (including a few PC chipsets) whose >>> shift-register empty bit gets set _before_ the stop bit has >>> been sent. In that case, you may need to use some sort of >>> time-delay to wait until after the stop bit has been sent >>> to toggle RTS. On a properly implimented RS-485 bus, there >>> should be pull-up and pull-down resisters so that the bus >>> idles in the mark state (same value as a stop bit), but to >>> be on the safe side you should leave the bus driver on >>> until after the stop bit has been sent. >> >> Grant, do you know if the LPC series have 'broken' UARTS? >> Specifically LPC2212 and LPC2103? >> U0TSR looks promising as an indication of when the bits >> 'have left the building' - is it accurate or do I >> need to add a time delay? >> >> Really appreciate the help. ...Laurie:{) >> >> -- >> Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos >> and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss >> > > _________________________________________________________________ > ÌìÁ¹ÁË£¬ÌíÒÂÁË£¬ÐĶ¯ÁË£¬¡°Æß¼þ¡±ÁË > http://get.live.cn > _________________________________________________________________ MSN ÖÐÎÄÍø£¬×îÐÂʱÉÐÉú»î×ÊѶ£¬°×Áì¾Û¼¯ÃÅ»§¡£ http://cn.msn.com --_51f362c2-fdac-4fdd-bede-7abd8b286636_ Content-Type: text/plain Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="16x5x.patch" Content-length: 14604 ZGlmZiAtciAtdTUgLU4gLXggQ1ZTIC9jeWdkcml2ZS96L1NoYXJlL1Jlc291 cmNlL2VDb3MvYW5vbmN2cy9lY29zL3BhY2thZ2VzL2RldnMvc2VyaWFsL2dl bmVyaWMvMTZ4NXgvY3VycmVudC9zcmMvc2VyXzE2eDV4LmMgL2N5Z2RyaXZl L2Qvd29yay9kZXYvZWNvcy9wYWNrYWdlcy9kZXZzL3NlcmlhbC9nZW5lcmlj LzE2eDV4L2N1cnJlbnQvc3JjL3Nlcl8xNng1eC5jDQotLS0gL2N5Z2RyaXZl L3ovU2hhcmUvUmVzb3VyY2UvZUNvcy9hbm9uY3ZzL2Vjb3MvcGFja2FnZXMv ZGV2cy9zZXJpYWwvZ2VuZXJpYy8xNng1eC9jdXJyZW50L3NyYy9zZXJfMTZ4 NXguYwkyMDA3LTA2LTIyIDE5OjQxOjQ5LjAwMDAwMDAwMCArMDgwMA0KKysr IC9jeWdkcml2ZS9kL3dvcmsvZGV2L2Vjb3MvcGFja2FnZXMvZGV2cy9zZXJp YWwvZ2VuZXJpYy8xNng1eC9jdXJyZW50L3NyYy9zZXJfMTZ4NXguYwkyMDA4 LTAxLTI1IDExOjQ3OjQ2LjIzMjU2MjcwMCArMDgwMA0KQEAgLTYyLDE1ICs2 MiwxOCBAQA0KICNpbmNsdWRlIDxjeWcvaGFsL2hhbF9pby5oPg0KIA0KIC8v IE9ubHkgY29tcGlsZSBkcml2ZXIgaWYgYW4gaW5saW5lIGZpbGUgd2l0aCBk cml2ZXIgZGV0YWlscyB3YXMgc2VsZWN0ZWQuDQogI2lmZGVmIENZR0RBVF9J T19TRVJJQUxfR0VORVJJQ18xNlg1WF9JTkwNCiANCi0jaWZuZGVmIENZR1BS SV9JT19TRVJJQUxfR0VORVJJQ18xNlg1WF9TVEVQDQotI2RlZmluZSBDWUdQ UklfSU9fU0VSSUFMX0dFTkVSSUNfMTZYNVhfU1RFUCAxDQotI2VuZGlmDQot DQotI2RlZmluZSBTRVJfUkVHKF94XykgKChfeF8pKkNZR1BSSV9JT19TRVJJ QUxfR0VORVJJQ18xNlg1WF9TVEVQKQ0KKy8vaGVyZSB3ZSB1c2UgYSAnc3Rl cCcgdmFyaWFibGUgdG8gaW5kaWNhdGUgdGhlIGFkZHJlc3MgZGVsdGEgYmV0 d2VlbiBhIDE2WDVYIGNoYW5uZWwncyByZWdpc3RlcnMNCisvL3VzZXIgc2hv dWxkIG5ldyBhIHZhcmlhYmxlIG5hbWVkICdzdGVwJyBhbmQgc2V0IGFwcHJv cHJpYXRlIHZhbHVlIGJlZm9yZSBhY2Nlc3MgMTZYNVgncyByZWdpc3Rlci4N CisvL0ZvciBleGFtcGxlOg0KKy8vew0KKy8vICBpbnQgc3RlcCA9IHNlcl9j aGFuLT5zdGVwOw0KKy8vICBIQUxfV1JJVEVfVUlOVDgoYmFzZStSRUdfdGhy LCBjKTsNCisvL30NCisjZGVmaW5lIFNFUl9SRUcoX3hfKSAoKF94Xykqc3Rl cCkNCiANCiAvLyBSZWNlaXZlIGNvbnRyb2wgUmVnaXN0ZXJzDQogI2RlZmlu ZSBSRUdfcmhyIFNFUl9SRUcoMCkgICAgLy8gUmVjZWl2ZSBob2xkaW5nIHJl Z2lzdGVyDQogI2RlZmluZSBSRUdfaXNyIFNFUl9SRUcoMikgICAgLy8gSW50 ZXJydXB0IHN0YXR1cyByZWdpc3Rlcg0KICNkZWZpbmUgUkVHX2xzciBTRVJf UkVHKDUpICAgIC8vIExpbmUgc3RhdHVzIHJlZ2lzdGVyDQpAQCAtMTgwLDEw ICsxODMsMTUgQEANCiAvLyBzZWxlY19iYXVkW10gbXVzdCBiZSBkZWZpbmUg YnkgdGhlIGNsaWVudA0KIA0KIHR5cGVkZWYgc3RydWN0IHBjX3NlcmlhbF9p bmZvIHsNCiAgICAgY3lnX2FkZHJ3b3JkX3QgYmFzZTsNCiAgICAgaW50ICAg ICAgICAgICAgaW50X251bTsNCisgICAgaW50ICAgICAgICAgICAgaW50X3By aW87DQorICAgIGludCAgICAgICAgICAgIHN0ZXA7DQorICAgIGludCAgICAg ICAgICAgIGJhdWRfbnVtOw0KKyAgICBpbnQgICAgICAgICAgICpzZWxlY3Rf YmF1ZDsNCisgICAgaW50ICAgICAgICAgICgqYmF1ZF9nZW5lcmF0b3IpKHVu c2lnbmVkIGludCBiYXVkKTsNCiAgICAgY3lnX2ludGVycnVwdCAgc2VyaWFs X2ludGVycnVwdDsNCiAgICAgY3lnX2hhbmRsZV90ICAgc2VyaWFsX2ludGVy cnVwdF9oYW5kbGU7DQogI2lmZGVmIENZR1BLR19JT19TRVJJQUxfR0VORVJJ Q18xNlg1WF9GSUZPDQogICAgIGVudW0gew0KICAgICAgICAgc05vbmUgPSAw LA0KQEAgLTIzMywxMiArMjQxLDE3IEBADQogc2VyaWFsX2NvbmZpZ19wb3J0 KHNlcmlhbF9jaGFubmVsICpjaGFuLCANCiAgICAgICAgICAgICAgICAgICAg Y3lnX3NlcmlhbF9pbmZvX3QgKm5ld19jb25maWcsIGJvb2wgaW5pdCkNCiB7 DQogICAgIHBjX3NlcmlhbF9pbmZvICpzZXJfY2hhbiA9IChwY19zZXJpYWxf aW5mbyAqKWNoYW4tPmRldl9wcml2Ow0KICAgICBjeWdfYWRkcndvcmRfdCBi YXNlID0gc2VyX2NoYW4tPmJhc2U7DQotICAgIHVuc2lnbmVkIHNob3J0IGJh dWRfZGl2aXNvciA9IHNlbGVjdF9iYXVkW25ld19jb25maWctPmJhdWRdOw0K KyAgICBpbnQgc3RlcCA9IHNlcl9jaGFuLT5zdGVwOw0KKyAgICB1bnNpZ25l ZCBzaG9ydCBiYXVkX2Rpdmlzb3I7DQogICAgIHVuc2lnbmVkIGNoYXIgX2xj ciwgX2llcjsNCisgICAgDQorICAgIGlmIChuZXdfY29uZmlnLT5iYXVkID49 IHNlcl9jaGFuLT5iYXVkX251bSkgcmV0dXJuIGZhbHNlOyAgLy8gSW52YWxp ZCBjb25maWd1cmF0aW9uDQorDQorICAgIGJhdWRfZGl2aXNvciA9IHNlcl9j aGFuLT5zZWxlY3RfYmF1ZFtuZXdfY29uZmlnLT5iYXVkXTsNCiAgICAgaWYg KGJhdWRfZGl2aXNvciA9PSAwKSByZXR1cm4gZmFsc2U7ICAvLyBJbnZhbGlk IGNvbmZpZ3VyYXRpb24NCiANCiAgICAgLy8gRGlzYWJsZSBwb3J0IGludGVy cnVwdHMgd2hpbGUgY2hhbmdpbmcgaGFyZHdhcmUNCiAgICAgSEFMX1JFQURf VUlOVDgoYmFzZStSRUdfaWVyLCBfaWVyKTsNCiAgICAgSEFMX1dSSVRFX1VJ TlQ4KGJhc2UrUkVHX2llciwgMCk7DQpAQCAtMjUzLDIxICsyNjYsMjIgQEAN CiAgICAgaWYgKGluaXQpIHsNCiAjaWZkZWYgQ1lHUEtHX0lPX1NFUklBTF9H RU5FUklDXzE2WDVYX0ZJRk8NCiAgICAgICAgIHVuc2lnbmVkIGNoYXIgX2Zj cl90aHJlc2g7DQogICAgICAgICBjeWdfdWludDggYjsNCiANCi0gICAgICAg IC8qIEZpcnN0LCBmaW5kIG91dCB3aGF0IGtpbmQgb2YgZGV2aWNlIGl0IGlz LiAqLw0KLSAgICAgICAgc2VyX2NoYW4tPmRldmljZVR5cGUgPSBzTm9uZTsN Ci0gICAgICAgIEhBTF9XUklURV9VSU5UOChiYXNlK1JFR19tY3IsIE1DUl9M T09QKTsgLy8gZW5hYmxlIGxvb3BiYWNrIG1vZGUNCi0gICAgICAgIEhBTF9S RUFEX1VJTlQ4KGJhc2UrUkVHX21zciwgYik7ICAgICAgICAgDQotICAgICAg ICBpZiAoMCA9PSAoYiAmIDB4RjApKSB7ICAgLy8gc2VlIGlmIE1TUiBoYWQg Q0QsIFJJLCBEU1Igb3IgQ1RTIHNldA0KLSAgICAgICAgICAgIEhBTF9XUklU RV9VSU5UOChiYXNlK1JFR19tY3IsIE1DUl9MT09QfE1DUl9EVFJ8TUNSX1JU Uyk7DQotICAgICAgICAgICAgSEFMX1JFQURfVUlOVDgoYmFzZStSRUdfbXNy LCBiKTsNCi0gICAgICAgICAgICBpZiAoMHhGMCAhPSAoYiAmIDB4RjApKSAg Ly8gY2hlY2sgdGhhdCBhbGwgb2YgQ0QsUkksRFNSIGFuZCBDVFMgc2V0DQot ICAgICAgICAgICAgICAgIHNlcl9jaGFuLT5kZXZpY2VUeXBlID0gczgyNTA7 DQorICAgICAgICBpZiAoc2VyX2NoYW4tPmRldmljZVR5cGUgPT0gc05vbmUp IHsNCisgICAgICAgICAgICAvKiBGaXJzdCwgZmluZCBvdXQgd2hhdCBraW5k IG9mIGRldmljZSBpdCBpcy4gKi8NCisgICAgICAgICAgICBIQUxfV1JJVEVf VUlOVDgoYmFzZStSRUdfbWNyLCBNQ1JfTE9PUCk7IC8vIGVuYWJsZSBsb29w YmFjayBtb2RlDQorICAgICAgICAgICAgSEFMX1JFQURfVUlOVDgoYmFzZStS RUdfbXNyLCBiKTsgICAgICAgICANCisgICAgICAgICAgICBpZiAoMCA9PSAo YiAmIDB4RjApKSB7ICAgLy8gc2VlIGlmIE1TUiBoYWQgQ0QsIFJJLCBEU1Ig b3IgQ1RTIHNldA0KKyAgICAgICAgICAgICAgICBIQUxfV1JJVEVfVUlOVDgo YmFzZStSRUdfbWNyLCBNQ1JfTE9PUHxNQ1JfRFRSfE1DUl9SVFMpOw0KKyAg ICAgICAgICAgICAgICBIQUxfUkVBRF9VSU5UOChiYXNlK1JFR19tc3IsIGIp Ow0KKyAgICAgICAgICAgICAgICBpZiAoMHhGMCAhPSAoYiAmIDB4RjApKSAg Ly8gY2hlY2sgdGhhdCBhbGwgb2YgQ0QsUkksRFNSIGFuZCBDVFMgc2V0DQor ICAgICAgICAgICAgICAgICAgICBzZXJfY2hhbi0+ZGV2aWNlVHlwZSA9IHM4 MjUwOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAgICBIQUxfV1JJVEVf VUlOVDgoYmFzZStSRUdfbWNyLCAwKTsgLy8gZGlzYWJsZSBsb29wYmFjayBt b2RlDQogICAgICAgICB9DQotICAgICAgICBIQUxfV1JJVEVfVUlOVDgoYmFz ZStSRUdfbWNyLCAwKTsgLy8gZGlzYWJsZSBsb29wYmFjayBtb2RlDQogDQog ICAgICAgICBpZiAoc2VyX2NoYW4tPmRldmljZVR5cGUgPT0gczgyNTApIHsN CiAgICAgICAgICAgICAvLyBDaGVjayBmb3IgYSBzY3JhdGNoIHJlZ2lzdGVy OyBzY3JhdGNoIHJlZ2lzdGVyIA0KICAgICAgICAgICAgIC8vIGluZGljYXRl cyAxNjQ1MCBvciBhYm92ZS4NCiAgICAgICAgICAgICBIQUxfV1JJVEVfVUlO VDgoYmFzZStSRUdfc2NyLCAweDU1KTsNCkBAIC0zMDgsMTAgKzMyMiwxMSBA QA0KICAgICAgICAgICAgICAgQ1lHTlVNX0lPX1NFUklBTF9HRU5FUklDXzE2 WDVYX0ZJRk9fVFhfU0laRTsNCiAgICAgICAgICAgICAvLyBFbmFibGUgYW5k IGNsZWFyIEZJRk8NCiAgICAgICAgICAgICBIQUxfV1JJVEVfVUlOVDgoYmFz ZStSRUdfZmNyLCBfZmNyX3RocmVzaCk7IA0KICAgICAgICAgfQ0KICAgICAg ICAgZWxzZSB7DQorICAgICAgICAgICAgQ1lHX0ZBSUwoIkNhbid0IGVuYWJs ZSBGSUZPIG9uIHRoaXMgZGV2aWNlLiIpOw0KICAgICAgICAgICAgIHNlcl9j aGFuLT50eF9maWZvX3NpemUgPSAxOw0KICAgICAgICAgICAgIEhBTF9XUklU RV9VSU5UOChiYXNlK1JFR19mY3IsIDApOyAvLyBtYWtlIHN1cmUgaXQncyBk aXNhYmxlZA0KICAgICAgICAgfQ0KIA0KICAgICAgICAgc2VyX2NoYW4tPnR4 X2ZpZm9fYXZhaWwgPSBzZXJfY2hhbi0+dHhfZmlmb19zaXplOw0KQEAgLTM0 OCwzNiArMzYzLDM5IEBADQogDQogI2lmZGVmIENZR19JT19TRVJJQUxfR0VO RVJJQ18xNlg1WF9CQVVEX0dFTkVSQVRPUg0KICAgICAvLyBGaWxsIGluIGJh dWQgcmF0ZSB0YWJsZSAtIHVzZWQgZm9yIHBsYXRmb3JtcyB3aGVyZSB0aGlz IGNhbm5vdA0KICAgICAvLyBiZSBkZXRlcm1pbmVkIHN0YXRpY2FsbHkNCiAg ICAgaW50IGJhdWRfaWR4LCBiYXVkX3ZhbDsNCi0gICAgaWYgKHNlbGVjdF9i YXVkWzBdID09IDk5OTkpIHsNCisNCisgICAgaWYgKHNlcl9jaGFuLT5zZWxl Y3RfYmF1ZFswXSA9PSA5OTk5KSB7DQorICAgICAgICBDWUdfQVNTRVJUQyhz ZXJfY2hhbi0+YmF1ZF9nZW5lcmF0b3IgIT0gTlVMTCk7DQorDQogICAgICAg ICAvLyBUYWJsZSBub3QgeWV0IGluaXRpYWxpemVkDQogICAgICAgICAvLyBB c3N1bWVzIHRoYXQgJ3NlbGVjdF9iYXVkJyBsb29rcyBsaWtlIHRoaXM6DQog ICAgICAgICAvLyAgIHN0YXRpYyBpbnQgc2VsZWN0X2JhdWRbXSA9IHsNCiAg ICAgICAgIC8vICAgICAgIDk5OTksICAtLSBtYXJrZXINCiAgICAgICAgIC8v ICAgICAgIDUwLCAgICAtLSBmaXJzdCBiYXVkIHJhdGUNCiAgICAgICAgIC8v ICAgICAgIDExMCwgICAtLSBzZWNvbmQgYmF1ZCByYXRlDQogICAgICAgICAv LyBldGMuDQotICAgICAgICBmb3IgKGJhdWRfaWR4ID0gMTsgIGJhdWRfaWR4 IDwgc2l6ZW9mKHNlbGVjdF9iYXVkKS9zaXplb2Yoc2VsZWN0X2JhdWRbMF0p OyAgYmF1ZF9pZHgrKykgew0KLSAgICAgICAgICAgIGJhdWRfdmFsID0gQ1lH X0lPX1NFUklBTF9HRU5FUklDXzE2WDVYX0JBVURfR0VORVJBVE9SKHNlbGVj dF9iYXVkW2JhdWRfaWR4XSk7DQotICAgICAgICAgICAgc2VsZWN0X2JhdWRb YmF1ZF9pZHhdID0gYmF1ZF92YWw7DQorICAgICAgICBmb3IgKGJhdWRfaWR4 ID0gMTsgIGJhdWRfaWR4IDwgc2VyX2NoYW4tPmJhdWRfbnVtOyAgYmF1ZF9p ZHgrKykgew0KKyAgICAgICAgICAgIGJhdWRfdmFsID0gc2VyX2NoYW4tPmJh dWRfZ2VuZXJhdG9yKHNlcl9jaGFuLT5zZWxlY3RfYmF1ZFtiYXVkX2lkeF0p Ow0KKyAgICAgICAgICAgIHNlcl9jaGFuLT5zZWxlY3RfYmF1ZFtiYXVkX2lk eF0gPSBiYXVkX3ZhbDsNCiAgICAgICAgIH0NCi0gICAgICAgIHNlbGVjdF9i YXVkWzBdID0gMDsNCisgICAgICAgIHNlcl9jaGFuLT5zZWxlY3RfYmF1ZFsw XSA9IDA7DQogICAgIH0NCiAjZW5kaWYNCiANCiAjaWZkZWYgQ1lHREJHX0lP X0lOSVQNCi0gICAgZGlhZ19wcmludGYoIjE2eDV4IFNFUklBTCBpbml0IC0g ZGV2OiAleC4lZFxuIiwgDQotICAgICAgICAgICAgICAgIHNlcl9jaGFuLT5i YXNlLCBzZXJfY2hhbi0+aW50X251bSk7DQorICAgIGRpYWdfcHJpbnRmKCIx Nng1eCBTRVJJQUwgaW5pdCAtIGRldjogYmFzZT0leC5zdGVwPSVkLmludF9u dW09JWRcbiIsIA0KKyAgICAgICAgICAgICAgICBzZXJfY2hhbi0+YmFzZSwg c2VyX2NoYW4tPnN0ZXAsIHNlcl9jaGFuLT5pbnRfbnVtKTsNCiAjZW5kaWYN CiAgICAgLy8gUmVhbGx5IG9ubHkgcmVxdWlyZWQgZm9yIGludGVycnVwdCBk cml2ZW4gZGV2aWNlcw0KICAgICAoY2hhbi0+Y2FsbGJhY2tzLT5zZXJpYWxf aW5pdCkoY2hhbik7DQogDQogICAgIGlmIChjaGFuLT5vdXRfY2J1Zi5sZW4g IT0gMCkgew0KICAgICAgICAgY3lnX2Rydl9pbnRlcnJ1cHRfY3JlYXRlKHNl cl9jaGFuLT5pbnRfbnVtLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENZR19JT19TRVJJQUxfR0VORVJJQ18xNlg1WF9JTlRfUFJJT1JJ VFksDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VyX2No YW4tPmludF9wcmlvID09IC0xID8gQ1lHX0lPX1NFUklBTF9HRU5FUklDXzE2 WDVYX0lOVF9QUklPUklUWSA6IHNlcl9jaGFuLT5pbnRfcHJpbywNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3lnX2FkZHJ3b3JkX3Qp Y2hhbiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY19z ZXJpYWxfSVNSLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHBjX3NlcmlhbF9EU1IsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJnNlcl9jaGFuLT5zZXJpYWxfaW50ZXJydXB0X2hhbmRsZSwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2VyX2NoYW4tPnNl cmlhbF9pbnRlcnJ1cHQpOw0KQEAgLTQwOSwxMCArNDI3LDExIEBADQogI2lm bmRlZiBDWUdQS0dfSU9fU0VSSUFMX0dFTkVSSUNfMTZYNVhfRklGTw0KICAg ICBjeWdfdWludDggX2xzcjsNCiAjZW5kaWYNCiAgICAgcGNfc2VyaWFsX2lu Zm8gKnNlcl9jaGFuID0gKHBjX3NlcmlhbF9pbmZvICopY2hhbi0+ZGV2X3By aXY7DQogICAgIGN5Z19hZGRyd29yZF90IGJhc2UgPSBzZXJfY2hhbi0+YmFz ZTsNCisgICAgaW50IHN0ZXAgPSBzZXJfY2hhbi0+c3RlcDsNCiANCiAjaWZk ZWYgQ1lHUEtHX0lPX1NFUklBTF9HRU5FUklDXzE2WDVYX0ZJRk8NCiAgICAg aWYgKHNlcl9jaGFuLT50eF9maWZvX2F2YWlsID4gMCkgew0KICAgICAgICAg SEFMX1dSSVRFX1VJTlQ4KGJhc2UrUkVHX3RociwgYyk7DQogICAgICAgICAt LXNlcl9jaGFuLT50eF9maWZvX2F2YWlsOw0KQEAgLTQzNiwxMCArNDU1LDEx IEBADQogew0KICAgICB1bnNpZ25lZCBjaGFyIGM7DQogICAgIGN5Z191aW50 OCBfbHNyOw0KICAgICBwY19zZXJpYWxfaW5mbyAqc2VyX2NoYW4gPSAocGNf c2VyaWFsX2luZm8gKiljaGFuLT5kZXZfcHJpdjsNCiAgICAgY3lnX2FkZHJ3 b3JkX3QgYmFzZSA9IHNlcl9jaGFuLT5iYXNlOw0KKyAgICBpbnQgc3RlcCA9 IHNlcl9jaGFuLT5zdGVwOw0KIA0KICAgICAvLyBXYWl0IGZvciBjaGFyDQog ICAgIGRvIHsNCiAgICAgICAgIEhBTF9SRUFEX1VJTlQ4KGJhc2UrUkVHX2xz ciwgX2xzcik7DQogICAgIH0gd2hpbGUgKChfbHNyICYgTFNSX1JTUikgPT0g MCk7DQpAQCAtNDY5LDEwICs0ODksMTEgQEANCiAgICAgY2FzZSBDWUdfSU9f U0VUX0NPTkZJR19TRVJJQUxfSFdfUlhfRkxPV19USFJPVFRMRToNCiAgICAg ICB7DQogICAgICAgICAgIGN5Z191aW50OCBfbWNyOw0KICAgICAgICAgICBw Y19zZXJpYWxfaW5mbyAqc2VyX2NoYW4gPSAocGNfc2VyaWFsX2luZm8gKilj aGFuLT5kZXZfcHJpdjsNCiAgICAgICAgICAgY3lnX2FkZHJ3b3JkX3QgYmFz ZSA9IHNlcl9jaGFuLT5iYXNlOw0KKyAgICAgICAgICBpbnQgc3RlcCA9IHNl cl9jaGFuLT5zdGVwOw0KICAgICAgICAgICBjeWdfdWludDMyICpmID0gKGN5 Z191aW50MzIgKil4YnVmOw0KICAgICAgICAgICB1bnNpZ25lZCBjaGFyIG1h c2s9MDsNCiAgICAgICAgICAgaWYgKCAqbGVuIDwgc2l6ZW9mKCpmKSApDQog ICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCiAgICAgICAgICAgDQpA QCAtNTA5LDI2ICs1MzAsMzQgQEANCiBzdGF0aWMgdm9pZA0KIHBjX3Nlcmlh bF9zdGFydF94bWl0KHNlcmlhbF9jaGFubmVsICpjaGFuKQ0KIHsNCiAgICAg cGNfc2VyaWFsX2luZm8gKnNlcl9jaGFuID0gKHBjX3NlcmlhbF9pbmZvICop Y2hhbi0+ZGV2X3ByaXY7DQogICAgIGN5Z19hZGRyd29yZF90IGJhc2UgPSBz ZXJfY2hhbi0+YmFzZTsNCi0gICAgY3lnX3VpbnQ4IF9pZXI7DQorICAgIGlu dCBzdGVwID0gc2VyX2NoYW4tPnN0ZXA7DQorICAgIGN5Z191aW50OCBfaWVy LCBfbHNyOw0KICAgICANCiAgICAgSEFMX1JFQURfVUlOVDgoYmFzZStSRUdf aWVyLCBfaWVyKTsNCiAgICAgX2llciB8PSBJRVJfWE1UOyAgICAgICAgICAg ICAgICAgICAgLy8gRW5hYmxlIHhtaXQgaW50ZXJydXB0DQogICAgIEhBTF9X UklURV9VSU5UOChiYXNlK1JFR19pZXIsIF9pZXIpOw0KICNpZmRlZiBDWUdQ S0dfSU9fU0VSSUFMX0dFTkVSSUNfMTZYNVhfWE1JVF9SRVFVSVJFX1BSSU1F DQotICAgIChjaGFuLT5jYWxsYmFja3MtPnhtdF9jaGFyKShjaGFuKTsNCisg ICAgLy9zb21lIGNoaXAoYXQgbGVhc3QgTFBDMlhYWCdzIGVtYmVkZGVkIERV QVJUKSBtYXkgbm90IGdlbmVyYXRlIElTUl9UeCBpbnRlcnJ1cHQgYWZ0ZXIg ZW5hYmxlIElFUl9YTVQsDQorICAgIC8vc28gd2UgdHJ5IHRyYW5zbWl0dGlu ZyBoZXJlIHRvIHRyaWdnZXIgdGhlIElTUl9UeCBpbnRlcnR1cHQuDQorICAg IEhBTF9SRUFEX1VJTlQ4KGJhc2UrUkVHX2xzciwgX2xzcik7DQorICAgIGlm ICgoX2xzciAmIExTUl9USEUpKSB7DQorICAgICAgICAvLyB0cmFuc21pdHRl ciBob2xkaW5nIHJlZ2lzdGVyIHJlYWR5DQorICAgICAgICAoY2hhbi0+Y2Fs bGJhY2tzLT54bXRfY2hhcikoY2hhbik7DQorICAgIH0NCiAjZW5kaWYNCiB9 DQogDQogLy8gRGlzYWJsZSB0aGUgdHJhbnNtaXR0ZXIgb24gdGhlIGRldmlj ZQ0KIHN0YXRpYyB2b2lkIA0KIHBjX3NlcmlhbF9zdG9wX3htaXQoc2VyaWFs X2NoYW5uZWwgKmNoYW4pDQogew0KICAgICBwY19zZXJpYWxfaW5mbyAqc2Vy X2NoYW4gPSAocGNfc2VyaWFsX2luZm8gKiljaGFuLT5kZXZfcHJpdjsNCiAg ICAgY3lnX2FkZHJ3b3JkX3QgYmFzZSA9IHNlcl9jaGFuLT5iYXNlOw0KKyAg ICBpbnQgc3RlcCA9IHNlcl9jaGFuLT5zdGVwOw0KICAgICBjeWdfdWludDgg X2llcjsNCiANCiAgICAgSEFMX1JFQURfVUlOVDgoYmFzZStSRUdfaWVyLCBf aWVyKTsNCiAgICAgX2llciAmPSB+SUVSX1hNVDsgICAgICAgICAgICAgICAg ICAgLy8gRGlzYWJsZSB4bWl0IGludGVycnVwdA0KICAgICBIQUxfV1JJVEVf VUlOVDgoYmFzZStSRUdfaWVyLCBfaWVyKTsNCkBAIC01NTAsMTAgKzU3OSwx MSBAQA0KIHBjX3NlcmlhbF9EU1IoY3lnX3ZlY3Rvcl90IHZlY3RvciwgY3ln X3Vjb3VudDMyIGNvdW50LCBjeWdfYWRkcndvcmRfdCBkYXRhKQ0KIHsNCiAg ICAgc2VyaWFsX2NoYW5uZWwgKmNoYW4gPSAoc2VyaWFsX2NoYW5uZWwgKilk YXRhOw0KICAgICBwY19zZXJpYWxfaW5mbyAqc2VyX2NoYW4gPSAocGNfc2Vy aWFsX2luZm8gKiljaGFuLT5kZXZfcHJpdjsNCiAgICAgY3lnX2FkZHJ3b3Jk X3QgYmFzZSA9IHNlcl9jaGFuLT5iYXNlOw0KKyAgICBpbnQgc3RlcCA9IHNl cl9jaGFuLT5zdGVwOw0KICAgICBjeWdfdWludDggX2lzcjsNCiANCiAgICAg Ly8gQ2hlY2sgaWYgd2UgaGF2ZSBhbiBpbnRlcnJ1cHQgcGVuZGluZyAtIG5v dGUgdGhhdCB0aGUgaW50ZXJydXB0DQogICAgIC8vIGlzIHBlbmRpbmcgb2Yg dGhlIGxvdyBiaXQgb2YgdGhlIGlzciBpcyAqMCosIG5vdCAxLg0KICAgICBI QUxfUkVBRF9VSU5UOChiYXNlK1JFR19pc3IsIF9pc3IpOw0KQEAgLTY0NSwx NCArNjc1LDE2IEBADQogICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgYnJlYWs7DQogI2VuZGlmDQogICAgICAgICBk ZWZhdWx0Og0KLSAgICAgICAgICAgIC8vIFllcywgdGhpcyBhc3NlcnRpb24g bWF5IHdlbGwgbm90IGJlIHZpc2libGUuICpCdXQqDQotICAgICAgICAgICAg Ly8gaWYgZGVidWdnaW5nLCB3ZSBtYXkgc3RpbGwgc3VjY2Vzc2Z1bGx5IGhp dCBhIGJyZWFrcG9pbnQNCi0gICAgICAgICAgICAvLyBvbiBjeWdfYXNzZXJ0 X2ZhaWwsIHdoaWNoIF9pc18gdXNlZnVsDQotICAgICAgICAgICAgQ1lHX0ZB SUwoInVuaGFuZGxlZCBzZXJpYWwgaW50ZXJydXB0IHN0YXRlIik7DQorICAg ICAgICAgICAgI2lmIDANCisgICAgICAgICAgICAvL3NvbWUgY2hpcChhdCBs ZWFzdCBQaGlsaXBzIFNDMTZDMjU1MEIpIG1heSBnZW5lcmF0ZSBhIGludGVy cnVwdCB3aXRob3V0IHZhbGlkIHNvdXJjZSwNCisgICAgICAgICAgICAvL3Nv IHdlIHByaW50IGEgZXJyb3IgbWVzc2FnZSByYXRoZXIgdGhhbiBkaWUgaGVy ZS4NCisgICAgICAgICAgICBkaWFnX3ByaW50ZigidW5oYW5kbGVkIHNlcmlh bCBpbnRlcnJ1cHQgc3RhdGUiIlxyXG4iKTsNCisgICAgICAgICAgICAjZW5k aWYNCisgICAgICAgICAgICBicmVhazsNCiAgICAgICAgIH0NCiANCiAgICAg ICAgIEhBTF9SRUFEX1VJTlQ4KGJhc2UrUkVHX2lzciwgX2lzcik7DQogICAg IH0gLy8gd2hpbGUNCiANCg== --_51f362c2-fdac-4fdd-bede-7abd8b286636_ Content-Type: text/plain; charset=us-ascii Content-length: 148 -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss --_51f362c2-fdac-4fdd-bede-7abd8b286636_--