From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4E0AE12F.6000200@freescale.com> Date: Wed, 29 Jun 2011 16:24:15 +0800 From: Huang Shijie MIME-Version: 1.0 To: Huang Shijie Subject: Re: [PATCH v7 0/3] add the GPMI controller driver for IMX23/IMX28 References: <1309335878-16678-1-git-send-email-b32955@freescale.com> In-Reply-To: <1309335878-16678-1-git-send-email-b32955@freescale.com> Content-Type: multipart/mixed; boundary="------------000103040706030809040406" Cc: dedekind1@gmail.com, w.sang@pengutronix.de, thierry.nolf.barco@gmail.com, linux-mtd@lists.infradead.org, linux-arm-kernel@lists.infradead.org, LW@KARO-electronics.de List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , --------------000103040706030809040406 Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: 7bit Hi: I attach my tested .config file in the attachment. Best Regards Huang Shijie > The general-purpose media interface(GPMI) controller is a flexible interface > to up to several NAND flashs. > > The Bose Ray-Choudhury Hocquenghem(BCH) module is a hardware ECC accelerator. > > With the help of BCH, the GPMI controller can choose to do the hardware ECC or > not. > > This driver is a _pure_ MTD NAND controller driver now. > > The driver depends on another patch set, you can find them at : > [1] http://marc.info/?l=linux-arm-kernel&m=130933298731899&w=2 > [2] http://marc.info/?l=linux-arm-kernel&m=130933302531947&w=2 > [3] http://marc.info/?l=linux-arm-kernel&m=130933300431921&w=2 > > Test environment: > Using imx23 and imx28 boards for test, and burned the ROOTFS > in the nand flash. > > imx23 : > console=ttyAMA0,115200 mtdparts=gpmi-nfc:20m(boot),-(user) ubi.mtd=1 root=ubi0:rootfs0 rootfstype=ubifs gpmi_debug_init > > imx28 : > # console=ttyAMA0,115200 mtdparts=gpmi-nfc-main:20m(boot),-(user) ubi.mtd=1 root=ubi0:rootfs0 rootfstype=ubifs gpmi_debug_init > > > v6 --> v7: > [0] remove the function wrapping the clock. > [1] use the module_param() for debugging. > [2] use the new interface of MTD partitions. > replace add_mtd_partitions() with mtd_device_register(). > [3] use pr_info() to print log. > [4] add `__devinit` for some functions, etc. > [5] add `gpmi_nfc` to control the GPMI-NFC driver's initialization. > [6] others. > > v5 --> v6: > [0] split out the IMX23/IMX28 arch code to separate patches. > [1] fix bug : missing empty item in the end of platform_id array. > [2] inconsistent identation. > [3] others > > v4 --> v5: > [0] rename the files. > [1] fix PM bug > [2] remove the rom_helper code, and move the necessary initialization code > to the main file. > [3] change the macros from CPU_IS_* to GPMI_IS_* > [4] remove the default partition layout init code. revert back the > partition parsing command line code. > [5] others > > v3 --> v4: > [0] use the nand_ids{} as the nand database, drop my own database. > [1] remove the patch for DMA enginer, Shawn will submit his own version. > [2] use the platform_id to distinguish different Archs. > [3] fix the strange coding style. > [4] others. > > v2 --> v3: > [0] merge the imx23 and imx28 into one file(including the header file). > [1] remove the unuse registers in the headers. > [2] fix DMA bugs > [3] add bus width field to nand_attr{} > [4] others > > v1 --> v2: > [0] merge the common files into the gpmi-nfc-main.c > [1] change the code to get the clock. > [2] remove the timing in the nand_device_info{} > [3] fix DMA errors > [4] add the nand_device_info.[ch] to generic code > [5] use the chip->onfi_version for the ONFI nand > [6] useless init > [7] others > > > Huang Shijie (3): > MTD : add the common code for GPMI-NFC controller driver > MTD : add support for imx23 and imx28 > MTD : add GPMI-NFC driver in the config and Makefile > > drivers/mtd/nand/Kconfig | 11 + > drivers/mtd/nand/Makefile | 1 + > drivers/mtd/nand/gpmi-nfc/Makefile | 3 + > drivers/mtd/nand/gpmi-nfc/bch-regs.h | 88 ++ > drivers/mtd/nand/gpmi-nfc/gpmi-nfc.c | 2484 +++++++++++++++++++++++++++++++++ > drivers/mtd/nand/gpmi-nfc/gpmi-nfc.h | 495 +++++++ > drivers/mtd/nand/gpmi-nfc/gpmi-regs.h | 163 +++ > drivers/mtd/nand/gpmi-nfc/hal-mxs.c | 554 ++++++++ > 8 files changed, 3799 insertions(+), 0 deletions(-) > create mode 100644 drivers/mtd/nand/gpmi-nfc/Makefile > create mode 100644 drivers/mtd/nand/gpmi-nfc/bch-regs.h > create mode 100644 drivers/mtd/nand/gpmi-nfc/gpmi-nfc.c > create mode 100644 drivers/mtd/nand/gpmi-nfc/gpmi-nfc.h > create mode 100644 drivers/mtd/nand/gpmi-nfc/gpmi-regs.h > create mode 100644 drivers/mtd/nand/gpmi-nfc/hal-mxs.c > --------------000103040706030809040406 Content-Type: text/plain; name="config" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config" IwojIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1ha2UgY29uZmlnOiBkb24ndCBlZGl0CiMg TGludXgvYXJtIDMuMC4wLXJjMiBLZXJuZWwgQ29uZmlndXJhdGlvbgojCkNPTkZJR19BUk09 eQpDT05GSUdfSEFWRV9QV009eQpDT05GSUdfU1lTX1NVUFBPUlRTX0FQTV9FTVVMQVRJT049 eQpDT05GSUdfR0VORVJJQ19HUElPPXkKIyBDT05GSUdfQVJDSF9VU0VTX0dFVFRJTUVPRkZT RVQgaXMgbm90IHNldApDT05GSUdfR0VORVJJQ19DTE9DS0VWRU5UUz15CkNPTkZJR19LVElN RV9TQ0FMQVI9eQpDT05GSUdfSEFWRV9QUk9DX0NQVT15CkNPTkZJR19TVEFDS1RSQUNFX1NV UFBPUlQ9eQpDT05GSUdfSEFWRV9MQVRFTkNZVE9QX1NVUFBPUlQ9eQpDT05GSUdfTE9DS0RF UF9TVVBQT1JUPXkKQ09ORklHX1RSQUNFX0lSUUZMQUdTX1NVUFBPUlQ9eQpDT05GSUdfSEFS RElSUVNfU1dfUkVTRU5EPXkKQ09ORklHX0dFTkVSSUNfSVJRX1BST0JFPXkKQ09ORklHX1JX U0VNX0dFTkVSSUNfU1BJTkxPQ0s9eQpDT05GSUdfQVJDSF9IQVNfQ1BVX0lETEVfV0FJVD15 CkNPTkZJR19HRU5FUklDX0hXRUlHSFQ9eQpDT05GSUdfR0VORVJJQ19DQUxJQlJBVEVfREVM QVk9eQpDT05GSUdfTkVFRF9ETUFfTUFQX1NUQVRFPXkKQ09ORklHX1ZFQ1RPUlNfQkFTRT0w eGZmZmYwMDAwCiMgQ09ORklHX0FSTV9QQVRDSF9QSFlTX1ZJUlQgaXMgbm90IHNldApDT05G SUdfREVGQ09ORklHX0xJU1Q9Ii9saWIvbW9kdWxlcy8kVU5BTUVfUkVMRUFTRS8uY29uZmln IgpDT05GSUdfQ09OU1RSVUNUT1JTPXkKQ09ORklHX0hBVkVfSVJRX1dPUks9eQpDT05GSUdf SVJRX1dPUks9eQoKIwojIEdlbmVyYWwgc2V0dXAKIwpDT05GSUdfRVhQRVJJTUVOVEFMPXkK Q09ORklHX0JST0tFTl9PTl9TTVA9eQpDT05GSUdfSU5JVF9FTlZfQVJHX0xJTUlUPTMyCkNP TkZJR19DUk9TU19DT01QSUxFPSIiCkNPTkZJR19MT0NBTFZFUlNJT049IiIKQ09ORklHX0xP Q0FMVkVSU0lPTl9BVVRPPXkKQ09ORklHX0hBVkVfS0VSTkVMX0daSVA9eQpDT05GSUdfSEFW RV9LRVJORUxfTFpNQT15CkNPTkZJR19IQVZFX0tFUk5FTF9MWk89eQpDT05GSUdfS0VSTkVM X0daSVA9eQojIENPTkZJR19LRVJORUxfTFpNQSBpcyBub3Qgc2V0CiMgQ09ORklHX0tFUk5F TF9MWk8gaXMgbm90IHNldApDT05GSUdfU1dBUD15CkNPTkZJR19TWVNWSVBDPXkKQ09ORklH X1NZU1ZJUENfU1lTQ1RMPXkKIyBDT05GSUdfUE9TSVhfTVFVRVVFIGlzIG5vdCBzZXQKIyBD T05GSUdfQlNEX1BST0NFU1NfQUNDVCBpcyBub3Qgc2V0CiMgQ09ORklHX0ZIQU5ETEUgaXMg bm90IHNldAojIENPTkZJR19UQVNLU1RBVFMgaXMgbm90IHNldAojIENPTkZJR19BVURJVCBp cyBub3Qgc2V0CkNPTkZJR19IQVZFX0dFTkVSSUNfSEFSRElSUVM9eQoKIwojIElSUSBzdWJz eXN0ZW0KIwpDT05GSUdfR0VORVJJQ19IQVJESVJRUz15CkNPTkZJR19IQVZFX1NQQVJTRV9J UlE9eQpDT05GSUdfR0VORVJJQ19JUlFfU0hPVz15CiMgQ09ORklHX1NQQVJTRV9JUlEgaXMg bm90IHNldAoKIwojIFJDVSBTdWJzeXN0ZW0KIwpDT05GSUdfVFJFRV9QUkVFTVBUX1JDVT15 CiMgQ09ORklHX1RJTllfUkNVIGlzIG5vdCBzZXQKIyBDT05GSUdfVElOWV9QUkVFTVBUX1JD VSBpcyBub3Qgc2V0CkNPTkZJR19QUkVFTVBUX1JDVT15CiMgQ09ORklHX1JDVV9UUkFDRSBp cyBub3Qgc2V0CkNPTkZJR19SQ1VfRkFOT1VUPTMyCiMgQ09ORklHX1JDVV9GQU5PVVRfRVhB Q1QgaXMgbm90IHNldAojIENPTkZJR19UUkVFX1JDVV9UUkFDRSBpcyBub3Qgc2V0CiMgQ09O RklHX1JDVV9CT09TVCBpcyBub3Qgc2V0CiMgQ09ORklHX0lLQ09ORklHIGlzIG5vdCBzZXQK Q09ORklHX0xPR19CVUZfU0hJRlQ9MTQKIyBDT05GSUdfQ0dST1VQUyBpcyBub3Qgc2V0CiMg Q09ORklHX05BTUVTUEFDRVMgaXMgbm90IHNldAojIENPTkZJR19TQ0hFRF9BVVRPR1JPVVAg aXMgbm90IHNldAojIENPTkZJR19TWVNGU19ERVBSRUNBVEVEIGlzIG5vdCBzZXQKIyBDT05G SUdfUkVMQVkgaXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX0lOSVRSRCBpcyBub3Qgc2V0 CkNPTkZJR19DQ19PUFRJTUlaRV9GT1JfU0laRT15CkNPTkZJR19TWVNDVEw9eQpDT05GSUdf QU5PTl9JTk9ERVM9eQpDT05GSUdfRVhQRVJUPXkKQ09ORklHX1VJRDE2PXkKQ09ORklHX1NZ U0NUTF9TWVNDQUxMPXkKQ09ORklHX0tBTExTWU1TPXkKQ09ORklHX0tBTExTWU1TX0FMTD15 CkNPTkZJR19IT1RQTFVHPXkKQ09ORklHX1BSSU5USz15CkNPTkZJR19CVUc9eQpDT05GSUdf RUxGX0NPUkU9eQpDT05GSUdfQkFTRV9GVUxMPXkKQ09ORklHX0ZVVEVYPXkKQ09ORklHX0VQ T0xMPXkKQ09ORklHX1NJR05BTEZEPXkKQ09ORklHX1RJTUVSRkQ9eQpDT05GSUdfRVZFTlRG RD15CkNPTkZJR19TSE1FTT15CkNPTkZJR19BSU89eQpDT05GSUdfRU1CRURERUQ9eQpDT05G SUdfSEFWRV9QRVJGX0VWRU5UUz15CkNPTkZJR19QRVJGX1VTRV9WTUFMTE9DPXkKCiMKIyBL ZXJuZWwgUGVyZm9ybWFuY2UgRXZlbnRzIEFuZCBDb3VudGVycwojCkNPTkZJR19QRVJGX0VW RU5UUz15CiMgQ09ORklHX1BFUkZfQ09VTlRFUlMgaXMgbm90IHNldAojIENPTkZJR19ERUJV R19QRVJGX1VTRV9WTUFMTE9DIGlzIG5vdCBzZXQKQ09ORklHX1ZNX0VWRU5UX0NPVU5URVJT PXkKQ09ORklHX0NPTVBBVF9CUks9eQpDT05GSUdfU0xBQj15CiMgQ09ORklHX1NMVUIgaXMg bm90IHNldAojIENPTkZJR19TTE9CIGlzIG5vdCBzZXQKQ09ORklHX1BST0ZJTElORz15CkNP TkZJR19UUkFDRVBPSU5UUz15CkNPTkZJR19PUFJPRklMRT15CkNPTkZJR19IQVZFX09QUk9G SUxFPXkKQ09ORklHX0tQUk9CRVM9eQpDT05GSUdfS1JFVFBST0JFUz15CkNPTkZJR19IQVZF X0tQUk9CRVM9eQpDT05GSUdfSEFWRV9LUkVUUFJPQkVTPXkKQ09ORklHX0hBVkVfUkVHU19B TkRfU1RBQ0tfQUNDRVNTX0FQST15CkNPTkZJR19IQVZFX0NMSz15CkNPTkZJR19IQVZFX0RN QV9BUElfREVCVUc9eQoKIwojIEdDT1YtYmFzZWQga2VybmVsIHByb2ZpbGluZwojCiMgQ09O RklHX0dDT1ZfS0VSTkVMIGlzIG5vdCBzZXQKQ09ORklHX0hBVkVfR0VORVJJQ19ETUFfQ09I RVJFTlQ9eQpDT05GSUdfU0xBQklORk89eQpDT05GSUdfUlRfTVVURVhFUz15CkNPTkZJR19C QVNFX1NNQUxMPTAKQ09ORklHX01PRFVMRVM9eQojIENPTkZJR19NT0RVTEVfRk9SQ0VfTE9B RCBpcyBub3Qgc2V0CkNPTkZJR19NT0RVTEVfVU5MT0FEPXkKIyBDT05GSUdfTU9EVUxFX0ZP UkNFX1VOTE9BRCBpcyBub3Qgc2V0CiMgQ09ORklHX01PRFZFUlNJT05TIGlzIG5vdCBzZXQK IyBDT05GSUdfTU9EVUxFX1NSQ1ZFUlNJT05fQUxMIGlzIG5vdCBzZXQKQ09ORklHX0JMT0NL PXkKQ09ORklHX0xCREFGPXkKQ09ORklHX0JMS19ERVZfQlNHPXkKIyBDT05GSUdfQkxLX0RF Vl9JTlRFR1JJVFkgaXMgbm90IHNldAoKIwojIElPIFNjaGVkdWxlcnMKIwpDT05GSUdfSU9T Q0hFRF9OT09QPXkKQ09ORklHX0lPU0NIRURfREVBRExJTkU9eQpDT05GSUdfSU9TQ0hFRF9D RlE9eQojIENPTkZJR19ERUZBVUxUX0RFQURMSU5FIGlzIG5vdCBzZXQKQ09ORklHX0RFRkFV TFRfQ0ZRPXkKIyBDT05GSUdfREVGQVVMVF9OT09QIGlzIG5vdCBzZXQKQ09ORklHX0RFRkFV TFRfSU9TQ0hFRD0iY2ZxIgojIENPTkZJR19JTkxJTkVfU1BJTl9UUllMT0NLIGlzIG5vdCBz ZXQKIyBDT05GSUdfSU5MSU5FX1NQSU5fVFJZTE9DS19CSCBpcyBub3Qgc2V0CiMgQ09ORklH X0lOTElORV9TUElOX0xPQ0sgaXMgbm90IHNldAojIENPTkZJR19JTkxJTkVfU1BJTl9MT0NL X0JIIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5MSU5FX1NQSU5fTE9DS19JUlEgaXMgbm90IHNl dAojIENPTkZJR19JTkxJTkVfU1BJTl9MT0NLX0lSUVNBVkUgaXMgbm90IHNldAojIENPTkZJ R19JTkxJTkVfU1BJTl9VTkxPQ0sgaXMgbm90IHNldAojIENPTkZJR19JTkxJTkVfU1BJTl9V TkxPQ0tfQkggaXMgbm90IHNldAojIENPTkZJR19JTkxJTkVfU1BJTl9VTkxPQ0tfSVJRIGlz IG5vdCBzZXQKIyBDT05GSUdfSU5MSU5FX1NQSU5fVU5MT0NLX0lSUVJFU1RPUkUgaXMgbm90 IHNldAojIENPTkZJR19JTkxJTkVfUkVBRF9UUllMT0NLIGlzIG5vdCBzZXQKIyBDT05GSUdf SU5MSU5FX1JFQURfTE9DSyBpcyBub3Qgc2V0CiMgQ09ORklHX0lOTElORV9SRUFEX0xPQ0tf QkggaXMgbm90IHNldAojIENPTkZJR19JTkxJTkVfUkVBRF9MT0NLX0lSUSBpcyBub3Qgc2V0 CiMgQ09ORklHX0lOTElORV9SRUFEX0xPQ0tfSVJRU0FWRSBpcyBub3Qgc2V0CiMgQ09ORklH X0lOTElORV9SRUFEX1VOTE9DSyBpcyBub3Qgc2V0CiMgQ09ORklHX0lOTElORV9SRUFEX1VO TE9DS19CSCBpcyBub3Qgc2V0CiMgQ09ORklHX0lOTElORV9SRUFEX1VOTE9DS19JUlEgaXMg bm90IHNldAojIENPTkZJR19JTkxJTkVfUkVBRF9VTkxPQ0tfSVJRUkVTVE9SRSBpcyBub3Qg c2V0CiMgQ09ORklHX0lOTElORV9XUklURV9UUllMT0NLIGlzIG5vdCBzZXQKIyBDT05GSUdf SU5MSU5FX1dSSVRFX0xPQ0sgaXMgbm90IHNldAojIENPTkZJR19JTkxJTkVfV1JJVEVfTE9D S19CSCBpcyBub3Qgc2V0CiMgQ09ORklHX0lOTElORV9XUklURV9MT0NLX0lSUSBpcyBub3Qg c2V0CiMgQ09ORklHX0lOTElORV9XUklURV9MT0NLX0lSUVNBVkUgaXMgbm90IHNldAojIENP TkZJR19JTkxJTkVfV1JJVEVfVU5MT0NLIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5MSU5FX1dS SVRFX1VOTE9DS19CSCBpcyBub3Qgc2V0CiMgQ09ORklHX0lOTElORV9XUklURV9VTkxPQ0tf SVJRIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5MSU5FX1dSSVRFX1VOTE9DS19JUlFSRVNUT1JF IGlzIG5vdCBzZXQKIyBDT05GSUdfTVVURVhfU1BJTl9PTl9PV05FUiBpcyBub3Qgc2V0CkNP TkZJR19GUkVFWkVSPXkKCiMKIyBTeXN0ZW0gVHlwZQojCkNPTkZJR19NTVU9eQojIENPTkZJ R19BUkNIX0lOVEVHUkFUT1IgaXMgbm90IHNldAojIENPTkZJR19BUkNIX1JFQUxWSUVXIGlz IG5vdCBzZXQKIyBDT05GSUdfQVJDSF9WRVJTQVRJTEUgaXMgbm90IHNldAojIENPTkZJR19B UkNIX1ZFWFBSRVNTIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9BVDkxIGlzIG5vdCBzZXQK IyBDT05GSUdfQVJDSF9CQ01SSU5HIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9DTFBTNzEx WCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfQ05TM1hYWCBpcyBub3Qgc2V0CiMgQ09ORklH X0FSQ0hfR0VNSU5JIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9FQlNBMTEwIGlzIG5vdCBz ZXQKIyBDT05GSUdfQVJDSF9FUDkzWFggaXMgbm90IHNldAojIENPTkZJR19BUkNIX0ZPT1RC UklER0UgaXMgbm90IHNldAojIENPTkZJR19BUkNIX01YQyBpcyBub3Qgc2V0CkNPTkZJR19B UkNIX01YUz15CiMgQ09ORklHX0FSQ0hfTkVUWCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hf SDcyMFggaXMgbm90IHNldAojIENPTkZJR19BUkNIX0lPUDEzWFggaXMgbm90IHNldAojIENP TkZJR19BUkNIX0lPUDMyWCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfSU9QMzNYIGlzIG5v dCBzZXQKIyBDT05GSUdfQVJDSF9JWFAyM1hYIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9J WFAyMDAwIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9JWFA0WFggaXMgbm90IHNldAojIENP TkZJR19BUkNIX0RPVkUgaXMgbm90IHNldAojIENPTkZJR19BUkNIX0tJUktXT09EIGlzIG5v dCBzZXQKIyBDT05GSUdfQVJDSF9MT0tJIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9MUEMz MlhYIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9NVjc4WFgwIGlzIG5vdCBzZXQKIyBDT05G SUdfQVJDSF9PUklPTjVYIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9NTVAgaXMgbm90IHNl dAojIENPTkZJR19BUkNIX0tTODY5NSBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfVzkwWDkw MCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfTlVDOTNYIGlzIG5vdCBzZXQKIyBDT05GSUdf QVJDSF9URUdSQSBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfUE5YNDAwOCBpcyBub3Qgc2V0 CiMgQ09ORklHX0FSQ0hfUFhBIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9NU00gaXMgbm90 IHNldAojIENPTkZJR19BUkNIX1NITU9CSUxFIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9S UEMgaXMgbm90IHNldAojIENPTkZJR19BUkNIX1NBMTEwMCBpcyBub3Qgc2V0CiMgQ09ORklH X0FSQ0hfUzNDMjQxMCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfUzNDNjRYWCBpcyBub3Qg c2V0CiMgQ09ORklHX0FSQ0hfUzVQNjRYMCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfUzVQ QzEwMCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfUzVQVjIxMCBpcyBub3Qgc2V0CiMgQ09O RklHX0FSQ0hfRVhZTk9TNCBpcyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfU0hBUksgaXMgbm90 IHNldAojIENPTkZJR19BUkNIX1RDQ185MjYgaXMgbm90IHNldAojIENPTkZJR19BUkNIX1Uz MDAgaXMgbm90IHNldAojIENPTkZJR19BUkNIX1U4NTAwIGlzIG5vdCBzZXQKIyBDT05GSUdf QVJDSF9OT01BRElLIGlzIG5vdCBzZXQKIyBDT05GSUdfQVJDSF9EQVZJTkNJIGlzIG5vdCBz ZXQKIyBDT05GSUdfQVJDSF9PTUFQIGlzIG5vdCBzZXQKIyBDT05GSUdfUExBVF9TUEVBUiBp cyBub3Qgc2V0CiMgQ09ORklHX0FSQ0hfVlQ4NTAwIGlzIG5vdCBzZXQKIyBDT05GSUdfS0VZ Qk9BUkRfR1BJT19QT0xMRUQgaXMgbm90IHNldApDT05GSUdfTVhTX0hBVkVfQU1CQV9EVUFS VD15CkNPTkZJR19NWFNfSEFWRV9QTEFURk9STV9BVUFSVD15CkNPTkZJR19NWFNfSEFWRV9Q TEFURk9STV9GRUM9eQpDT05GSUdfTVhTX0hBVkVfUExBVEZPUk1fRkxFWENBTj15CkNPTkZJ R19NWFNfSEFWRV9QTEFURk9STV9HUE1JX05GQz15CkNPTkZJR19NWFNfSEFWRV9QTEFURk9S TV9NWFNfTU1DPXkKQ09ORklHX01YU19IQVZFX1BMQVRGT1JNX01YU0ZCPXkKQ09ORklHX01Y U19PQ09UUD15CkNPTkZJR19TT0NfSU1YMjM9eQpDT05GSUdfU09DX0lNWDI4PXkKCiMKIyBN WFMgcGxhdGZvcm1zOgojCiMgQ09ORklHX01BQ0hfU1RNUDM3OFhfREVWQiBpcyBub3Qgc2V0 CkNPTkZJR19NQUNIX01YMjNFVks9eQpDT05GSUdfTUFDSF9NWDI4RVZLPXkKIyBDT05GSUdf TUFDSF9UWDI4IGlzIG5vdCBzZXQKCiMKIyBTeXN0ZW0gTU1VCiMKCiMKIyBQcm9jZXNzb3Ig VHlwZQojCkNPTkZJR19DUFVfQVJNOTI2VD15CkNPTkZJR19DUFVfMzJ2NT15CkNPTkZJR19D UFVfQUJSVF9FVjVUSj15CkNPTkZJR19DUFVfUEFCUlRfTEVHQUNZPXkKQ09ORklHX0NQVV9D QUNIRV9WSVZUPXkKQ09ORklHX0NQVV9DT1BZX1Y0V0I9eQpDT05GSUdfQ1BVX1RMQl9WNFdC ST15CkNPTkZJR19DUFVfQ1AxNT15CkNPTkZJR19DUFVfQ1AxNV9NTVU9eQpDT05GSUdfQ1BV X1VTRV9ET01BSU5TPXkKCiMKIyBQcm9jZXNzb3IgRmVhdHVyZXMKIwpDT05GSUdfQVJNX1RI VU1CPXkKIyBDT05GSUdfQ1BVX0lDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKIyBDT05GSUdf Q1BVX0RDQUNIRV9ESVNBQkxFIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1BVX0RDQUNIRV9XUklU RVRIUk9VR0ggaXMgbm90IHNldAojIENPTkZJR19DUFVfQ0FDSEVfUk9VTkRfUk9CSU4gaXMg bm90IHNldApDT05GSUdfQVJNX0wxX0NBQ0hFX1NISUZUPTUKCiMKIyBCdXMgc3VwcG9ydAoj CkNPTkZJR19BUk1fQU1CQT15CiMgQ09ORklHX1BDSV9TWVNDQUxMIGlzIG5vdCBzZXQKIyBD T05GSUdfQVJDSF9TVVBQT1JUU19NU0kgaXMgbm90IHNldAojIENPTkZJR19QQ0NBUkQgaXMg bm90IHNldAoKIwojIEtlcm5lbCBGZWF0dXJlcwojCkNPTkZJR19USUNLX09ORVNIT1Q9eQpD T05GSUdfTk9fSFo9eQpDT05GSUdfSElHSF9SRVNfVElNRVJTPXkKQ09ORklHX0dFTkVSSUNf Q0xPQ0tFVkVOVFNfQlVJTEQ9eQpDT05GSUdfVk1TUExJVF8zRz15CiMgQ09ORklHX1ZNU1BM SVRfMkcgaXMgbm90IHNldAojIENPTkZJR19WTVNQTElUXzFHIGlzIG5vdCBzZXQKQ09ORklH X1BBR0VfT0ZGU0VUPTB4QzAwMDAwMDAKIyBDT05GSUdfUFJFRU1QVF9OT05FIGlzIG5vdCBz ZXQKIyBDT05GSUdfUFJFRU1QVF9WT0xVTlRBUlkgaXMgbm90IHNldApDT05GSUdfUFJFRU1Q VD15CkNPTkZJR19IWj0xMDAKQ09ORklHX0FFQUJJPXkKQ09ORklHX09BQklfQ09NUEFUPXkK IyBDT05GSUdfQVJDSF9TUEFSU0VNRU1fREVGQVVMVCBpcyBub3Qgc2V0CiMgQ09ORklHX0FS Q0hfU0VMRUNUX01FTU9SWV9NT0RFTCBpcyBub3Qgc2V0CkNPTkZJR19IQVZFX0FSQ0hfUEZO X1ZBTElEPXkKIyBDT05GSUdfSElHSE1FTSBpcyBub3Qgc2V0CkNPTkZJR19TRUxFQ1RfTUVN T1JZX01PREVMPXkKQ09ORklHX0ZMQVRNRU1fTUFOVUFMPXkKQ09ORklHX0ZMQVRNRU09eQpD T05GSUdfRkxBVF9OT0RFX01FTV9NQVA9eQpDT05GSUdfSEFWRV9NRU1CTE9DSz15CkNPTkZJ R19QQUdFRkxBR1NfRVhURU5ERUQ9eQpDT05GSUdfU1BMSVRfUFRMT0NLX0NQVVM9OTk5OTk5 CiMgQ09ORklHX0NPTVBBQ1RJT04gaXMgbm90IHNldAojIENPTkZJR19QSFlTX0FERFJfVF82 NEJJVCBpcyBub3Qgc2V0CkNPTkZJR19aT05FX0RNQV9GTEFHPTAKQ09ORklHX1ZJUlRfVE9f QlVTPXkKIyBDT05GSUdfS1NNIGlzIG5vdCBzZXQKQ09ORklHX0RFRkFVTFRfTU1BUF9NSU5f QUREUj00MDk2CkNPTkZJR19ORUVEX1BFUl9DUFVfS009eQojIENPTkZJR19DTEVBTkNBQ0hF IGlzIG5vdCBzZXQKQ09ORklHX0ZPUkNFX01BWF9aT05FT1JERVI9MTEKQ09ORklHX0FMSUdO TUVOVF9UUkFQPXkKIyBDT05GSUdfVUFDQ0VTU19XSVRIX01FTUNQWSBpcyBub3Qgc2V0CiMg Q09ORklHX1NFQ0NPTVAgaXMgbm90IHNldAojIENPTkZJR19DQ19TVEFDS1BST1RFQ1RPUiBp cyBub3Qgc2V0CiMgQ09ORklHX0RFUFJFQ0FURURfUEFSQU1fU1RSVUNUIGlzIG5vdCBzZXQK CiMKIyBCb290IG9wdGlvbnMKIwojIENPTkZJR19VU0VfT0YgaXMgbm90IHNldApDT05GSUdf WkJPT1RfUk9NX1RFWFQ9MHgwCkNPTkZJR19aQk9PVF9ST01fQlNTPTB4MApDT05GSUdfQ01E TElORT0iIgojIENPTkZJR19YSVBfS0VSTkVMIGlzIG5vdCBzZXQKIyBDT05GSUdfS0VYRUMg aXMgbm90IHNldAojIENPTkZJR19DUkFTSF9EVU1QIGlzIG5vdCBzZXQKIyBDT05GSUdfQVVU T19aUkVMQUREUiBpcyBub3Qgc2V0CgojCiMgQ1BVIFBvd2VyIE1hbmFnZW1lbnQKIwojIENP TkZJR19DUFVfSURMRSBpcyBub3Qgc2V0CgojCiMgRmxvYXRpbmcgcG9pbnQgZW11bGF0aW9u CiMKCiMKIyBBdCBsZWFzdCBvbmUgZW11bGF0aW9uIG11c3QgYmUgc2VsZWN0ZWQKIwojIENP TkZJR19GUEVfTldGUEUgaXMgbm90IHNldAojIENPTkZJR19GUEVfRkFTVEZQRSBpcyBub3Qg c2V0CiMgQ09ORklHX1ZGUCBpcyBub3Qgc2V0CgojCiMgVXNlcnNwYWNlIGJpbmFyeSBmb3Jt YXRzCiMKQ09ORklHX0JJTkZNVF9FTEY9eQpDT05GSUdfQ09SRV9EVU1QX0RFRkFVTFRfRUxG X0hFQURFUlM9eQpDT05GSUdfSEFWRV9BT1VUPXkKIyBDT05GSUdfQklORk1UX0FPVVQgaXMg bm90IHNldAojIENPTkZJR19CSU5GTVRfTUlTQyBpcyBub3Qgc2V0CgojCiMgUG93ZXIgbWFu YWdlbWVudCBvcHRpb25zCiMKQ09ORklHX1NVU1BFTkQ9eQpDT05GSUdfU1VTUEVORF9GUkVF WkVSPXkKQ09ORklHX1BNX1NMRUVQPXkKIyBDT05GSUdfUE1fUlVOVElNRSBpcyBub3Qgc2V0 CkNPTkZJR19QTT15CiMgQ09ORklHX1BNX0RFQlVHIGlzIG5vdCBzZXQKIyBDT05GSUdfQVBN X0VNVUxBVElPTiBpcyBub3Qgc2V0CkNPTkZJR19BUkNIX1NVU1BFTkRfUE9TU0lCTEU9eQpD T05GSUdfTkVUPXkKCiMKIyBOZXR3b3JraW5nIG9wdGlvbnMKIwpDT05GSUdfUEFDS0VUPXkK Q09ORklHX1VOSVg9eQpDT05GSUdfWEZSTT15CiMgQ09ORklHX1hGUk1fVVNFUiBpcyBub3Qg c2V0CiMgQ09ORklHX1hGUk1fU1VCX1BPTElDWSBpcyBub3Qgc2V0CiMgQ09ORklHX1hGUk1f TUlHUkFURSBpcyBub3Qgc2V0CiMgQ09ORklHX1hGUk1fU1RBVElTVElDUyBpcyBub3Qgc2V0 CiMgQ09ORklHX05FVF9LRVkgaXMgbm90IHNldApDT05GSUdfSU5FVD15CiMgQ09ORklHX0lQ X01VTFRJQ0FTVCBpcyBub3Qgc2V0CiMgQ09ORklHX0lQX0FEVkFOQ0VEX1JPVVRFUiBpcyBu b3Qgc2V0CiMgQ09ORklHX0lQX1BOUCBpcyBub3Qgc2V0CiMgQ09ORklHX05FVF9JUElQIGlz IG5vdCBzZXQKIyBDT05GSUdfTkVUX0lQR1JFX0RFTVVYIGlzIG5vdCBzZXQKIyBDT05GSUdf QVJQRCBpcyBub3Qgc2V0CiMgQ09ORklHX1NZTl9DT09LSUVTIGlzIG5vdCBzZXQKIyBDT05G SUdfSU5FVF9BSCBpcyBub3Qgc2V0CiMgQ09ORklHX0lORVRfRVNQIGlzIG5vdCBzZXQKIyBD T05GSUdfSU5FVF9JUENPTVAgaXMgbm90IHNldAojIENPTkZJR19JTkVUX1hGUk1fVFVOTkVM IGlzIG5vdCBzZXQKQ09ORklHX0lORVRfVFVOTkVMPW0KQ09ORklHX0lORVRfWEZSTV9NT0RF X1RSQU5TUE9SVD15CkNPTkZJR19JTkVUX1hGUk1fTU9ERV9UVU5ORUw9eQpDT05GSUdfSU5F VF9YRlJNX01PREVfQkVFVD15CkNPTkZJR19JTkVUX0xSTz15CkNPTkZJR19JTkVUX0RJQUc9 eQpDT05GSUdfSU5FVF9UQ1BfRElBRz15CiMgQ09ORklHX1RDUF9DT05HX0FEVkFOQ0VEIGlz IG5vdCBzZXQKQ09ORklHX1RDUF9DT05HX0NVQklDPXkKQ09ORklHX0RFRkFVTFRfVENQX0NP Tkc9ImN1YmljIgojIENPTkZJR19UQ1BfTUQ1U0lHIGlzIG5vdCBzZXQKQ09ORklHX0lQVjY9 bQojIENPTkZJR19JUFY2X1BSSVZBQ1kgaXMgbm90IHNldAojIENPTkZJR19JUFY2X1JPVVRF Ul9QUkVGIGlzIG5vdCBzZXQKIyBDT05GSUdfSVBWNl9PUFRJTUlTVElDX0RBRCBpcyBub3Qg c2V0CiMgQ09ORklHX0lORVQ2X0FIIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5FVDZfRVNQIGlz IG5vdCBzZXQKIyBDT05GSUdfSU5FVDZfSVBDT01QIGlzIG5vdCBzZXQKIyBDT05GSUdfSVBW Nl9NSVA2IGlzIG5vdCBzZXQKIyBDT05GSUdfSU5FVDZfWEZSTV9UVU5ORUwgaXMgbm90IHNl dAojIENPTkZJR19JTkVUNl9UVU5ORUwgaXMgbm90IHNldApDT05GSUdfSU5FVDZfWEZSTV9N T0RFX1RSQU5TUE9SVD1tCkNPTkZJR19JTkVUNl9YRlJNX01PREVfVFVOTkVMPW0KQ09ORklH X0lORVQ2X1hGUk1fTU9ERV9CRUVUPW0KIyBDT05GSUdfSU5FVDZfWEZSTV9NT0RFX1JPVVRF T1BUSU1JWkFUSU9OIGlzIG5vdCBzZXQKQ09ORklHX0lQVjZfU0lUPW0KIyBDT05GSUdfSVBW Nl9TSVRfNlJEIGlzIG5vdCBzZXQKQ09ORklHX0lQVjZfTkRJU0NfTk9ERVRZUEU9eQojIENP TkZJR19JUFY2X1RVTk5FTCBpcyBub3Qgc2V0CiMgQ09ORklHX0lQVjZfTVVMVElQTEVfVEFC TEVTIGlzIG5vdCBzZXQKIyBDT05GSUdfSVBWNl9NUk9VVEUgaXMgbm90IHNldAojIENPTkZJ R19ORVRXT1JLX1NFQ01BUksgaXMgbm90IHNldAojIENPTkZJR19ORVRXT1JLX1BIWV9USU1F U1RBTVBJTkcgaXMgbm90IHNldAojIENPTkZJR19ORVRGSUxURVIgaXMgbm90IHNldAojIENP TkZJR19JUF9EQ0NQIGlzIG5vdCBzZXQKIyBDT05GSUdfSVBfU0NUUCBpcyBub3Qgc2V0CiMg Q09ORklHX1JEUyBpcyBub3Qgc2V0CiMgQ09ORklHX1RJUEMgaXMgbm90IHNldAojIENPTkZJ R19BVE0gaXMgbm90IHNldAojIENPTkZJR19MMlRQIGlzIG5vdCBzZXQKIyBDT05GSUdfQlJJ REdFIGlzIG5vdCBzZXQKIyBDT05GSUdfVkxBTl84MDIxUSBpcyBub3Qgc2V0CiMgQ09ORklH X0RFQ05FVCBpcyBub3Qgc2V0CiMgQ09ORklHX0xMQzIgaXMgbm90IHNldAojIENPTkZJR19J UFggaXMgbm90IHNldAojIENPTkZJR19BVEFMSyBpcyBub3Qgc2V0CiMgQ09ORklHX1gyNSBp cyBub3Qgc2V0CiMgQ09ORklHX0xBUEIgaXMgbm90IHNldAojIENPTkZJR19FQ09ORVQgaXMg bm90IHNldAojIENPTkZJR19XQU5fUk9VVEVSIGlzIG5vdCBzZXQKIyBDT05GSUdfUEhPTkVU IGlzIG5vdCBzZXQKIyBDT05GSUdfSUVFRTgwMjE1NCBpcyBub3Qgc2V0CiMgQ09ORklHX05F VF9TQ0hFRCBpcyBub3Qgc2V0CiMgQ09ORklHX0RDQiBpcyBub3Qgc2V0CiMgQ09ORklHX0JB VE1BTl9BRFYgaXMgbm90IHNldAoKIwojIE5ldHdvcmsgdGVzdGluZwojCiMgQ09ORklHX05F VF9QS1RHRU4gaXMgbm90IHNldAojIENPTkZJR19ORVRfVENQUFJPQkUgaXMgbm90IHNldAoj IENPTkZJR19ORVRfRFJPUF9NT05JVE9SIGlzIG5vdCBzZXQKIyBDT05GSUdfSEFNUkFESU8g aXMgbm90IHNldAojIENPTkZJR19DQU4gaXMgbm90IHNldAojIENPTkZJR19JUkRBIGlzIG5v dCBzZXQKIyBDT05GSUdfQlQgaXMgbm90IHNldAojIENPTkZJR19BRl9SWFJQQyBpcyBub3Qg c2V0CkNPTkZJR19XSVJFTEVTUz15CiMgQ09ORklHX0NGRzgwMjExIGlzIG5vdCBzZXQKIyBD T05GSUdfTElCODAyMTEgaXMgbm90IHNldAoKIwojIENGRzgwMjExIG5lZWRzIHRvIGJlIGVu YWJsZWQgZm9yIE1BQzgwMjExCiMKIyBDT05GSUdfV0lNQVggaXMgbm90IHNldAojIENPTkZJ R19SRktJTEwgaXMgbm90IHNldAojIENPTkZJR19ORVRfOVAgaXMgbm90IHNldAojIENPTkZJ R19DQUlGIGlzIG5vdCBzZXQKIyBDT05GSUdfQ0VQSF9MSUIgaXMgbm90IHNldAoKIwojIERl dmljZSBEcml2ZXJzCiMKCiMKIyBHZW5lcmljIERyaXZlciBPcHRpb25zCiMKQ09ORklHX1VF VkVOVF9IRUxQRVJfUEFUSD0iIgojIENPTkZJR19ERVZUTVBGUyBpcyBub3Qgc2V0CkNPTkZJ R19TVEFOREFMT05FPXkKQ09ORklHX1BSRVZFTlRfRklSTVdBUkVfQlVJTEQ9eQpDT05GSUdf RldfTE9BREVSPXkKQ09ORklHX0ZJUk1XQVJFX0lOX0tFUk5FTD15CkNPTkZJR19FWFRSQV9G SVJNV0FSRT0iIgojIENPTkZJR19ERUJVR19EUklWRVIgaXMgbm90IHNldAojIENPTkZJR19E RUJVR19ERVZSRVMgaXMgbm90IHNldAojIENPTkZJR19TWVNfSFlQRVJWSVNPUiBpcyBub3Qg c2V0CiMgQ09ORklHX0NPTk5FQ1RPUiBpcyBub3Qgc2V0CkNPTkZJR19NVEQ9eQojIENPTkZJ R19NVERfREVCVUcgaXMgbm90IHNldAojIENPTkZJR19NVERfVEVTVFMgaXMgbm90IHNldAoj IENPTkZJR19NVERfUkVEQk9PVF9QQVJUUyBpcyBub3Qgc2V0CkNPTkZJR19NVERfQ01ETElO RV9QQVJUUz15CiMgQ09ORklHX01URF9BRlNfUEFSVFMgaXMgbm90IHNldAojIENPTkZJR19N VERfQVI3X1BBUlRTIGlzIG5vdCBzZXQKCiMKIyBVc2VyIE1vZHVsZXMgQW5kIFRyYW5zbGF0 aW9uIExheWVycwojCiMgQ09ORklHX01URF9DSEFSIGlzIG5vdCBzZXQKIyBDT05GSUdfTVRE X0JMS0RFVlMgaXMgbm90IHNldAojIENPTkZJR19NVERfQkxPQ0sgaXMgbm90IHNldAojIENP TkZJR19NVERfQkxPQ0tfUk8gaXMgbm90IHNldAojIENPTkZJR19GVEwgaXMgbm90IHNldAoj IENPTkZJR19ORlRMIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5GVEwgaXMgbm90IHNldAojIENP TkZJR19SRkRfRlRMIGlzIG5vdCBzZXQKIyBDT05GSUdfU1NGREMgaXMgbm90IHNldAojIENP TkZJR19TTV9GVEwgaXMgbm90IHNldAojIENPTkZJR19NVERfT09QUyBpcyBub3Qgc2V0CiMg Q09ORklHX01URF9TV0FQIGlzIG5vdCBzZXQKCiMKIyBSQU0vUk9NL0ZsYXNoIGNoaXAgZHJp dmVycwojCiMgQ09ORklHX01URF9DRkkgaXMgbm90IHNldAojIENPTkZJR19NVERfSkVERUNQ Uk9CRSBpcyBub3Qgc2V0CkNPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfMT15CkNPTkZJR19N VERfTUFQX0JBTktfV0lEVEhfMj15CkNPTkZJR19NVERfTUFQX0JBTktfV0lEVEhfND15CiMg Q09ORklHX01URF9NQVBfQkFOS19XSURUSF84IGlzIG5vdCBzZXQKIyBDT05GSUdfTVREX01B UF9CQU5LX1dJRFRIXzE2IGlzIG5vdCBzZXQKIyBDT05GSUdfTVREX01BUF9CQU5LX1dJRFRI XzMyIGlzIG5vdCBzZXQKQ09ORklHX01URF9DRklfSTE9eQpDT05GSUdfTVREX0NGSV9JMj15 CiMgQ09ORklHX01URF9DRklfSTQgaXMgbm90IHNldAojIENPTkZJR19NVERfQ0ZJX0k4IGlz IG5vdCBzZXQKIyBDT05GSUdfTVREX1JBTSBpcyBub3Qgc2V0CiMgQ09ORklHX01URF9ST00g aXMgbm90IHNldAojIENPTkZJR19NVERfQUJTRU5UIGlzIG5vdCBzZXQKCiMKIyBNYXBwaW5n IGRyaXZlcnMgZm9yIGNoaXAgYWNjZXNzCiMKIyBDT05GSUdfTVREX0NPTVBMRVhfTUFQUElO R1MgaXMgbm90IHNldAojIENPTkZJR19NVERfUExBVFJBTSBpcyBub3Qgc2V0CgojCiMgU2Vs Zi1jb250YWluZWQgTVREIGRldmljZSBkcml2ZXJzCiMKIyBDT05GSUdfTVREX1NMUkFNIGlz IG5vdCBzZXQKIyBDT05GSUdfTVREX1BIUkFNIGlzIG5vdCBzZXQKIyBDT05GSUdfTVREX01U RFJBTSBpcyBub3Qgc2V0CiMgQ09ORklHX01URF9CTE9DSzJNVEQgaXMgbm90IHNldAoKIwoj IERpc2stT24tQ2hpcCBEZXZpY2UgRHJpdmVycwojCiMgQ09ORklHX01URF9ET0MyMDAwIGlz IG5vdCBzZXQKIyBDT05GSUdfTVREX0RPQzIwMDEgaXMgbm90IHNldAojIENPTkZJR19NVERf RE9DMjAwMVBMVVMgaXMgbm90IHNldApDT05GSUdfTVREX05BTkRfRUNDPXkKIyBDT05GSUdf TVREX05BTkRfRUNDX1NNQyBpcyBub3Qgc2V0CkNPTkZJR19NVERfTkFORD15CiMgQ09ORklH X01URF9OQU5EX1ZFUklGWV9XUklURSBpcyBub3Qgc2V0CiMgQ09ORklHX01URF9OQU5EX0VD Q19CQ0ggaXMgbm90IHNldAojIENPTkZJR19NVERfU01fQ09NTU9OIGlzIG5vdCBzZXQKIyBD T05GSUdfTVREX05BTkRfTVVTRVVNX0lEUyBpcyBub3Qgc2V0CiMgQ09ORklHX01URF9OQU5E X0dQSU8gaXMgbm90IHNldApDT05GSUdfTVREX05BTkRfSURTPXkKIyBDT05GSUdfTVREX05B TkRfRElTS09OQ0hJUCBpcyBub3Qgc2V0CiMgQ09ORklHX01URF9OQU5EX05BTkRTSU0gaXMg bm90IHNldApDT05GSUdfTVREX05BTkRfR1BNSV9ORkM9eQojIENPTkZJR19NVERfTkFORF9Q TEFURk9STSBpcyBub3Qgc2V0CiMgQ09ORklHX01URF9PTkVOQU5EIGlzIG5vdCBzZXQKCiMK IyBMUEREUiBmbGFzaCBtZW1vcnkgZHJpdmVycwojCiMgQ09ORklHX01URF9MUEREUiBpcyBu b3Qgc2V0CkNPTkZJR19NVERfVUJJPXkKQ09ORklHX01URF9VQklfV0xfVEhSRVNIT0xEPTQw OTYKQ09ORklHX01URF9VQklfQkVCX1JFU0VSVkU9MQojIENPTkZJR19NVERfVUJJX0dMVUVC SSBpcyBub3Qgc2V0CiMgQ09ORklHX01URF9VQklfREVCVUcgaXMgbm90IHNldAojIENPTkZJ R19QQVJQT1JUIGlzIG5vdCBzZXQKQ09ORklHX0JMS19ERVY9eQojIENPTkZJR19CTEtfREVW X0NPV19DT01NT04gaXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX0xPT1AgaXMgbm90IHNl dAoKIwojIERSQkQgZGlzYWJsZWQgYmVjYXVzZSBQUk9DX0ZTLCBJTkVUIG9yIENPTk5FQ1RP UiBub3Qgc2VsZWN0ZWQKIwojIENPTkZJR19CTEtfREVWX05CRCBpcyBub3Qgc2V0CiMgQ09O RklHX0JMS19ERVZfUkFNIGlzIG5vdCBzZXQKIyBDT05GSUdfQ0RST01fUEtUQ0RWRCBpcyBu b3Qgc2V0CiMgQ09ORklHX0FUQV9PVkVSX0VUSCBpcyBub3Qgc2V0CiMgQ09ORklHX01HX0RJ U0sgaXMgbm90IHNldAojIENPTkZJR19CTEtfREVWX1JCRCBpcyBub3Qgc2V0CiMgQ09ORklH X1NFTlNPUlNfTElTM0xWMDJEIGlzIG5vdCBzZXQKIyBDT05GSUdfTUlTQ19ERVZJQ0VTIGlz IG5vdCBzZXQKQ09ORklHX0hBVkVfSURFPXkKIyBDT05GSUdfSURFIGlzIG5vdCBzZXQKCiMK IyBTQ1NJIGRldmljZSBzdXBwb3J0CiMKQ09ORklHX1NDU0lfTU9EPXkKIyBDT05GSUdfUkFJ RF9BVFRSUyBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0kgaXMgbm90IHNldAojIENPTkZJR19T Q1NJX0RNQSBpcyBub3Qgc2V0CiMgQ09ORklHX1NDU0lfTkVUTElOSyBpcyBub3Qgc2V0CiMg Q09ORklHX0FUQSBpcyBub3Qgc2V0CiMgQ09ORklHX01EIGlzIG5vdCBzZXQKIyBDT05GSUdf TkVUREVWSUNFUyBpcyBub3Qgc2V0CiMgQ09ORklHX0lTRE4gaXMgbm90IHNldAojIENPTkZJ R19QSE9ORSBpcyBub3Qgc2V0CgojCiMgSW5wdXQgZGV2aWNlIHN1cHBvcnQKIwpDT05GSUdf SU5QVVQ9eQojIENPTkZJR19JTlBVVF9GRl9NRU1MRVNTIGlzIG5vdCBzZXQKIyBDT05GSUdf SU5QVVRfUE9MTERFViBpcyBub3Qgc2V0CiMgQ09ORklHX0lOUFVUX1NQQVJTRUtNQVAgaXMg bm90IHNldAoKIwojIFVzZXJsYW5kIGludGVyZmFjZXMKIwpDT05GSUdfSU5QVVRfTU9VU0VE RVY9eQpDT05GSUdfSU5QVVRfTU9VU0VERVZfUFNBVVg9eQpDT05GSUdfSU5QVVRfTU9VU0VE RVZfU0NSRUVOX1g9MTAyNApDT05GSUdfSU5QVVRfTU9VU0VERVZfU0NSRUVOX1k9NzY4CiMg Q09ORklHX0lOUFVUX0pPWURFViBpcyBub3Qgc2V0CiMgQ09ORklHX0lOUFVUX0VWREVWIGlz IG5vdCBzZXQKIyBDT05GSUdfSU5QVVRfRVZCVUcgaXMgbm90IHNldAoKIwojIElucHV0IERl dmljZSBEcml2ZXJzCiMKQ09ORklHX0lOUFVUX0tFWUJPQVJEPXkKQ09ORklHX0tFWUJPQVJE X0FUS0JEPXkKIyBDT05GSUdfS0VZQk9BUkRfTEtLQkQgaXMgbm90IHNldAojIENPTkZJR19L RVlCT0FSRF9HUElPIGlzIG5vdCBzZXQKIyBDT05GSUdfS0VZQk9BUkRfTUFUUklYIGlzIG5v dCBzZXQKIyBDT05GSUdfS0VZQk9BUkRfTkVXVE9OIGlzIG5vdCBzZXQKIyBDT05GSUdfS0VZ Qk9BUkRfT1BFTkNPUkVTIGlzIG5vdCBzZXQKIyBDT05GSUdfS0VZQk9BUkRfU1RPV0FXQVkg aXMgbm90IHNldAojIENPTkZJR19LRVlCT0FSRF9TVU5LQkQgaXMgbm90IHNldAojIENPTkZJ R19LRVlCT0FSRF9YVEtCRCBpcyBub3Qgc2V0CkNPTkZJR19JTlBVVF9NT1VTRT15CkNPTkZJ R19NT1VTRV9QUzI9eQpDT05GSUdfTU9VU0VfUFMyX0FMUFM9eQpDT05GSUdfTU9VU0VfUFMy X0xPR0lQUzJQUD15CkNPTkZJR19NT1VTRV9QUzJfU1lOQVBUSUNTPXkKQ09ORklHX01PVVNF X1BTMl9UUkFDS1BPSU5UPXkKIyBDT05GSUdfTU9VU0VfUFMyX0VMQU5URUNIIGlzIG5vdCBz ZXQKIyBDT05GSUdfTU9VU0VfUFMyX1NFTlRFTElDIGlzIG5vdCBzZXQKIyBDT05GSUdfTU9V U0VfUFMyX1RPVUNIS0lUIGlzIG5vdCBzZXQKIyBDT05GSUdfTU9VU0VfU0VSSUFMIGlzIG5v dCBzZXQKIyBDT05GSUdfTU9VU0VfQVBQTEVUT1VDSCBpcyBub3Qgc2V0CiMgQ09ORklHX01P VVNFX0JDTTU5NzQgaXMgbm90IHNldAojIENPTkZJR19NT1VTRV9WU1hYWEFBIGlzIG5vdCBz ZXQKIyBDT05GSUdfTU9VU0VfR1BJTyBpcyBub3Qgc2V0CiMgQ09ORklHX0lOUFVUX0pPWVNU SUNLIGlzIG5vdCBzZXQKIyBDT05GSUdfSU5QVVRfVEFCTEVUIGlzIG5vdCBzZXQKIyBDT05G SUdfSU5QVVRfVE9VQ0hTQ1JFRU4gaXMgbm90IHNldAojIENPTkZJR19JTlBVVF9NSVNDIGlz IG5vdCBzZXQKCiMKIyBIYXJkd2FyZSBJL08gcG9ydHMKIwpDT05GSUdfU0VSSU89eQpDT05G SUdfU0VSSU9fU0VSUE9SVD15CiMgQ09ORklHX1NFUklPX0FNQkFLTUkgaXMgbm90IHNldApD T05GSUdfU0VSSU9fTElCUFMyPXkKIyBDT05GSUdfU0VSSU9fUkFXIGlzIG5vdCBzZXQKIyBD T05GSUdfU0VSSU9fQUxURVJBX1BTMiBpcyBub3Qgc2V0CiMgQ09ORklHX1NFUklPX1BTMk1V TFQgaXMgbm90IHNldAojIENPTkZJR19HQU1FUE9SVCBpcyBub3Qgc2V0CgojCiMgQ2hhcmFj dGVyIGRldmljZXMKIwpDT05GSUdfVlQ9eQpDT05GSUdfQ09OU09MRV9UUkFOU0xBVElPTlM9 eQpDT05GSUdfVlRfQ09OU09MRT15CkNPTkZJR19IV19DT05TT0xFPXkKIyBDT05GSUdfVlRf SFdfQ09OU09MRV9CSU5ESU5HIGlzIG5vdCBzZXQKQ09ORklHX1VOSVg5OF9QVFlTPXkKIyBD T05GSUdfREVWUFRTX01VTFRJUExFX0lOU1RBTkNFUyBpcyBub3Qgc2V0CkNPTkZJR19MRUdB Q1lfUFRZUz15CkNPTkZJR19MRUdBQ1lfUFRZX0NPVU5UPTI1NgojIENPTkZJR19TRVJJQUxf Tk9OU1RBTkRBUkQgaXMgbm90IHNldAojIENPTkZJR19OX0dTTSBpcyBub3Qgc2V0CiMgQ09O RklHX1RSQUNFX1NJTksgaXMgbm90IHNldApDT05GSUdfREVWS01FTT15CgojCiMgU2VyaWFs IGRyaXZlcnMKIwojIENPTkZJR19TRVJJQUxfODI1MCBpcyBub3Qgc2V0CgojCiMgTm9uLTgy NTAgc2VyaWFsIHBvcnQgc3VwcG9ydAojCiMgQ09ORklHX1NFUklBTF9BTUJBX1BMMDEwIGlz IG5vdCBzZXQKQ09ORklHX1NFUklBTF9BTUJBX1BMMDExPXkKQ09ORklHX1NFUklBTF9BTUJB X1BMMDExX0NPTlNPTEU9eQpDT05GSUdfU0VSSUFMX0NPUkU9eQpDT05GSUdfU0VSSUFMX0NP UkVfQ09OU09MRT15CiMgQ09ORklHX1NFUklBTF9USU1CRVJEQUxFIGlzIG5vdCBzZXQKIyBD T05GSUdfU0VSSUFMX0FMVEVSQV9KVEFHVUFSVCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFUklB TF9BTFRFUkFfVUFSVCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFUklBTF9NWFNfQVVBUlQgaXMg bm90IHNldAojIENPTkZJR19TRVJJQUxfWElMSU5YX1BTX1VBUlQgaXMgbm90IHNldAojIENP TkZJR19UVFlfUFJJTlRLIGlzIG5vdCBzZXQKIyBDT05GSUdfSFZDX0RDQyBpcyBub3Qgc2V0 CiMgQ09ORklHX0lQTUlfSEFORExFUiBpcyBub3Qgc2V0CkNPTkZJR19IV19SQU5ET009bQoj IENPTkZJR19IV19SQU5ET01fVElNRVJJT01FTSBpcyBub3Qgc2V0CiMgQ09ORklHX1IzOTY0 IGlzIG5vdCBzZXQKIyBDT05GSUdfUkFXX0RSSVZFUiBpcyBub3Qgc2V0CiMgQ09ORklHX1RD R19UUE0gaXMgbm90IHNldAojIENPTkZJR19SQU1PT1BTIGlzIG5vdCBzZXQKIyBDT05GSUdf STJDIGlzIG5vdCBzZXQKIyBDT05GSUdfU1BJIGlzIG5vdCBzZXQKCiMKIyBQUFMgc3VwcG9y dAojCiMgQ09ORklHX1BQUyBpcyBub3Qgc2V0CgojCiMgUFBTIGdlbmVyYXRvcnMgc3VwcG9y dAojCgojCiMgUFRQIGNsb2NrIHN1cHBvcnQKIwoKIwojIEVuYWJsZSBEZXZpY2UgRHJpdmVy cyAtPiBQUFMgdG8gc2VlIHRoZSBQVFAgY2xvY2sgb3B0aW9ucy4KIwpDT05GSUdfQVJDSF9S RVFVSVJFX0dQSU9MSUI9eQpDT05GSUdfR1BJT0xJQj15CiMgQ09ORklHX0RFQlVHX0dQSU8g aXMgbm90IHNldAojIENPTkZJR19HUElPX1NZU0ZTIGlzIG5vdCBzZXQKCiMKIyBNZW1vcnkg bWFwcGVkIEdQSU8gZHJpdmVyczoKIwojIENPTkZJR19HUElPX0JBU0lDX01NSU8gaXMgbm90 IHNldAojIENPTkZJR19HUElPX0lUODc2MUUgaXMgbm90IHNldAojIENPTkZJR19HUElPX0VY WU5PUzQgaXMgbm90IHNldApDT05GSUdfR1BJT19NWFM9eQojIENPTkZJR19HUElPX1BMQVRf U0FNU1VORyBpcyBub3Qgc2V0CiMgQ09ORklHX0dQSU9fUzVQQzEwMCBpcyBub3Qgc2V0CiMg Q09ORklHX0dQSU9fUzVQVjIxMCBpcyBub3Qgc2V0CiMgQ09ORklHX0dQSU9fUEwwNjEgaXMg bm90IHNldAoKIwojIEkyQyBHUElPIGV4cGFuZGVyczoKIwoKIwojIFBDSSBHUElPIGV4cGFu ZGVyczoKIwoKIwojIFNQSSBHUElPIGV4cGFuZGVyczoKIwoKIwojIEFDOTcgR1BJTyBleHBh bmRlcnM6CiMKCiMKIyBNT0RVTGJ1cyBHUElPIGV4cGFuZGVyczoKIwojIENPTkZJR19XMSBp cyBub3Qgc2V0CiMgQ09ORklHX1BPV0VSX1NVUFBMWSBpcyBub3Qgc2V0CkNPTkZJR19IV01P Tj15CiMgQ09ORklHX0hXTU9OX1ZJRCBpcyBub3Qgc2V0CiMgQ09ORklHX0hXTU9OX0RFQlVH X0NISVAgaXMgbm90IHNldAoKIwojIE5hdGl2ZSBkcml2ZXJzCiMKIyBDT05GSUdfU0VOU09S U19GNzE4MDVGIGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19GNzE4ODJGRyBpcyBub3Qg c2V0CiMgQ09ORklHX1NFTlNPUlNfR1BJT19GQU4gaXMgbm90IHNldAojIENPTkZJR19TRU5T T1JTX0lUODcgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JTX1BDODczNjAgaXMgbm90IHNl dAojIENPTkZJR19TRU5TT1JTX1BDODc0MjcgaXMgbm90IHNldAojIENPTkZJR19TRU5TT1JT X1NIVDE1IGlzIG5vdCBzZXQKIyBDT05GSUdfU0VOU09SU19TTVNDNDdNMSBpcyBub3Qgc2V0 CiMgQ09ORklHX1NFTlNPUlNfU01TQzQ3QjM5NyBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNP UlNfU0NINTYyNyBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNPUlNfVlQxMjExIGlzIG5vdCBz ZXQKIyBDT05GSUdfU0VOU09SU19XODM2MjdIRiBpcyBub3Qgc2V0CiMgQ09ORklHX1NFTlNP UlNfVzgzNjI3RUhGIGlzIG5vdCBzZXQKIyBDT05GSUdfVEhFUk1BTCBpcyBub3Qgc2V0CiMg Q09ORklHX1dBVENIRE9HIGlzIG5vdCBzZXQKQ09ORklHX1NTQl9QT1NTSUJMRT15CgojCiMg U29uaWNzIFNpbGljb24gQmFja3BsYW5lCiMKIyBDT05GSUdfU1NCIGlzIG5vdCBzZXQKQ09O RklHX0JDTUFfUE9TU0lCTEU9eQoKIwojIEJyb2FkY29tIHNwZWNpZmljIEFNQkEKIwojIENP TkZJR19CQ01BIGlzIG5vdCBzZXQKQ09ORklHX01GRF9TVVBQT1JUPXkKIyBDT05GSUdfTUZE X0NPUkUgaXMgbm90IHNldAojIENPTkZJR19NRkRfU001MDEgaXMgbm90IHNldAojIENPTkZJ R19NRkRfQVNJQzMgaXMgbm90IHNldAojIENPTkZJR19IVENfRUdQSU8gaXMgbm90IHNldAoj IENPTkZJR19IVENfUEFTSUMzIGlzIG5vdCBzZXQKIyBDT05GSUdfTUZEX1RNSU8gaXMgbm90 IHNldAojIENPTkZJR19NRkRfVDdMNjZYQiBpcyBub3Qgc2V0CiMgQ09ORklHX01GRF9UQzYz ODdYQiBpcyBub3Qgc2V0CiMgQ09ORklHX01GRF9UQzYzOTNYQiBpcyBub3Qgc2V0CiMgQ09O RklHX0FCWDUwMF9DT1JFIGlzIG5vdCBzZXQKIyBDT05GSUdfUkVHVUxBVE9SIGlzIG5vdCBz ZXQKIyBDT05GSUdfTUVESUFfU1VQUE9SVCBpcyBub3Qgc2V0CgojCiMgR3JhcGhpY3Mgc3Vw cG9ydAojCiMgQ09ORklHX0RSTSBpcyBub3Qgc2V0CiMgQ09ORklHX1ZHQVNUQVRFIGlzIG5v dCBzZXQKIyBDT05GSUdfVklERU9fT1VUUFVUX0NPTlRST0wgaXMgbm90IHNldAojIENPTkZJ R19GQiBpcyBub3Qgc2V0CiMgQ09ORklHX0JBQ0tMSUdIVF9MQ0RfU1VQUE9SVCBpcyBub3Qg c2V0CgojCiMgRGlzcGxheSBkZXZpY2Ugc3VwcG9ydAojCiMgQ09ORklHX0RJU1BMQVlfU1VQ UE9SVCBpcyBub3Qgc2V0CgojCiMgQ29uc29sZSBkaXNwbGF5IGRyaXZlciBzdXBwb3J0CiMK Q09ORklHX0RVTU1ZX0NPTlNPTEU9eQojIENPTkZJR19TT1VORCBpcyBub3Qgc2V0CkNPTkZJ R19ISURfU1VQUE9SVD15CkNPTkZJR19ISUQ9eQojIENPTkZJR19ISURSQVcgaXMgbm90IHNl dAojIENPTkZJR19ISURfUElEIGlzIG5vdCBzZXQKCiMKIyBTcGVjaWFsIEhJRCBkcml2ZXJz CiMKQ09ORklHX1VTQl9TVVBQT1JUPXkKQ09ORklHX1VTQl9BUkNIX0hBU19IQ0Q9eQojIENP TkZJR19VU0JfQVJDSF9IQVNfT0hDSSBpcyBub3Qgc2V0CiMgQ09ORklHX1VTQl9BUkNIX0hB U19FSENJIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNCIGlzIG5vdCBzZXQKIyBDT05GSUdfVVNC X09UR19XSElURUxJU1QgaXMgbm90IHNldAojIENPTkZJR19VU0JfT1RHX0JMQUNLTElTVF9I VUIgaXMgbm90IHNldAoKIwojIEVuYWJsZSBIb3N0IG9yIEdhZGdldCBzdXBwb3J0IHRvIHNl ZSBJbnZlbnRyYSBvcHRpb25zCiMKCiMKIyBOT1RFOiBVU0JfU1RPUkFHRSBkZXBlbmRzIG9u IFNDU0kgYnV0IEJMS19ERVZfU0QgbWF5CiMKIyBDT05GSUdfVVNCX0dBREdFVCBpcyBub3Qg c2V0CgojCiMgT1RHIGFuZCByZWxhdGVkIGluZnJhc3RydWN0dXJlCiMKIyBDT05GSUdfTU1D IGlzIG5vdCBzZXQKIyBDT05GSUdfTUVNU1RJQ0sgaXMgbm90IHNldAojIENPTkZJR19ORVdf TEVEUyBpcyBub3Qgc2V0CkNPTkZJR19MRURTX0dQSU9fUkVHSVNURVI9eQojIENPTkZJR19O RkNfREVWSUNFUyBpcyBub3Qgc2V0CiMgQ09ORklHX0FDQ0VTU0lCSUxJVFkgaXMgbm90IHNl dApDT05GSUdfUlRDX0xJQj15CiMgQ09ORklHX1JUQ19DTEFTUyBpcyBub3Qgc2V0CkNPTkZJ R19ETUFERVZJQ0VTPXkKIyBDT05GSUdfRE1BREVWSUNFU19ERUJVRyBpcyBub3Qgc2V0Cgoj CiMgRE1BIERldmljZXMKIwojIENPTkZJR19BTUJBX1BMMDhYIGlzIG5vdCBzZXQKIyBDT05G SUdfRFdfRE1BQyBpcyBub3Qgc2V0CiMgQ09ORklHX1RJTUJfRE1BIGlzIG5vdCBzZXQKQ09O RklHX01YU19ETUE9eQpDT05GSUdfRE1BX0VOR0lORT15CgojCiMgRE1BIENsaWVudHMKIwoj IENPTkZJR19ORVRfRE1BIGlzIG5vdCBzZXQKIyBDT05GSUdfQVNZTkNfVFhfRE1BIGlzIG5v dCBzZXQKIyBDT05GSUdfRE1BVEVTVCBpcyBub3Qgc2V0CiMgQ09ORklHX0FVWERJU1BMQVkg aXMgbm90IHNldAojIENPTkZJR19VSU8gaXMgbm90IHNldAojIENPTkZJR19TVEFHSU5HIGlz IG5vdCBzZXQKQ09ORklHX0NMS0RFVl9MT09LVVA9eQpDT05GSUdfQ0xLU1JDX01NSU89eQoK IwojIEZpbGUgc3lzdGVtcwojCiMgQ09ORklHX0VYVDJfRlMgaXMgbm90IHNldApDT05GSUdf RVhUM19GUz15CkNPTkZJR19FWFQzX0RFRkFVTFRTX1RPX09SREVSRUQ9eQpDT05GSUdfRVhU M19GU19YQVRUUj15CiMgQ09ORklHX0VYVDNfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKIyBD T05GSUdfRVhUM19GU19TRUNVUklUWSBpcyBub3Qgc2V0CkNPTkZJR19FWFQ0X0ZTPXkKQ09O RklHX0VYVDRfVVNFX0ZPUl9FWFQyMz15CkNPTkZJR19FWFQ0X0ZTX1hBVFRSPXkKIyBDT05G SUdfRVhUNF9GU19QT1NJWF9BQ0wgaXMgbm90IHNldAojIENPTkZJR19FWFQ0X0ZTX1NFQ1VS SVRZIGlzIG5vdCBzZXQKIyBDT05GSUdfRVhUNF9ERUJVRyBpcyBub3Qgc2V0CkNPTkZJR19K QkQ9eQojIENPTkZJR19KQkRfREVCVUcgaXMgbm90IHNldApDT05GSUdfSkJEMj15CiMgQ09O RklHX0pCRDJfREVCVUcgaXMgbm90IHNldApDT05GSUdfRlNfTUJDQUNIRT15CiMgQ09ORklH X1JFSVNFUkZTX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfSkZTX0ZTIGlzIG5vdCBzZXQKIyBD T05GSUdfWEZTX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfR0ZTMl9GUyBpcyBub3Qgc2V0CiMg Q09ORklHX0JUUkZTX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfTklMRlMyX0ZTIGlzIG5vdCBz ZXQKIyBDT05GSUdfRlNfUE9TSVhfQUNMIGlzIG5vdCBzZXQKQ09ORklHX0ZJTEVfTE9DS0lO Rz15CkNPTkZJR19GU05PVElGWT15CkNPTkZJR19ETk9USUZZPXkKQ09ORklHX0lOT1RJRllf VVNFUj15CiMgQ09ORklHX0ZBTk9USUZZIGlzIG5vdCBzZXQKIyBDT05GSUdfUVVPVEEgaXMg bm90IHNldAojIENPTkZJR19RVU9UQUNUTCBpcyBub3Qgc2V0CkNPTkZJR19BVVRPRlM0X0ZT PXkKIyBDT05GSUdfRlVTRV9GUyBpcyBub3Qgc2V0CgojCiMgQ2FjaGVzCiMKIyBDT05GSUdf RlNDQUNIRSBpcyBub3Qgc2V0CgojCiMgQ0QtUk9NL0RWRCBGaWxlc3lzdGVtcwojCiMgQ09O RklHX0lTTzk2NjBfRlMgaXMgbm90IHNldAojIENPTkZJR19VREZfRlMgaXMgbm90IHNldAoK IwojIERPUy9GQVQvTlQgRmlsZXN5c3RlbXMKIwojIENPTkZJR19NU0RPU19GUyBpcyBub3Qg c2V0CiMgQ09ORklHX1ZGQVRfRlMgaXMgbm90IHNldAojIENPTkZJR19OVEZTX0ZTIGlzIG5v dCBzZXQKCiMKIyBQc2V1ZG8gZmlsZXN5c3RlbXMKIwpDT05GSUdfUFJPQ19GUz15CkNPTkZJ R19QUk9DX1NZU0NUTD15CkNPTkZJR19QUk9DX1BBR0VfTU9OSVRPUj15CkNPTkZJR19TWVNG Uz15CkNPTkZJR19UTVBGUz15CiMgQ09ORklHX1RNUEZTX1BPU0lYX0FDTCBpcyBub3Qgc2V0 CiMgQ09ORklHX1RNUEZTX1hBVFRSIGlzIG5vdCBzZXQKIyBDT05GSUdfSFVHRVRMQl9QQUdF IGlzIG5vdCBzZXQKIyBDT05GSUdfQ09ORklHRlNfRlMgaXMgbm90IHNldApDT05GSUdfTUlT Q19GSUxFU1lTVEVNUz15CiMgQ09ORklHX0FERlNfRlMgaXMgbm90IHNldAojIENPTkZJR19B RkZTX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfSEZTX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdf SEZTUExVU19GUyBpcyBub3Qgc2V0CiMgQ09ORklHX0JFRlNfRlMgaXMgbm90IHNldAojIENP TkZJR19CRlNfRlMgaXMgbm90IHNldAojIENPTkZJR19FRlNfRlMgaXMgbm90IHNldAojIENP TkZJR19KRkZTMl9GUyBpcyBub3Qgc2V0CkNPTkZJR19VQklGU19GUz15CiMgQ09ORklHX1VC SUZTX0ZTX1hBVFRSIGlzIG5vdCBzZXQKIyBDT05GSUdfVUJJRlNfRlNfQURWQU5DRURfQ09N UFIgaXMgbm90IHNldApDT05GSUdfVUJJRlNfRlNfTFpPPXkKQ09ORklHX1VCSUZTX0ZTX1pM SUI9eQojIENPTkZJR19VQklGU19GU19ERUJVRyBpcyBub3Qgc2V0CiMgQ09ORklHX0xPR0ZT IGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JBTUZTIGlzIG5vdCBzZXQKIyBDT05GSUdfU1FVQVNI RlMgaXMgbm90IHNldAojIENPTkZJR19WWEZTX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfTUlO SVhfRlMgaXMgbm90IHNldAojIENPTkZJR19PTUZTX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdf SFBGU19GUyBpcyBub3Qgc2V0CiMgQ09ORklHX1FOWDRGU19GUyBpcyBub3Qgc2V0CiMgQ09O RklHX1JPTUZTX0ZTIGlzIG5vdCBzZXQKIyBDT05GSUdfUFNUT1JFIGlzIG5vdCBzZXQKIyBD T05GSUdfU1lTVl9GUyBpcyBub3Qgc2V0CiMgQ09ORklHX1VGU19GUyBpcyBub3Qgc2V0CkNP TkZJR19ORVRXT1JLX0ZJTEVTWVNURU1TPXkKIyBDT05GSUdfTkZTX0ZTIGlzIG5vdCBzZXQK IyBDT05GSUdfTkZTRCBpcyBub3Qgc2V0CiMgQ09ORklHX0NFUEhfRlMgaXMgbm90IHNldAoj IENPTkZJR19DSUZTIGlzIG5vdCBzZXQKIyBDT05GSUdfTkNQX0ZTIGlzIG5vdCBzZXQKIyBD T05GSUdfQ09EQV9GUyBpcyBub3Qgc2V0CiMgQ09ORklHX0FGU19GUyBpcyBub3Qgc2V0Cgoj CiMgUGFydGl0aW9uIFR5cGVzCiMKIyBDT05GSUdfUEFSVElUSU9OX0FEVkFOQ0VEIGlzIG5v dCBzZXQKQ09ORklHX01TRE9TX1BBUlRJVElPTj15CkNPTkZJR19OTFM9eQpDT05GSUdfTkxT X0RFRkFVTFQ9Imlzbzg4NTktMSIKQ09ORklHX05MU19DT0RFUEFHRV80Mzc9bQojIENPTkZJ R19OTFNfQ09ERVBBR0VfNzM3IGlzIG5vdCBzZXQKIyBDT05GSUdfTkxTX0NPREVQQUdFXzc3 NSBpcyBub3Qgc2V0CkNPTkZJR19OTFNfQ09ERVBBR0VfODUwPW0KIyBDT05GSUdfTkxTX0NP REVQQUdFXzg1MiBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19DT0RFUEFHRV84NTUgaXMgbm90 IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfODU3IGlzIG5vdCBzZXQKIyBDT05GSUdfTkxT X0NPREVQQUdFXzg2MCBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19DT0RFUEFHRV84NjEgaXMg bm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfODYyIGlzIG5vdCBzZXQKIyBDT05GSUdf TkxTX0NPREVQQUdFXzg2MyBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19DT0RFUEFHRV84NjQg aXMgbm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfODY1IGlzIG5vdCBzZXQKIyBDT05G SUdfTkxTX0NPREVQQUdFXzg2NiBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19DT0RFUEFHRV84 NjkgaXMgbm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfOTM2IGlzIG5vdCBzZXQKIyBD T05GSUdfTkxTX0NPREVQQUdFXzk1MCBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19DT0RFUEFH RV85MzIgaXMgbm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfOTQ5IGlzIG5vdCBzZXQK IyBDT05GSUdfTkxTX0NPREVQQUdFXzg3NCBpcyBub3Qgc2V0CiMgQ09ORklHX05MU19JU084 ODU5XzggaXMgbm90IHNldAojIENPTkZJR19OTFNfQ09ERVBBR0VfMTI1MCBpcyBub3Qgc2V0 CiMgQ09ORklHX05MU19DT0RFUEFHRV8xMjUxIGlzIG5vdCBzZXQKIyBDT05GSUdfTkxTX0FT Q0lJIGlzIG5vdCBzZXQKQ09ORklHX05MU19JU084ODU5XzE9eQojIENPTkZJR19OTFNfSVNP ODg1OV8yIGlzIG5vdCBzZXQKIyBDT05GSUdfTkxTX0lTTzg4NTlfMyBpcyBub3Qgc2V0CiMg Q09ORklHX05MU19JU084ODU5XzQgaXMgbm90IHNldAojIENPTkZJR19OTFNfSVNPODg1OV81 IGlzIG5vdCBzZXQKIyBDT05GSUdfTkxTX0lTTzg4NTlfNiBpcyBub3Qgc2V0CiMgQ09ORklH X05MU19JU084ODU5XzcgaXMgbm90IHNldAojIENPTkZJR19OTFNfSVNPODg1OV85IGlzIG5v dCBzZXQKIyBDT05GSUdfTkxTX0lTTzg4NTlfMTMgaXMgbm90IHNldAojIENPTkZJR19OTFNf SVNPODg1OV8xNCBpcyBub3Qgc2V0CkNPTkZJR19OTFNfSVNPODg1OV8xNT1tCiMgQ09ORklH X05MU19LT0k4X1IgaXMgbm90IHNldAojIENPTkZJR19OTFNfS09JOF9VIGlzIG5vdCBzZXQK IyBDT05GSUdfTkxTX1VURjggaXMgbm90IHNldAoKIwojIEtlcm5lbCBoYWNraW5nCiMKIyBD T05GSUdfUFJJTlRLX1RJTUUgaXMgbm90IHNldApDT05GSUdfREVGQVVMVF9NRVNTQUdFX0xP R0xFVkVMPTQKQ09ORklHX0VOQUJMRV9XQVJOX0RFUFJFQ0FURUQ9eQpDT05GSUdfRU5BQkxF X01VU1RfQ0hFQ0s9eQpDT05GSUdfRlJBTUVfV0FSTj0xMDI0CiMgQ09ORklHX01BR0lDX1NZ U1JRIGlzIG5vdCBzZXQKIyBDT05GSUdfU1RSSVBfQVNNX1NZTVMgaXMgbm90IHNldAojIENP TkZJR19VTlVTRURfU1lNQk9MUyBpcyBub3Qgc2V0CkNPTkZJR19ERUJVR19GUz15CiMgQ09O RklHX0hFQURFUlNfQ0hFQ0sgaXMgbm90IHNldAojIENPTkZJR19ERUJVR19TRUNUSU9OX01J U01BVENIIGlzIG5vdCBzZXQKQ09ORklHX0RFQlVHX0tFUk5FTD15CkNPTkZJR19ERUJVR19T SElSUT15CiMgQ09ORklHX0xPQ0tVUF9ERVRFQ1RPUiBpcyBub3Qgc2V0CiMgQ09ORklHX0hB UkRMT0NLVVBfREVURUNUT1IgaXMgbm90IHNldAojIENPTkZJR19ERVRFQ1RfSFVOR19UQVNL IGlzIG5vdCBzZXQKQ09ORklHX1NDSEVEX0RFQlVHPXkKIyBDT05GSUdfU0NIRURTVEFUUyBp cyBub3Qgc2V0CiMgQ09ORklHX1RJTUVSX1NUQVRTIGlzIG5vdCBzZXQKIyBDT05GSUdfREVC VUdfT0JKRUNUUyBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX1NMQUIgaXMgbm90IHNldAoj IENPTkZJR19ERUJVR19LTUVNTEVBSyBpcyBub3Qgc2V0CkNPTkZJR19ERUJVR19QUkVFTVBU PXkKIyBDT05GSUdfREVCVUdfUlRfTVVURVhFUyBpcyBub3Qgc2V0CiMgQ09ORklHX1JUX01V VEVYX1RFU1RFUiBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX1NQSU5MT0NLIGlzIG5vdCBz ZXQKIyBDT05GSUdfREVCVUdfTVVURVhFUyBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX0xP Q0tfQUxMT0MgaXMgbm90IHNldAojIENPTkZJR19QUk9WRV9MT0NLSU5HIGlzIG5vdCBzZXQK IyBDT05GSUdfU1BBUlNFX1JDVV9QT0lOVEVSIGlzIG5vdCBzZXQKIyBDT05GSUdfTE9DS19T VEFUIGlzIG5vdCBzZXQKIyBDT05GSUdfREVCVUdfU1BJTkxPQ0tfU0xFRVAgaXMgbm90IHNl dAojIENPTkZJR19ERUJVR19MT0NLSU5HX0FQSV9TRUxGVEVTVFMgaXMgbm90IHNldApDT05G SUdfU1RBQ0tUUkFDRT15CiMgQ09ORklHX0RFQlVHX1NUQUNLX1VTQUdFIGlzIG5vdCBzZXQK IyBDT05GSUdfREVCVUdfS09CSkVDVCBpcyBub3Qgc2V0CkNPTkZJR19ERUJVR19CVUdWRVJC T1NFPXkKIyBDT05GSUdfREVCVUdfSU5GTyBpcyBub3Qgc2V0CiMgQ09ORklHX0RFQlVHX1ZN IGlzIG5vdCBzZXQKIyBDT05GSUdfREVCVUdfV1JJVEVDT1VOVCBpcyBub3Qgc2V0CiMgQ09O RklHX0RFQlVHX01FTU9SWV9JTklUIGlzIG5vdCBzZXQKIyBDT05GSUdfREVCVUdfTElTVCBp cyBub3Qgc2V0CiMgQ09ORklHX1RFU1RfTElTVF9TT1JUIGlzIG5vdCBzZXQKIyBDT05GSUdf REVCVUdfU0cgaXMgbm90IHNldAojIENPTkZJR19ERUJVR19OT1RJRklFUlMgaXMgbm90IHNl dAojIENPTkZJR19ERUJVR19DUkVERU5USUFMUyBpcyBub3Qgc2V0CiMgQ09ORklHX0JPT1Rf UFJJTlRLX0RFTEFZIGlzIG5vdCBzZXQKIyBDT05GSUdfUkNVX1RPUlRVUkVfVEVTVCBpcyBu b3Qgc2V0CkNPTkZJR19SQ1VfQ1BVX1NUQUxMX1RJTUVPVVQ9NjAKQ09ORklHX1JDVV9DUFVf U1RBTExfVkVSQk9TRT15CiMgQ09ORklHX0tQUk9CRVNfU0FOSVRZX1RFU1QgaXMgbm90IHNl dAojIENPTkZJR19CQUNLVFJBQ0VfU0VMRl9URVNUIGlzIG5vdCBzZXQKIyBDT05GSUdfREVC VUdfQkxPQ0tfRVhUX0RFVlQgaXMgbm90IHNldAojIENPTkZJR19ERUJVR19GT1JDRV9XRUFL X1BFUl9DUFUgaXMgbm90IHNldAojIENPTkZJR19MS0RUTSBpcyBub3Qgc2V0CiMgQ09ORklH X0ZBVUxUX0lOSkVDVElPTiBpcyBub3Qgc2V0CiMgQ09ORklHX0xBVEVOQ1lUT1AgaXMgbm90 IHNldApDT05GSUdfU1lTQ1RMX1NZU0NBTExfQ0hFQ0s9eQojIENPTkZJR19ERUJVR19QQUdF QUxMT0MgaXMgbm90IHNldApDT05GSUdfTk9QX1RSQUNFUj15CkNPTkZJR19IQVZFX0ZVTkNU SU9OX1RSQUNFUj15CkNPTkZJR19IQVZFX0ZVTkNUSU9OX0dSQVBIX1RSQUNFUj15CkNPTkZJ R19IQVZFX0RZTkFNSUNfRlRSQUNFPXkKQ09ORklHX0hBVkVfRlRSQUNFX01DT1VOVF9SRUNP UkQ9eQpDT05GSUdfSEFWRV9DX1JFQ09SRE1DT1VOVD15CkNPTkZJR19SSU5HX0JVRkZFUj15 CkNPTkZJR19FVkVOVF9UUkFDSU5HPXkKQ09ORklHX0VWRU5UX1BPV0VSX1RSQUNJTkdfREVQ UkVDQVRFRD15CkNPTkZJR19DT05URVhUX1NXSVRDSF9UUkFDRVI9eQpDT05GSUdfUklOR19C VUZGRVJfQUxMT1dfU1dBUD15CkNPTkZJR19UUkFDSU5HPXkKQ09ORklHX1RSQUNJTkdfU1VQ UE9SVD15CkNPTkZJR19GVFJBQ0U9eQojIENPTkZJR19GVU5DVElPTl9UUkFDRVIgaXMgbm90 IHNldAojIENPTkZJR19JUlFTT0ZGX1RSQUNFUiBpcyBub3Qgc2V0CiMgQ09ORklHX1BSRUVN UFRfVFJBQ0VSIGlzIG5vdCBzZXQKIyBDT05GSUdfU0NIRURfVFJBQ0VSIGlzIG5vdCBzZXQK IyBDT05GSUdfRU5BQkxFX0RFRkFVTFRfVFJBQ0VSUyBpcyBub3Qgc2V0CkNPTkZJR19CUkFO Q0hfUFJPRklMRV9OT05FPXkKIyBDT05GSUdfUFJPRklMRV9BTk5PVEFURURfQlJBTkNIRVMg aXMgbm90IHNldAojIENPTkZJR19QUk9GSUxFX0FMTF9CUkFOQ0hFUyBpcyBub3Qgc2V0CiMg Q09ORklHX1NUQUNLX1RSQUNFUiBpcyBub3Qgc2V0CiMgQ09ORklHX0JMS19ERVZfSU9fVFJB Q0UgaXMgbm90IHNldApDT05GSUdfS1BST0JFX0VWRU5UPXkKIyBDT05GSUdfUklOR19CVUZG RVJfQkVOQ0hNQVJLIGlzIG5vdCBzZXQKIyBDT05GSUdfRFlOQU1JQ19ERUJVRyBpcyBub3Qg c2V0CkNPTkZJR19ETUFfQVBJX0RFQlVHPXkKIyBDT05GSUdfQVRPTUlDNjRfU0VMRlRFU1Qg aXMgbm90IHNldAojIENPTkZJR19TQU1QTEVTIGlzIG5vdCBzZXQKQ09ORklHX0hBVkVfQVJD SF9LR0RCPXkKIyBDT05GSUdfS0dEQiBpcyBub3Qgc2V0CiMgQ09ORklHX1RFU1RfS1NUUlRP WCBpcyBub3Qgc2V0CiMgQ09ORklHX1NUUklDVF9ERVZNRU0gaXMgbm90IHNldApDT05GSUdf QVJNX1VOV0lORD15CiMgQ09ORklHX0RFQlVHX1VTRVIgaXMgbm90IHNldAojIENPTkZJR19E RUJVR19MTCBpcyBub3Qgc2V0CiMgQ09ORklHX09DX0VUTSBpcyBub3Qgc2V0CgojCiMgU2Vj dXJpdHkgb3B0aW9ucwojCiMgQ09ORklHX0tFWVMgaXMgbm90IHNldAojIENPTkZJR19TRUNV UklUWV9ETUVTR19SRVNUUklDVCBpcyBub3Qgc2V0CiMgQ09ORklHX1NFQ1VSSVRZIGlzIG5v dCBzZXQKIyBDT05GSUdfU0VDVVJJVFlGUyBpcyBub3Qgc2V0CkNPTkZJR19ERUZBVUxUX1NF Q1VSSVRZX0RBQz15CkNPTkZJR19ERUZBVUxUX1NFQ1VSSVRZPSIiCkNPTkZJR19DUllQVE89 eQoKIwojIENyeXB0byBjb3JlIG9yIGhlbHBlcgojCiMgQ09ORklHX0NSWVBUT19GSVBTIGlz IG5vdCBzZXQKQ09ORklHX0NSWVBUT19BTEdBUEk9eQpDT05GSUdfQ1JZUFRPX0FMR0FQSTI9 eQpDT05GSUdfQ1JZUFRPX1JORz1tCkNPTkZJR19DUllQVE9fUk5HMj1tCiMgQ09ORklHX0NS WVBUT19NQU5BR0VSIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX01BTkFHRVIyIGlzIG5v dCBzZXQKIyBDT05GSUdfQ1JZUFRPX0dGMTI4TVVMIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZ UFRPX05VTEwgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fQ1JZUFREIGlzIG5vdCBzZXQK IyBDT05GSUdfQ1JZUFRPX0FVVEhFTkMgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fVEVT VCBpcyBub3Qgc2V0CgojCiMgQXV0aGVudGljYXRlZCBFbmNyeXB0aW9uIHdpdGggQXNzb2Np YXRlZCBEYXRhCiMKIyBDT05GSUdfQ1JZUFRPX0NDTSBpcyBub3Qgc2V0CiMgQ09ORklHX0NS WVBUT19HQ00gaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fU0VRSVYgaXMgbm90IHNldAoK IwojIEJsb2NrIG1vZGVzCiMKIyBDT05GSUdfQ1JZUFRPX0NCQyBpcyBub3Qgc2V0CiMgQ09O RklHX0NSWVBUT19DVFIgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fQ1RTIGlzIG5vdCBz ZXQKIyBDT05GSUdfQ1JZUFRPX0VDQiBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19MUlcg aXMgbm90IHNldAojIENPTkZJR19DUllQVE9fUENCQyBpcyBub3Qgc2V0CiMgQ09ORklHX0NS WVBUT19YVFMgaXMgbm90IHNldAoKIwojIEhhc2ggbW9kZXMKIwojIENPTkZJR19DUllQVE9f SE1BQyBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19YQ0JDIGlzIG5vdCBzZXQKIyBDT05G SUdfQ1JZUFRPX1ZNQUMgaXMgbm90IHNldAoKIwojIERpZ2VzdAojCiMgQ09ORklHX0NSWVBU T19DUkMzMkMgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fR0hBU0ggaXMgbm90IHNldAoj IENPTkZJR19DUllQVE9fTUQ0IGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX01ENSBpcyBu b3Qgc2V0CiMgQ09ORklHX0NSWVBUT19NSUNIQUVMX01JQyBpcyBub3Qgc2V0CiMgQ09ORklH X0NSWVBUT19STUQxMjggaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fUk1EMTYwIGlzIG5v dCBzZXQKIyBDT05GSUdfQ1JZUFRPX1JNRDI1NiBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBU T19STUQzMjAgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fU0hBMSBpcyBub3Qgc2V0CiMg Q09ORklHX0NSWVBUT19TSEEyNTYgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fU0hBNTEy IGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX1RHUjE5MiBpcyBub3Qgc2V0CiMgQ09ORklH X0NSWVBUT19XUDUxMiBpcyBub3Qgc2V0CgojCiMgQ2lwaGVycwojCkNPTkZJR19DUllQVE9f QUVTPW0KIyBDT05GSUdfQ1JZUFRPX0FOVUJJUyBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBU T19BUkM0IGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX0JMT1dGSVNIIGlzIG5vdCBzZXQK IyBDT05GSUdfQ1JZUFRPX0NBTUVMTElBIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX0NB U1Q1IGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX0NBU1Q2IGlzIG5vdCBzZXQKIyBDT05G SUdfQ1JZUFRPX0RFUyBpcyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19GQ1JZUFQgaXMgbm90 IHNldAojIENPTkZJR19DUllQVE9fS0hBWkFEIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRP X1NBTFNBMjAgaXMgbm90IHNldAojIENPTkZJR19DUllQVE9fU0VFRCBpcyBub3Qgc2V0CiMg Q09ORklHX0NSWVBUT19TRVJQRU5UIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX1RFQSBp cyBub3Qgc2V0CiMgQ09ORklHX0NSWVBUT19UV09GSVNIIGlzIG5vdCBzZXQKCiMKIyBDb21w cmVzc2lvbgojCkNPTkZJR19DUllQVE9fREVGTEFURT15CiMgQ09ORklHX0NSWVBUT19aTElC IGlzIG5vdCBzZXQKQ09ORklHX0NSWVBUT19MWk89eQoKIwojIFJhbmRvbSBOdW1iZXIgR2Vu ZXJhdGlvbgojCkNPTkZJR19DUllQVE9fQU5TSV9DUFJORz1tCiMgQ09ORklHX0NSWVBUT19V U0VSX0FQSV9IQVNIIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JZUFRPX1VTRVJfQVBJX1NLQ0lQ SEVSIGlzIG5vdCBzZXQKQ09ORklHX0NSWVBUT19IVz15CkNPTkZJR19CSU5BUllfUFJJTlRG PXkKCiMKIyBMaWJyYXJ5IHJvdXRpbmVzCiMKQ09ORklHX0JJVFJFVkVSU0U9eQojIENPTkZJ R19DUkNfQ0NJVFQgaXMgbm90IHNldApDT05GSUdfQ1JDMTY9eQojIENPTkZJR19DUkNfVDEw RElGIGlzIG5vdCBzZXQKIyBDT05GSUdfQ1JDX0lUVV9UIGlzIG5vdCBzZXQKQ09ORklHX0NS QzMyPXkKIyBDT05GSUdfQ1JDNyBpcyBub3Qgc2V0CiMgQ09ORklHX0xJQkNSQzMyQyBpcyBu b3Qgc2V0CkNPTkZJR19aTElCX0lORkxBVEU9eQpDT05GSUdfWkxJQl9ERUZMQVRFPXkKQ09O RklHX0xaT19DT01QUkVTUz15CkNPTkZJR19MWk9fREVDT01QUkVTUz15CiMgQ09ORklHX1ha X0RFQyBpcyBub3Qgc2V0CiMgQ09ORklHX1haX0RFQ19CQ0ogaXMgbm90IHNldApDT05GSUdf SEFTX0lPTUVNPXkKQ09ORklHX0hBU19JT1BPUlQ9eQpDT05GSUdfSEFTX0RNQT15CkNPTkZJ R19OTEFUVFI9eQpDT05GSUdfR0VORVJJQ19BVE9NSUM2ND15CiMgQ09ORklHX0FWRVJBR0Ug aXMgbm90IHNldAo= --------------000103040706030809040406-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: b32955@freescale.com (Huang Shijie) Date: Wed, 29 Jun 2011 16:24:15 +0800 Subject: [PATCH v7 0/3] add the GPMI controller driver for IMX23/IMX28 In-Reply-To: <1309335878-16678-1-git-send-email-b32955@freescale.com> References: <1309335878-16678-1-git-send-email-b32955@freescale.com> Message-ID: <4E0AE12F.6000200@freescale.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi: I attach my tested .config file in the attachment. Best Regards Huang Shijie > The general-purpose media interface(GPMI) controller is a flexible interface > to up to several NAND flashs. > > The Bose Ray-Choudhury Hocquenghem(BCH) module is a hardware ECC accelerator. > > With the help of BCH, the GPMI controller can choose to do the hardware ECC or > not. > > This driver is a _pure_ MTD NAND controller driver now. > > The driver depends on another patch set, you can find them at : > [1] http://marc.info/?l=linux-arm-kernel&m=130933298731899&w=2 > [2] http://marc.info/?l=linux-arm-kernel&m=130933302531947&w=2 > [3] http://marc.info/?l=linux-arm-kernel&m=130933300431921&w=2 > > Test environment: > Using imx23 and imx28 boards for test, and burned the ROOTFS > in the nand flash. > > imx23 : > console=ttyAMA0,115200 mtdparts=gpmi-nfc:20m(boot),-(user) ubi.mtd=1 root=ubi0:rootfs0 rootfstype=ubifs gpmi_debug_init > > imx28 : > # console=ttyAMA0,115200 mtdparts=gpmi-nfc-main:20m(boot),-(user) ubi.mtd=1 root=ubi0:rootfs0 rootfstype=ubifs gpmi_debug_init > > > v6 --> v7: > [0] remove the function wrapping the clock. > [1] use the module_param() for debugging. > [2] use the new interface of MTD partitions. > replace add_mtd_partitions() with mtd_device_register(). > [3] use pr_info() to print log. > [4] add `__devinit` for some functions, etc. > [5] add `gpmi_nfc` to control the GPMI-NFC driver's initialization. > [6] others. > > v5 --> v6: > [0] split out the IMX23/IMX28 arch code to separate patches. > [1] fix bug : missing empty item in the end of platform_id array. > [2] inconsistent identation. > [3] others > > v4 --> v5: > [0] rename the files. > [1] fix PM bug > [2] remove the rom_helper code, and move the necessary initialization code > to the main file. > [3] change the macros from CPU_IS_* to GPMI_IS_* > [4] remove the default partition layout init code. revert back the > partition parsing command line code. > [5] others > > v3 --> v4: > [0] use the nand_ids{} as the nand database, drop my own database. > [1] remove the patch for DMA enginer, Shawn will submit his own version. > [2] use the platform_id to distinguish different Archs. > [3] fix the strange coding style. > [4] others. > > v2 --> v3: > [0] merge the imx23 and imx28 into one file(including the header file). > [1] remove the unuse registers in the headers. > [2] fix DMA bugs > [3] add bus width field to nand_attr{} > [4] others > > v1 --> v2: > [0] merge the common files into the gpmi-nfc-main.c > [1] change the code to get the clock. > [2] remove the timing in the nand_device_info{} > [3] fix DMA errors > [4] add the nand_device_info.[ch] to generic code > [5] use the chip->onfi_version for the ONFI nand > [6] useless init > [7] others > > > Huang Shijie (3): > MTD : add the common code for GPMI-NFC controller driver > MTD : add support for imx23 and imx28 > MTD : add GPMI-NFC driver in the config and Makefile > > drivers/mtd/nand/Kconfig | 11 + > drivers/mtd/nand/Makefile | 1 + > drivers/mtd/nand/gpmi-nfc/Makefile | 3 + > drivers/mtd/nand/gpmi-nfc/bch-regs.h | 88 ++ > drivers/mtd/nand/gpmi-nfc/gpmi-nfc.c | 2484 +++++++++++++++++++++++++++++++++ > drivers/mtd/nand/gpmi-nfc/gpmi-nfc.h | 495 +++++++ > drivers/mtd/nand/gpmi-nfc/gpmi-regs.h | 163 +++ > drivers/mtd/nand/gpmi-nfc/hal-mxs.c | 554 ++++++++ > 8 files changed, 3799 insertions(+), 0 deletions(-) > create mode 100644 drivers/mtd/nand/gpmi-nfc/Makefile > create mode 100644 drivers/mtd/nand/gpmi-nfc/bch-regs.h > create mode 100644 drivers/mtd/nand/gpmi-nfc/gpmi-nfc.c > create mode 100644 drivers/mtd/nand/gpmi-nfc/gpmi-nfc.h > create mode 100644 drivers/mtd/nand/gpmi-nfc/gpmi-regs.h > create mode 100644 drivers/mtd/nand/gpmi-nfc/hal-mxs.c > -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: config URL: