ELF>;@x@8 @@@@hh ??```..8DDPtdpppLLQtdRtdPP/lib64/ld-linux-x86-64.so.2GNUGNUUvkG?ӟ/(E (,/(BE|emfUaqX92^ }I6/%' W:m 6 H[ "Olibm.so.6_ITM_deregisterTMCloneTable__gmon_start___ITM_registerTMCloneTablelibftdi1.so.2ftdi_read_dataftdi_write_dataftdi_usb_open_stringftdi_set_latency_timerftdi_deinitftdi_get_error_stringftdi_usb_closeftdi_get_latency_timerftdi_initftdi_usb_purge_buffersftdi_set_interfaceftdi_disable_bitbangftdi_usb_resetftdi_usb_openftdi_set_bitmodelibusb-1.0.so.0libc.so.6fflushexitfopenoptindperrorftellputsstdinstrtoltmpfilememsetfseekmemcmpstdoutfputcfcloseoptargstderrgetopt_longusleepfwritefreadfprintf__cxa_finalizestrcmp__libc_start_main_edata__bss_start_endGLIBC_2.2.5xui `<P<!jЬ*j6j?jIj Sj0\j@ejPnj`wjpjjjjjHH`jЯد&+(,/0. (08@HP X ` h p xȰаذ !"#$ %('HHՏHtH5%@%h%ڏh%ҏh%ʏh%h%h%h%hp%h`%h P%h @%h 0%h %zh %rh%jh%bh%Zh%Rh%Jh%Bh%:h%2h%*hp%"h`%hP%h@% h0%h %h%h%h%h %ڎh!%Ҏh"%fAWAVAUAATIUSHh HtHC/HDHPuD$$H-b_Lt$XHD$8D$GD$ED$D$D$DD$D$0D$$D$FD$D$D$(D$@@D$ E1H .LDHYEl x HcDH$D$D$D$FD$GD$H=-1LL|$XD$ A?H$tH5 DLqH$ H5S>LH$RH$$D$ ,L=H5CLD$$ H5CL H5CL H5CL D$$H iI$OH=MH=HH1H54NH=0H1H5DNH=H1H5#CwH=H1H5&C_H5 H ҌH=C!cH H=MHH H=O9MH ͋H=iO8H H=O;H H=O5H vH=O<H YH=O.H <H= P'H H=3Pn?H H=>PQDH H=aP4H5͊ H H=@BH H=^P:H }H=PGH `H=PFH CH=PMH &H=Mu8H H=MXBH H=P;1H ωH=P8H H=QH5 .H H= QCH gH=3QOH JH=^QNH -H=Q|?H H=Q_OH H=QB:H ֈH=R%KH H==RKH H=pROH H=RH5g }H QH=>3H 4H=RCH H=RfH5  H H=[>8H ̇H=L>DH H=R7H H=REH uH=RH XH==(H ;H=RH5# 9:H H=R\/H H=S?1Hh []A\A]A^A_D$D$D$EH=w1L-L|$XD$A?HD$HH5e<LHT$HH56LHT$ HT$D$rD$DhH=1LD$=EH օH=H1H5CFNL=H5;LH5;LH5;L D$@@H=T1L L|$XD$(A?HD$0H5B;LHT$0uH5t5LHT$(r HT$(D$0D$(JHۄHD$89T$0$T$T$T$ЃG|$t |$D|$EDD$ D$ D$r<$h|$D|$D9D$ D$ D$;<$1Hc,PD9D9|$|$E|$0D|$9HH5:H=1kI$H=H5QP1RD$@D$0 D$0 D$(D$@ D$D$$$ D$ D$$|$D$ D$ D$s<$i|$0|$|$H=HH5P1vH=HH5O1T1|$HD$(E1H H=9H$`T$Ht$8|$$j/ DŽ$`Ƅ$`m.HHߺ*Ƅ$`F.H޹Hߺ *11H Hu59H J}1H;rH uCF C0 C5 C1 C1 H=uP11"|$ |$H H=8|1H~i#1]#1;Q#1"H .H=o8}z"L@HIĉŅ=H5> H)9|,1HHB()H=LH1H5@H=zHH5M1H=XH571_I,Ā|$0t]HcD$(E1HD$(eH=HH5M1~'HcPD9|$tHH5MH56H<$L=sHcD$ HD$(MHHH5MH=11H-L5HH5/6P&!1( |$FMtL9=tL9=~tLH H=<7al'1P1 1 1& 1 1 1 <$2|$d|$EO|$DuK|$"1 H r~H=5HƄ$`L 1e|$0HD$`L<$E1HD$HL$(H=~D1H5iM|D$H߾B,0H $)HcoIAŅ1*=H|$fD$`D$afl$bDH =tNE1Am9D  DB;H=X}1IH5y-E9~ D9u¹ 1EKH=}HH5-J1~'HH=*4HH1H0H=|HH5 J1.H |H=4yMK1'1v'&1 1t1 1 1 H=#|HH5I1+H=|D1H53^,L={M$HD$(|$1L{LHD$(H11LrHHH52H @{H=Y{H1H5F1a|$0|$G|$1Ll$`HAH;l$(rLH|IƅRL7HL$(C41H=zH56J)IcLHtH z)H='J"e|$E1H-g2h Dl$ NE$DH1DH DLD)HE=OºHcsH= zE9H L<$H5y 11LH50HIH yH=yH1H59 H y H=1%H=fyLH1H59k1 H 5yH=0HfDŽ$` 1& HƄ$`$aJH=x1H5G9-H5/HIHHH5FHHksH=/H1HHLl$(H=WxH5/1LDd$@L$A DFt!EL-[G!A!=<uo1D D91PD$@ t|@uH=wL1?Ƅ$`؉HƄ$c$a舤$bH wH=K/11@aH=dwL1Ƅ$`RH=GwH5.1Ƅ$` ceL%>HD$(HHu"HH¾LUI9uuLl$(LLfIHuLI11H1HHH5-H=tvHH5 E1|H=RvHH5D1Z1I^HHPTL#H s#H=sDH=uHuH9tHsHt H=uH5uH)HHH?HHtHsHtfD=uu/UH=sHt H=thiu]{f.S HH\$ D$ D$ :!H޹HߺhfD$ HH߹a H[ÐSHHD$H\$ H޹Hߺ@ H޹Hߺu HH߹H[f.@׉щ ȃ@ <  <  fDAUD,ATUSHHLgIHLA8wAII9u<uBDHHI@;H(HH9uc1DLL;HCH9uH[]A\A]Ð&HLL[1]1A\A]ff.fSH="u,H|$ ff\$D$ D$ H[ÉH=lH51ff.=ɼAVAUATIUS1HcLyL=tV~RDm1A LHù 9tع ADAH='lH5N1HCL9u[]A\A]A^H=k1H5Y^@AT1USH=0=L%H-LH=!HE1wHH5HDH=1TLH=HE1< LH=HE1$ÀLH=HE1 LH= HE1LH="HE1H9H56HDH=1H#H5 HDH= 1LH=HE1~ LH=HE1f@LH=HE1NǀLH=HE16LH=HE1LH=HE1 LH=HE1@LH=HE1H 9HcHf[]A\H=#LH=lHE1&HH5HDH=_1HmH5jHDH=V1LH=\HE1 LH=^HE1ǀLH=zHE1LH=yHE1}LH= HE1bLH=HE1G LH=BHE1,@LH=AHE1LH=@HE1HH< w0H5HcHD[]A\H=!\@H- L%HH=IE1 HH=IE1t@HH=IE1YHL1H=;HHHIEH= 1HH"< w+H45HcHH=#@L%2H-'H@HLH=|HE1LH=HHHE1LH=HHHE1lLH=HHHE1JLH=xHHHE1(LH=pH HHE1LH=hH@HHE1LH=`HHHE1HH0<<<H="4L%H-HHLH=HE1dLH=#HHHE1BLH=HHHE1 LH=H HHE1LH=H@HHE1LH=HHHE1LH=HHHE1LH=HHHE1vLH=HHHE1TLH=HHHE12LH=HHHE1LH=H HHE1LH=H@HHE1HL[HHH=]1A\HH=v1HpH=$H= H=H=H= H=A sH=y [H=|H=dH=LH=4H=H=!H=IH=wH=_H=GH= H=9tH=Q\H=yDH=,H=H=wH=9_H=GH=/ff.@S HHD$H\$D$< HHߺiD$ t t?H[ú HH߹/HHS1H H9u@HH߹HHT$1@HHH8H H9uf.H@|$ - H|$H  Hff.fUSHH\$@|$ H޹Hߺ?@l$ H޹Hߺ H[]ATUH-֭S!HLd$$DT$H=T]1H5k/tLHH[]A\@SH ]H=?/`=+t=!uH=GH=;5H=!f.USHHHl$@dHHxuD$H[]H b\ H=."fSH@|$ Ht$ H=`uH[H=nwH=\ڹIH5g.1Xff.AWAVAUAATIUSHfuMft41L5@ÉL)LADžxtfA9uH[]A\A]A^A_DHH=A9tH=H=:[DIH5-1H=itH=ZDH5B-H1Yff.@ATAUHSӃw H.D$H=DH=CH HH=8H=̪p;H=<H5}H=H=}xhH=_)H=D{@tlbX[ ]A\Jf.`H=ϩz`H=\H =YOH=<,H Y%H=e,`H X H=E+9H X0H=,H= H5},HH=X1ZH=ӨH5',HH [X0H=+HH5 +ff.@H5UH=niH=b]H=VH=JH HR,@@=ܧ{ff.kff.AWIAVAUIATUSHD$L$D$9L5IIA2tAAA)IID;l$D+l$JDJӍrEɈ ݧҧ=@5̧tA4$H@0=DH=كCIILA)HIIILILLIH)H)HD;l$2DMH[]A\A]A^A_@A@I $HHxHHIt HtHLH)H)H DA4$H0At tDAAATAT`1L5wMDD$fGL5]&AufDEtxfH:&HzH=/&oH%&HzH=&ƒʀ@EH&@HzH=%ͥPfå9ttt1H5%H=L)fh1H AcHf9H[]A\A]A^A_DAt ftATfATff.@@t FfDLH(8@AUATUSHLd$ H-9(L-R(9u-H[]A\A]1ҾLأ9tӺNfT$ TEуL$uAD~ytoNH|$ 1ҾfL$ D$_H[]A\A]@HGC1HDU1SHH\$ f|$HD$ @uH[]H1Ҿ@l$D$ H[]AWIAVIAUAATL%XMUH-XMSL)HHt1LLDAHH9uH[]A\A]A^A_HHread flash ID.. flash ID: 0x%02XunlockedByte/Page Prog ModeSequential Prog ModeErase/Prog successErase/Prog error~WP asserted~WP deassertedNot write enabledWrite enabledReadyBusySR1: 0x%02X - SPRL: %s - SPM: %s - EPE: %s - SWP: All sectors unprotected Some sectors protected Reserved (xxxx 10xx) All sectors protected - WEL: %s - ~RDY: %s disabledSR2: 0x%02X - QE: %s status before enable: write enable.. status after enable: waiting..Start Read 0x%06X Contiune Read +0x%03X.. %02x%cYesNoeFuseSRAMNot WritableNot ReadableECP5 Status Register: 0x%08x Transparent Mode: %s Config Target: %s JTAG Active: %s PWD Protection: %s Decrypt Enable: %s DONE: %s ISC Enable: %s Write Enable: %s Read Enable: %s Busy Flag: %s Fail Flag: %s Feature OTP: %s Decrypt Only: %s PWD Enable: %s Encrypt Preamble: %s Std Preamble: %s SPIm Fail 1: %s Execution Error: %s ID Error: %s Invalid Command: %s SED Error: %s Bypass Mode: %s Flow Through Mode: %s NX Status Register: 0x%016lx Config Target: SRAM (0b000)EFUSE Normal (0b001)EFUSE Pseudo (0b010)EFUSE Safe (0b011)Invalid (%u) OTP: %s PWD All: %s CID EN: %s WDT Busy: %s Dry Run DONE: %s SFDP Timeout: %s Key Destroy Pass: %s INITN: %s I3C Parity Error 2: %s Init Bus ID Error: %s I3C Parity Error 1: %s Authentication Done: %s JTAG Locked: %s SSPI Locked: %s I2C/I3C Locked: %s PUB Read Lock: %s PUB Write Lock: %s FEA Read Lock: %s FEA Write Lock: %s AES Read Lock: %s AES Write Lock: %s PWD Read Lock: %s PWD Write Lock: %s Global Lock: %s /dev/null3264ABCDk%s: `%s' is not a valid size %s -S %s -t General options: Mode of operation: Miscellaneous options: Exit status: 0 on success, iCE FTDI USB device), d:i:I:rR:e:o:k:scbnStvpX%s: too many arguments %s: missing argument -wbrb%s: %s: ftell: %s: %s: fseek: init.. IDCODE: 0x%08x (%s) reset.. programming.. sending %d bytes. disable flash protection... bulk erase.. file size: %ld erase 4kB sector at 0x%06X.. Status after block erase: prog 0x%06X +0x%03X.. reading.. %04u/%04u VERIFY OK rebooting ECP5... Bye. helpLIFCL-17LIFCL-40-ESLIFCL-40LFD2NX-17LFD2NX-40LFE5U-12LFE5U-25LFE5U-45LFE5U-85LFE5UM-25LFE5UM-45LFE5UM-85LFE5UM5G-25LFE5UM5G-45LFE5UM5G-85 BSE Error Code: No Error (0b000) BSE Error Code: ID Error (0b001) BSE Error Code: CMD Error - illegal command (0b010) BSE Error Code: CRC Error (0b011) BSE Error Code: PRMB Error - preamble error (0b100) BSE Error Code: ABRT Error - configuration aborted by the user (0b101) BSE Error Code: OVFL Error - data overflow error (0b110) BSE Error Code: SDM Error - bitstream pass the size of SRAM array (0b111) BSE Error Code: Authentication Error (0b1000) BSE Error Code: Authentication Setup Error (0b1001) BSE Error Code: Bitstream Engine Timeout Error (0b1010) BSE Error 1 Code: (Previous Bitstream) No Error (0b000) BSE Error 1 Code: (Previous Bitstream) ID Error (0b001) BSE Error 1 Code: (Previous Bitstream) CMD Error - illegal command (0b010) BSE Error 1 Code: (Previous Bitstream) CRC Error (0b011) BSE Error 1 Code: (Previous Bitstream) PRMB Error - preamble error (0b100) BSE Error 1 Code: (Previous Bitstream) ABRT Error - configuration aborted by the user (0b101) BSE Error 1 Code: (Previous Bitstream) OVFL Error - data overflow error (0b110) BSE Error 1 Code: (Previous Bitstream) SDM Error - bitstream pass the size of SRAM array (0b111) BSE Error 1 Code: (Previous Bitstream) Authentication Error (0b1000) BSE Error 1 Code: (Previous Bitstream) Authentication Setup Error (0b1001) BSE Error 1 Code: (Previous Bitstream) Bitstream Engine Timeout Error (0b1010) Authentication Mode: No Auth (0b00) Authentication Mode: ECDSA (0b01) Authentication Mode: HMAC (0b10) Authentication Mode: No Auth (0b11) Dry Run Authentication Done: %s %s: `%s' is not a valid erase block size (must be `4', `32' or `64') %s: `%s' is not a valid interface (must be `A', `B', `C', or `D') %s: `%s' is not a valid offset %s: clock divider must be in range 1-65536 `%s' is not a valid divider Simple programming tool for Lattice ECP5/NX using FTDI-based JTAG programmers. Usage: %s [-b|-n|-c] %s -r|-R -d use the specified USB device [default: i:0x0403:0x6010 or i:0x0403:0x6014] d: (e.g. d:002/005) i:: (e.g. i:0x0403:0x6010) i::: (e.g. i:0x0403:0x6010:0) s::: -I [ABCD] connect to the specified interface on the FTDI chip [default: A] -o start address for read/write [default: 0] (append 'k' to the argument for size in kilobytes, or 'M' for size in megabytes) -k divider for SPI clock [default: 1] clock speed is 6MHz/divider -s slow SPI. (50 kHz instead of 6 MHz) Equivalent to -k 30 -v verbose output -i [4,32,64] select erase block size [default: 64k] -a reinitialize the device after any operation [default] write file contents to flash, then verify -X write file contents to flash only -r read first 256 kB from flash and write to file -R read the specified number of bytes from flash -c do not write flash, only verify (`check') -S perform SRAM programming -t just read the flash ID sequence Erase mode (only meaningful in default mode): [default] erase aligned chunks of 64kB in write mode This means that some data after the written data (or even before when -o is used) may be erased as well. -b bulk erase entire flash before writing -e erase flash as if we were writing that number of bytes -n do not erase flash before writing -p disable write protection before erasing or writing This can be useful if flash memory appears to be bricked and won't respond to erasing or programming. --help display this help and exit -- treat all remaining arguments as filenames 1 if a non-hardware error occurred (e.g., failure to read from or write to a file, or invoked with invalid options), 2 if communication with the hardware failed (e.g., cannot find the 3 if verification of the data failed. If you have a bug report, please file an issue on github: https://github.com/gregdavill/ecpprog/issues Try `%s --help' for more information. %s: options `-r'/`-R', `-e`, `-c', `-S', and `-t' are mutually exclusive %s: options `-b' and `-n' are mutually exclusive %s: option `-p' only valid in programming mode %s: option `-b' only valid in programming mode %s: option `-n' only valid in programming mode %s: option `-o' not supported in SRAM mode %s: option `-o' not supported in test mode %s: test mode doesn't take a file name %s: can't open '%s' for writing: %s: can't open '%s' for reading: %s: can't open temporary file %s: can't write to temporary file IDCODE: 0x%08x does not match :( failed to disable protection, SR now equal to 0x%02x (expected 0x00) erase 64kB sector at 0x%06X.. programming.. %04u/%04lu verify.. %04u/%04luFound difference between flash and file! Ld|t4,D\t4 8PhTɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫɫpiɫɫɫɫbɫɫɫɫɫɫɫɫ[TMªIɫɫɫɫɫɫ&ɫGɫunexpected rx byte: %02X ABORT. Read error. Read error (rc=%d)[%s] Purge error. Write error (single byte, rc=%d, expected %d)(%s). Write error (rc=%d, expected %d)[%s] Can't find iCE FTDI USB device (device string %s). Can't find iCE FTDI USB device (vendor_id 0x0403, device_id 0x6010 or 0x6014). Failed to reset iCE FTDI USB device. Failed to purge buffers on iCE FTDI USB device. Failed to get latency timer (%s). Failed to set latency timer (%s). Failed to set BITMODE_MPSSE on FTDI USB device. !TTv! !;L(@h0 p,P|@лLpо8Pt0(PXp0 P<Xl@$p8Pp0zRx г+zRx $@FJ w?;*3$"D(\PoAI cA|vAI jAJL<BJA A(G0k (A ABBJ o (G ABBE 0̵BHA G  AABA 4X#D m G  H XdD m G OxԸD j B 4t&AAD0 AAF cAAHlBBD A(D0k (A ABBB N(G CDB кUAF s AA <@ IBB D(C0} (A BBBH 8yBEA   ABD  LDI 8о1 BFA h ABD  LDE AI P AA CD ~$4pACD0eAAL\ 9BBB E(D0A8GA 8A0A(B BBBA ,\BAH I0C AABfA(HnAAK0w AAA bAI _ AA HDBBB E(D0C8D@B 8A0A(B BBBF ,EGD ) FBO  ?Dv0<84,0d@,ABHB E(A0C8DP8 8A0A(B BBBE  8A0A(B BBBF ,H0BBA A(D@l (A ABBD (A ABBDR0 `AHL0` AAI ]AADT]BEE E(H0H8G@j8A0A(B BBB<P<!jC*jC6jC?jC1IjC1SjC!\jCAejC AnjC0AwjCjC jC0jCjC jC0Phx _oP l H   oo ooT o6 F V f v !!&!6!F!V!f!v!!!!!!!!!""&"6"F"V"HjGCC: (Debian 8.3.0-6) 8.3.0PT       `"p"_`pЯ@ <o%=v1>?G?#UAc@BvC&DU@ER`@@;<P<,;b<n( Z`@ p& <_LY?XI1 q0Z  @P], 3F[bn ZF_+=JTf^` .SC; GPZSatUb@Z@ 0D*?R ax`T\H`{@_] ;+,6IXg]xp"9@p`ZA0UnVW'3SpA ["w^=Fyecpprog.center_spi_background_modeflash_resetflash_read_idverboseread_status_1read_status_2flash_write_enableflash_waitflash_start_readflash_continue_readread_status_registerconnected_devicelong_options.4494buffer.4530buffer.4524crtstuff.cderegister_tm_clones__do_global_dtors_auxcompleted.7325__do_global_dtors_aux_fini_array_entryframe_dummy__frame_dummy_init_array_entrympsse.cCSWTCH.20jtag_tap.cjtag_state_ack.part.0tms_transitionstms_map__FRAME_END____init_array_end_DYNAMIC__init_array_start__GNU_EH_FRAME_HDR_GLOBAL_OFFSET_TABLE___libc_csu_finimpsse_closeprint_nx_status_registerftdi_read_datajtag_set_current_state_ITM_deregisterTMCloneTablestdout@@GLIBC_2.2.5ftdi_set_latency_timernx_devicesftdi_get_error_stringjtag_state_ackputs@@GLIBC_2.2.5fread@@GLIBC_2.2.5stdin@@GLIBC_2.2.5ftdi_usb_open_string_edataftdi_deinitfclose@@GLIBC_2.2.5optind@@GLIBC_2.2.5jtag_current_stategetopt_long@@GLIBC_2.2.5bit_reverserx_cntftdi_usb_purge_buffersmpsse_errorjtag_wait_timempsse_ftdi_latencymemset@@GLIBC_2.2.5ecp_jtag_cmdecp_devicesjtag_deinitftdi_usb_openfputc@@GLIBC_2.2.5mpsse_send_byte__libc_start_main@@GLIBC_2.2.5jtag_errormemcmp@@GLIBC_2.2.5__data_starttmpfile@@GLIBC_2.2.5strcmp@@GLIBC_2.2.5ftdi_disable_bitbangsend_spioptarg@@GLIBC_2.2.5fprintf@@GLIBC_2.2.5ftell@@GLIBC_2.2.5__gmon_start__ftdi_get_latency_timermpsse_check_rxstrtol@@GLIBC_2.2.5__dso_handle_IO_stdin_usedftdi_set_interfacempsse_ftdic_latency_setptr__libc_csu_initfflush@@GLIBC_2.2.5mpsse_ftdic_openftdi_set_bitmodeftdi_initfseek@@GLIBC_2.2.5ftdi_usb_closeftdi_usb_resetjtag_go_to_state__bss_startmainmpsse_ftdicjtag_tap_shiftfopen@@GLIBC_2.2.5perror@@GLIBC_2.2.5mpsse_recv_bytempsse_xferftdi_write_datampsse_initexit@@GLIBC_2.2.5fwrite@@GLIBC_2.2.5__TMC_END__ecp_jtag_cmd8_ITM_registerTMCloneTable__cxa_finalize@@GLIBC_2.2.5jtag_initusleep@@GLIBC_2.2.5stderr@@GLIBC_2.2.5xfer_spiprint_ecp5_status_register.symtab.strtab.shstrtab.interp.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.got.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.got.plt.data.bss.comment# 1$DoHN PPVl^oT T bko z B H  @`"`"p"p"1=__ ``p& ppL ЯП(0@@` H 0D ]