From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andres Salomon Date: Tue, 29 Jun 2010 14:23:39 +0000 Subject: Re: [PATCH 4/4] x86: OLPC: add OLPC device-tree support Message-Id: <20100629102339.5e8a30b6@dev.queued.net> List-Id: References: <20100628215407.2017bf2f@debian> <20100628220058.19e8f143@debian> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: Grant Likely Cc: pgf-2X9k7bc8m7Mdnm+yROfE0A@public.gmane.org, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org, x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Mitch Bradley , mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org, sparclinux-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org, cjb-2X9k7bc8m7Mdnm+yROfE0A@public.gmane.org, davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org On Tue, 29 Jun 2010 01:12:36 -0700 Grant Likely wrote: > Hi Andres, comments below.... Thanks! > > On Mon, Jun 28, 2010 at 7:00 PM, Andres Salomon > wrote: > > > > Make use of PROC_DEVICETREE to export the tree, and sparc's > > PROMTREE code to call into OLPC's Open Firmware to build the tree. > > > > (Yes, I know this leaks memory by simply using kmalloc) > > > > Signed-off-by: Andres Salomon > > --- > >  arch/x86/Kconfig                 |    5 ++ > >  arch/x86/include/asm/olpc_prom.h |   42 +++++++++++ > >  arch/x86/include/asm/prom.h      |    5 ++ > >  arch/x86/kernel/Makefile         |    1 + > >  arch/x86/kernel/olpc_ofw.c       |   13 ++++ > >  arch/x86/kernel/olpc_prom.c      |  148 > > ++++++++++++++++++++++++++++++++++++++ fs/proc/Kconfig > >      |    2 +- 7 files changed, 215 insertions(+), 1 deletions(-) > >  create mode 100644 arch/x86/include/asm/olpc_prom.h > >  create mode 100644 arch/x86/include/asm/prom.h > >  create mode 100644 arch/x86/kernel/olpc_prom.c > > > > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > > index 71c194d..7aea004 100644 > > --- a/arch/x86/Kconfig > > +++ b/arch/x86/Kconfig > > @@ -2071,6 +2071,11 @@ config OLPC_OPENFIRMWARE > >          that is used on the OLPC XO-1 Children's Machine. > >          If unsure, say N here. > > > > +config OF > > +       def_bool y > > +       depends on OLPC_OPENFIRMWARE > > +       select OF_PROMTREE > > + > > This hunk will need to be respun on top of Stephen's CONFIG_OF change. > It's currently in my test-devicetree branch on > git://git.secretlab.ca/git/linux-2.6 Yep, I've changed it locally. > > >  endif # X86_32 > > > >  config K8_NB > > diff --git a/arch/x86/include/asm/olpc_prom.h > > b/arch/x86/include/asm/olpc_prom.h new file mode 100644 > > index 0000000..96cdcee > > --- /dev/null > > +++ b/arch/x86/include/asm/olpc_prom.h > > @@ -0,0 +1,42 @@ > > +#include  /* linux/of.h gets to determine #include > > ordering */ +/* > > + * Definitions for talking to the Open Firmware PROM on > > + * Power Macintosh computers. > > + * > > + * Copyright (C) 1996-2005 Paul Mackerras. > > + * > > + * Updates for PPC64 by Peter Bergner & David Engebretsen, IBM > > Corp. > > + * Updates for SPARC by David S. Miller > > + * Updates for x86/OLPC by Andres Salomon > > + * > > + * This program is free software; you can redistribute it and/or > > + * modify it under the terms of the GNU General Public License > > + * as published by the Free Software Foundation; either version > > + * 2 of the License, or (at your option) any later version. > > + */ > > + > > +#ifndef _X86_PROM_OLPC_H > > +#define _X86_PROM_OLPC_H > > +#ifdef __KERNEL__ > > + > > +#define OF_ROOT_NODE_ADDR_CELLS_DEFAULT 2 > > +#define OF_ROOT_NODE_SIZE_CELLS_DEFAULT 1 > > Do you really need to override these from the default? > > > +#define of_compat_cmp(s1, s2, l)       strncmp((s1), (s2), (l)) > > +#define of_prop_cmp(s1, s2)            strcasecmp((s1), (s2)) > > +#define of_node_cmp(s1, s2)            strcmp((s1), (s2)) > > Ditto here? They're based upon what the old promfs patch used. I need to test and verify that strings are being mangled in the same way before I start making changes here. > > > +extern void prom_build_devicetree(void); > > + > > +extern void *prom_early_alloc(unsigned long size); > > + > > +extern char *prom_firstprop(phandle node, char *buf); > > +extern char *prom_nextprop(phandle node, const char *prev, char > > *buf); +extern int prom_getproplen(phandle node, const char *prop); > > +extern int prom_getproperty(phandle node, const char *prop, > > +                            char *buffer, int bufsize); > > +extern phandle prom_getchild(phandle node); > > +extern phandle prom_getsibling(phandle node); > > + > > +#endif /* __KERNEL__ */ > > +#endif /* _X86_PROM_OLPC_H */ > > diff --git a/arch/x86/include/asm/prom.h > > b/arch/x86/include/asm/prom.h new file mode 100644 > > index 0000000..7b561b2 > > --- /dev/null > > +++ b/arch/x86/include/asm/prom.h > > @@ -0,0 +1,5 @@ > > +#ifdef CONFIG_OLPC_OPENFIRMWARE > > +# include > > +#else > > +# error "No OFW prom defined for x86!" > > +#endif > > Personally, I wouldn't bother with the header file redirection. The reason for the header file redirection is because this is OLPC-only; the x86 folks don't want me claiming this to be the One True x86 OFW. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756133Ab0F2OXs (ORCPT ); Tue, 29 Jun 2010 10:23:48 -0400 Received: from LUNGE.MIT.EDU ([18.54.1.69]:33834 "EHLO lunge.queued.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754509Ab0F2OXr convert rfc822-to-8bit (ORCPT ); Tue, 29 Jun 2010 10:23:47 -0400 Date: Tue, 29 Jun 2010 10:23:39 -0400 From: Andres Salomon To: Grant Likely Cc: devicetree-discuss@lists.ozlabs.org, sparclinux@vger.kernel.org, x86@kernel.org, tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, cjb@laptop.org, Mitch Bradley , pgf@laptop.org, linux-kernel@vger.kernel.org, davem@davemloft.net Subject: Re: [PATCH 4/4] x86: OLPC: add OLPC device-tree support Message-ID: <20100629102339.5e8a30b6@dev.queued.net> In-Reply-To: References: <20100628215407.2017bf2f@debian> <20100628220058.19e8f143@debian> X-Mailer: Claws Mail 3.7.5 (GTK+ 2.12.12; i486-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 29 Jun 2010 01:12:36 -0700 Grant Likely wrote: > Hi Andres, comments below.... Thanks! > > On Mon, Jun 28, 2010 at 7:00 PM, Andres Salomon > wrote: > > > > Make use of PROC_DEVICETREE to export the tree, and sparc's > > PROMTREE code to call into OLPC's Open Firmware to build the tree. > > > > (Yes, I know this leaks memory by simply using kmalloc) > > > > Signed-off-by: Andres Salomon > > --- > >  arch/x86/Kconfig                 |    5 ++ > >  arch/x86/include/asm/olpc_prom.h |   42 +++++++++++ > >  arch/x86/include/asm/prom.h      |    5 ++ > >  arch/x86/kernel/Makefile         |    1 + > >  arch/x86/kernel/olpc_ofw.c       |   13 ++++ > >  arch/x86/kernel/olpc_prom.c      |  148 > > ++++++++++++++++++++++++++++++++++++++ fs/proc/Kconfig > >      |    2 +- 7 files changed, 215 insertions(+), 1 deletions(-) > >  create mode 100644 arch/x86/include/asm/olpc_prom.h > >  create mode 100644 arch/x86/include/asm/prom.h > >  create mode 100644 arch/x86/kernel/olpc_prom.c > > > > diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig > > index 71c194d..7aea004 100644 > > --- a/arch/x86/Kconfig > > +++ b/arch/x86/Kconfig > > @@ -2071,6 +2071,11 @@ config OLPC_OPENFIRMWARE > >          that is used on the OLPC XO-1 Children's Machine. > >          If unsure, say N here. > > > > +config OF > > +       def_bool y > > +       depends on OLPC_OPENFIRMWARE > > +       select OF_PROMTREE > > + > > This hunk will need to be respun on top of Stephen's CONFIG_OF change. > It's currently in my test-devicetree branch on > git://git.secretlab.ca/git/linux-2.6 Yep, I've changed it locally. > > >  endif # X86_32 > > > >  config K8_NB > > diff --git a/arch/x86/include/asm/olpc_prom.h > > b/arch/x86/include/asm/olpc_prom.h new file mode 100644 > > index 0000000..96cdcee > > --- /dev/null > > +++ b/arch/x86/include/asm/olpc_prom.h > > @@ -0,0 +1,42 @@ > > +#include  /* linux/of.h gets to determine #include > > ordering */ +/* > > + * Definitions for talking to the Open Firmware PROM on > > + * Power Macintosh computers. > > + * > > + * Copyright (C) 1996-2005 Paul Mackerras. > > + * > > + * Updates for PPC64 by Peter Bergner & David Engebretsen, IBM > > Corp. > > + * Updates for SPARC by David S. Miller > > + * Updates for x86/OLPC by Andres Salomon > > + * > > + * This program is free software; you can redistribute it and/or > > + * modify it under the terms of the GNU General Public License > > + * as published by the Free Software Foundation; either version > > + * 2 of the License, or (at your option) any later version. > > + */ > > + > > +#ifndef _X86_PROM_OLPC_H > > +#define _X86_PROM_OLPC_H > > +#ifdef __KERNEL__ > > + > > +#define OF_ROOT_NODE_ADDR_CELLS_DEFAULT 2 > > +#define OF_ROOT_NODE_SIZE_CELLS_DEFAULT 1 > > Do you really need to override these from the default? > > > +#define of_compat_cmp(s1, s2, l)       strncmp((s1), (s2), (l)) > > +#define of_prop_cmp(s1, s2)            strcasecmp((s1), (s2)) > > +#define of_node_cmp(s1, s2)            strcmp((s1), (s2)) > > Ditto here? They're based upon what the old promfs patch used. I need to test and verify that strings are being mangled in the same way before I start making changes here. > > > +extern void prom_build_devicetree(void); > > + > > +extern void *prom_early_alloc(unsigned long size); > > + > > +extern char *prom_firstprop(phandle node, char *buf); > > +extern char *prom_nextprop(phandle node, const char *prev, char > > *buf); +extern int prom_getproplen(phandle node, const char *prop); > > +extern int prom_getproperty(phandle node, const char *prop, > > +                            char *buffer, int bufsize); > > +extern phandle prom_getchild(phandle node); > > +extern phandle prom_getsibling(phandle node); > > + > > +#endif /* __KERNEL__ */ > > +#endif /* _X86_PROM_OLPC_H */ > > diff --git a/arch/x86/include/asm/prom.h > > b/arch/x86/include/asm/prom.h new file mode 100644 > > index 0000000..7b561b2 > > --- /dev/null > > +++ b/arch/x86/include/asm/prom.h > > @@ -0,0 +1,5 @@ > > +#ifdef CONFIG_OLPC_OPENFIRMWARE > > +# include > > +#else > > +# error "No OFW prom defined for x86!" > > +#endif > > Personally, I wouldn't bother with the header file redirection. The reason for the header file redirection is because this is OLPC-only; the x86 folks don't want me claiming this to be the One True x86 OFW. From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andres Salomon Subject: Re: [PATCH 4/4] x86: OLPC: add OLPC device-tree support Date: Tue, 29 Jun 2010 10:23:39 -0400 Message-ID: <20100629102339.5e8a30b6@dev.queued.net> References: <20100628215407.2017bf2f@debian> <20100628220058.19e8f143@debian> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: devicetree-discuss-bounces+gldd-devicetree-discuss=m.gmane.org-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org Errors-To: devicetree-discuss-bounces+gldd-devicetree-discuss=m.gmane.org-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org To: Grant Likely Cc: pgf-2X9k7bc8m7Mdnm+yROfE0A@public.gmane.org, devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org, x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Mitch Bradley , mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org, sparclinux-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org, cjb-2X9k7bc8m7Mdnm+yROfE0A@public.gmane.org, davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org List-Id: devicetree@vger.kernel.org T24gVHVlLCAyOSBKdW4gMjAxMCAwMToxMjozNiAtMDcwMApHcmFudCBMaWtlbHkgPGdyYW50Lmxp a2VseUBzZWNyZXRsYWIuY2E+IHdyb3RlOgoKPiBIaSBBbmRyZXMsIGNvbW1lbnRzIGJlbG93Li4u LgoKVGhhbmtzIQoKCj4gCj4gT24gTW9uLCBKdW4gMjgsIDIwMTAgYXQgNzowMCBQTSwgQW5kcmVz IFNhbG9tb24gPGRpbGluZ2VyQHF1ZXVlZC5uZXQ+Cj4gd3JvdGU6Cj4gPgo+ID4gTWFrZSB1c2Ug b2YgUFJPQ19ERVZJQ0VUUkVFIHRvIGV4cG9ydCB0aGUgdHJlZSwgYW5kIHNwYXJjJ3MKPiA+IFBS T01UUkVFIGNvZGUgdG8gY2FsbCBpbnRvIE9MUEMncyBPcGVuIEZpcm13YXJlIHRvIGJ1aWxkIHRo ZSB0cmVlLgo+ID4KPiA+IChZZXMsIEkga25vdyB0aGlzIGxlYWtzIG1lbW9yeSBieSBzaW1wbHkg dXNpbmcga21hbGxvYykKPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBBbmRyZXMgU2Fsb21vbiA8ZGls aW5nZXJAcXVldWVkLm5ldD4KPiA+IC0tLQo+ID4gwqBhcmNoL3g4Ni9LY29uZmlnIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIHwgwqAgwqA1ICsrCj4gPiDCoGFyY2gveDg2L2luY2x1ZGUvYXNtL29s cGNfcHJvbS5oIHwgwqAgNDIgKysrKysrKysrKysKPiA+IMKgYXJjaC94ODYvaW5jbHVkZS9hc20v cHJvbS5oIMKgIMKgIMKgfCDCoCDCoDUgKysKPiA+IMKgYXJjaC94ODYva2VybmVsL01ha2VmaWxl IMKgIMKgIMKgIMKgIHwgwqAgwqAxICsKPiA+IMKgYXJjaC94ODYva2VybmVsL29scGNfb2Z3LmMg wqAgwqAgwqAgfCDCoCAxMyArKysrCj4gPiDCoGFyY2gveDg2L2tlcm5lbC9vbHBjX3Byb20uYyDC oCDCoCDCoHwgwqAxNDgKPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr IGZzL3Byb2MvS2NvbmZpZwo+ID4gwqAgwqAgwqB8IMKgIMKgMiArLSA3IGZpbGVzIGNoYW5nZWQs IDIxNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9ucygtKQo+ID4gwqBjcmVhdGUgbW9kZSAxMDA2 NDQgYXJjaC94ODYvaW5jbHVkZS9hc20vb2xwY19wcm9tLmgKPiA+IMKgY3JlYXRlIG1vZGUgMTAw NjQ0IGFyY2gveDg2L2luY2x1ZGUvYXNtL3Byb20uaAo+ID4gwqBjcmVhdGUgbW9kZSAxMDA2NDQg YXJjaC94ODYva2VybmVsL29scGNfcHJvbS5jCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2FyY2gveDg2 L0tjb25maWcgYi9hcmNoL3g4Ni9LY29uZmlnCj4gPiBpbmRleCA3MWMxOTRkLi43YWVhMDA0IDEw MDY0NAo+ID4gLS0tIGEvYXJjaC94ODYvS2NvbmZpZwo+ID4gKysrIGIvYXJjaC94ODYvS2NvbmZp Zwo+ID4gQEAgLTIwNzEsNiArMjA3MSwxMSBAQCBjb25maWcgT0xQQ19PUEVORklSTVdBUkUKPiA+ IMKgIMKgIMKgIMKgIMKgdGhhdCBpcyB1c2VkIG9uIHRoZSBPTFBDIFhPLTEgQ2hpbGRyZW4ncyBN YWNoaW5lLgo+ID4gwqAgwqAgwqAgwqAgwqBJZiB1bnN1cmUsIHNheSBOIGhlcmUuCj4gPgo+ID4g K2NvbmZpZyBPRgo+ID4gKyDCoCDCoCDCoCBkZWZfYm9vbCB5Cj4gPiArIMKgIMKgIMKgIGRlcGVu ZHMgb24gT0xQQ19PUEVORklSTVdBUkUKPiA+ICsgwqAgwqAgwqAgc2VsZWN0IE9GX1BST01UUkVF Cj4gPiArCj4gCj4gVGhpcyBodW5rIHdpbGwgbmVlZCB0byBiZSByZXNwdW4gb24gdG9wIG9mIFN0 ZXBoZW4ncyBDT05GSUdfT0YgY2hhbmdlLgo+ICBJdCdzIGN1cnJlbnRseSBpbiBteSB0ZXN0LWRl dmljZXRyZWUgYnJhbmNoIG9uCj4gZ2l0Oi8vZ2l0LnNlY3JldGxhYi5jYS9naXQvbGludXgtMi42 CgpZZXAsIEkndmUgY2hhbmdlZCBpdCBsb2NhbGx5LgoKPiAKPiA+IMKgZW5kaWYgIyBYODZfMzIK PiA+Cj4gPiDCoGNvbmZpZyBLOF9OQgo+ID4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUv YXNtL29scGNfcHJvbS5oCj4gPiBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL29scGNfcHJvbS5oIG5l dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gPiBpbmRleCAwMDAwMDAwLi45NmNkY2VlCj4gPiAtLS0gL2Rl di9udWxsCj4gPiArKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9vbHBjX3Byb20uaAo+ID4gQEAg LTAsMCArMSw0MiBAQAo+ID4gKyNpbmNsdWRlIDxsaW51eC9vZi5oPiDCoC8qIGxpbnV4L29mLmgg Z2V0cyB0byBkZXRlcm1pbmUgI2luY2x1ZGUKPiA+IG9yZGVyaW5nICovICsvKgo+ID4gKyAqIERl ZmluaXRpb25zIGZvciB0YWxraW5nIHRvIHRoZSBPcGVuIEZpcm13YXJlIFBST00gb24KPiA+ICsg KiBQb3dlciBNYWNpbnRvc2ggY29tcHV0ZXJzLgo+ID4gKyAqCj4gPiArICogQ29weXJpZ2h0IChD KSAxOTk2LTIwMDUgUGF1bCBNYWNrZXJyYXMuCj4gPiArICoKPiA+ICsgKiBVcGRhdGVzIGZvciBQ UEM2NCBieSBQZXRlciBCZXJnbmVyICYgRGF2aWQgRW5nZWJyZXRzZW4sIElCTQo+ID4gQ29ycC4K PiA+ICsgKiBVcGRhdGVzIGZvciBTUEFSQyBieSBEYXZpZCBTLiBNaWxsZXIKPiA+ICsgKiBVcGRh dGVzIGZvciB4ODYvT0xQQyBieSBBbmRyZXMgU2Fsb21vbgo+ID4gKyAqCj4gPiArICogVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgo+ ID4gKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCj4gPiArICogYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uCj4gPiArICogMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KPiA+ICsgKi8KPiA+ICsKPiA+ICsjaWZuZGVm IF9YODZfUFJPTV9PTFBDX0gKPiA+ICsjZGVmaW5lIF9YODZfUFJPTV9PTFBDX0gKPiA+ICsjaWZk ZWYgX19LRVJORUxfXwo+ID4gKwo+ID4gKyNkZWZpbmUgT0ZfUk9PVF9OT0RFX0FERFJfQ0VMTFNf REVGQVVMVCAyCj4gPiArI2RlZmluZSBPRl9ST09UX05PREVfU0laRV9DRUxMU19ERUZBVUxUIDEK PiAKPiBEbyB5b3UgcmVhbGx5IG5lZWQgdG8gb3ZlcnJpZGUgdGhlc2UgZnJvbSB0aGUgZGVmYXVs dD8KPiAKPiA+ICsjZGVmaW5lIG9mX2NvbXBhdF9jbXAoczEsIHMyLCBsKSDCoCDCoCDCoCBzdHJu Y21wKChzMSksIChzMiksIChsKSkKPiA+ICsjZGVmaW5lIG9mX3Byb3BfY21wKHMxLCBzMikgwqAg wqAgwqAgwqAgwqAgwqBzdHJjYXNlY21wKChzMSksIChzMikpCj4gPiArI2RlZmluZSBvZl9ub2Rl X2NtcChzMSwgczIpIMKgIMKgIMKgIMKgIMKgIMKgc3RyY21wKChzMSksIChzMikpCj4gCj4gRGl0 dG8gaGVyZT8KClRoZXkncmUgYmFzZWQgdXBvbiB3aGF0IHRoZSBvbGQgcHJvbWZzIHBhdGNoIHVz ZWQuICBJIG5lZWQgdG8gdGVzdCBhbmQKdmVyaWZ5IHRoYXQgc3RyaW5ncyBhcmUgYmVpbmcgbWFu Z2xlZCBpbiB0aGUgc2FtZSB3YXkgYmVmb3JlIEkgc3RhcnQKbWFraW5nIGNoYW5nZXMgaGVyZS4K Cgo+IAo+ID4gK2V4dGVybiB2b2lkIHByb21fYnVpbGRfZGV2aWNldHJlZSh2b2lkKTsKPiA+ICsK PiA+ICtleHRlcm4gdm9pZCAqcHJvbV9lYXJseV9hbGxvYyh1bnNpZ25lZCBsb25nIHNpemUpOwo+ ID4gKwo+ID4gK2V4dGVybiBjaGFyICpwcm9tX2ZpcnN0cHJvcChwaGFuZGxlIG5vZGUsIGNoYXIg KmJ1Zik7Cj4gPiArZXh0ZXJuIGNoYXIgKnByb21fbmV4dHByb3AocGhhbmRsZSBub2RlLCBjb25z dCBjaGFyICpwcmV2LCBjaGFyCj4gPiAqYnVmKTsgK2V4dGVybiBpbnQgcHJvbV9nZXRwcm9wbGVu KHBoYW5kbGUgbm9kZSwgY29uc3QgY2hhciAqcHJvcCk7Cj4gPiArZXh0ZXJuIGludCBwcm9tX2dl dHByb3BlcnR5KHBoYW5kbGUgbm9kZSwgY29uc3QgY2hhciAqcHJvcCwKPiA+ICsgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqBjaGFyICpidWZmZXIsIGludCBidWZzaXpl KTsKPiA+ICtleHRlcm4gcGhhbmRsZSBwcm9tX2dldGNoaWxkKHBoYW5kbGUgbm9kZSk7Cj4gPiAr ZXh0ZXJuIHBoYW5kbGUgcHJvbV9nZXRzaWJsaW5nKHBoYW5kbGUgbm9kZSk7Cj4gPiArCj4gPiAr I2VuZGlmIC8qIF9fS0VSTkVMX18gKi8KPiA+ICsjZW5kaWYgLyogX1g4Nl9QUk9NX09MUENfSCAq Lwo+ID4gZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3Byb20uaAo+ID4gYi9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9wcm9tLmggbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+IGluZGV4IDAw MDAwMDAuLjdiNTYxYjIKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL2FyY2gveDg2L2luY2x1 ZGUvYXNtL3Byb20uaAo+ID4gQEAgLTAsMCArMSw1IEBACj4gPiArI2lmZGVmIENPTkZJR19PTFBD X09QRU5GSVJNV0FSRQo+ID4gKyMgaW5jbHVkZSA8YXNtL29scGNfcHJvbS5oPgo+ID4gKyNlbHNl Cj4gPiArIyBlcnJvciAiTm8gT0ZXIHByb20gZGVmaW5lZCBmb3IgeDg2ISIKPiA+ICsjZW5kaWYK PiAKPiBQZXJzb25hbGx5LCBJIHdvdWxkbid0IGJvdGhlciB3aXRoIHRoZSBoZWFkZXIgZmlsZSBy ZWRpcmVjdGlvbi4KClRoZSByZWFzb24gZm9yIHRoZSBoZWFkZXIgZmlsZSByZWRpcmVjdGlvbiBp cyBiZWNhdXNlIHRoaXMgaXMKT0xQQy1vbmx5OyB0aGUgeDg2IGZvbGtzIGRvbid0IHdhbnQgbWUg Y2xhaW1pbmcgdGhpcyB0byBiZSB0aGUgT25lClRydWUgeDg2IE9GVy4KCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRldmljZXRyZWUtZGlzY3VzcyBtYWls aW5nIGxpc3QKZGV2aWNldHJlZS1kaXNjdXNzQGxpc3RzLm96bGFicy5vcmcKaHR0cHM6Ly9saXN0 cy5vemxhYnMub3JnL2xpc3RpbmZvL2RldmljZXRyZWUtZGlzY3Vzcwo=