Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Jan 2002 18:34:23 +0200
From:      Stoian Mishinev <mishinev@digsys.bg>
To:        stable@freebsd.org
Subject:   Moxa C168H/PCI
Message-ID:  <200201101634.SAA20381@ws5-plovdiv.digsys.bg>

next in thread | raw e-mail | index | archive | help
This is a multipart MIME message.

--==_Exmh_-4833217230
Content-Type: text/plain; charset=us-ascii

Hi List,

I'm trying to compile sio.c patched with cronyx's OMEGA drivers (www.cronyx.ru) as recommended from "Moxa Technologies Co Ltd". 
After some made by hand patches (the driver was written for 4.4-RELEASE) I've get this error:

siopci0: <Moxa Technologies C168H/PCI> port 0x2c20-0x2c2f,0x2880-0x28bf,0x2800-0x287f irq 5 at device 13.0 on pci0
sio4: couldn't map ports/memory
device_probe_and_attach: siopci0 attach returned 6

Any ideas are welcomed.

Follow 
1. dmesg
2. sio.c compiled patch
3. pciconf -lv output
4. kernel config file is GENERIC with no changes.


--==_Exmh_-4833217230
Content-Type: text/plain ; name="pciconf"; charset=us-ascii
Content-Description: pciconf
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="pciconf"

Y2hpcDBAcGNpMDowOjA6CWNsYXNzPTB4MDYwMDAwIGNhcmQ9MHgwMDAwMDAwMCBjaGlwPTB4
NzFhMDgwODYgcmV2PTB4MDAgaGRyPTB4MDAKICAgIHZlbmRvciAgID0gJ0ludGVsIENvcnBv
cmF0aW9uJwogICAgZGV2aWNlICAgPSAnODI0NDNHWCA0NDBHWCBDUFUgdG8gUENJIEJyaWRn
ZSAoQUdQIEltcGxlbWVudGVkKScKICAgIGNsYXNzICAgID0gYnJpZGdlCiAgICBzdWJjbGFz
cyA9IEhPU1QtUENJCnBjaWIyQHBjaTA6MTowOgljbGFzcz0weDA2MDQwMCBjYXJkPTB4MDAw
MDAwMDAgY2hpcD0weDcxYTE4MDg2IHJldj0weDAwIGhkcj0weDAxCiAgICB2ZW5kb3IgICA9
ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgID0gJzgyNDQzR1ggUENJLXRvLVBD
SSBCcmlkZ2UgKEFHUCknCiAgICBjbGFzcyAgICA9IGJyaWRnZQogICAgc3ViY2xhc3MgPSBQ
Q0ktUENJCmFoYzBAcGNpMDoxMjowOgljbGFzcz0weDAxMDAwMCBjYXJkPTB4MDA1MzkwMDQg
Y2hpcD0weDAwNWY5MDA1IHJldj0weDAwIGhkcj0weDAwCiAgICB2ZW5kb3IgICA9ICdBZGFw
dGVjJwogICAgZGV2aWNlICAgPSAnQUlDLTc4OTYvNyBVbHRyYTIgU0NTSSBDb250cm9sbGVy
JwogICAgY2xhc3MgICAgPSBtYXNzIHN0b3JhZ2UKICAgIHN1YmNsYXNzID0gU0NTSQphaGMx
QHBjaTA6MTI6MToJY2xhc3M9MHgwMTAwMDAgY2FyZD0weDAwNTM5MDA0IGNoaXA9MHgwMDVm
OTAwNSByZXY9MHgwMCBoZHI9MHgwMAogICAgdmVuZG9yICAgPSAnQWRhcHRlYycKICAgIGRl
dmljZSAgID0gJ0FJQy03ODk2LzcgVWx0cmEyIFNDU0kgQ29udHJvbGxlcicKICAgIGNsYXNz
ICAgID0gbWFzcyBzdG9yYWdlCiAgICBzdWJjbGFzcyA9IFNDU0kKbm9uZTBAcGNpMDoxMzow
OgljbGFzcz0weDA3MDA4MCBjYXJkPTB4MDAwMDAwMDAgY2hpcD0weDE2ODAxMzkzIHJldj0w
eDAyIGhkcj0weDAwCiAgICB2ZW5kb3IgICA9ICdNb3hhIFRlY2hub2xvZ2llcyBDbyBMdGQn
CiAgICBkZXZpY2UgICA9ICdDMTY4SCcKICAgIGNsYXNzICAgID0gc2ltcGxlIGNvbW1zCiAg
ICBzdWJjbGFzcyA9IFVBUlQKZnhwMEBwY2kwOjE0OjA6CWNsYXNzPTB4MDIwMDAwIGNhcmQ9
MHgzMDAwODA4NiBjaGlwPTB4MTIyOTgwODYgcmV2PTB4MDggaGRyPTB4MDAKICAgIHZlbmRv
ciAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgPSAnODI1NTcvOC85IEV0
aGVyRXhwcmVzcyBQUk8vMTAwKEIpIEV0aGVybmV0IEFkYXB0ZXInCiAgICBjbGFzcyAgICA9
IG5ldHdvcmsKICAgIHN1YmNsYXNzID0gZXRoZXJuZXQKaXNhYjBAcGNpMDoxODowOgljbGFz
cz0weDA2MDEwMCBjYXJkPTB4MDAwMDAwMDAgY2hpcD0weDcxMTA4MDg2IHJldj0weDAyIGhk
cj0weDAwCiAgICB2ZW5kb3IgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAg
ID0gJzgyMzcxQUIvRUIvTUIgUElJWDQgSVNBIEJyaWRnZScKICAgIGNsYXNzICAgID0gYnJp
ZGdlCiAgICBzdWJjbGFzcyA9IFBDSS1JU0EKYXRhcGNpMEBwY2kwOjE4OjE6CWNsYXNzPTB4
MDEwMTgwIGNhcmQ9MHgwMDAwMDAwMCBjaGlwPTB4NzExMTgwODYgcmV2PTB4MDEgaGRyPTB4
MDAKICAgIHZlbmRvciAgID0gJ0ludGVsIENvcnBvcmF0aW9uJwogICAgZGV2aWNlICAgPSAn
ODIzNzFBQi9FQi9NQiBQSUlYNCBFSURFIENvbnRyb2xsZXInCiAgICBjbGFzcyAgICA9IG1h
c3Mgc3RvcmFnZQogICAgc3ViY2xhc3MgPSBBVEEKdWhjaTBAcGNpMDoxODoyOgljbGFzcz0w
eDBjMDMwMCBjYXJkPTB4MDAwMDAwMDAgY2hpcD0weDcxMTI4MDg2IHJldj0weDAxIGhkcj0w
eDAwCiAgICB2ZW5kb3IgICA9ICdJbnRlbCBDb3Jwb3JhdGlvbicKICAgIGRldmljZSAgID0g
JzgyMzcxQUIvRUIvTUIgUElJWDQgVVNCIENvbnRyb2xsZXInCiAgICBjbGFzcyAgICA9IHNl
cmlhbCBidXMKICAgIHN1YmNsYXNzID0gVVNCCmNoaXAxQHBjaTA6MTg6MzoJY2xhc3M9MHgw
NjgwMDAgY2FyZD0weDAwMDAwMDAwIGNoaXA9MHg3MTEzODA4NiByZXY9MHgwMiBoZHI9MHgw
MAogICAgdmVuZG9yICAgPSAnSW50ZWwgQ29ycG9yYXRpb24nCiAgICBkZXZpY2UgICA9ICc4
MjM3MUFCL0VCL01CIFBJSVg0IFBvd2VyIE1hbmFnZW1lbnQgQ29udHJvbGxlcicKICAgIGNs
YXNzICAgID0gYnJpZGdlCiAgICBzdWJjbGFzcyA9IFBDSS11bmtub3duCm5vbmUxQHBjaTA6
MjA6MDoJY2xhc3M9MHgwMzAwMDAgY2FyZD0weDAwYmMxMDEzIGNoaXA9MHgwMGJjMTAxMyBy
ZXY9MHgyMyBoZHI9MHgwMAogICAgdmVuZG9yICAgPSAnQ2lycnVzIExvZ2ljJwogICAgZGV2
aWNlICAgPSAnQ0wtR0Q1NDgwIDY0LWJpdCBTR1JBTSBHVUkgYWNjZWxlcmF0b3InCiAgICBj
bGFzcyAgICA9IGRpc3BsYXkKICAgIHN1YmNsYXNzID0gVkdBCnBjaWIzQHBjaTE6MTU6MDoJ
Y2xhc3M9MHgwNjA0MDAgY2FyZD0weDAwMDAwMGRjIGNoaXA9MHgwMDIzMTAxMSByZXY9MHgw
NiBoZHI9MHgwMQogICAgdmVuZG9yICAgPSAnRGlnaXRhbCBFcXVpcG1lbnQgQ29ycG9yYXRp
b24nCiAgICBkZXZpY2UgICA9ICdEQzIxMTUwIFBDSSB0byBQQ0kgQnJpZGdlJwogICAgY2xh
c3MgICAgPSBicmlkZ2UKICAgIHN1YmNsYXNzID0gUENJLVBDSQo=

--==_Exmh_-4833217230
Content-Type: text/plain ; name="sio.c-patch-4.4-01-12-2001-STABLE"; charset=us-ascii
Content-Description: sio.c-patch-4.4-01-12-2001-STABLE
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="sio.c-patch-4.4-01-12-2001-STABLE"

KioqIC9zeXMvaXNhL3Npby5jCVRodSBKYW4gMTAgMTc6MjM6NDUgMjAwMgotLS0gL3N5cy9p
c2Evc2lvLmMtR0VORVJJQwlUaHUgSmFuIDEwIDE1OjQ4OjExIDIwMDIKKioqKioqKioqKioq
KioqCioqKiAxMzgsMTQzICoqKioKLS0tIDEzOCwxNDggLS0tLQogIAogICNkZWZpbmUJY29t
X3NjcgkJNwkvKiBzY3JhdGNoIHJlZ2lzdGVyIGZvciAxNjQ1MC0xNjU1MCAoUi9XKSAqLwog
IAorICNkZWZpbmUJc2lvX2dldHJlZyhjb20sIG9mZikgXAorIAkoYnVzX3NwYWNlX3JlYWRf
MSgoY29tKS0+YnN0LCAoY29tKS0+YnNoLCAob2ZmKSkpCisgI2RlZmluZQlzaW9fc2V0cmVn
KGNvbSwgb2ZmLCB2YWx1ZSkgXAorIAkoYnVzX3NwYWNlX3dyaXRlXzEoKGNvbSktPmJzdCwg
KGNvbSktPmJzaCwgKG9mZiksICh2YWx1ZSkpKQorIAogIC8qCiAgICogY29tIHN0YXRlIGJp
dHMuCiAgICogKENTX0JVU1kgfCBDU19UVEdPKSBhbmQgKENTX0JVU1kgfCBDU19UVEdPIHwg
Q1NfT0RFVlJFQURZKSBtdXN0IGJlIGhpZ2hlcgoqKioqKioqKioqKioqKioKKioqIDIxMywy
MTkgKioqKgogIAlpbnQJdW5pdDsJCS8qIHVuaXQJbnVtYmVyICovCiAgCWludAlkdHJfd2Fp
dDsJLyogdGltZSB0byBob2xkIERUUiBkb3duIG9uIGNsb3NlICgqIDEvaHopICovCiAgCXVf
aW50CXR4X2ZpZm9fc2l6ZTsKLSAJdV9pbnQJb3NjaWxsYXRvcjsKICAJdV9pbnQJd29wZW5l
cnM7CS8qICMgcHJvY2Vzc2VzIHdhaXRpbmcgZm9yIERDRCBpbiBvcGVuKCkgKi8KICAKICAJ
LyoKLS0tIDIxOCwyMjMgLS0tLQoqKioqKioqKioqKioqKioKKioqIDI4MywzMTQgKioqKgog
IAl1X2NoYXIJb2J1ZjJbMjU2XTsKICB9OwogIAotICNkZWZpbmUgTUFYQ0hBTgkJOAkJLyog
dXAgdG8gOCBjaGFubmVscyBwZXIgbXVsdGlwb3J0ICovCi0gCi0gc3RydWN0IG11bHRpY29t
IHsKLSAJaW50CQluY2hhbjsJCS8qIGNoYW5uZWxzIHBlciBhZGFwdGVyICovCi0gCXN0cnVj
dCByZXNvdXJjZQkqcmVzOwotIAlzdHJ1Y3QgcmVzb3VyY2UJKmlycTsKLSAJdm9pZAkJKmlu
dHJoYW5kOwotIAlzdHJ1Y3QgY29tX3MJY29tIFtNQVhDSEFOXTsKLSB9OwotIAogICNpZmRl
ZiBDT01fRVNQCiAgc3RhdGljCWludAllc3BhdHRhY2gJX19QKChzdHJ1Y3QgY29tX3MgKmNv
bSwgUG9ydF90IGVzcF9wb3J0KSk7CiAgI2VuZGlmCiAgc3RhdGljCWludAlzaW9hdHRhY2gJ
X19QKChkZXZpY2VfdCBkZXYsIGludCByaWQpKTsKICBzdGF0aWMJaW50CXNpb19pc2FfYXR0
YWNoCV9fUCgoZGV2aWNlX3QgZGV2KSk7Ci0gc3RhdGljCWludAlzaW9fYXR0YWNoX3VuaXQJ
X19QKChzdHJ1Y3QgY29tX3MgKmNvbSwgaW50IHVuaXQsIFBvcnRfdCBpb2Jhc2UsCi0gCQkJ
CSAgICB1X2ludCBmbGFncywgYm9vbF90IG5vX2lycSwKLSAJCQkJICAgIGJ1c19zcGFjZV90
YWdfdCB0LCBidXNfc3BhY2VfaGFuZGxlX3QgaCkpOwotIHN0YXRpYwlpbnQJc2lvX2ZpbmRf
ZnJlcQlfX1AoKHN0cnVjdCBjb21fcyAqY29tKSk7CiAgCiAgc3RhdGljCXRpbWVvdXRfdCBz
aW9idXN5Y2hlY2s7CiAgc3RhdGljCXRpbWVvdXRfdCBzaW9kdHJ3YWtldXA7CiAgc3RhdGlj
CXZvaWQJY29taGFyZGNsb3NlCV9fUCgoc3RydWN0IGNvbV9zICpjb20pKTsKICBzdGF0aWMJ
dm9pZAlzaW9pbnB1dAlfX1AoKHN0cnVjdCBjb21fcyAqY29tKSk7CiAgc3RhdGljCXZvaWQJ
c2lvaW50cjEJX19QKChzdHJ1Y3QgY29tX3MgKmNvbSkpOwotIHN0YXRpYwl2b2lkCXNpb19w
Y2lfaW50cglfX1AoKHZvaWQgKmFyZykpOwogIHN0YXRpYwl2b2lkCXNpb2ludHIJCV9fUCgo
dm9pZCAqYXJnKSk7CiAgc3RhdGljCWludAljb21tY3RsCQlfX1AoKHN0cnVjdCBjb21fcyAq
Y29tLCBpbnQgYml0cywgaW50IGhvdykpOwogIHN0YXRpYwlpbnQJY29tcGFyYW0JX19QKChz
dHJ1Y3QgdHR5ICp0cCwgc3RydWN0IHRlcm1pb3MgKnQpKTsKLS0tIDI4NywzMDMgLS0tLQoq
KioqKioqKioqKioqKioKKioqIDMzMSwzMzYgKioqKgotLS0gMzIwLDMyNiAtLS0tCiAgCiAg
I2lmIE5QQ0kgPiAwCiAgc3RhdGljCWludAlzaW9fcGNpX2F0dGFjaCBfX1AoKGRldmljZV90
IGRldikpOworIHN0YXRpYwl2b2lkCXNpb19wY2lfa2x1ZGdlX3VuaXQgX19QKChkZXZpY2Vf
dCBkZXYpKTsKICBzdGF0aWMJaW50CXNpb19wY2lfcHJvYmUgX19QKChkZXZpY2VfdCBkZXYp
KTsKICAjZW5kaWYgLyogTlBDSSA+IDAgKi8KICAKKioqKioqKioqKioqKioqCioqKiAzMzgs
MzQ4ICoqKioKICAKICAvKiB0YWJsZSBhbmQgbWFjcm8gZm9yIGZhc3QgY29udmVyc2lvbiBm
cm9tIGEgdW5pdCBudW1iZXIgdG8gaXRzIGNvbSBzdHJ1Y3QgKi8KICBzdGF0aWMJZGV2Y2xh
c3NfdAlzaW9fZGV2Y2xhc3M7CiEgc3RhdGljCWRldmNsYXNzX3QJc2lvX3BjY2FyZF9kZXZj
bGFzczsKISBzdGF0aWMJZGV2Y2xhc3NfdAlzaW9fcGNpX2RldmNsYXNzOwohICNkZWZpbmUg
U0lPX01BWFVOSVRTCTY0CQkvKiB1cCB0byA2NCBwb3J0cyAqLwohICNkZWZpbmUJY29tX2Fk
ZHIodW5pdCkJKHBfY29tX2FkZHJbdW5pdF0pCiEgc3RhdGljCXN0cnVjdCBjb21fcwkqcF9j
b21fYWRkcltTSU9fTUFYVU5JVFNdOwogIAogIHN0YXRpYyBkZXZpY2VfbWV0aG9kX3Qgc2lv
X2lzYV9tZXRob2RzW10gPSB7CiAgCS8qIERldmljZSBpbnRlcmZhY2UgKi8KLS0tIDMyOCwz
MzUgLS0tLQogIAogIC8qIHRhYmxlIGFuZCBtYWNybyBmb3IgZmFzdCBjb252ZXJzaW9uIGZy
b20gYSB1bml0IG51bWJlciB0byBpdHMgY29tIHN0cnVjdCAqLwogIHN0YXRpYwlkZXZjbGFz
c190CXNpb19kZXZjbGFzczsKISAjZGVmaW5lCWNvbV9hZGRyKHVuaXQpCSgoc3RydWN0IGNv
bV9zICopIFwKISAJCQkgZGV2Y2xhc3NfZ2V0X3NvZnRjKHNpb19kZXZjbGFzcywgdW5pdCkp
CiAgCiAgc3RhdGljIGRldmljZV9tZXRob2RfdCBzaW9faXNhX21ldGhvZHNbXSA9IHsKICAJ
LyogRGV2aWNlIGludGVyZmFjZSAqLwoqKioqKioqKioqKioqKioKKioqIDM4NSwzOTMgKioq
KgogIH07CiAgCiAgc3RhdGljIGRyaXZlcl90IHNpb19wY2lfZHJpdmVyID0gewohIAkic2lv
cGNpIiwKICAJc2lvX3BjaV9tZXRob2RzLAohIAlzaXplb2Yoc3RydWN0IG11bHRpY29tKSwK
ICB9OwogICNlbmRpZiAvKiBOUENJID4gMCAqLwogIAotLS0gMzcyLDM4MCAtLS0tCiAgfTsK
ICAKICBzdGF0aWMgZHJpdmVyX3Qgc2lvX3BjaV9kcml2ZXIgPSB7CiEgCWRyaXZlcl9uYW1l
LAogIAlzaW9fcGNpX21ldGhvZHMsCiEgCXNpemVvZihzdHJ1Y3QgY29tX3MpLAogIH07CiAg
I2VuZGlmIC8qIE5QQ0kgPiAwICovCiAgCioqKioqKioqKioqKioqKgoqKiogNDMyLDQ0MCAq
KioqCiAgc3RhdGljCXN0cnVjdAljYWxsb3V0X2hhbmRsZSBzaW9fdGltZW91dF9oYW5kbGUK
ICAgICAgPSBDQUxMT1VUX0hBTkRMRV9JTklUSUFMSVpFUigmc2lvX3RpbWVvdXRfaGFuZGxl
KTsKICBzdGF0aWMJaW50CXNpb19udW11bml0czsKLSBzdGF0aWMgIGludCAgICAgc2lvX3Bj
aV9udW11bml0cyA9IE5TSU87CiAgCiEgI2RlZmluZSBDT01ESVZJU09SKG9zYyx4KSAgICAg
ICAoKChvc2MpIC8gKHgpICsgOCkgLyAxNikKICAKICAjaWZkZWYgQ09NX0VTUAogIC8qIFhY
WCBjb25maWd1cmUgdGhpcyBwcm9wZXJseS4gKi8KLS0tIDQxOSw0NDcgLS0tLQogIHN0YXRp
YwlzdHJ1Y3QJY2FsbG91dF9oYW5kbGUgc2lvX3RpbWVvdXRfaGFuZGxlCiAgICAgID0gQ0FM
TE9VVF9IQU5ETEVfSU5JVElBTElaRVIoJnNpb190aW1lb3V0X2hhbmRsZSk7CiAgc3RhdGlj
CWludAlzaW9fbnVtdW5pdHM7CiAgCiEgc3RhdGljCXN0cnVjdCBzcGVlZHRhYiBjb21zcGVl
ZHRhYltdID0gewohIAl7IDAsCQkwIH0sCiEgCXsgNTAsCQlDT01CUkQoNTApIH0sCiEgCXsg
NzUsCQlDT01CUkQoNzUpIH0sCiEgCXsgMTEwLAkJQ09NQlJEKDExMCkgfSwKISAJeyAxMzQs
CQlDT01CUkQoMTM0KSB9LAohIAl7IDE1MCwJCUNPTUJSRCgxNTApIH0sCiEgCXsgMjAwLAkJ
Q09NQlJEKDIwMCkgfSwKISAJeyAzMDAsCQlDT01CUkQoMzAwKSB9LAohIAl7IDYwMCwJCUNP
TUJSRCg2MDApIH0sCiEgCXsgMTIwMCwJCUNPTUJSRCgxMjAwKSB9LAohIAl7IDE4MDAsCQlD
T01CUkQoMTgwMCkgfSwKISAJeyAyNDAwLAkJQ09NQlJEKDI0MDApIH0sCiEgCXsgNDgwMCwJ
CUNPTUJSRCg0ODAwKSB9LAohIAl7IDk2MDAsCQlDT01CUkQoOTYwMCkgfSwKISAJeyAxOTIw
MCwJQ09NQlJEKDE5MjAwKSB9LAohIAl7IDI4ODAwLAlDT01CUkQoMjg4MDApIH0sCiEgCXsg
Mzg0MDAsCUNPTUJSRCgzODQwMCkgfSwKISAJeyA1NzYwMCwJQ09NQlJEKDU3NjAwKSB9LAoh
IAl7IDExNTIwMCwJQ09NQlJEKDExNTIwMCkgfSwKISAJeyAtMSwJCS0xIH0KISB9OwogIAog
ICNpZmRlZiBDT01fRVNQCiAgLyogWFhYIGNvbmZpZ3VyZSB0aGlzIHByb3Blcmx5LiAqLwoq
KioqKioqKioqKioqKioKKioqIDQ0Myw1MDQgKioqKgogICNlbmRpZgogIAogIC8qCi0gICog
UmVkZWZpbmUgaW5iL291dGIgdG8gaGFuZGxlIG1lbW9yeS1iYXNlZCBhZGFwdGVycy4KLSAg
KiBJdCBpcyBlc3NlbnRpYWwgdGhhdCBQb3J0X3QgY29udGFpbnMgMzItYml0IHZhbHVlLgot
ICAqLwotIHN0YXRpYwl1X2NoYXIJc2lvX2luYiBfX1AoKFBvcnRfdCBwb3J0KSk7Ci0gc3Rh
dGljCXZvaWQJc2lvX291dGIgX19QKChQb3J0X3QgcG9ydCwgdV9jaGFyIGJ5dGUpKTsKLSBz
dGF0aWMJdV9jaGFyCXNpb19nZXRyZWcgX19QKChzdHJ1Y3QgY29tX3MgKmNvbSwgYnVzX3Np
emVfdCBvZmYpKTsKLSBzdGF0aWMJdm9pZAlzaW9fc2V0cmVnIF9fUCgoc3RydWN0IGNvbV9z
ICpjb20sIGJ1c19zaXplX3Qgb2ZmLCB1X2NoYXIgdmFsKSk7Ci0gCi0gc3RhdGljIF9faW5s
aW5lIHVfY2hhciAKLSBzaW9faW5iIChwb3J0KQotIAlQb3J0X3QJCXBvcnQ7Ci0gewotIAlp
ZiAocG9ydCAmIH4weGZmZmYpCi0gCQlyZXR1cm4gKih2b2xhdGlsZSB1X2NoYXIqKSBwb3J0
OwotIAlyZXR1cm4gaW5iIChwb3J0KTsKLSB9Ci0gCi0gc3RhdGljIF9faW5saW5lIHZvaWQg
Ci0gc2lvX291dGIgKHBvcnQsIGJ5dGUpCi0gCVBvcnRfdAkJcG9ydDsKLSAJdV9jaGFyCQli
eXRlOwotIHsKLSAJaWYgKHBvcnQgJiB+MHhmZmZmKQotIAkJKih2b2xhdGlsZSB1X2NoYXIq
KSBwb3J0ID0gYnl0ZTsKLSAJZWxzZQotIAkJb3V0YiAocG9ydCwgYnl0ZSk7Ci0gfQotIAot
ICN1bmRlZiBpbmIKLSAjdW5kZWYgb3V0YgotICNkZWZpbmUgaW5iKHBvcnQpCXNpb19pbmIg
KHBvcnQpCi0gI2RlZmluZSBvdXRiKHBvcnQsdmFsKQlzaW9fb3V0YiAocG9ydCwgdmFsKQot
IAotIHN0YXRpYyBfX2lubGluZSB1X2NoYXIgCi0gc2lvX2dldHJlZyAoY29tLCBvZmYpCi0g
CXN0cnVjdCBjb21fcwkqY29tOwotIAlidXNfc2l6ZV90CW9mZjsKLSB7Ci0gCWlmICgodW5z
aWduZWQpIGNvbS0+YnNoICYgfjB4ZmZmZikKLSAJCXJldHVybiAqKHZvbGF0aWxlIHVfY2hh
ciopIChjb20tPmJzaCArIG9mZik7Ci0gCXJldHVybiBidXNfc3BhY2VfcmVhZF8xIChjb20t
PmJzdCwgY29tLT5ic2gsIG9mZik7Ci0gfQotIAotIHN0YXRpYyBfX2lubGluZSB2b2lkIAot
IHNpb19zZXRyZWcgKGNvbSwgb2ZmLCB2YWwpCi0gCXN0cnVjdCBjb21fcwkqY29tOwotIAli
dXNfc2l6ZV90CW9mZjsKLSAJdV9jaGFyCQl2YWw7Ci0gewotIAlpZiAoKHVuc2lnbmVkKSBj
b20tPmJzaCAmIH4weGZmZmYpCi0gCQkqKHZvbGF0aWxlIHVfY2hhciopIChjb20tPmJzaCAr
IG9mZikgPSB2YWw7Ci0gCWVsc2UKLSAJCWJ1c19zcGFjZV93cml0ZV8xIChjb20tPmJzdCwg
Y29tLT5ic2gsIG9mZiwgdmFsKTsKLSB9Ci0gCi0gLyoKICAgKiBoYW5kbGUgc3lzY3RsIHJl
YWQvd3JpdGUgcmVxdWVzdHMgZm9yIGNvbnNvbGUgc3BlZWQKICAgKiAKICAgKiBJbiBhZGRp
dGlvbiB0byBzZXR0aW5nIGNvbWRlZmF1bHRyYXRlIGZvciBJL08gdGhyb3VnaCAvZGV2L2Nv
bnNvbGUsCi0tLSA0NTAsNDU1IC0tLS0KKioqKioqKioqKioqKioqCioqKiA2MjcsNjM2ICoq
KioKICAJdV9pbnQzMl90CXR5cGU7CiAgCWNvbnN0IGNoYXIJKmRlc2M7CiAgCWludAkJcmlk
OwotIAlpbnQJCW5jaGFuOwkJLyogY2hhbm5lbHMgcGVyIGFkYXB0ZXIgKi8KLSAJaW50CQlp
b3N0ZXA7CQkvKiBhZGRyZXNzZXMgcGVyIGNoYW5uZWwgKi8KLSAJaW50CQlmaWZvX3NpemU7
CS8qIGZpZm8gc2l6ZSBpbiBieXRlcyAqLwotIAlpbnQJCWh3X3J0c19jdHM7CS8qIGhhcmR3
YXJlIHJ0cy9jdHMgc3VwcG9ydCAqLwogIH07CiAgCiAgc3RhdGljIHN0cnVjdCBwY2lfaWRz
IHBjaV9pZHNbXSA9IHsKLS0tIDU3OCw1ODMgLS0tLQoqKioqKioqKioqKioqKioKKioqIDYz
OSw3MTkgKioqKgogIAl7IDB4MDAwMDE1MWYsICJTbWFydExpbmsgNTYzNFBDViBTdXJmUmlk
ZXIiLCAweDEwIH0sCiAgCXsgMHgwMTEwMTQwNywgIktvdXRlY2ggSU9GTEVYLTJTIFBDSSBE
dWFsIFBvcnQgU2VyaWFsIiwgMHgxMCB9LAogIAl7IDB4MDExMTE0MDcsICJLb3V0ZWNoIElP
RkxFWC0yUyBQQ0kgRHVhbCBQb3J0IFNlcmlhbCIsIDB4MTAgfSwKLSAJeyAweGMwMDExMGI1
LCAiQ3Jvbnl4IE9tZWdhLVBDSSBTZXJpYWwgQWRhcHRlciIsIDB4MTgsIDgsIDgsIDY0LCAx
IH0sCi0gCXsgMHgwMTU4MTNhOCwgIkNyb255eCBPbWVnYTItUENJIFNlcmlhbCBBZGFwdGVy
IiwgLTB4MTAsIDgsIDB4MjAwLCA2NCB9LAotIAl7IDB4MTY4MDEzOTMsICJNb3hhIFRlY2hu
b2xvZ2llcyBDMTY4SC9QQ0kiLCAweDAyIH0sCiAgCXsgMHgwMDAwMDAwMCwgTlVMTCwgMCB9
CiAgfTsKICAKLSAvKgotICAqIEZpbmQgdGhlIG9zY2lsbGF0b3IgZnJlcXVlbmN5IG9mIHRo
ZSBVQVJULgotICAqLwotIHN0YXRpYyBpbnQgCi0gc2lvX2ZpbmRfZnJlcShjb20pCi0gCXN0
cnVjdCBjb21fcwkqY29tOwotIHsKLSAJaW50IHQwLCBuOwotIAl1X2NoYXIgbHNyOwotIAot
IAkvKiBTZXQgdGhlIGxvb3BiYWNrIG1vZGUsIDU3NjAwIGJhdWQuICovCi0gCW91dGIoY29t
LT5pbnRyX2N0bF9wb3J0LCAwKTsKLSAJc2lvX3NldHJlZyhjb20sIGNvbV9jZmNyLCBDRkNS
X0RMQUIpOwotIAlzaW9fc2V0cmVnKGNvbSwgY29tX2RsYmgsIDApOwotIAlzaW9fc2V0cmVn
KGNvbSwgY29tX2RsYmwsIDIpOwotIAlzaW9fc2V0cmVnKGNvbSwgY29tX2NmY3IsIENGQ1Jf
OEJJVFMpOwotIAlzaW9fc2V0cmVnKGNvbSwgY29tX2ZpZm8sIDApOwotIAlvdXRiKGNvbS0+
bW9kZW1fY3RsX3BvcnQsIE1DUl9MT09QQkFDSyk7Ci0gCSh2b2lkKSBpbmIgKGNvbS0+bGlu
ZV9zdGF0dXNfcG9ydCk7Ci0gCi0gCS8qIENhdGNoIHRoZSB0aWNrLiAqLwotIAl0MCA9IHRp
Y2tzOwotIAl3aGlsZSAodGlja3MgPT0gdDApCi0gCQljb250aW51ZTsKLSAKLSAJLyogUnVu
IHVudGlsIHRoZSBuZXh0IHRpY2ssIHRyYW5zbWl0dGluZyBkYXRhLiAqLwotIAluID0gMDsK
LSAJdDAgPSB0aWNrczsKLSAJd2hpbGUgKHRpY2tzID09IHQwKSB7Ci0gCQlsc3IgPSBpbmIg
KGNvbS0+bGluZV9zdGF0dXNfcG9ydCk7Ci0gCQlpZiAobHNyICYgTFNSX1RYUkRZKQotIAkJ
CXNpb19zZXRyZWcoY29tLCBjb21fZGF0YSwgMHg1QSk7Ci0gCi0gCQlpZiAobHNyICYgTFNS
X1JYUkRZKSB7Ci0gCQkJKHZvaWQpIGluYiAoY29tLT5kYXRhX3BvcnQpOwotIAkJCSsrbjsK
LSAJCX0KLSAJfQotIAlvdXRiKGNvbS0+bW9kZW1fY3RsX3BvcnQsIGNvbS0+bWNyX2ltYWdl
KTsKLSAJc2lvX3NldHJlZyhjb20sIGNvbV9jZmNyLCBjb20tPmNmY3JfaW1hZ2UpOwotIAlz
aW9fc2V0cmVnKGNvbSwgY29tX2ZpZm8sIEZJRk9fUkNWX1JTVCB8IEZJRk9fWE1UX1JTVCB8
IAotIAkJY29tLT5maWZvX2ltYWdlKTsKLSAJaWYgKENPTV9JSVJfVFhSRFlCVUcoY29tLT5m
bGFncykpIHsKLSAJCW91dGIoY29tLT5pbnRyX2N0bF9wb3J0LCBJRVJfRVJYUkRZIHwgSUVS
X0VSTFMKLSAJCQkJCXwgSUVSX0VNU0MpOwotIAl9IGVsc2UgewotIAkJb3V0Yihjb20tPmlu
dHJfY3RsX3BvcnQsIElFUl9FUlhSRFkgfCBJRVJfRVRYUkRZCi0gCQkJCQl8IElFUl9FUkxT
IHwgSUVSX0VNU0MpOwotIAl9Ci0gCi0gCW4gPSAobiAqIGh6ICsgNTc2MC8yKSAvIDU3NjA7
Ci0gCWlmIChuID4gNCkgcmV0dXJuIDggKiAxODQzMjAwOwotIAlpZiAobiA+IDIpIHJldHVy
biA0ICogMTg0MzIwMDsKLSAJaWYgKG4gPiAxKSByZXR1cm4gMiAqIDE4NDMyMDA7Ci0gCXJl
dHVybiAxODQzMjAwOwotIH0KLSAKICBzdGF0aWMgaW50CiAgc2lvX3BjaV9hdHRhY2goZGV2
KQogIAlkZXZpY2VfdAlkZXY7CiAgewogIAl1X2ludDMyX3QJdHlwZTsKICAJc3RydWN0IHBj
aV9pZHMJKmlkOwotIAlzdHJ1Y3QgbXVsdGljb20JKmQgPSBkZXZpY2VfZ2V0X3NvZnRjKGRl
dik7Ci0gCXN0cnVjdCBjb21fcwkqY29tOwotIAlQb3J0X3QJCWlvYmFzZTsKLSAJYnVzX3Nw
YWNlX3RhZ190CWJzdDsKLSAJYnVzX3NwYWNlX2hhbmRsZV90IGJzaCwgYnNoX3BvcnQ7Ci0g
CWludAkJcmlkLCBvZmZzZXQsIHMsIGZsYWdzLCBlcnIgPSAwOwogIAogIAl0eXBlID0gcGNp
X2dldF9kZXZpZChkZXYpOwogIAlpZCA9IHBjaV9pZHM7Ci0tLSA1ODYsNjAwIC0tLS0KKioq
KioqKioqKioqKioqCioqKiA3MjEsNzk2ICoqKioKICAJCWlkKys7CiAgCWlmIChpZC0+ZGVz
YyA9PSBOVUxMKQogIAkJcmV0dXJuIChFTlhJTyk7CiAgCiEgCWJ6ZXJvKChjaGFyKilkLCBz
aXplb2YoKmQpKTsKISAJcyA9IHNwbGltcCgpOwohIAlkLT5uY2hhbiA9IGlkLT5uY2hhbiA+
IDEgPyBpZC0+bmNoYW4gOiAxOwohIAohIAkvKiBBbGxvY2F0ZSBpL28gcmVnaW9uLiAqLwoh
IAlyaWQgPSBpZC0+cmlkID4gMCA/IGlkLT5yaWQgOiAtIGlkLT5yaWQ7CiEgCWQtPnJlcyA9
IGJ1c19hbGxvY19yZXNvdXJjZShkZXYsIGlkLT5yaWQgPiAwID8KISAJCVNZU19SRVNfSU9Q
T1JUIDogU1lTX1JFU19NRU1PUlksICZyaWQsIDAsIH4wLCAxLCBSRl9BQ1RJVkUpOwohIAlp
ZiAoISBkLT5yZXMpIHsKISAJCXByaW50Zigic2lvJWQ6IGNvdWxkbid0IG1hcCBwb3J0cy9t
ZW1vcnlcbiIsIHNpb19wY2lfbnVtdW5pdHMpOwohIAkJZXJyID0gRU5YSU87CiEgCQlnb3Rv
IGZhaWw7CiEgCX0KICAKISAJLyogQWxsb2NhdGUgaW50ZXJydXB0LiAqLwohIAlyaWQgPSAw
OwohIAlkLT5pcnEgPSBidXNfYWxsb2NfcmVzb3VyY2UoZGV2LCBTWVNfUkVTX0lSUSwgJnJp
ZCwgMCwgfjAsIDEsCiEgCQlSRl9TSEFSRUFCTEUgfCBSRl9BQ1RJVkUpOwohIAlpZiAoISBk
LT5pcnEpIHsKISAJCXByaW50Zigic2lvJWQ6IGNvdWxkbid0IG1hcCBpbnRlcnJ1cHRcbiIs
IHNpb19wY2lfbnVtdW5pdHMpOwohIAkJZXJyID0gRU5YSU87CiEgCQlnb3RvIGZhaWw7CiEg
CX0KISAKISAJLyogUmVnaXN0ZXIgdGhlIGludGVycnVwdCBoYW5kbGVyLiAqLwohIAllcnIg
PSBidXNfc2V0dXBfaW50cihkZXYsIGQtPmlycSwgSU5UUl9UWVBFX1RUWSB8IElOVFJfVFlQ
RV9GQVNULAohIAkJc2lvX3BjaV9pbnRyLCBkLCAmZC0+aW50cmhhbmQpOwohIAlpZiAoZXJy
KSB7CiEgCQlwcmludGYoInNpbyVkOiBjb3VsZG4ndCBzZXQgdXAgaXJxXG4iLCBzaW9fcGNp
X251bXVuaXRzKTsKISBmYWlsOgkJaWYgKGQtPnJlcykKISAJCQlidXNfcmVsZWFzZV9yZXNv
dXJjZShkZXYsIGlkLT5yaWQgPiAwID8gU1lTX1JFU19JT1BPUlQgOgohIAkJCQlTWVNfUkVT
X01FTU9SWSwgaWQtPnJpZCwgZC0+cmVzKTsKISAJCWlmIChkLT5pcnEpCiEgCQkJYnVzX3Jl
bGVhc2VfcmVzb3VyY2UoZGV2LCBTWVNfUkVTX0lSUSwgMCwgZC0+aXJxKTsKISAJCWdvdG8g
ZG9uZTsKISAJfQohIAohIAkvKiBBdHRhY2ggc2lvIHBvcnRzLiAqLwohIAlic3QgPSBybWFu
X2dldF9idXN0YWcoZC0+cmVzKTsKISAJYnNoID0gcm1hbl9nZXRfYnVzaGFuZGxlKGQtPnJl
cyk7CiEgCWlvYmFzZSA9IGlkLT5yaWQgPiAwID8gcm1hbl9nZXRfc3RhcnQoZC0+cmVzKSA6
CiEgCQkoUG9ydF90KSBybWFuX2dldF92aXJ0dWFsKGQtPnJlcyk7CiEgCWZsYWdzID0gaWQt
PmZpZm9fc2l6ZSA8PCAyNDsKISAJaWYgKGlkLT5od19ydHNfY3RzKQohIAkJZmxhZ3MgfD0g
MHgyMDAwMDsKISAJb2Zmc2V0ID0gMDsKISAJZm9yIChjb209ZC0+Y29tOyBjb208ZC0+Y29t
K2QtPm5jaGFuOyArK2NvbSwgb2Zmc2V0Kz1pZC0+aW9zdGVwKSB7CiEgCQkvKiBHZXQgYSBo
YW5kbGUgZm9yIGEgc3VicmVnaW9uIG9mIGFuIGFscmVhZHktbWFwcGVkIAohIAkJICogYXJl
YSBvZiBidXMgc3BhY2UuICovCiEgI2lmIHdhaXRpbmdfZm9yX3NvbWVib2R5X3RvX2ltcGxl
bWVudF9idXNfc3BhY2Vfc3VicmVnaW9uCiEgCQlpZiAoYnVzX3NwYWNlX3N1YnJlZ2lvbiAo
YnN0LCBic2gsIG9mZnNldCwgOCwgJmJzaF9wb3J0KSAhPSAwKSB7CiEgCQkJcHJpbnRmKCJz
aW8lZDogY2Fubm90IGdldCBidXMgc3VicmVnaW9uXG4iLCAKISAJCQkJc2lvX3BjaV9udW11
bml0cyk7CiEgCQkJY29udGludWU7CiAgCX0KLSAjZWxzZQotIAkJYnNoX3BvcnQgPSBic2gg
KyBvZmZzZXQ7Ci0gI2VuZGlmCi0gCQkvKiBJbnRlcnJ1cHQgZW5hYmxlLCBkbyBpdCBfYmVm
b3JlXyBzaW9fYXR0YWNoX3VuaXQuICovCi0gCQlvdXRiIChpb2Jhc2UgKyBvZmZzZXQgKyBj
b21fbWNyLCAKLSAJCQlkLT5uY2hhbiA+IDEgPyBNQ1JfSUVOQUJMRSA6IDApOwotIAotIAkJ
aWYgKHNpb19hdHRhY2hfdW5pdChjb20sIHNpb19wY2lfbnVtdW5pdHMrKywgaW9iYXNlICsg
b2Zmc2V0LAotIAkJICAgIGZsYWdzLCAwLCBic3QsIGJzaF9wb3J0KSAhPSAwKQotIAkJCXBy
aW50Zigic2lvJWQ6IGNhbm5vdCBhdHRhY2hcbiIsIHNpb19wY2lfbnVtdW5pdHMpOwotIAl9
Ci0gZG9uZToKLSAJc3BseCAocyk7Ci0gCXJldHVybiBlcnI7CiAgfQogIAogIHN0YXRpYyBp
bnQKLS0tIDYwMiw2MzggLS0tLQogIAkJaWQrKzsKICAJaWYgKGlkLT5kZXNjID09IE5VTEwp
CiAgCQlyZXR1cm4gKEVOWElPKTsKKyAJc2lvX3BjaV9rbHVkZ2VfdW5pdChkZXYpOworIAly
ZXR1cm4gKHNpb2F0dGFjaChkZXYsIGlkLT5yaWQpKTsKKyB9CiAgCiEgLyoKISAgKiBEb24n
dCBjdXQgYW5kIHBhc3RlIHRoaXMgdG8gb3RoZXIgZHJpdmVycy4gIEl0IGlzIGEgaG9ycmli
bGUga2x1ZGdlCiEgICogd2hpY2ggd2lsbCBmYWlsIHRvIHdvcmsgYW5kIGFsc28gYmUgdW5u
ZWNlc3NhcnkgaW4gZnV0dXJlIHZlcnNpb25zLgohICAqLwohIHN0YXRpYyB2b2lkCiEgc2lv
X3BjaV9rbHVkZ2VfdW5pdChkZXYpCiEgCWRldmljZV90IGRldjsKISB7CiEgCWRldmNsYXNz
X3QJZGM7CiEgCWludAkJZXJyOwohIAlpbnQJCXN0YXJ0OwohIAlpbnQJCXVuaXQ7CiAgCiEg
CXVuaXQgPSAwOwohIAlzdGFydCA9IDA7CiEgCXdoaWxlIChyZXNvdXJjZV9pbnRfdmFsdWUo
InNpbyIsIHVuaXQsICJwb3J0IiwgJnN0YXJ0KSA9PSAwICYmIAohIAkgICAgc3RhcnQgPiAw
KQohIAkJdW5pdCsrOwohIAlpZiAoZGV2aWNlX2dldF91bml0KGRldikgPCB1bml0KSB7CiEg
CQlkYyA9IGRldmljZV9nZXRfZGV2Y2xhc3MoZGV2KTsKISAJCXdoaWxlIChkZXZjbGFzc19n
ZXRfZGV2aWNlKGRjLCB1bml0KSkKISAJCQl1bml0Kys7CiEgCQlkZXZpY2VfcHJpbnRmKGRl
diwgIm1vdmluZyB0byBzaW8lZFxuIiwgdW5pdCk7CiEgCQllcnIgPSBkZXZpY2Vfc2V0X3Vu
aXQoZGV2LCB1bml0KTsJLyogRVZJTCBETyBOT1QgQ09QWSAqLwohIAkJaWYgKGVycikKISAJ
CQlkZXZpY2VfcHJpbnRmKGRldiwgImVycm9yIG1vdmluZyBkZXZpY2UgJWRcbiIsIGVycik7
CiAgCX0KICB9CiAgCiAgc3RhdGljIGludAoqKioqKioqKioqKioqKioKKioqIDgwNyw4MTMg
KioqKgogIAlpZiAoaWQtPmRlc2MgPT0gTlVMTCkKICAJCXJldHVybiAoRU5YSU8pOwogIAlk
ZXZpY2Vfc2V0X2Rlc2MoZGV2LCBpZC0+ZGVzYyk7CiEgCXJldHVybiAoMCk7CiAgfQogICNl
bmRpZiAvKiBOUENJID4gMCAqLwogIAotLS0gNjQ5LDY1NSAtLS0tCiAgCWlmIChpZC0+ZGVz
YyA9PSBOVUxMKQogIAkJcmV0dXJuIChFTlhJTyk7CiAgCWRldmljZV9zZXRfZGVzYyhkZXYs
IGlkLT5kZXNjKTsKISAJcmV0dXJuIChzaW9wcm9iZShkZXYsIGlkLT5yaWQpKTsKICB9CiAg
I2VuZGlmIC8qIE5QQ0kgPiAwICovCiAgCioqKioqKioqKioqKioqKgoqKiogMTI3MSwxMjgz
ICoqKioKICAJaW50CQl4cmlkOwogIHsKICAJc3RydWN0IGNvbV9zCSpjb207CiAgCVBvcnRf
dAkJaW9iYXNlOwogIAlpbnQJCXVuaXQ7CiAgCXVfaW50CQlmbGFnczsKICAJaW50CQlyaWQ7
CiAgCXN0cnVjdCByZXNvdXJjZSAqcG9ydDsKICAJaW50CQlyZXQ7Ci0gCWludAkJbm9faXJx
OwogIAogIAlyaWQgPSB4cmlkOwogIAlwb3J0ID0gYnVzX2FsbG9jX3Jlc291cmNlKGRldiwg
U1lTX1JFU19JT1BPUlQsICZyaWQsCi0tLSAxMTEzLDExMjcgLS0tLQogIAlpbnQJCXhyaWQ7
CiAgewogIAlzdHJ1Y3QgY29tX3MJKmNvbTsKKyAjaWZkZWYgQ09NX0VTUAorIAlQb3J0X3QJ
CSplc3BwOworICNlbmRpZgogIAlQb3J0X3QJCWlvYmFzZTsKICAJaW50CQl1bml0OwogIAl1
X2ludAkJZmxhZ3M7CiAgCWludAkJcmlkOwogIAlzdHJ1Y3QgcmVzb3VyY2UgKnBvcnQ7CiAg
CWludAkJcmV0OwogIAogIAlyaWQgPSB4cmlkOwogIAlwb3J0ID0gYnVzX2FsbG9jX3Jlc291
cmNlKGRldiwgU1lTX1JFU19JT1BPUlQsICZyaWQsCioqKioqKioqKioqKioqKgoqKiogMTI5
MCwxMzU1ICoqKioKICAJY29tID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOwogIAlmbGFncyA9
IGRldmljZV9nZXRfZmxhZ3MoZGV2KTsKICAKLSAjaWZkZWYgQ09NX01VTFRJUE9SVAotIAlp
ZiAoQ09NX0lTTVVMVElQT1JUKGZsYWdzKSkgewotIAkJZGV2aWNlX3QgbWFzdGVyZGV2Owot
IAotIAkJbWFzdGVyZGV2ID0gZGV2Y2xhc3NfZ2V0X2RldmljZShzaW9fZGV2Y2xhc3MsCi0g
CQkgICAgQ09NX01QTUFTVEVSKGZsYWdzKSk7Ci0gCQlub19pcnEgPSAobWFzdGVyZGV2ID09
IE5VTEwgfHwgYnVzX2dldF9yZXNvdXJjZShtYXN0ZXJkZXYsCi0gCQkgICAgU1lTX1JFU19J
UlEsIDAsIE5VTEwsIE5VTEwpICE9IDApOwotIAkgfSBlbHNlCi0gI2VuZGlmIC8qIENPTV9N
VUxUSVBPUlQgKi8KLSAJbm9faXJxID0gYnVzX2dldF9yZXNvdXJjZShkZXYsIFNZU19SRVNf
SVJRLCAwLCBOVUxMLCBOVUxMKSAhPSAwOwotIAotIAlyZXQgPSBzaW9fYXR0YWNoX3VuaXQo
Y29tLCB1bml0LCBpb2Jhc2UsIGZsYWdzLCBub19pcnEsCi0gCQlybWFuX2dldF9idXN0YWco
cG9ydCksIHJtYW5fZ2V0X2J1c2hhbmRsZShwb3J0KSk7Ci0gCQkKLSAJaWYgKHJldCAhPSAw
KSB7Ci0gCQkvKiBMZWF2ZSBpL28gcmVzb3VyY2VzIGFsbG9jYXRlZCBpZiB0aGlzIGlzIGEg
YGNuJy1sZXZlbAotIAkJICogY29uc29sZSwgc28gdGhhdCBvdGhlciBkZXZpY2VzIGNhbid0
IHNuYXJmIHRoZW0uICovCi0gCQlpZiAoaW9iYXNlICE9IHNpb2NuaW9iYXNlKQotIAkJCWJ1
c19yZWxlYXNlX3Jlc291cmNlKGRldiwgU1lTX1JFU19JT1BPUlQsIHJpZCwgcG9ydCk7Ci0g
CQlyZXR1cm4gcmV0OwotIAl9Ci0gCi0gCXJpZCA9IDA7Ci0gCWNvbS0+aXJxcmVzID0gYnVz
X2FsbG9jX3Jlc291cmNlKGRldiwgU1lTX1JFU19JUlEsICZyaWQsIDB1bCwgfjB1bCwgMSwK
LSAJICAgIFJGX0FDVElWRSk7Ci0gCWlmIChjb20tPmlycXJlcykgewotIAkJcmV0ID0gQlVT
X1NFVFVQX0lOVFIoZGV2aWNlX2dldF9wYXJlbnQoZGV2KSwgZGV2LCBjb20tPmlycXJlcywK
LSAJCQkJICAgICBJTlRSX1RZUEVfVFRZIHwgSU5UUl9UWVBFX0ZBU1QsCi0gCQkJCSAgICAg
c2lvaW50ciwgY29tLCAmY29tLT5jb29raWUpOwotIAkJaWYgKHJldCkgewotIAkJCXJldCA9
IEJVU19TRVRVUF9JTlRSKGRldmljZV9nZXRfcGFyZW50KGRldiksIGRldiwKLSAJCQkJCSAg
ICAgY29tLT5pcnFyZXMsIElOVFJfVFlQRV9UVFksCi0gCQkJCQkgICAgIHNpb2ludHIsIGNv
bSwgJmNvbS0+Y29va2llKTsKLSAJCQlpZiAocmV0ID09IDApCi0gCQkJCWRldmljZV9wcmlu
dGYoZGV2LCAidW5hYmxlIHRvIGFjdGl2YXRlIGludGVycnVwdCBpbiBmYXN0IG1vZGUgLSB1
c2luZyBub3JtYWwgbW9kZSIpOwotIAkJfQotIAkJaWYgKHJldCkKLSAJCQlkZXZpY2VfcHJp
bnRmKGRldiwgImNvdWxkIG5vdCBhY3RpdmF0ZSBpbnRlcnJ1cHRcbiIpOwotIAl9Ci0gCWNv
bS0+aW9wb3J0cmVzID0gcG9ydDsKLSAJcmV0dXJuIDA7Ci0gfQotIAotIGludAotIHNpb19h
dHRhY2hfdW5pdChjb20sIHVuaXQsIGlvYmFzZSwgZmxhZ3MsIG5vX2lycSwgYnN0LCBic2gp
Ci0gIAlzdHJ1Y3QgY29tX3MJKmNvbTsKLSAJaW50CQl1bml0OwotIAlQb3J0X3QJCWlvYmFz
ZTsKLSAJdV9pbnQJCWZsYWdzOwotIAlib29sX3QJCW5vX2lycTsKLSAJYnVzX3NwYWNlX3Rh
Z190CWJzdDsKLSAJYnVzX3NwYWNlX2hhbmRsZV90IGJzaDsKLSB7Ci0gI2lmZGVmIENPTV9F
U1AKLSAJUG9ydF90CQkqZXNwcDsKLSAjZW5kaWYKLSAKLSAJaWYgKHVuaXQgPj0gU0lPX01B
WFVOSVRTKQotIAkJcmV0dXJuIEVOWElPOwogIAlpZiAodW5pdCA+PSBzaW9fbnVtdW5pdHMp
CiAgCQlzaW9fbnVtdW5pdHMgPSB1bml0ICsgMTsKICAJLyoKLS0tIDExMzQsMTEzOSAtLS0t
CioqKioqKioqKioqKioqKgoqKiogMTM2NiwxMzc3ICoqKioKICAJICovCiAgCWJ6ZXJvKGNv
bSwgc2l6ZW9mICpjb20pOwogIAljb20tPnVuaXQgPSB1bml0OwohIAljb20tPmJzdCA9IGJz
dDsKISAJY29tLT5ic2ggPSBic2g7CiAgCWNvbS0+Y2Zjcl9pbWFnZSA9IENGQ1JfOEJJVFM7
CiAgCWNvbS0+ZHRyX3dhaXQgPSAzICogaHo7CiAgCWNvbS0+bG9zZXNfb3V0aW50cyA9IENP
TV9MT1NFU09VVElOVFMoZmxhZ3MpICE9IDA7CiEgCWNvbS0+bm9faXJxID0gbm9faXJxOwog
IAljb20tPnR4X2ZpZm9fc2l6ZSA9IDE7CiAgCWNvbS0+b2J1ZnNbMF0ubF9oZWFkID0gY29t
LT5vYnVmMTsKICAJY29tLT5vYnVmc1sxXS5sX2hlYWQgPSBjb20tPm9idWYyOwotLS0gMTE1
MCwxMTYyIC0tLS0KICAJICovCiAgCWJ6ZXJvKGNvbSwgc2l6ZW9mICpjb20pOwogIAljb20t
PnVuaXQgPSB1bml0OwohIAljb20tPmlvcG9ydHJlcyA9IHBvcnQ7CiEgCWNvbS0+YnN0ID0g
cm1hbl9nZXRfYnVzdGFnKHBvcnQpOwohIAljb20tPmJzaCA9IHJtYW5fZ2V0X2J1c2hhbmRs
ZShwb3J0KTsKICAJY29tLT5jZmNyX2ltYWdlID0gQ0ZDUl84QklUUzsKICAJY29tLT5kdHJf
d2FpdCA9IDMgKiBoejsKICAJY29tLT5sb3Nlc19vdXRpbnRzID0gQ09NX0xPU0VTT1VUSU5U
UyhmbGFncykgIT0gMDsKISAJY29tLT5ub19pcnEgPSBidXNfZ2V0X3Jlc291cmNlKGRldiwg
U1lTX1JFU19JUlEsIDAsIE5VTEwsIE5VTEwpICE9IDA7CiAgCWNvbS0+dHhfZmlmb19zaXpl
ID0gMTsKICAJY29tLT5vYnVmc1swXS5sX2hlYWQgPSBjb20tPm9idWYxOwogIAljb20tPm9i
dWZzWzFdLmxfaGVhZCA9IGNvbS0+b2J1ZjI7CioqKioqKioqKioqKioqKgoqKiogMTQwNywx
NDEyICoqKioKLS0tIDExOTIsMTIwMyAtLS0tCiAgCQljb20tPml0X2luLmNfaXNwZWVkID0g
Y29tLT5pdF9pbi5jX29zcGVlZCA9IFRUWURFRl9TUEVFRDsKICAJaWYgKHNpb3NldHdhdGVy
KGNvbSwgY29tLT5pdF9pbi5jX2lzcGVlZCkgIT0gMCkgewogIAkJZW5hYmxlX2ludHIoKTsK
KyAJCS8qCisgCQkgKiBMZWF2ZSBpL28gcmVzb3VyY2VzIGFsbG9jYXRlZCBpZiB0aGlzIGlz
IGEgYGNuJy1sZXZlbAorIAkJICogY29uc29sZSwgc28gdGhhdCBvdGhlciBkZXZpY2VzIGNh
bid0IHNuYXJmIHRoZW0uCisgCQkgKi8KKyAJCWlmIChpb2Jhc2UgIT0gc2lvY25pb2Jhc2Up
CisgCQkJYnVzX3JlbGVhc2VfcmVzb3VyY2UoZGV2LCBTWVNfUkVTX0lPUE9SVCwgcmlkLCBw
b3J0KTsKICAJCXJldHVybiAoRU5PTUVNKTsKICAJfQogIAllbmFibGVfaW50cigpOwoqKioq
KioqKioqKioqKioKKioqIDE0NTYsMTQ2OCAqKioqCiAgCQkJcHJpbnRmKCIgMTY1NTBBIGZp
Zm8gZGlzYWJsZWQiKTsKICAJCX0gZWxzZSB7CiAgCQkJY29tLT5oYXNmaWZvID0gVFJVRTsK
LSAJCQljb20tPnR4X2ZpZm9fc2l6ZSA9IENPTV9GSUZPU0laRShmbGFncyk7CiAgCQkJaWYg
KENPTV9TVDE2NjUwQShmbGFncykpIHsKICAJCQkJY29tLT5zdDE2NjUwYSA9IDE7Ci0gCQkJ
CWlmICghIGNvbS0+dHhfZmlmb19zaXplKQogIAkJCQljb20tPnR4X2ZpZm9fc2l6ZSA9IDMy
OwogIAkJCQlwcmludGYoIiBTVDE2NjUwQSIpOwogIAkJCX0gZWxzZSB7CiAgCQkJCXByaW50
ZigiIDE2NTUwQSIpOwogIAkJCX0KICAJCX0KLS0tIDEyNDcsMTI1OCAtLS0tCiAgCQkJcHJp
bnRmKCIgMTY1NTBBIGZpZm8gZGlzYWJsZWQiKTsKICAJCX0gZWxzZSB7CiAgCQkJY29tLT5o
YXNmaWZvID0gVFJVRTsKICAJCQlpZiAoQ09NX1NUMTY2NTBBKGZsYWdzKSkgewogIAkJCQlj
b20tPnN0MTY2NTBhID0gMTsKICAJCQkJY29tLT50eF9maWZvX3NpemUgPSAzMjsKICAJCQkJ
cHJpbnRmKCIgU1QxNjY1MEEiKTsKICAJCQl9IGVsc2UgeworIAkJCQljb20tPnR4X2ZpZm9f
c2l6ZSA9IENPTV9GSUZPU0laRShmbGFncyk7CiAgCQkJCXByaW50ZigiIDE2NTUwQSIpOwog
IAkJCX0KICAJCX0KKioqKioqKioqKioqKioqCioqKiAxNDczLDE0ODMgKioqKgogIAkJCQli
cmVhazsKICAJCQl9CiAgI2VuZGlmCiEgCQlpZiAoY29tLT5oYXNmaWZvKSB7CiAgCQkJaWYg
KCFjb20tPnR4X2ZpZm9fc2l6ZSkKICAJCQkJY29tLT50eF9maWZvX3NpemUgPSAxNjsKICAJ
CQllbHNlCiEgCQkJCXByaW50ZigiIHdpdGggJWQgYnl0ZXMgRklGTyIsCiAgCQkJCSAgICBj
b20tPnR4X2ZpZm9fc2l6ZSk7CiAgCQl9CiAgCi0tLSAxMjYzLDEyNzMgLS0tLQogIAkJCQli
cmVhazsKICAJCQl9CiAgI2VuZGlmCiEgCQlpZiAoIWNvbS0+c3QxNjY1MGEpIHsKICAJCQlp
ZiAoIWNvbS0+dHhfZmlmb19zaXplKQogIAkJCQljb20tPnR4X2ZpZm9fc2l6ZSA9IDE2Owog
IAkJCWVsc2UKISAJCQkJcHJpbnRmKCIgbG9va2FsaWtlIHdpdGggJWQgYnl0ZXMgRklGTyIs
CiAgCQkJCSAgICBjb20tPnR4X2ZpZm9fc2l6ZSk7CiAgCQl9CiAgCioqKioqKioqKioqKioq
KgoqKiogMTUxNCwxNTI0ICoqKioKLS0tIDEzMDQsMTMyMCAtLS0tCiAgCiAgI2lmZGVmIENP
TV9NVUxUSVBPUlQKICAJaWYgKENPTV9JU01VTFRJUE9SVChmbGFncykpIHsKKyAJCWRldmlj
ZV90IG1hc3RlcmRldjsKKyAKICAJCWNvbS0+bXVsdGlwb3J0ID0gVFJVRTsKICAJCXByaW50
ZigiIChtdWx0aXBvcnQiKTsKICAJCWlmICh1bml0ID09IENPTV9NUE1BU1RFUihmbGFncykp
CiAgCQkJcHJpbnRmKCIgbWFzdGVyIik7CiAgCQlwcmludGYoIikiKTsKKyAJCW1hc3RlcmRl
diA9IGRldmNsYXNzX2dldF9kZXZpY2Uoc2lvX2RldmNsYXNzLAorIAkJICAgIENPTV9NUE1B
U1RFUihmbGFncykpOworIAkJY29tLT5ub19pcnEgPSAobWFzdGVyZGV2ID09IE5VTEwgfHwg
YnVzX2dldF9yZXNvdXJjZShtYXN0ZXJkZXYsCisgCQkgICAgU1lTX1JFU19JUlEsIDAsIE5V
TEwsIE5VTEwpICE9IDApOwogIAkgfQogICNlbmRpZiAvKiBDT01fTVVMVElQT1JUICovCiAg
CWlmICh1bml0ID09IGNvbWNvbnNvbGUpCioqKioqKioqKioqKioqKgoqKiogMTUyNywxNTM0
ICoqKioKICAJCXByaW50ZigiIHdpdGggYSBib2d1cyBJSVJfVFhSRFkgcmVnaXN0ZXIiKTsK
ICAJcHJpbnRmKCJcbiIpOwogIAotIAljb21fYWRkcih1bml0KSA9IGNvbTsKLSAKICAJaWYg
KCFzaW9fcmVnaXN0ZXJlZCkgewogIAkJcmVnaXN0ZXJfc3dpKFNXSV9UVFksIHNpb3BvbGwp
OwogIAkJc2lvX3JlZ2lzdGVyZWQgPSBUUlVFOwotLS0gMTMyMywxMzI4IC0tLS0KKioqKioq
KioqKioqKioqCioqKiAxNTQ5LDE1NTQgKioqKgotLS0gMTM0MywxMzc2IC0tLS0KICAJY29t
LT5wcHMucHBzY2FwID0gUFBTX0NBUFRVUkVBU1NFUlQgfCBQUFNfQ0FQVFVSRUNMRUFSOwog
IAlwcHNfaW5pdCgmY29tLT5wcHMpOwogIAorIAlyaWQgPSAwOworIAljb20tPmlycXJlcyA9
IGJ1c19hbGxvY19yZXNvdXJjZShkZXYsIFNZU19SRVNfSVJRLCAmcmlkLCAwdWwsIH4wdWws
IDEsCisgCSAgICBSRl9BQ1RJVkUpOworIAlpZiAoY29tLT5pcnFyZXMpIHsKKyAJCXJldCA9
IEJVU19TRVRVUF9JTlRSKGRldmljZV9nZXRfcGFyZW50KGRldiksIGRldiwgY29tLT5pcnFy
ZXMsCisgCQkJCSAgICAgSU5UUl9UWVBFX1RUWSB8IElOVFJfVFlQRV9GQVNULAorIAkJCQkg
ICAgIHNpb2ludHIsIGNvbSwgJmNvbS0+Y29va2llKTsKKyAJCWlmIChyZXQpIHsKKyAJCQly
ZXQgPSBCVVNfU0VUVVBfSU5UUihkZXZpY2VfZ2V0X3BhcmVudChkZXYpLCBkZXYsCisgCQkJ
CQkgICAgIGNvbS0+aXJxcmVzLCBJTlRSX1RZUEVfVFRZLAorIAkJCQkJICAgICBzaW9pbnRy
LCBjb20sICZjb20tPmNvb2tpZSk7CisgCQkJaWYgKHJldCA9PSAwKQorIAkJCQlkZXZpY2Vf
cHJpbnRmKGRldiwgInVuYWJsZSB0byBhY3RpdmF0ZSBpbnRlcnJ1cHQgaW4gZmFzdCBtb2Rl
IC0gdXNpbmcgbm9ybWFsIG1vZGVcbiIpOworIAkJfQorIAkJaWYgKHJldCkKKyAJCQlkZXZp
Y2VfcHJpbnRmKGRldiwgImNvdWxkIG5vdCBhY3RpdmF0ZSBpbnRlcnJ1cHRcbiIpOworICNp
ZiBkZWZpbmVkKEREQikgJiYgKGRlZmluZWQoQlJFQUtfVE9fREVCVUdHRVIpIHx8IFwKKyAg
ICAgZGVmaW5lZChBTFRfQlJFQUtfVE9fREVCVUdHRVIpKQorIAkJLyoKKyAJCSAqIEVuYWJs
ZSBpbnRlcnJ1cHRzIGZvciBlYXJseSBicmVhay10by1kZWJ1Z2dlciBzdXBwb3J0CisgCQkg
KiBvbiB0aGUgY29uc29sZS4KKyAJCSAqLworIAkJaWYgKHJldCA9PSAwICYmIHVuaXQgPT0g
Y29tY29uc29sZSkKKyAJCQlvdXRiKHNpb2NuaW9iYXNlICsgY29tX2llciwgSUVSX0VSWFJE
WSB8IElFUl9FUkxTIHwKKyAJCQkgICAgSUVSX0VNU0MpOworICNlbmRpZgorIAl9CisgCiAg
CXJldHVybiAoMCk7CiAgfQogIAoqKioqKioqKioqKioqKioKKioqIDIwNDgsMjA3NCAqKioq
CiAgfQogIAogIHN0YXRpYyB2b2lkCi0gc2lvX3BjaV9pbnRyKGFyZykKLSAJdm9pZAkJKmFy
ZzsKLSB7Ci0gCXN0cnVjdCBtdWx0aWNvbQkqZCA9IGFyZzsKLSAJc3RydWN0IGNvbV9zCSpj
b207Ci0gCWJvb2xfdAkJcG9zc2libHlfbW9yZV9pbnRyczsKLSAKLSAJZGlzYWJsZV9pbnRy
KCk7Ci0gCWRvIHsKLSAJCXBvc3NpYmx5X21vcmVfaW50cnMgPSBGQUxTRTsKLSAJCWZvciAo
Y29tPWQtPmNvbTsgY29tPGQtPmNvbStkLT5uY2hhbjsgKytjb20pIHsKLSAJCQlpZiAoKGlu
Yihjb20tPmludF9pZF9wb3J0KSAmIElJUl9JTUFTSykgIT0gSUlSX05PUEVORCkgewotIAkJ
CQlzaW9pbnRyMShjb20pOwotIAkJCQlwb3NzaWJseV9tb3JlX2ludHJzID0gVFJVRTsKLSAJ
CQl9Ci0gCQl9Ci0gCX0gd2hpbGUgKHBvc3NpYmx5X21vcmVfaW50cnMpOwotIAllbmFibGVf
aW50cigpOwotIH0KLSAKLSBzdGF0aWMgdm9pZAogIHNpb2ludHIxKGNvbSkKICAJc3RydWN0
IGNvbV9zCSpjb207CiAgewotLS0gMTg3MCwxODc1IC0tLS0KKioqKioqKioqKioqKioqCioq
KiAyNTMzLDI1NTkgKioqKgogIAlpZiAodC0+Y19pc3BlZWQgPT0gMCkKICAJCXQtPmNfaXNw
ZWVkID0gdC0+Y19vc3BlZWQ7CiAgCiEgCS8qIGNvbnZlcnQgcGFyYW1ldGVycyB0byB0aGUg
Y29tIHN0cnVjdCBhbmQgdGhlIGRldmljZSAqLwogIAl1bml0ID0gREVWX1RPX1VOSVQodHAt
PnRfZGV2KTsKICAJY29tID0gY29tX2FkZHIodW5pdCk7CiAgCWlmIChjb20gPT0gTlVMTCkK
ICAJCXJldHVybiAoRU5PREVWKTsKLSAKLSAJLyogY2hlY2sgcmVxdWVzdGVkIHBhcmFtZXRl
cnMgKi8KLSAJaWYgKCEgY29tLT5vc2NpbGxhdG9yKQotIAkJY29tLT5vc2NpbGxhdG9yID0g
c2lvX2ZpbmRfZnJlcSAoY29tKTsKLSAJaWYgKHQtPmNfb3NwZWVkID09IDApCi0gCQlkaXZp
c29yID0gMDsKLSAJZWxzZSB7Ci0gCQlkaXZpc29yID0gQ09NRElWSVNPUiAoY29tLT5vc2Np
bGxhdG9yLCB0LT5jX29zcGVlZCk7Ci0gCQlpZiAoZGl2aXNvciA9PSAwKQotIAkJCWRpdmlz
b3IgPSAxOwotIAkJdC0+Y19vc3BlZWQgPSBDT01ESVZJU09SIChjb20tPm9zY2lsbGF0b3Is
IGRpdmlzb3IpOwotIAkJdC0+Y19pc3BlZWQgPSB0LT5jX29zcGVlZDsKLSAJfQotIAlpZiAo
ZGl2aXNvciA+IDAgJiYgdC0+Y19pc3BlZWQgIT0gdC0+Y19vc3BlZWQpCi0gCQlyZXR1cm4g
KEVJTlZBTCk7Ci0gCiAgCXMgPSBzcGx0dHkoKTsKICAJaWYgKGRpdmlzb3IgPT0gMCkKICAJ
CSh2b2lkKWNvbW1jdGwoY29tLCBUSU9DTV9EVFIsIERNQklDKTsJLyogaGFuZyB1cCBsaW5l
ICovCi0tLSAyMzM0LDIzNDkgLS0tLQogIAlpZiAodC0+Y19pc3BlZWQgPT0gMCkKICAJCXQt
PmNfaXNwZWVkID0gdC0+Y19vc3BlZWQ7CiAgCiEgCS8qIGNoZWNrIHJlcXVlc3RlZCBwYXJh
bWV0ZXJzICovCiEgCWRpdmlzb3IgPSB0dHNwZWVkdGFiKHQtPmNfb3NwZWVkLCBjb21zcGVl
ZHRhYik7CiEgCWlmIChkaXZpc29yIDwgMCB8fCAoZGl2aXNvciA+IDAgJiYgdC0+Y19pc3Bl
ZWQgIT0gdC0+Y19vc3BlZWQpKQohIAkJcmV0dXJuIChFSU5WQUwpOwohIAohIAkvKiBwYXJh
bWV0ZXJzIGFyZSBPSywgY29udmVydCB0aGVtIHRvIHRoZSBjb20gc3RydWN0IGFuZCB0aGUg
ZGV2aWNlICovCiAgCXVuaXQgPSBERVZfVE9fVU5JVCh0cC0+dF9kZXYpOwogIAljb20gPSBj
b21fYWRkcih1bml0KTsKICAJaWYgKGNvbSA9PSBOVUxMKQogIAkJcmV0dXJuIChFTk9ERVYp
OwogIAlzID0gc3BsdHR5KCk7CiAgCWlmIChkaXZpc29yID09IDApCiAgCQkodm9pZCljb21t
Y3RsKGNvbSwgVElPQ01fRFRSLCBETUJJQyk7CS8qIGhhbmcgdXAgbGluZSAqLwoqKioqKioq
KioqKioqKioKKioqIDMwODQsMzA5MCAqKioqCiAgCXVfY2hhcgltY3I7CiAgfTsKICAKISBz
dGF0aWMgc3BlZWRfdCBzaW9jbmdldHNwZWVkIF9fUCgoUG9ydF90KSk7CiAgc3RhdGljIHZv
aWQgc2lvY25jbG9zZQlfX1AoKHN0cnVjdCBzaW9jbnN0YXRlICpzcCwgUG9ydF90IGlvYmFz
ZSkpOwogIHN0YXRpYyB2b2lkIHNpb2Nub3BlbglfX1AoKHN0cnVjdCBzaW9jbnN0YXRlICpz
cCwgUG9ydF90IGlvYmFzZSwgaW50IHNwZWVkKSk7CiAgc3RhdGljIHZvaWQgc2lvY250eHdh
aXQJX19QKChQb3J0X3QgaW9iYXNlKSk7Ci0tLSAyODc0LDI4ODAgLS0tLQogIAl1X2NoYXIJ
bWNyOwogIH07CiAgCiEgc3RhdGljIHNwZWVkX3Qgc2lvY25nZXRzcGVlZCBfX1AoKFBvcnRf
dCwgc3RydWN0IHNwZWVkdGFiICopKTsKICBzdGF0aWMgdm9pZCBzaW9jbmNsb3NlCV9fUCgo
c3RydWN0IHNpb2Nuc3RhdGUgKnNwLCBQb3J0X3QgaW9iYXNlKSk7CiAgc3RhdGljIHZvaWQg
c2lvY25vcGVuCV9fUCgoc3RydWN0IHNpb2Nuc3RhdGUgKnNwLCBQb3J0X3QgaW9iYXNlLCBp
bnQgc3BlZWQpKTsKICBzdGF0aWMgdm9pZCBzaW9jbnR4d2FpdAlfX1AoKFBvcnRfdCBpb2Jh
c2UpKTsKKioqKioqKioqKioqKioqCioqKiAzMTMyLDMxMzkgKioqKgogICAqLwogIAogIHN0
YXRpYyBzcGVlZF90CiEgc2lvY25nZXRzcGVlZChpb2Jhc2UpCiAgCVBvcnRfdCBpb2Jhc2U7
CiAgewogIAlpbnQJY29kZTsKICAJdV9jaGFyCWRsYmg7Ci0tLSAyOTIyLDI5MzAgLS0tLQog
ICAqLwogIAogIHN0YXRpYyBzcGVlZF90CiEgc2lvY25nZXRzcGVlZChpb2Jhc2UsIHRhYmxl
KQogIAlQb3J0X3QgaW9iYXNlOworIAlzdHJ1Y3Qgc3BlZWR0YWIgKnRhYmxlOwogIHsKICAJ
aW50CWNvZGU7CiAgCXVfY2hhcglkbGJoOwoqKioqKioqKioqKioqKioKKioqIDMxNTAsMzE1
NiAqKioqCiAgCiAgCWNvZGUgPSBkbGJoIDw8IDggfCBkbGJsOwogIAohIAlyZXR1cm4gQ09N
RElWSVNPUiAoMTg0MzIwMCwgY29kZSk7CiAgfQogIAogIHN0YXRpYyB2b2lkCi0tLSAyOTQx
LDI5NTEgLS0tLQogIAogIAljb2RlID0gZGxiaCA8PCA4IHwgZGxibDsKICAKISAJZm9yICg7
IHRhYmxlLT5zcF9zcGVlZCAhPSAtMTsgdGFibGUrKykKISAJCWlmICh0YWJsZS0+c3BfY29k
ZSA9PSBjb2RlKQohIAkJCXJldHVybiAodGFibGUtPnNwX3NwZWVkKTsKISAKISAJcmV0dXJu
ICgwKTsJLyogZGlkbid0IG1hdGNoIGFueXRoaW5nIHNhbmUgKi8KICB9CiAgCiAgc3RhdGlj
IHZvaWQKKioqKioqKioqKioqKioqCioqKiAzMTgxLDMxODcgKioqKgogIAkgKiBkYXRhIGlu
cHV0IHJlZ2lzdGVyLiAgVGhpcyBhbHNvIHJlZHVjZXMgdGhlIGVmZmVjdHMgb2YgdGhlCiAg
CSAqIFVNQzg2NjlGIGJ1Zy4KICAJICovCiEgCWRpdmlzb3IgPSBDT01ESVZJU09SICgxODQz
MjAwLCBzcGVlZCk7CiAgCWRsYmwgPSBkaXZpc29yICYgMHhGRjsKICAJaWYgKHNwLT5kbGJs
ICE9IGRsYmwpCiAgCQlvdXRiKGlvYmFzZSArIGNvbV9kbGJsLCBkbGJsKTsKLS0tIDI5NzYs
Mjk4MiAtLS0tCiAgCSAqIGRhdGEgaW5wdXQgcmVnaXN0ZXIuICBUaGlzIGFsc28gcmVkdWNl
cyB0aGUgZWZmZWN0cyBvZiB0aGUKICAJICogVU1DODY2OUYgYnVnLgogIAkgKi8KISAJZGl2
aXNvciA9IHR0c3BlZWR0YWIoc3BlZWQsIGNvbXNwZWVkdGFiKTsKICAJZGxibCA9IGRpdmlz
b3IgJiAweEZGOwogIAlpZiAoc3AtPmRsYmwgIT0gZGxibCkKICAJCW91dGIoaW9iYXNlICsg
Y29tX2RsYmwsIGRsYmwpOwoqKioqKioqKioqKioqKioKKioqIDMyNjMsMzI2OSAqKioqCiAg
CQkJaW9iYXNlID0gcG9ydDsKICAJCQlzID0gc3BsdHR5KCk7CiAgCQkJaWYgKGJvb3Rob3d0
byAmIFJCX1NFUklBTCkgewohIAkJCQlib290X3NwZWVkID0gc2lvY25nZXRzcGVlZChpb2Jh
c2UpOwogIAkJCQlpZiAoYm9vdF9zcGVlZCkKICAJCQkJCWNvbWRlZmF1bHRyYXRlID0gYm9v
dF9zcGVlZDsKICAJCQl9Ci0tLSAzMDU4LDMwNjQgLS0tLQogIAkJCWlvYmFzZSA9IHBvcnQ7
CiAgCQkJcyA9IHNwbHR0eSgpOwogIAkJCWlmIChib290aG93dG8gJiBSQl9TRVJJQUwpIHsK
ISAJCQkJYm9vdF9zcGVlZCA9IHNpb2NuZ2V0c3BlZWQoaW9iYXNlLCBjb21zcGVlZHRhYik7
CiAgCQkJCWlmIChib290X3NwZWVkKQogIAkJCQkJY29tZGVmYXVsdHJhdGUgPSBib290X3Nw
ZWVkOwogIAkJCX0KKioqKioqKioqKioqKioqCioqKiAzNTI3LDM1MzQgKioqKgogIAogIERS
SVZFUl9NT0RVTEUoc2lvLCBpc2EsIHNpb19pc2FfZHJpdmVyLCBzaW9fZGV2Y2xhc3MsIDAs
IDApOwogICNpZiBOQ0FSRCA+IDAKISBEUklWRVJfTU9EVUxFKHNpbywgcGNjYXJkLCBzaW9f
cGNjYXJkX2RyaXZlciwgc2lvX3BjY2FyZF9kZXZjbGFzcywgMCwgMCk7CiAgI2VuZGlmCiAg
I2lmIE5QQ0kgPiAwCiEgRFJJVkVSX01PRFVMRShzaW8sIHBjaSwgc2lvX3BjaV9kcml2ZXIs
IHNpb19wY2lfZGV2Y2xhc3MsIDAsIDApOwogICNlbmRpZgotLS0gMzMyMiwzMzI5IC0tLS0K
ICAKICBEUklWRVJfTU9EVUxFKHNpbywgaXNhLCBzaW9faXNhX2RyaXZlciwgc2lvX2RldmNs
YXNzLCAwLCAwKTsKICAjaWYgTkNBUkQgPiAwCiEgRFJJVkVSX01PRFVMRShzaW8sIHBjY2Fy
ZCwgc2lvX3BjY2FyZF9kcml2ZXIsIHNpb19kZXZjbGFzcywgMCwgMCk7CiAgI2VuZGlmCiAg
I2lmIE5QQ0kgPiAwCiEgRFJJVkVSX01PRFVMRShzaW8sIHBjaSwgc2lvX3BjaV9kcml2ZXIs
IHNpb19kZXZjbGFzcywgMCwgMCk7CiAgI2VuZGlmCg==

--==_Exmh_-4833217230
Content-Type: text/plain ; name="dmesg"; charset=us-ascii
Content-Description: dmesg
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="dmesg"

Q29weXJpZ2h0IChjKSAxOTkyLTIwMDEgVGhlIEZyZWVCU0QgUHJvamVjdC4KQ29weXJpZ2h0
IChjKSAxOTc5LCAxOTgwLCAxOTgzLCAxOTg2LCAxOTg4LCAxOTg5LCAxOTkxLCAxOTkyLCAx
OTkzLCAxOTk0CglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlh
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgpGcmVlQlNEIDQuNC0wMS0xMi0yMDAxLVNUQUJMRSAj
MDogVGh1IEphbiAxMCAxNzozMjoyOCBFRVQgMjAwMgogICAgcm9vdEBmcmVlYnNkLmtjbS5i
ZzovdXNyL3NyYy9zeXMvY29tcGlsZS9HRU5FUklDClRpbWVjb3VudGVyICJpODI1NCIgIGZy
ZXF1ZW5jeSAxMTkzMTgyIEh6CkNQVTogUGVudGl1bSBJSUkvUGVudGl1bSBJSUkgWGVvbi9D
ZWxlcm9uICg3NDYuNzYtTUh6IDY4Ni1jbGFzcyBDUFUpCiAgT3JpZ2luID0gIkdlbnVpbmVJ
bnRlbCIgIElkID0gMHg2ODMgIFN0ZXBwaW5nID0gMwogIEZlYXR1cmVzPTB4Mzg3ZmJmZjxG
UFUsVk1FLERFLFBTRSxUU0MsTVNSLFBBRSxNQ0UsQ1g4LEFQSUMsU0VQLE1UUlIsUEdFLE1D
QSxDTU9WLFBBVCxQU0UzNixQTixNTVgsRlhTUixTU0U+CnJlYWwgbWVtb3J5ICA9IDI2ODM2
OTkyMCAoMjYyMDgwSyBieXRlcykKYXZhaWwgbWVtb3J5ID0gMjU2NjY3NjQ4ICgyNTA2NTJL
IGJ5dGVzKQpQcmVsb2FkZWQgZWxmIGtlcm5lbCAia2VybmVsIiBhdCAweGMwNDg5MDAwLgpQ
ZW50aXVtIFBybyBNVFJSIHN1cHBvcnQgZW5hYmxlZAptZDA6IE1hbGxvYyBkaXNrClVzaW5n
ICRQSVIgdGFibGUsIDEyIGVudHJpZXMgYXQgMHhjMDBmZGYwMApucHgwOiA8bWF0aCBwcm9j
ZXNzb3I+IG9uIG1vdGhlcmJvYXJkCm5weDA6IElOVCAxNiBpbnRlcmZhY2UKcGNpYjA6IDxJ
bnRlbCA4MjQ0M0dYIGhvc3QgdG8gUENJIGJyaWRnZT4gb24gbW90aGVyYm9hcmQKcGNpMDog
PFBDSSBidXM+IG9uIHBjaWIwCnBjaWIyOiA8SW50ZWwgODI0NDNHWCAoNDQwIEdYKSBQQ0kt
UENJIChBR1ApIGJyaWRnZT4gYXQgZGV2aWNlIDEuMCBvbiBwY2kwCnBjaTE6IDxQQ0kgYnVz
PiBvbiBwY2liMgpwY2liMzogPFBDSSB0byBQQ0kgYnJpZGdlICh2ZW5kb3I9MTAxMSBkZXZp
Y2U9MDAyMyk+IGF0IGRldmljZSAxNS4wIG9uIHBjaTEKcGNpMjogPFBDSSBidXM+IG9uIHBj
aWIzCmFoYzA6IDxBZGFwdGVjIGFpYzc4OTYvOTcgVWx0cmEyIFNDU0kgYWRhcHRlcj4gcG9y
dCAweDIwMDAtMHgyMGZmIG1lbSAweGY0MTAwMDAwLTB4ZjQxMDBmZmYgaXJxIDExIGF0IGRl
dmljZSAxMi4wIG9uIHBjaTAKYWljNzg5Ni85NzogVWx0cmEyIFdpZGUgQ2hhbm5lbCBBLCBT
Q1NJIElkPTcsIDMyLzI1NSBTQ0JzCmFoYzE6IDxBZGFwdGVjIGFpYzc4OTYvOTcgVWx0cmEy
IFNDU0kgYWRhcHRlcj4gcG9ydCAweDI0MDAtMHgyNGZmIG1lbSAweGY0MTAxMDAwLTB4ZjQx
MDFmZmYgaXJxIDExIGF0IGRldmljZSAxMi4xIG9uIHBjaTAKYWljNzg5Ni85NzogVWx0cmEy
IFdpZGUgQ2hhbm5lbCBCLCBTQ1NJIElkPTcsIDMyLzI1NSBTQ0JzCnNpb3BjaTA6IDxNb3hh
IFRlY2hub2xvZ2llcyBDMTY4SC9QQ0k+IHBvcnQgMHgyYzIwLTB4MmMyZiwweDI4ODAtMHgy
OGJmLDB4MjgwMC0weDI4N2YgaXJxIDUgYXQgZGV2aWNlIDEzLjAgb24gcGNpMApzaW80OiBj
b3VsZG4ndCBtYXAgcG9ydHMvbWVtb3J5CmRldmljZV9wcm9iZV9hbmRfYXR0YWNoOiBzaW9w
Y2kwIGF0dGFjaCByZXR1cm5lZCA2CmZ4cDA6IDxJbnRlbCBQcm8gMTAvMTAwQi8xMDArIEV0
aGVybmV0PiBwb3J0IDB4MjhjMC0weDI4ZmYgbWVtIDB4ZjQwMDAwMDAtMHhmNDBmZmZmZiww
eGY0MTAyMDAwLTB4ZjQxMDJmZmYgaXJxIDEwIGF0IGRldmljZSAxNC4wIG9uIHBjaTAKZnhw
MDogRXRoZXJuZXQgYWRkcmVzcyAwMDpkMDpiNzphOTo2ZDo5MQppbnBoeTA6IDxpODI1NTUg
MTAvMTAwIG1lZGlhIGludGVyZmFjZT4gb24gbWlpYnVzMAppbnBoeTA6ICAxMGJhc2VULCAx
MGJhc2VULUZEWCwgMTAwYmFzZVRYLCAxMDBiYXNlVFgtRkRYLCBhdXRvCmlzYWIwOiA8SW50
ZWwgODIzNzFBQiBQQ0kgdG8gSVNBIGJyaWRnZT4gYXQgZGV2aWNlIDE4LjAgb24gcGNpMApp
c2EwOiA8SVNBIGJ1cz4gb24gaXNhYjAKYXRhcGNpMDogPEludGVsIFBJSVg0IEFUQTMzIGNv
bnRyb2xsZXI+IHBvcnQgMHgyYzMwLTB4MmMzZiBhdCBkZXZpY2UgMTguMSBvbiBwY2kwCmF0
YTA6IGF0IDB4MWYwIGlycSAxNCBvbiBhdGFwY2kwCmF0YTE6IGF0IDB4MTcwIGlycSAxNSBv
biBhdGFwY2kwCnVoY2kwOiA8SW50ZWwgODIzNzFBQi9FQiAoUElJWDQpIFVTQiBjb250cm9s
bGVyPiBwb3J0IDB4MmMwMC0weDJjMWYgaXJxIDEwIGF0IGRldmljZSAxOC4yIG9uIHBjaTAK
dXNiMDogPEludGVsIDgyMzcxQUIvRUIgKFBJSVg0KSBVU0IgY29udHJvbGxlcj4gb24gdWhj
aTAKdXNiMDogVVNCIHJldmlzaW9uIDEuMAp1aHViMDogSW50ZWwgVUhDSSByb290IGh1Yiwg
Y2xhc3MgOS8wLCByZXYgMS4wMC8xLjAwLCBhZGRyIDEKdWh1YjA6IDIgcG9ydHMgd2l0aCAy
IHJlbW92YWJsZSwgc2VsZiBwb3dlcmVkCmNoaXAxOiA8SW50ZWwgODIzNzFBQiBQb3dlciBt
YW5hZ2VtZW50IGNvbnRyb2xsZXI+IHBvcnQgMHgxMDQwLTB4MTA0ZiBhdCBkZXZpY2UgMTgu
MyBvbiBwY2kwCnBjaTA6IDxDaXJydXMgTG9naWMgR0Q1NDgwIFNWR0EgY29udHJvbGxlcj4g
YXQgMjAuMApwY2liMTogPEludGVsIDgyNDQzR1ggaG9zdCB0byBBR1AgYnJpZGdlPiBvbiBt
b3RoZXJib2FyZApwY2kzOiA8UENJIGJ1cz4gb24gcGNpYjEKb3JtMDogPE9wdGlvbiBST01z
PiBhdCBpb21lbSAweGMwMDAwLTB4YzdmZmYsMHhjODAwMC0weGNkN2ZmLDB4Y2Q4MDAtMHhj
ZTdmZiBvbiBpc2EwCmZkYzA6IDxORUMgNzIwNjVCIG9yIGNsb25lPiBhdCBwb3J0IDB4M2Yw
LTB4M2Y1LDB4M2Y3IGlycSA2IGRycSAyIG9uIGlzYTAKZmRjMDogRklGTyBlbmFibGVkLCA4
IGJ5dGVzIHRocmVzaG9sZApmZDA6IDwxNDQwLUtCIDMuNSIgZHJpdmU+IG9uIGZkYzAgZHJp
dmUgMAphdGtiZGMwOiA8S2V5Ym9hcmQgY29udHJvbGxlciAoaTgwNDIpPiBhdCBwb3J0IDB4
NjAsMHg2NCBvbiBpc2EwCmF0a2JkMDogPEFUIEtleWJvYXJkPiBmbGFncyAweDEgaXJxIDEg
b24gYXRrYmRjMAprYmQwIGF0IGF0a2JkMApwc20wOiA8UFMvMiBNb3VzZT4gaXJxIDEyIG9u
IGF0a2JkYzAKcHNtMDogbW9kZWwgR2VuZXJpYyBQUy8yIG1vdXNlLCBkZXZpY2UgSUQgMAp2
Z2EwOiA8R2VuZXJpYyBJU0EgVkdBPiBhdCBwb3J0IDB4M2MwLTB4M2RmIGlvbWVtIDB4YTAw
MDAtMHhiZmZmZiBvbiBpc2EwCnNjMDogPFN5c3RlbSBjb25zb2xlPiBhdCBmbGFncyAweDEw
MCBvbiBpc2EwCnNjMDogVkdBIDwxNiB2aXJ0dWFsIGNvbnNvbGVzLCBmbGFncz0weDMwMD4K
c2lvMCBhdCBwb3J0IDB4M2Y4LTB4M2ZmIGlycSA0IGZsYWdzIDB4MTAgb24gaXNhMApzaW8w
OiB0eXBlIDE2NTUwQQpzaW8xIGF0IHBvcnQgMHgyZjgtMHgyZmYgaXJxIDMgb24gaXNhMApz
aW8xOiB0eXBlIDE2NTUwQQpwcGMwOiA8UGFyYWxsZWwgcG9ydD4gYXQgcG9ydCAweDM3OC0w
eDM3ZiBpcnEgNyBvbiBpc2EwCnBwYzA6IEdlbmVyaWMgY2hpcHNldCAoRUNQL1BTMi9OSUJC
TEUpIGluIENPTVBBVElCTEUgbW9kZQpwcGMwOiBGSUZPIHdpdGggMTYvMTYvOCBieXRlcyB0
aHJlc2hvbGQKcGxpcDA6IDxQTElQIG5ldHdvcmsgaW50ZXJmYWNlPiBvbiBwcGJ1czAKbHB0
MDogPFByaW50ZXI+IG9uIHBwYnVzMApscHQwOiBJbnRlcnJ1cHQtZHJpdmVuIHBvcnQKcHBp
MDogPFBhcmFsbGVsIEkvTz4gb24gcHBidXMwCmFkMDogNjE0OU1CIDxRVUFOVFVNIEZJUkVC
QUxMIENYNi40QT4gWzEzMzI4LzE1LzYzXSBhdCBhdGEwLW1hc3RlciBVRE1BMzMKYWNkMDog
Q0RST00gPFNPTlkgQ0QtUk9NIENEVTQ4MjE+IGF0IGF0YTEtbWFzdGVyIHVzaW5nIFBJTzQK
V2FpdGluZyAxNSBzZWNvbmRzIGZvciBTQ1NJIGRldmljZXMgdG8gc2V0dGxlCk1vdW50aW5n
IHJvb3QgZnJvbSB1ZnM6L2Rldi9hZDBzMWEKZGEwIGF0IGFoYzAgYnVzIDAgdGFyZ2V0IDEg
bHVuIDAKZGEwOiA8SUJNIEREWVMtVDE4MzUwTiBTOTNFPiBGaXhlZCBEaXJlY3QgQWNjZXNz
IFNDU0ktMyBkZXZpY2UgCmRhMDogODAuMDAwTUIvcyB0cmFuc2ZlcnMgKDQwLjAwME1Ieiwg
b2Zmc2V0IDYzLCAxNmJpdCksIFRhZ2dlZCBRdWV1ZWluZyBFbmFibGVkCmRhMDogMTc1MDFN
QiAoMzU4NDM2NzAgNTEyIGJ5dGUgc2VjdG9yczogMjU1SCA2M1MvVCAyMjMxQykKZGExIGF0
IGFoYzAgYnVzIDAgdGFyZ2V0IDIgbHVuIDAKZGExOiA8SUJNIEREWVMtVDE4MzUwTiBTOTNF
PiBGaXhlZCBEaXJlY3QgQWNjZXNzIFNDU0ktMyBkZXZpY2UgCmRhMTogODAuMDAwTUIvcyB0
cmFuc2ZlcnMgKDQwLjAwME1Ieiwgb2Zmc2V0IDYzLCAxNmJpdCksIFRhZ2dlZCBRdWV1ZWlu
ZyBFbmFibGVkCmRhMTogMTc1MDFNQiAoMzU4NDM2NzAgNTEyIGJ5dGUgc2VjdG9yczogMjU1
SCA2M1MvVCAyMjMxQykKY2QwIGF0IGFoYzEgYnVzIDAgdGFyZ2V0IDMgbHVuIDAKY2QwOiA8
SFAgQ0QtV3JpdGVyKyA5MjAwIDEuMGM+IFJlbW92YWJsZSBDRC1ST00gU0NTSS00IGRldmlj
ZSAKY2QwOiAxMC4wMDBNQi9zIHRyYW5zZmVycyAoMTAuMDAwTUh6LCBvZmZzZXQgMTUpCmNk
MDogQXR0ZW1wdCB0byBxdWVyeSBkZXZpY2Ugc2l6ZSBmYWlsZWQ6IE5PVCBSRUFEWSwgTWVk
aXVtIG5vdCBwcmVzZW50Cg==

--==_Exmh_-4833217230
Content-Type: text/plain; charset=us-ascii


Stoian Mishinev             Telephone:  (359) 32 621250
Digital Systems Ltd.        Mobile:     (359) 87 425785
8 Bulair Str.               Fax:        (359) 32 630119
Plovdiv 4000

Email:    mishinev@digsys.bg
Website:  http://www.digsys.bg

--==_Exmh_-4833217230--



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200201101634.SAA20381>