Subject: Re: Wscons in NetBSD 3
To: Victor Lagerkvist <plumsaren@gmail.com>
From: Michael Lorenz <macallan@netbsd.org>
List: port-sparc
Date: 01/29/2006 10:35:59
--Signature_Sun__29_Jan_2006_10_35_59_-0500_kAfIwtaenOU5uYw2
Content-Type: multipart/mixed;
 boundary=Multipart_Sun__29_Jan_2006_10_35_59_-0500_vdkBkIu589BgMRyH

--Multipart_Sun__29_Jan_2006_10_35_59_-0500_vdkBkIu589BgMRyH
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Hello,

> > Hmm, I'm not sure how keymaps are handled by wscons, especially with
> > Sun keyboards - all of mine use the standard US layout. It may well
> > be that we don't have a us.dvorak layout definition for Sun
> > keyboards.
>=20
> Well then, I guess I have to create a layout by myself. Do you know
> where the standard keyboard layouts are located in the system? If I
> have the US layout as a reference it should be a simple task...

looks like /src/sys/dev/sun/wskbdmap_sun.c is the right starting point.

> > It is :)
> >
> > > dbri0 at sbus0 slot 2 offset 0x10000 level 9: rev e
> > > dbri0: onboard CS4215 detected
> > > dbri0: cs4215 ver 1 found at offset 0
> > > audio0 at dbri0: half duplex, mmap
> >
> > Does audio work for you?
> > The driver is fairly new and output-only so far.
>=20
> I didn't even know that it had a sound card :)

Well, it's part of the ISDN controller.=20

> Are there any integrated speakers?

I /think/ there are but I'm not at all sure, the last time I've seen an
LX in real life was about 10 years ago.

> Because I don't think I have any external speakers that fits the bill
> here.

Headphones?=20

> Also, the "system beep" doesn't work with the new kernel, but I
> don't know whether that's related to the sound card or not.

Probably wscons fallout, I'm not sure how the old console code produced
the system beep, certainly not by talking to the audio controller.

> Also, might I ask what you did to get a working kernel with wscons (in
> case I have to do it myself in the future). Is it a standard
> current-kernel?

Mostly.
I have some local changes here ( as you can tell by spurious debugging
output in dmesg ). See attached kernel config - all I did was to take a
config for a Classic, change a few things to fit the LX and built the
kernel from scratch ( as in - no leftover .o files from previous builds
)

have fun
Michael

--Multipart_Sun__29_Jan_2006_10_35_59_-0500_vdkBkIu589BgMRyH
Content-Type: application/octet-stream; name=CLASSIC
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=CLASSIC

IyAJJE5ldEJTRDogVEFEUE9MRTNHWCx2IDEuMjYgMjAwNS8wMi8yNSAxMzo0Njo1MSBzaW1vbmIg
RXhwICQKCmluY2x1ZGUgImFyY2gvc3BhcmMvY29uZi9zdGQuc3BhcmMiCgpvcHRpb25zIAlJTkNM
VURFX0NPTkZJR19GSUxFCSMgZW1iZWQgY29uZmlnIGZpbGUgaW4ga2VybmVsIGJpbmFyeQoKbWF4
dXNlcnMJMzIKCiMjIFN5c3RlbSBrZXJuZWwgY29uZmlndXJhdGlvbi4gIFNlZSBvcHRpb25zKDQp
IGZvciBtb3JlIGRldGFpbC4KCm1ha2VvcHRpb25zCQlDQ1BVT1BUUz0iLW1jcHU9djggLW10dW5l
PXY4IgoKIyBPcHRpb25zIGZvciB2YXJpYW50cyBvZiB0aGUgU3VuIFNQQVJDIGFyY2hpdGVjdXJl
LgojIFdlIGN1cnJlbnRseSBzdXBwb3J0IHRocmVlIGFyY2hpdGVjdHVyZSB0eXBlczsgYXQgbGVh
c3Qgb25lIGlzIHJlcXVpcmVkLgpvcHRpb25zIAlTVU40TQkJIyBzdW40bSAtIFNTMTAsIFNTMjAs
IENsYXNzaWMsIGV0Yy4KCiMjIFN5c3RlbSBvcHRpb25zIHNwZWNpZmljIHRvIHRoZSBzcGFyYyBt
YWNoaW5lIHR5cGUKCiMgQmxpbmsgdGhlIHBvd2VyIExFRCBvbiBzb21lIG1hY2hpbmVzIHRvIGlu
ZGljYXRlIHRoZSBzeXN0ZW0gbG9hZC4KI29wdGlvbnMgCUJMSU5LCgojIyBVc2UgYSBmYXN0ZXIg
Y29uc29sZSB0aGFuIHRoZSBQUk9NJ3Mgc2xvdyBkcmF3aW5nIHJvdXRpbmVzLiAgTm90IG5lZWRl
ZAojIyBmb3IgaGVhZGxlc3MgKG5vIGZyYW1lYnVmZmVyKSBtYWNoaW5lcy4KI29wdGlvbnMgCVJB
U1RFUkNPTlNPTEUJCSMgZmFzdCByYXN0ZXJvcCBjb25zb2xlCgojb3B0aW9ucyAJV1NFTVVMX1NV
TgpvcHRpb25zIAlXU0VNVUxfVlQxMDAKb3B0aW9ucyAJV1NESVNQTEFZX0NPTVBBVF9SQVdLQkQJ
CSMgY2FuIGdldCByYXcgc2NhbmNvZGVzCm9wdGlvbnMgCVdTRElTUExBWV9DVVNUT01fT1VUUFVU
CQkjIHdzY29uc2N0bCg4KQoKb3B0aW9ucyAJV1NfREVGQVVMVF9GRz1XU0NPTF9CTEFDSwpvcHRp
b25zIAlXU19ERUZBVUxUX0JHPVdTQ09MX0xJR0hUX1dISVRFCm9wdGlvbnMgCVdTX0tFUk5FTF9G
Rz1XU0NPTF9HUkVFTgpvcHRpb25zIAlXU19LRVJORUxfQkc9V1NDT0xfTElHSFRfV0hJVEUKCm9w
dGlvbnMgCVdTRElTUExBWV9DT01QQVRfUENWVAkJIyBlbXVsYXRlIHNvbWUgaW9jdGxzCm9wdGlv
bnMgCVdTRElTUExBWV9DT01QQVRfU1lTQ09OUwkjIGVtdWxhdGUgc29tZSBpb2N0bHMKb3B0aW9u
cyAJV1NESVNQTEFZX0NPTVBBVF9VU0wJCSMgVlQgaGFuZGxpbmcKCm9wdGlvbnMgCVdTRElTUExB
WV9ERUZBVUxUU0NSRUVOUz0xCgpvcHRpb25zCQlTUEFSQ0JPT0tfQ01ECQkjIGVuYWJsZSBzY3Jl
ZW4gc3dpdGNoaW5nIHdpdGggbEFsdC1Gbgojb3B0aW9ucyAJRk9OVF9HQUxMQU5UMTJ4MjIJIyB0
aGUgY29uc29sZSBmb250Cm9wdGlvbnMgCUZPTlRfQk9MRDh4MTYJCSMgYSBzb21ld2hhdCBzbWFs
bGVyIGZvbnQKCiMjIyMgU3lzdGVtIG9wdGlvbnMgdGhhdCBhcmUgdGhlIHNhbWUgZm9yIGFsbCBw
b3J0cwoKIyMgUm9vdCBkZXZpY2UgY29uZmlndXJhdGlvbjogY2hhbmdlIHRoZSA/J3MgaWYgeW91
IGFyZSBnb2luZyB0byB1c2UgYQojIyBub25zdGFuZGFyZCByb290IHBhcnRpdGlvbiAob3RoZXIg
dGhhbiB3aGVyZSB0aGUga2VybmVsIGlzIGJvb3RlZCBmcm9tKQojIyBhbmQvb3Igbm9uc3RhbmRh
cmQgcm9vdCB0eXBlIChub3QgZmZzIG9yIG5mcykuICBOb3JtYWxseSB0aGlzIGNhbiBiZQojIyBh
dXRvbWFnaWNhbGx5IGRldGVybWluZWQgYXQgYm9vdCB0aW1lLgoKY29uZmlnCQluZXRic2QJcm9v
dCBvbiA/IHR5cGUgPwoKIyMgU3lzdGVtIGNhbGwgdHJhY2luZyAoc2VlIGt0cmFjZSgxKSkuCm9w
dGlvbnMgCUtUUkFDRQoKIyMgQ29sbGVjdCBzdGF0aXN0aWNzIG9uIGtlcm5lbCBtYWxsb2MncyBh
bmQgZnJlZSdzLiAgVGhpcyBkb2VzIGhhdmUgYQojIyBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBo
aXQgb24gc2xvd2VyIG1hY2hpbmVzLCBzbyBpdCBpcyBpbnRlbmRlZCBmb3IKIyMgZGlhZ25vc3Rp
YyB1c2Ugb25seS4KI29wdGlvbnMgCUtNRU1TVEFUUwoKIyMgU3lzdGVtIFYgY29tcGF0aWJsZSBJ
UEMgc3Vic3lzdGVtLiAgKG1zZ2N0bCgyKSwgc2VtY3RsKDIpLCBhbmQgc2htY3RsKDIpKQpvcHRp
b25zIAlTWVNWTVNHCQkjIFN5c3RlbSBWIG1lc3NhZ2UgcXVldWVzCm9wdGlvbnMgCVNZU1ZTRU0J
CSMgU3lzdGVtIFYgc2VtYXBob3JlcwpvcHRpb25zIAlTWVNWU0hNCQkjIFN5c3RlbSBWIHNoYXJl
ZCBtZW1vcnkKI29wdGlvbnMgCVNITU1BWFBHUz0xMDI0CSMgMTAyNCBwYWdlcyBpcyB0aGUgZGVm
YXVsdAoKIyMgTG9hZGFibGUga2VybmVsIG1vZHVsZSBzdXBwb3J0OyBzdGlsbCB1bmRlciBkZXZl
bG9wbWVudC4Kb3B0aW9ucyAJTEtNCgpvcHRpb25zIAlVU0VSQ09ORgkjIHVzZXJjb25mKDQpIHN1
cHBvcnQKI29wdGlvbnMJUElQRV9TT0NLRVRQQUlSCSMgc21hbGxlciwgYnV0IHNsb3dlciBwaXBl
KDIpCiNvcHRpb25zIAlTWVNDVExfSU5DTFVERV9ERVNDUgkjIEluY2x1ZGUgc3lzY3RsIGRlc2Ny
aXB0aW9ucyBpbiBrZXJuZWwKCiMjIE5GUyBib290IG9wdGlvbnM7IHRyaWVzIERIQ1AvQk9PVFAg
dGhlbiBCT09UUEFSQU0KI29wdGlvbnMgCU5GU19CT09UX0JPT1RQQVJBTQojb3B0aW9ucyAJTkZT
X0JPT1RfQk9PVFAKb3B0aW9ucyAJTkZTX0JPT1RfREhDUAoKIyMjIyBEZWJ1Z2dpbmcgb3B0aW9u
cwoKIyMgVGhlIEREQiBpbi1rZXJuZWwgZGVidWdnZXIgcnVucyBhdCBwYW5pYyAodW5sZXNzIERE
Ql9PTlBBTklDPTApLCBvciBhdAojIyBzZXJpYWwgY29uc29sZSBicmVhayBvciBrZXlib2FyZCBy
ZXNldCwgd2hlcmUgdGhlIFBST00gd291bGQgbm9ybWFsbHkKIyMgaW50ZXJjZXB0LiAgRERCX0hJ
U1RPUllfU0laRSBhZGRzIHVwL2Rvd24gYXJyb3cgY29tbWFuZCBoaXN0b3J5LgpvcHRpb25zIAlE
REIJCQkjIGtlcm5lbCBkeW5hbWljIGRlYnVnZ2VyCiNvcHRpb25zIAlEREJfSElTVE9SWV9TSVpF
PTEwMAkjIGVuYWJsZSBoaXN0b3J5IGVkaXRpbmcgaW4gRERCCiNvcHRpb25zIAlEREJfT05QQU5J
Qz0xCQkjIHNlZSBhbHNvIHN5c2N0bCg4KTogYGRkYi5vbnBhbmljJwoKIyMgWW91IG1heSBhbHNv
IHVzZSBnZGIsIG9uIGFub3RoZXIgY29tcHV0ZXIgY29ubmVjdGVkIHRvIHRoaXMgbWFjaGluZSBv
dmVyCiMjIGEgc2VyaWFsIHBvcnQuICBCb3RoIEtHREJfREVWIGFuZCBLR0RCX0RFVlJBVEUgc2hv
dWxkIGJlIHNwZWNpZmllZDsKIyMgS0dEQl9ERVYgaXMgYSBkZXZfdCBlbmNvZGVkIGRldmljZSBu
dW1iZXIgb2YgdGhlIHNlcmlhbCBwb3J0IHRvIHVzZS4KIyMgKDB4YzAxID0gdHR5YSwgMHhjMDIg
PSB0dHliLikKI29wdGlvbnMgCUtHREIJCQkjIHN1cHBvcnQgZm9yIGtlcm5lbCBnZGIKI29wdGlv
bnMgCUtHREJfREVWPTB4YzAxCQkjIGtnZGIgZGV2aWNlIG51bWJlciAodGhpcyBpcyBgdHR5Yicp
CiNvcHRpb25zIAlLR0RCX0RFVlJBVEU9Mzg0MDAJIyBiYXVkIHJhdGUKCgojIyBDb21waWxlIHRo
ZSBrZXJuZWwgd2l0aCBkZWJ1Z2dpbmcgc3ltYm9scyAoYG5ldGJzZC5nZGInIGlzIHRoZSBkZWJ1
ZyBmaWxlKSwKIyMgc3VjaCB0aGF0IGdkYigxKSBjYW4gYmUgdXNlZCBvbiBhIGtlcm5lbCBjb3Jl
ZHVtcC4KCiNtYWtlb3B0aW9ucwlERUJVRz0iLWciCgoKIyMgQWRkcyBjb2RlIHRvIHRoZSBrZXJu
ZWwgdGhhdCBkb2VzIGludGVybmFsIGNvbnNpc3RlbmN5IGNoZWNrcywgYW5kIHdpbGwKIyMgY2F1
c2UgdGhlIGtlcm5lbCB0byBwYW5pYyBpZiBjb3JydXB0aW9uIG9mIGludGVybmFsIGRhdGEgc3Ry
dWN0dXJlcwojIyBpcyBkZXRlY3RlZC4KI29wdGlvbnMgCURJQUdOT1NUSUMJIyBleHRyYSBrZXJu
ZWwgc2FuaXR5IGNoZWNraW5nCgojIyBFbmFibGUgKHBvc3NpYmx5IGV4cGVuc2l2ZSkgZGVidWdn
aW5nIGNvZGUgdGhhdCBtYXkgYWxzbyBkaXNwbGF5IG1lc3NhZ2VzCiMjIG9uIHRoZSBzeXN0ZW0g
Y29uc29sZQojb3B0aW9ucyAJREVCVUcKCiMjIE1ha2UgU0NTSSBlcnJvciBtZXNzYWdlcyBtb3Jl
IHZlcmJvc2Ugd2hlbiBleHBsYWluaW5nIHRoZWlyIG1lYW5pbmdzLgpvcHRpb25zIAlTQ1NJVkVS
Qk9TRQoKIyMgYElOU0VDVVJFJyB0dXJucyBvZmYgdGhlIGtlcm5lbCBzZWN1cml0eSBsZXZlbCAo
c2VjdXJlbGV2ZWwgPSAwIGFsd2F5cykuCiMjIFRoaXMgYWxsb3dzIHdyaXRpbmcgdG8gL2Rldi9t
ZW0sIGxvYWRpbmcga2VybmVsIG1vZHVsZXMgd2hpbGUgbXVsdGktdXNlciwKIyMgYW5kIG90aGVy
IGluc2VjdXJpdGllcyBnb29kIG9ubHkgZm9yIGRldmVsb3BtZW50IHdvcmsuICBEbyBub3QgdXNl
IHRoaXMKIyMgb3B0aW9uIG9uIGEgcHJvZHVjdGlvbiBtYWNoaW5lLgpvcHRpb25zIAlJTlNFQ1VS
RQoKIyMgYEZEU0NSSVBUUycgYWxsb3dzIG5vbi1yZWFkYWJsZSBidXQgZXhlY3V0YWJsZSBzY3Jp
cHRzIGJ5IHByb3ZpZGluZyBhCiMjIHByZS1vcGVuZWQgb3BhcXVlIGZpbGUgdG8gdGhlIHNjcmlw
dCBpbnRlcnByZXRlci4gIGBTRVRVSURTQ1JJUFRTJywKIyMgd2hpY2ggaW1wbGllcyBGRFNDUklQ
VFMsIGFsbG93cyBzY3JpcHRzIHRvIGJlIHNldC11c2VyLWlkIHVzaW5nIHRoZSBzYW1lCiMjIG9w
YXF1ZSBmaWxlIG1lY2hhbmlzbS4gIFBlcmwgY2FsbHMgdGhpcyAic2VjdXJlIHNldHVpZCBzY3Jp
cHRzLiIKCiNvcHRpb25zIAlGRFNDUklQVFMKI29wdGlvbnMgCVNFVFVJRFNDUklQVFMKCiMjIE9w
dGlvbnMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBwcmV2aW91cyByZWxlYXNlcyBmb3JlaWduIHN5
c3RlbSBiaW5hcmllcy4KIyMgSW4gdGhlIGNhc2VzIG9mIENPTVBBVF9TVU5PUyBhbmQgQ09NUEFU
X1NWUjQsIHlvdSBtYXkgbmVlZCB0byBzZXQgdXAKIyMgYWRkaXRpb25hbCB1c2VyLWxldmVsIHV0
aWxpdGllcyBvciBzeXN0ZW0gY29uZmlndXJhdGlvbiBmaWxlcy4gU2VlCiMjIGNvbXBhdF9zdW5v
cyg4KSBhbmQgY29tcGF0X3N2cjQoOCkuCgojb3B0aW9ucyAJQ09NUEFUXzQzCSMgNC4zQlNEIHN5
c3RlbSBpbnRlcmZhY2VzCiNvcHRpb25zIAlDT01QQVRfMTAJIyBOZXRCU0QgMS4wIGJpbmFyeSBj
b21wYXRpYmlsaXR5CiNvcHRpb25zIAlDT01QQVRfMTEJIyBOZXRCU0QgMS4xIGJpbmFyeSBjb21w
YXRpYmlsaXR5CiNvcHRpb25zIAlDT01QQVRfMTIJIyBOZXRCU0QgMS4yIGJpbmFyeSBjb21wYXRp
YmlsaXR5CiNvcHRpb25zIAlDT01QQVRfMTMJIyBOZXRCU0QgMS4zIGJpbmFyeSBjb21wYXRpYmls
aXR5CiNvcHRpb25zIAlDT01QQVRfMTQJIyBOZXRCU0QgMS40IGJpbmFyeSBjb21wYXRpYmlsaXR5
CiNvcHRpb25zIAlDT01QQVRfMTYJIyBOZXRCU0QgMS42IGJpbmFyeSBjb21wYXRpYmlsaXR5Cm9w
dGlvbnMgCUNPTVBBVF8yMAkjIE5ldEJTRCAyLjAgYmluYXJ5IGNvbXBhdGliaWxpdHkKb3B0aW9u
cyAJQ09NUEFUXzMwCSMgTmV0QlNEIDMuMCBiaW5hcnkgY29tcGF0aWJpbGl0eQojb3B0aW9ucyAJ
Q09NUEFUX1NVTk9TCSMgU3VuT1MgNC54IGJpbmFyeSBjb21wYXRpYmlsaXR5CiNvcHRpb25zIAlD
T01QQVRfU1ZSNAkjIFN1bk9TIDUueCBiaW5hcnkgY29tcGF0aWJpbGl0eQojb3B0aW9ucyAJVENQ
X0NPTVBBVF80MgkjIDQuMkJTRCBUQ1AvSVAgYnVnIGNvbXBhdC4gTm90IHJlY29tbWVuZGVkLgpv
cHRpb25zCQlDT01QQVRfQlNEUFRZCSMgL2Rldi9bcHRddHk/PyBwdHlzLgoKIyMgRmlsZSBzeXN0
ZW1zLiAgWW91IHByb2JhYmx5IG5lZWQgYXQgbGVhc3Qgb25lIG9mIEZGUyBvciBORlMuCmZpbGUt
c3lzdGVtCUZGUwkJIyBCZXJrZWxleSBGYXN0IEZpbGVzeXN0ZW0KZmlsZS1zeXN0ZW0JTkZTCQkj
IFN1biBORlMtY29tcGF0aWJsZSBmaWxlc3lzdGVtIGNsaWVudApmaWxlLXN5c3RlbQlLRVJORlMJ
CSMga2VybmVsIGRhdGEtc3RydWN0dXJlIGZpbGVzeXN0ZW0KI2ZpbGUtc3lzdGVtCU5VTExGUwkJ
IyBOVUxMIGxheWVyZWQgZmlsZXN5c3RlbQojZmlsZS1zeXN0ZW0JTUZTCQkjIG1lbW9yeS1iYXNl
ZCBmaWxlc3lzdGVtCiNmaWxlLXN5c3RlbQlGREVTQwkJIyB1c2VyIGZpbGUgZGVzY3JpcHRvciBm
aWxlc3lzdGVtCiNmaWxlLXN5c3RlbQlVTUFQRlMJCSMgdWlkL2dpZCByZW1hcHBpbmcgZmlsZXN5
c3RlbQojZmlsZS1zeXN0ZW0JTEZTCQkjIExvZy1iYXNlZCBmaWxlc3lzdGVtIChzdGlsbCBleHBl
cmltZW50YWwpCiNmaWxlLXN5c3RlbQlQT1JUQUwJCSMgcG9ydGFsIGZpbGVzeXN0ZW0gKHN0aWxs
IGV4cGVyaW1lbnRhbCkKZmlsZS1zeXN0ZW0JUFJPQ0ZTCQkjIC9wcm9jCmZpbGUtc3lzdGVtCUNE
OTY2MAkJIyBJU08gOTY2MCArIFJvY2sgUmlkZ2UgZmlsZSBzeXN0ZW0KI2ZpbGUtc3lzdGVtCVVO
SU9OCQkjIHVuaW9uIGZpbGUgc3lzdGVtCmZpbGUtc3lzdGVtCU1TRE9TRlMJCSMgTVMtRE9TIEZB
VCBmaWxlc3lzdGVtKHMpLgpmaWxlLXN5c3RlbQlQVFlGUwpmaWxlLXN5c3RlbQlUTVBGUwoKIyMg
RmlsZSBzeXN0ZW0gb3B0aW9ucy4KI29wdGlvbnMgCU5GU1NFUlZFUgkjIFN1biBORlMtY29tcGF0
aWJsZSBmaWxlc3lzdGVtIHNlcnZlcgojb3B0aW9ucyAJUVVPVEEJCSMgRkZTIHF1b3Rhcwojb3B0
aW9ucyAJRkZTX0VJCQkjIEZGUyBFbmRpYW4gSW5kZXBlbmRlbnQgc3VwcG9ydAojb3B0aW9ucyAJ
RkZTX05PX1NOQVBTSE9UCSMgZmZzIHNuYXBzaG90cwpvcHRpb25zIAlTT0ZUREVQCgojIyBOZXR3
b3JrIHByb3RvY29sIHN1cHBvcnQuICBJbiBtb3N0IGVudmlyb25tZW50cywgSU5FVCBpcyByZXF1
aXJlZC4Kb3B0aW9ucyAJSU5FVAkJIyBJUCAoSW50ZXJuZXQgUHJvdG9jb2wpIHY0CiNvcHRpb25z
IAlHQVRFV0FZCQkjIHBhY2tldCBmb3J3YXJkaW5nICgicm91dGVyIHN3aXRjaCIpCiNvcHRpb25z
IAlNUk9VVElORwkjIHBhY2tldCBmb3J3YXJkaW5nIG9mIG11bHRpY2FzdCBwYWNrZXRzCiNvcHRp
b25zIAlQSU0JCSMgUHJvdG9jb2wgSW5kZXBlbmRlbnQgTXVsdGljYXN0CiNvcHRpb25zIAlESVJF
Q1RFRF9CUk9BRENBU1QJIyBhbGxvdyBicm9hZGNhc3RzIHRocm91Z2ggcm91dGVycwojb3B0aW9u
cyAJTlMJCSMgWGVyb3ggTlMgbmV0d29ya2luZwojb3B0aW9ucyAJTlNJUAkJIyBYZXJveCBOUyB0
dW5uZWxpbmcgb3ZlciBJUAojb3B0aW9ucyAJSVNPLFRQSVAJIyBPU0kgbmV0d29ya2luZwojb3B0
aW9ucyAJRU9OCQkjIE9TSSB0dW5uZWxpbmcgb3ZlciBJUAojb3B0aW9ucyAJQ0NJVFQsTExDLEhE
TEMJIyBYLjI1IHBhY2tldCBzd2l0Y2hlZCBwcm90b2NvbAojb3B0aW9ucyAJTkVUQVRBTEsJIyBB
cHBsZVRhbGsgKG92ZXIgRXRoZXJuZXQpIHByb3RvY29sCm9wdGlvbnMgCU5UUAkJIyBOZXR3b3Jr
IFRpbWUgUHJvdG9jb2wgaW4ta2VybmVsIHN1cHBvcnQKI29wdGlvbnMgCVBQU19TWU5DCSMgQWRk
IHNlcmlhbCBsaW5lIHN5bmNocm9uaXphdGlvbiBmb3IgTlRQCm9wdGlvbnMgCVBGSUxfSE9PS1MJ
IyBBZGQgcGZpbCg5KSBob29rcywgaW50ZW5kZWQgZm9yIGN1c3RvbSBMS01zLgpvcHRpb25zIAlJ
UEZJTFRFUl9MT0cJIyBBZGQgaXBtb24oOCkgbG9nZ2luZyBmb3IgaXBmaWx0ZXIgZGV2aWNlCiNv
cHRpb25zIAlQUFBfQlNEQ09NUAkjIEFkZCBCU0QgY29tcHJlc3Npb24gdG8gcHBwIGRldmljZQoj
b3B0aW9ucyAJUFBQX0RFRkxBVEUJIyBBZGQgZGVmbGF0ZSAobGlieikgY29tcHJlc3Npb24gdG8g
cHBwIGRldmljZQojb3B0aW9ucyAJUFBQX0ZJTFRFUgkjIEFkZCBhY3RpdmUgZmlsdGVycyBmb3Ig
cHBwICh2aWEgYnBmKQojb3B0aW9ucyAJVENQX0RFQlVHCSMgUmVjb3JkIGxhc3QgVENQX05ERUJV
RyBwYWNrZXRzIHdpdGggU09fREVCVUcKCgojIyMjIE1haW4gYnVzIGFuZCBDUFUgLi4gYWxsIHN5
c3RlbXMuCm1haW5idXMwIGF0IHJvb3QKY3B1MAlhdCBtYWluYnVzMAoKIyMjIyBCdXMgdHlwZXMg
Zm91bmQgb24gU1BBUkMgc3lzdGVtcy4KCm9iaW8wCWF0IG1haW5idXMwCQkJCSMgc3VuNCBhbmQg
c3VuNG0KaW9tbXUwCWF0IG1haW5idXMwCQkJCSMgc3VuNG0Kc2J1czAJYXQgaW9tbXUwCQkJCSMg
c3VuNG0KCiMjIyMgU3RhbmRhcmQgc3lzdGVtIGRldmljZXMgLS0gYWxsIHJlcXVpcmVkIGZvciBh
IGdpdmVuIGFyY2hpdGVjdHVyZQoKIyMgQXV4aWxpYXJ5IHN5c3RlbSByZWdpc3RlcnMgb24gc3Vu
NGMgYW5kIHN1bjRtCmF1eHJlZzAJYXQgb2JpbzAJCQkJIyBzdW40bQoKIyMgTW9zdGVrIGNsb2Nr
IGZvdW5kIG9uIDQvMzAwLCBzdW40YywgYW5kIHN1bjRtIHN5c3RlbXMuCiMjIFRoZSBNb3N0ZWsg
Y2xvY2sgTlZSQU0gaXMgdGhlICJlZXByb20iIG9uIHN1bjQvMzAwIHN5c3RlbXMuCmNsb2NrMAlh
dCBvYmlvMAkJCQkjIHN1bjRtCgojIyBUaW1lciBjaGlwIGZvdW5kIG9uIDQvMzAwLCBzdW40Yywg
YW5kIHN1bjRtIHN5c3RlbXMuCnRpbWVyMAlhdCBvYmlvMAkJCQkjIHN1bjRtCgojIyMjIFNlcmlh
bCBwb3J0IGNvbmZpZ3VyYXRpb24KCiMjIFppbG9nIDg1MzAgc2VyaWFsIGNoaXBzLiAgRWFjaCBo
YXMgdHdvLWNoYW5uZWxzLgojIyB6czAgaXMgdHR5YSBhbmQgdHR5Yi4gIHpzMSBpcyB0aGUga2V5
Ym9hcmQgYW5kIG1vdXNlLgp6czAJYXQgb2JpbzAJCQkJCSMgc3VuNG0KenN0dHkwCWF0IHpzMCBj
aGFubmVsIDAJIyB0dHlhCnpzdHR5MQlhdCB6czAgY2hhbm5lbCAxCSMgdHR5YgoKenMxCWF0IG9i
aW8wCQkJCQkjIHN1bjRtCnpzdHR5KglhdCB6czEgY2hhbm5lbCA/CSMgbW91c2Uva2V5Ym9hcmQK
CmtiZDAJYXQgenN0dHk/Cm1zMAlhdCB6c3R0eT8KCndza2JkKgkJYXQga2JkPyBjb25zb2xlID8K
d3Ntb3VzZSoJYXQgbXM/CgojIyMjIERpc2sgY29udHJvbGxlcnMgYW5kIGRpc2tzCgojCgojIyBU
aGUgZm9sbG93aW5nIGZsYWdzIG1heSBiZSBzZXQgZm9yIHRoZSBOQ1I1M2M5NCBiYXNlZCBlc3Ag
ZHJpdmVyOgojIwliaXRzIDAtNzogIGRpc2FibGUgZGlzY29ubmVjdC9yZXNlbGVjdCBmb3IgdGhl
IGNvcnJlc3BvbmRpbmcgdGFyZ2V0CiMjCWJpdHMgOC0xNTogZGlzYWJsZSBzeW5jaHJvbm91cyBu
ZWdvdGlhdGlvbiBmb3IgdGFyZ2V0IFtiaXQtOF0KCiMjIHN1bjQvMzAwLCBzdW40Yywgc3VuNG0g
b24tYm9hcmQgU0NTSSwgYW5kIEZTQkUvUyBTQnVzIFNDU0kgY2FyZHMuCiMjIEJvdGggYGRtYScg
YW5kIGBlc3AnIGFyZSBuZWVkZWQgaW4gYWxsIGNhc2VzLgojIyBUd28ga2luZHMgb2YgYWRkaXRp
b25hbCBTQnVzIFNDU0kgaW50ZXJmYWNlcyBhcmUgYXZhaWxhYmxlLiAgT25lIHVzZXMKIyMgImVz
cCBhdCBzYnVzIiBsaWtlIHRoZSBzdW40YyBvbi1ib2FyZDsgdGhlIG90aGVyIHVzZXMgImVzcCBh
dCBkbWEiLgoKIyMgc3VuNC8zMDAgU0NTSSAtIGFuIE5DUjUzYzk0IG9yIGVxdWl2YWxlbnQgYmVo
aW5kCiMjIGFuIExTSSBMb2dpYyBETUEgY29udHJvbGxlcgoKZG1hMAlhdCBzYnVzMCBzbG90ID8g
b2Zmc2V0ID8JCQkjIHN1bjRjL3N1bjRtCmVzcDAJYXQgZG1hMCBmbGFncyAweDAwMDAJCQkJIyBz
dW40bQoKc2NzaWJ1cyogYXQgZXNwPwoKIyMgVGhlc2UgZW50cmllcyBmaW5kIGRldmljZXMgb24g
YWxsIFNDU0kgYnVzc2VzIGFuZCBhc3NpZ24KIyMgdW5pdCBudW1iZXJzIGR5bmFtaWNhbGx5Lgpz
ZCoJYXQgc2NzaWJ1cz8gdGFyZ2V0ID8gbHVuID8JCSMgU0NTSSBkaXNrcwpzdCoJYXQgc2NzaWJ1
cz8gdGFyZ2V0ID8gbHVuID8JCSMgU0NTSSB0YXBlcwpjZCoJYXQgc2NzaWJ1cz8gdGFyZ2V0ID8g
bHVuID8JCSMgU0NTSSBDRC1ST01zCiNjaCoJYXQgc2NzaWJ1cz8gdGFyZ2V0ID8gbHVuID8JCSMg
U0NTSSBjaGFuZ2VyIGRldmljZXMKI3NzKglhdCBzY3NpYnVzPyB0YXJnZXQgPyBsdW4gPwkJIyBT
Q1NJIHNjYW5uZXJzCiN1ayoJYXQgc2NzaWJ1cz8gdGFyZ2V0ID8gbHVuID8JCSMgdW5rbm93biBT
Q1NJCgojIyBBIGRpc2stbGlrZSBpbnRlcmZhY2UgdG8gZmlsZXMuICBDYW4gYmUgdXNlZCB0byBj
cmVhdGUgZmxvcHB5LCBDRCwKIyMgbWluaXJvb3QgaW1hZ2VzLCBldGMuCgpwc2V1ZG8tZGV2aWNl
CXZuZAk0CgojIyBNZW1vcnkgZGlzayBkZXZpY2UsIHVzZWQgb24gYm9vdCBmbG9wcGllcyB3aXRo
IGNvbXByZXNzZWQKIyMga2VybmVsLXBsdXMtcm9vdC1kaXNrIGltYWdlcy4KCiNwc2V1ZG8tZGV2
aWNlCW1kCTEKCgojIyMjIE5ldHdvcmsgaW50ZXJmYWNlcwoKIyMgTEFOQ0UgRXRoZXJuZXQgLSBh
biBBTUQgNzk5MCBMQU5DRSBiZWhpbmQgc3BlY2lhbGl6ZWQgRE1BIGdsdWUKIyMgVGhyZWUgZmxh
dm9ycyBvZiBhZGRpdGlvbmFsIFNCdXMgZXRoZXJuZXRzIGFyZSBhdmFpbGFibGUuICBPbmUgYXR0
YWNoZXMKIyMgZGlyZWN0bHkgbGlrZSB0aGUgc3VuNGMgb24tYm9hcmQsIG9uZSB1c2VzIHRoZSBs
ZWRtYSBkZXZpY2UgbGlrZSB0aGUKIyMgc3VuNG0gb24tYm9hcmQsIGFuZCBvbmUgdXNlcyB0aGUg
bGVidWZmZXIgZGV2aWNlLgoKbGVkbWEwCQlhdCBzYnVzMCBzbG90ID8gb2Zmc2V0ID8JCSMgc3Vu
NG0gb24tYm9hcmQKbGUwCQlhdCBsZWRtYTAJCQkJIyBzdW40bSBvbi1ib2FyZAoKIyMgTG9vcGJh
Y2sgbmV0d29yayBpbnRlcmZhY2U7IHJlcXVpcmVkCnBzZXVkby1kZXZpY2UJbG9vcAoKIyMgUFBQ
LCB0aGUgc3VjY2Vzc29yIHRvIFNMSVAuICBTZWUgcHBwZCg4KS4KI3BzZXVkby1kZXZpY2UJcHBw
CQkyCgojIyBOZXR3b3JrICJ0dW5uZWwiIGRldmljZSwgYWxsb3dpbmcgcHJvdG9jb2wgc3RhY2tz
IHRvIHJ1biBpbiB0aGUgdXNlcmxhbmQuCiMjIFRoaXMgaXMgdXNlZCBieSB0aGUgdGhpcmQtcGFy
dHkgdXNlci1tb2RlICJwcHAiIHByb2dyYW0sIGFuZCBvdGhlcnMuCnBzZXVkby1kZXZpY2UJdHVu
CQk0CgojIyBHZW5lcmljIEwzIG92ZXIgSVAgdHVubmVsCiNwc2V1ZG8tZGV2aWNlCWdyZQkJMgkj
IGdlbmVyaWMgTDMgb3ZlciBJUCB0dW5uZWwKCiMjIEJlcmtlbGV5IFBhY2tldCBGaWx0ZXIsIHJl
cXVpcmVkIHRvIHJ1biBSQVJQRC4gIEEgZ2VuZXJpYyBDLWxhbmd1YWdlCiMjIGludGVyZmFjZSB0
aGF0IGFsbG93cyBzZWxlY3RpdmUgZXhhbWluaW5nIG9mIGluY29taW5nIHBhY2tldHMuCnBzZXVk
by1kZXZpY2UJYnBmaWx0ZXIJMTYKCiMjIElQIEZpbHRlciwgdXNlZCBpbiBmaXJld2FsbCBhbmQg
TkFUIGFwcGxpY2F0aW9ucy4gIFNlZSBpcG5hdCg4KSBmb3IKIyMgb25lIGV4YW1wbGUgb2YgdGhl
IHVzZSBvZiB0aGUgSVAgRmlsdGVyLgojcHNldWRvLWRldmljZQlpcGZpbHRlcgoKYnBwKgkJYXQg
c2J1cz8gc2xvdCA/IG9mZnNldCA/CgojIyMjIEF1ZGlvIGFuZCB2aWRlbyBkZXZpY2VzCgojIyAv
ZGV2L2F1ZGlvIHN1cHBvcnQgKGBhdWRpb2FtZCcgcGx1cyBgYXVkaW8nKQojIwojIFRoZSBUYWRw
b2xlIDNHWCBhdWRpbyBpcyBhY2Nlc3NlZCB0aHJvdWdoIHRoZSBJU0ROIGNoaXAgd2hpY2gKIyBp
cyBub3QgY3VycmVudGx5IHN1cHBvcnRlZC4KCmRicmkqCQlhdCBzYnVzPyBzbG90ID8gb2Zmc2V0
ID8JIyBTVU5XLERCUkkKYXVkaW8qCQlhdCBhdWRpb2J1cz8KCmNnc2l4KgkJYXQgc2J1cz8gc2xv
dCA/IG9mZnNldCA/CndzZGlzcGxheSogCWF0IGNnc2l4PyBjb25zb2xlID8KCiMjIyMgT3RoZXIg
ZGV2aWNlIGNvbmZpZ3VyYXRpb24KCiMjIFBzZXVkbyB0dHlzLCByZXF1aXJlZCBmb3IgbmV0d29y
ayBsb2dpbnMgYW5kIHByb2dyYW1zIGxpa2Ugc2NyZWVuLgoKcHNldWRvLWRldmljZQlwdHkJCQkj
IHBzZXVkby10dHlzIChmb3IgbmV0d29yaywgZXRjLikKCiMjIFJhbmRvbSBkZXZpY2UsIHVzZWQg
dG8gaW1wbGVtZW50IC9kZXYvcmFuZG9tIChhIHNvdXJjZSBvZiByYW5kb20gbm9pc2UpLAojIyBh
bmQgZ2VuZXJhdGUgcmFuZG9tbmVzcyBmb3Igc29tZSBrZXJuZWwgZm9ybXVsYWUuCgpwc2V1ZG8t
ZGV2aWNlCXJuZAoKcHNldWRvLWRldmljZQljbG9ja2N0bAkJIyB1c2VyIGNvbnRyb2wgb2YgY2xv
Y2sgc3Vic3lzdGVtCiNwc2V1ZG8tZGV2aWNlCWZzcwkJNAkjIGZpbGUgc3lzdGVtIHNuYXBzaG90
IGRldmljZQoKcHNldWRvLWRldmljZQl3c211eAkJCSMgbW91c2UgYW5kIGtleWJvYXJkIG11bHRp
cGxleG9yCnBzZXVkby1kZXZpY2UJd3Nmb250Cg==

--Multipart_Sun__29_Jan_2006_10_35_59_-0500_vdkBkIu589BgMRyH--

--Signature_Sun__29_Jan_2006_10_35_59_-0500_kAfIwtaenOU5uYw2
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (NetBSD)

iQEVAwUBQ9zg38pnzkX8Yg2nAQIkxAf/aqwNqH/95JxrxAN8uRa+9OfwZRQBNxVp
80x5bAiM9O8OyLcRLXfsoeDLvtaxbkxbM97r4TLjNrWI0T39ZHA1E8DEg1npjokp
CTcRbi6wDXAGh6wGfePnZG5iYf6N0VZY0oIs1aHY48m7oKKuoXmrBNxJG7cqYqM2
SEIjXjXQDWfXtwoLZritMMmIDOO5ZEJ4V7YNAAVy47x8TyRM/ZseK+4udejXfqVr
0usL1caWikNqiRpnEc/DyprXfLX6tx7gpOjMyfnFHx4vxpwDnuo8thC8bWbEiW8P
PwPRaG71+h74sg3snG40rsF3hHPpCqc2dwu9FyCsRfmSR3bm0/Q+1Q==
=giw1
-----END PGP SIGNATURE-----

--Signature_Sun__29_Jan_2006_10_35_59_-0500_kAfIwtaenOU5uYw2--