janeviki,
Looking at SDS1000X_V100R001B01D02P1503.ADS:
01 0000002C --- 2.1.1.9 [000000C4-000DED94]
000000C4 - Checksum: FFBDDCC9
000000C8 - Name: 2.1.1.8
000000C8 - Section Data [000000C8-000DED94] CKSM OK
02 0000003B --- 20170310 [000DED95-0024A9E3]
000DED95 - Header Size: 00000048
000DEDDD - Data Size: 0016BC07
03 0000004A --- 0208 310 [0024A9E4-00276BF3]
0024A9E4 - Header Size: 00000048
0024AA2C - Data Size: 0002C1C8
04 00000059 --- 20170207 [00276BF4-002E84BE]
00276BF4 - Header Size: 00000048
00276C3C - Data Size: 00071883
05 00000068 --- 1.1.2.15 [002E84BF-00417E4E]
002E84BF - Removing block encapsulations from Block Area [002E84BF-00417E4E]
Total bytes extracted (from the blocks): 000FB396 Block area processed OK
Buffer Size: 00006374 bytes (after converting: 8bit-dma-from-16bit)
Processor Type: BF54x - BF542/BF544/BF547/BF548/BF549
Orig Offset Offset Block Code Target Add Byte Count Argument BFlags
00000000 00000000 AD9F5002 FFA00000 00000000 0000635C ignore first
00000020 00000010 ADC50102 FF800000 00000014 00000000 fill
00000040 00000020 ADD90102 FF800014 0000001C 00000000 fill
00000060 00000030 ADC80002 FF800030 00000028 00000000
000000D0 00000068 ADA90102 FF800058 00000020 00000000 fill
000000F0 00000078 AD200002 FF800078 00002CA4 00000000
00005A58 00002D2C ADC50102 FF802D1C 00000124 00000000 fill
00005A78 00002D3C ADD60002 FFA00000 00003610 00000000
0000C6B8 0000635C ADF80802 FFA00000 00000000 00000000 init
0000C6D8 --- ZLIB Decompressed Size: 00287728
0000C6E0 --- ZLIB Compressed Block Size: 000EECAE [0000C6E8-000FB395]
****************************************************
Section Processed OK
06 00000077 ---
07 00000086 --- 3.1.1.13 [00417E4F-00497E4D]
00417E4F - ?????: 0000DCBB
00417E53 - Data Size: 0006B930
00417E57 - Name: 3.1.1.13 ???
00417E63 - Section Data [00417E63-00483792]
08 00000095 ---
...but normal UBI-reader is hard to find.
Couple of times I was successful with ubidump but now I use something with Ubuntu.
Found the only thing that work flawlessly -
https://github.com/jrspruitt/ubi_readerso was able to unpack every single UBI file from Siglent FWs.
https://github.com/jrspruitt/ubi_readerYes, I think this is the one I'm using with Ubuntu now but can't get it working in windows under the python there.
__________________________________________________________________________________________
But now that BlackFin stuff is bit strange to me, I don't know much about it.
I lost track from there:
Buffer Size: 00006374 bytes (after converting 16bit to 8bit)
Processor Type: BF54x - BF542/BF544/BF547/BF548/BF549
Offset Block Code Address Byte Count Argument
00000000 AD9F5002
So I can't see this stuff right now. In other words, I don't have a clue about this BlackFin part.
Eeee... what you do there?
But seems in SDS header the file version numbers can have different lengths. All this is
like there is written something in the header. May be file names and some data. And then
all is overwritten with file versions which is number or date plus one 00 byte.
Bit strange it looks. For example
03 0000004A --- 0208 310 looks like there was
XXXXXXXX.bin which is overwritten with shorter
XXXXX310 and 00 buffer byte
XXXXX310 bin which is now overwritten with shorter
0208 and 00 buffer byte
0208 310 binso all file versions are probably numbers to the first 00 byte and the rest is leftover crap.
One strong feeling there is like - to grow header the whole previous row is added again
and overwritten with correct info, next row is made from this and overwritten and empty
lines are skipped so part 7 has part 5 background there. This is leftover 3 after 00 buffer.
And now there is actually
05 00000068 ---
1.1.2.15 [002E84BF-00417E4E]
05 00000068 ---
1.1.2.15.3 [002E84BF-00417E4E]
because it is V1.1.1.2.15
R3In header first file version showing 2.1.1.9 and first part is beginning with CRC and 2.1.1.8
I changed the code that I had submitted. See the previous post again.
After removing the blocks, you have to convert the section that exists before the ZLIB block from 16 bit to 8 bit.
Then that area will have the Blackfin code that decompresses the ZLIB.
The code has:
16-byte block headers
The 1st 4 bytes:
0xXX------ - 1st byte -> Header Sign (Magic) - Must be 0xAD ("Analog Devices")
0x--XX---- - 2nd byte -> Header Checksum (calculated with 0 in this byte)
0x----XXX- - 3rd & 4th bytes -> Block flag (excluding the last nibble)
0x-------X - Last nibble -> DMA Code (0x00 -> 0x0F)
The others you can deduce from my parsing in the previous post.
string[] DMA_code = {"dma-reserved" , "8bit-dma-from-8bit", "8bit-dma-from-16bit", "8bit-dma-from-32bit",
"8bit-dma-from-64bit", "8bit-dma-from-128bit", "16bit-dma-from-16bit", "16bit-dma-from-32bit",
"16bit-dma-from-64bit", "16bit-dma-from-128bit", "32bit-dma-from-32bit", "32bit-dma-from-64bit",
"32bit-dma-from-128bit", "64bit-dma-from-64bit", "64bit-dma-from-128bit", "128bit-dma-from-128bit" };
string[] bflag = { "safe", "aux", "", "", "fill", "quickboot", "callback", "init", "ignore", "indirect", "first", "final" };
As you can see I've discovered where my mistake was. Because I was convinced that the Section 5 was only a Blackfin code block but I discovered that I had missed the ZLIB block. Then, the decompressed size and bytes remaining made sense. It's the same thing in the SDG1000 files.
SDS1000X_V100R001B01D02P1503.ADS saved as a 8-bit BMP starting at offset 0x27 (to align the blocks) (cropped in length).
It's visible in Section 2 a curious data arrangement (blocks of 64*21 bytes plus 64*9 bytes (whiter...))
I assume it is the Xilinx FPGA since the Section starts with the FFFF FFFF area and the FPGA bitstream SYNCWORD (AA 99 55 66) re-mixed.
(If we save the file with width=320, the block encapsulation of Section 5 is perfectly visible.)
Now that I know, I conclude that it should have been easier to spot this:
The 2nd section of SDS1000X_V100R001B01D02P1503.ADS contains the FPGAs bitstreams. SDS1000 must have 2 FPGAs...
The only obfuscation is that the bytes are reversed. So to, identify the typical SYNC WORD ( AA 99 55 66) one has to reverse all the bytes.
Then, it's visible at address 0xDEE05 the IDCODE 0x04008093 that corresponds to a Spartan 6 XC6SLX45.
Resuming:
Section 2 - Spartan 6 XC6SLX45 FPGA bitstream
Section 4 - Spartan 6 XC6SLX16 FPGA bitstream
To be continued...
Testing my FPGA bitstream parser, here is the complete parsing of both SDG1000-V100R001B01D01P37R3.ADS sections:
File Header Size: 00000048
00000000 - File Checksum: F9F6C42A [000004-EOF] (with only the File Header decrypted) CKSM OK
00000004 - File Size: 000FFBE8 (without 0x48 bytes of the File Header)
00000008 - Section Size: 000AC930
0000000C - Blocks Area: 00000000 [000FFBE8-000FFBE7]
00000026 - Vendor: SIGLENT
0000003A - USB Host Controller: ISP1763
****************************************************
Decrypting the 0x2800 and 0x1400 blocks...
Reversing file...
XORing with 0xFF (incrementing pattern)...
XORing with 0xFF from 0x0007FDF4 until 0x000FFBE7
****************************************************
0000000C --- Section Checksum: FEFF926D
00000010 --- Section Size: 00053294 [00000018-000532AB] CKSM OK
00000014 --- Section # 00000001
00000018 - Data Checksum: FEFF9BCB
0000001C - Data Size: 0005327C [00000030-000532AB] CKSM OK
00000020 - Data Name: fpga data
0000002A - ????: 0012
0000002C - ????: 77D4048F
00000030 --- 000532AB ***** FPGA DATA *****
00000030 - FFFFFFFF Padding
00000034 - FFFFFFFF Padding
00000038 - FFFFFFFF Padding
0000003C - FFFFFFFF Padding
00000040 - AA995566 Sync Word (BPI/SPI Mode)
00000044 - 30A1 0007 T1 W 0000001 CMD RCRC - Reset CRC
00000048 - 2000 T1 - 0000000 NOP (1x)
0000004A - 31A1 0380 T1 W 0000001 FLR
0000004E - 3141 3D00 T1 W 0000001 COR1
00000052 - 3161 09EE T1 W 0000001 COR2
00000056 - 31C2 04001093 T1 W 0000002 IDCODE
0000005C - 30E1 00CF T1 W 0000001 MASK
00000060 - 30C1 0081 T1 W 0000001 CTL
00000064 - 2000 T1 - 0000000 NOP (17x)
00000086 - 3381 3CC8 T1 W 0000001 CCLK_FREQ
0000008A - 3181 0881 T1 W 0000001 PWRDN_REG
0000008E - 3421 0000 T1 W 0000001 EYE_MASK
00000092 - 3201 001F T1 W 0000001 HC_OPT_REG
00000096 - 31E1 FFFF T1 W 0000001 CWDT
0000009A - 3321 0005 T1 W 0000001 PU_GWE
0000009E - 3341 0004 T1 W 0000001 PU_GTS
000000A2 - 3301 0100 T1 W 0000001 MODE_REG
000000A6 - 3261 0000 T1 W 0000001 GENERAL1
000000AA - 3281 0000 T1 W 0000001 GENERAL2
000000AE - 32A1 0000 T1 W 0000001 GENERAL3
000000B2 - 32C1 0000 T1 W 0000001 GENERAL4
000000B6 - 32E1 0000 T1 W 0000001 GENERAL5
000000BA - 33A1 1BE2 T1 W 0000001 SEU_OPT
000000BE - 33C2 00000000 T1 W 0000002 EXP_SIGN
000000C4 - 2000 T1 - 0000000 NOP (2x)
000000C8 - 3022 00000000 T1 W 0000002 FAR_MAJ
000000CE - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
000000D2 - 5060 000298AD T2 W 00298AD FDRI CRC: 00094352
00053236 - 2000 T1 - 0000000 NOP (24x)
00053266 - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
0005326A - 30A1 0003 T1 W 0000001 CMD DGHIGH/LFRM - Last Frame Write
0005326E - 2000 T1 - 0000000 NOP (4x)
00053276 - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
0005327A - 30A1 0005 T1 W 0000001 CMD START - Begin Startup Sequence
0005327E - 30E1 00FF T1 W 0000001 MASK
00053282 - 30C1 0081 T1 W 0000001 CTL
00053286 - 3002 001171C1 T1 W 0000002 CRC
0005328C - 30A1 000D T1 W 0000001 CMD DESYNC - Reset DALIGN Signal
00053290 - 2000 T1 - 0000000 NOP (14x)
****************************************************
000532AC --- Section Checksum: FAB63171
000532B0 --- Section Size: 000AC930 [000532B8-000FFBE7] CKSM OK
000532B4 --- Section # 00000002
000532B8 --- 000FFBE7 ***** BLACKFIN DATA *****
Buffer Size: 000067F2 bytes (after converting from 16 to 8 bits)
0x00000000 DXE 0000 (Data Size: 000067DC) [00000000-000067E9]
Processor Type: ADSP-BF533/534/536/537/538/539 (boot address: 0xFFA00000)
Orig Offset: Offset: Block: Target Add: Byte Count: Flags: [ start - end ]
000532B8 --- 0x00000000 0000 FF800040 00000004 0012 [0000000A-0000000D] resvect ignore
000532D4 --- 0x0000000E 0001 FF800000 000022B0 0002 [00000018-000022C7] resvect
00057848 --- 0x000022C8 0002 FF8022B0 00000010 0003 zero-fill resvect
0005785C --- 0x000022D2 0003 FF8022C0 00000010 0002 [000022DC-000022EB] resvect
00057890 --- 0x000022EC 0004 FF8022D0 0000029E 0002 [000022F6-00002593] resvect
00057DE0 --- 0x00002594 0005 FF80256E 0000000E 0003 zero-fill resvect
00057DF4 --- 0x0000259E 0006 FF80257C 000009BA 0002 [000025A8-00002F61] resvect
0005917C --- 0x00002F62 0007 FF802F36 000000AA 0003 zero-fill resvect
00059190 --- 0x00002F6C 0008 FF802FE0 0000000C 0002 [00002F76-00002F81] resvect
000591BC --- 0x00002F82 0009 FF902000 00000004 0002 [00002F8C-00002F8F] resvect
000591D8 --- 0x00002F90 000A FF902004 00000068 0003 zero-fill resvect
000591EC --- 0x00002F9A 000B FFA00000 0000383A 0002 [00002FA4-000067DD] resvect
00060274 --- 0x000067DE 000C FFA00000 00000002 000A [000067E8-000067E9] resvect init
0006028C --- ZLIB Decompressed Size: 001AA72E
00060294 --- ZLIB Compressed Block Size: 0009F94C [0006029C-000FFBE7]
****************************************************
File Processed OK
Parsing of SDS1000X_V100R001B01D02P1503.ADS:
Parsing a SIGLENT SDS1000/SDS2000 file
01 0000002C --- 2.1.1.9 [000000C4-000DED94]
000000C4 - Checksum: FFBDDCC9
000000C8 - Name: 2.1.1.8
000000C8 - Section Data [000000C8-000DED94] CKSM OK
02 0000003B --- 20170310 [000DED95-0024A9E3]
000DED95 - Data Size: 0016BC07
000DED95 - Header Size: 00000048
000DEDDD - FFFFFFFF Padding
000DEDE1 - FFFFFFFF Padding
000DEDE5 - FFFFFFFF Padding
000DEDE9 - FFFFFFFF Padding
000DEDED - AA995566 Sync Word (BPI/SPI Mode)
000DEDF1 - 30A1 0007 T1 W 0000001 CMD RCRC - Reset CRC
000DEDF5 - 2000 T1 - 0000000 NOP (1x)
000DEDF7 - 31A1 0628 T1 W 0000001 FLR
000DEDFB - 3141 3D00 T1 W 0000001 COR1
000DEDFF - 3161 09EE T1 W 0000001 COR2
000DEE03 - 31C2 04008093 T1 W 0000002 IDCODE
000DEE09 - 30E1 00CF T1 W 0000001 MASK
000DEE0D - 30C1 0081 T1 W 0000001 CTL
000DEE11 - 2000 T1 - 0000000 NOP (17x)
000DEE33 - 3381 3CC8 T1 W 0000001 CCLK_FREQ
000DEE37 - 3181 0881 T1 W 0000001 PWRDN_REG
000DEE3B - 3421 0000 T1 W 0000001 EYE_MASK
000DEE3F - 3201 001F T1 W 0000001 HC_OPT_REG
000DEE43 - 31E1 FFFF T1 W 0000001 CWDT
000DEE47 - 3321 0005 T1 W 0000001 PU_GWE
000DEE4B - 3341 0004 T1 W 0000001 PU_GTS
000DEE4F - 3301 0100 T1 W 0000001 MODE_REG
000DEE53 - 3261 0000 T1 W 0000001 GENERAL1
000DEE57 - 3281 0000 T1 W 0000001 GENERAL2
000DEE5B - 32A1 0000 T1 W 0000001 GENERAL3
000DEE5F - 32C1 0000 T1 W 0000001 GENERAL4
000DEE63 - 32E1 0000 T1 W 0000001 GENERAL5
000DEE67 - 33A1 1BE2 T1 W 0000001 SEU_OPT
000DEE6B - 33C2 00000000 T1 W 0000002 EXP_SIGN
000DEE71 - 2000 T1 - 0000000 NOP (2x)
000DEE75 - 3022 00000000 T1 W 0000002 FAR_MAJ
000DEE7B - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
000DEE7F - 5060 000B52A9 T2 W 00B52A9 FDRI CRC: 0034308C
002493DB - 2000 T1 - 0000000 NOP (24x)
0024940B - 3022 00040017 T1 W 0000002 FAR_MAJ
00249411 - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
00249415 - 5060 00000082 T2 W 0000082 FDRI CRC: 003375D7
00249523 - 3022 000D0017 T1 W 0000002 FAR_MAJ
00249529 - 5060 00000082 T2 W 0000082 FDRI CRC: 0002BA9A
00249637 - 3022 001A0017 T1 W 0000002 FAR_MAJ
0024963D - 5060 00000082 T2 W 0000082 FDRI CRC: 0003762D
0024974B - 3022 00230017 T1 W 0000002 FAR_MAJ
00249751 - 5060 00000082 T2 W 0000082 FDRI CRC: 00094B76
0024985F - 3022 01040017 T1 W 0000002 FAR_MAJ
00249865 - 5060 00000082 T2 W 0000082 FDRI CRC: 00202D3C
00249973 - 3022 010D0017 T1 W 0000002 FAR_MAJ
00249979 - 5060 00000082 T2 W 0000082 FDRI CRC: 002CF083
00249A87 - 3022 011A0017 T1 W 0000002 FAR_MAJ
00249A8D - 5060 00000082 T2 W 0000082 FDRI CRC: 0014FD49
00249B9B - 3022 01230017 T1 W 0000002 FAR_MAJ
00249BA1 - 5060 00000082 T2 W 0000082 FDRI CRC: 00051241
00249CAF - 3022 021A0017 T1 W 0000002 FAR_MAJ
00249CB5 - 5060 00000082 T2 W 0000082 FDRI CRC: 0007EA84
00249DC3 - 3022 02230017 T1 W 0000002 FAR_MAJ
00249DC9 - 5060 00000082 T2 W 0000082 FDRI CRC: 0030BD91
00249ED7 - 3022 03040017 T1 W 0000002 FAR_MAJ
00249EDD - 5060 00000082 T2 W 0000082 FDRI CRC: 00015E7B
00249FEB - 3022 030D0017 T1 W 0000002 FAR_MAJ
00249FF1 - 5060 00000082 T2 W 0000082 FDRI CRC: 003B95FD
0024A0FF - 3022 031A0017 T1 W 0000002 FAR_MAJ
0024A105 - 5060 00000082 T2 W 0000082 FDRI CRC: 000DC751
0024A213 - 3022 03230017 T1 W 0000002 FAR_MAJ
0024A219 - 5060 00000082 T2 W 0000082 FDRI CRC: 00029613
0024A327 - 3022 04230017 T1 W 0000002 FAR_MAJ
0024A32D - 5060 00000082 T2 W 0000082 FDRI CRC: 000B26CB
0024A43B - 3022 050D0017 T1 W 0000002 FAR_MAJ
0024A441 - 5060 00000082 T2 W 0000082 FDRI CRC: 00079B31
0024A54F - 3022 051A0017 T1 W 0000002 FAR_MAJ
0024A555 - 5060 00000082 T2 W 0000082 FDRI CRC: 00078C47
0024A663 - 3022 05230017 T1 W 0000002 FAR_MAJ
0024A669 - 5060 00000082 T2 W 0000082 FDRI CRC: 002EA4CD
0024A777 - 3022 061A0017 T1 W 0000002 FAR_MAJ
0024A77D - 5060 00000082 T2 W 0000082 FDRI CRC: 002E1DE1
0024A88B - 3022 06230017 T1 W 0000002 FAR_MAJ
0024A891 - 5060 00000082 T2 W 0000082 FDRI CRC: 00281192
0024A99F - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
0024A9A3 - 30A1 0003 T1 W 0000001 CMD DGHIGH/LFRM - Last Frame Write
0024A9A7 - 2000 T1 - 0000000 NOP (4x)
0024A9AF - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
0024A9B3 - 30A1 0005 T1 W 0000001 CMD START - Begin Startup Sequence
0024A9B7 - 30E1 00FF T1 W 0000001 MASK
0024A9BB - 30C1 0081 T1 W 0000001 CTL
0024A9BF - 3002 00174160 T1 W 0000002 CRC
0024A9C5 - 30A1 000D T1 W 0000001 CMD DESYNC - Reset DALIGN Signal
0024A9C9 - 2000 T1 - 0000000 NOP (13x)
****************************************************
03 0000004A --- 0208 310 [0024A9E4-00276BF3]
0024A9E4 - Data Size: 0002C1C8
0024A9E4 - Header Size: 00000048
04 00000059 --- 20170207 [00276BF4-002E84BE]
00276BF4 - Data Size: 00071883
00276BF4 - Header Size: 00000048
00276C3C - FFFFFFFF Padding
00276C40 - FFFFFFFF Padding
00276C44 - FFFFFFFF Padding
00276C48 - FFFFFFFF Padding
00276C4C - AA995566 Sync Word (BPI/SPI Mode)
00276C50 - 30A1 0007 T1 W 0000001 CMD RCRC - Reset CRC
00276C54 - 2000 T1 - 0000000 NOP (1x)
00276C56 - 31A1 0430 T1 W 0000001 FLR
00276C5A - 3141 3D00 T1 W 0000001 COR1
00276C5E - 3161 09EE T1 W 0000001 COR2
00276C62 - 31C2 04002093 T1 W 0000002 IDCODE
00276C68 - 30E1 00CF T1 W 0000001 MASK
00276C6C - 30C1 0081 T1 W 0000001 CTL
00276C70 - 2000 T1 - 0000000 NOP (17x)
00276C92 - 3381 3CC8 T1 W 0000001 CCLK_FREQ
00276C96 - 3181 0881 T1 W 0000001 PWRDN_REG
00276C9A - 3421 0000 T1 W 0000001 EYE_MASK
00276C9E - 3201 001F T1 W 0000001 HC_OPT_REG
00276CA2 - 31E1 FFFF T1 W 0000001 CWDT
00276CA6 - 3321 0005 T1 W 0000001 PU_GWE
00276CAA - 3341 0004 T1 W 0000001 PU_GTS
00276CAE - 3301 0100 T1 W 0000001 MODE_REG
00276CB2 - 3261 0000 T1 W 0000001 GENERAL1
00276CB6 - 3281 0000 T1 W 0000001 GENERAL2
00276CBA - 32A1 0000 T1 W 0000001 GENERAL3
00276CBE - 32C1 0000 T1 W 0000001 GENERAL4
00276CC2 - 32E1 0000 T1 W 0000001 GENERAL5
00276CC6 - 33A1 1BE2 T1 W 0000001 SEU_OPT
00276CCA - 33C2 00000000 T1 W 0000002 EXP_SIGN
00276CD0 - 2000 T1 - 0000000 NOP (2x)
00276CD4 - 3022 00000000 T1 W 0000002 FAR_MAJ
00276CDA - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
00276CDE - 5060 00038A11 T2 W 0038A11 FDRI CRC: 00374F6B
002E810A - 2000 T1 - 0000000 NOP (24x)
002E813A - 3022 01040017 T1 W 0000002 FAR_MAJ
002E8140 - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
002E8144 - 5060 00000082 T2 W 0000082 FDRI CRC: 0011C60E
002E8252 - 3022 02040017 T1 W 0000002 FAR_MAJ
002E8258 - 5060 00000082 T2 W 0000082 FDRI CRC: 0036FAC5
002E8366 - 3022 03040017 T1 W 0000002 FAR_MAJ
002E836C - 5060 00000082 T2 W 0000082 FDRI CRC: 002A817F
002E847A - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
002E847E - 30A1 0003 T1 W 0000001 CMD DGHIGH/LFRM - Last Frame Write
002E8482 - 2000 T1 - 0000000 NOP (4x)
002E848A - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
002E848E - 30A1 0005 T1 W 0000001 CMD START - Begin Startup Sequence
002E8492 - 30E1 00FF T1 W 0000001 MASK
002E8496 - 30C1 0081 T1 W 0000001 CTL
002E849A - 3002 00325B22 T1 W 0000002 CRC
002E84A0 - 30A1 000D T1 W 0000001 CMD DESYNC - Reset DALIGN Signal
002E84A4 - 2000 T1 - 0000000 NOP (13x)
****************************************************
05 00000068 --- 1.1.2.15 [002E84BF-00417E4E]
002E84BF - Removing block encapsulations from Block Area [002E84BF-00417E4E]
Total bytes extracted (from the blocks): 000FB396 Block area processed OK
Buffer Size: 00006374 bytes (after converting from 16 to 8 bits)
Processor Type: BF54x - BF542/BF544/BF547/BF548/BF549
Orig Offset Offset Block Code Target Add Byte Count Argument BFlags
00000000 00000000 AD9F5002 FFA00000 00000000 0000635C ignore first
00000020 00000010 ADC50102 FF800000 00000014 00000000 fill
00000040 00000020 ADD90102 FF800014 0000001C 00000000 fill
00000060 00000030 ADC80002 FF800030 00000028 00000000
000000D0 00000068 ADA90102 FF800058 00000020 00000000 fill
000000F0 00000078 AD200002 FF800078 00002CA4 00000000
00005A58 00002D2C ADC50102 FF802D1C 00000124 00000000 fill
00005A78 00002D3C ADD60002 FFA00000 00003610 00000000
0000C6B8 0000635C ADF80802 FFA00000 00000000 00000000 init
0000C6D8 --- ZLIB Decompressed Size: 00287728
0000C6E0 --- ZLIB Compressed Block Size: 000EECAE [0000C6E8-000FB395]
****************************************************
Section Processed OK
06 00000077 ---
07 00000086 --- 3.1.1.13 [00417E4F-00497E4D]
00417E4F - ?????: 0000DCBB
00417E53 - Data Size: 0006B930
00417E57 - Name: 3.1.1.13 ???
00417E63 - Section Data [00417E63-00483792]
08 00000095 ---
Parsing of sds2k_V100R02B01D01P38R07_fvA1606060606M160516.ADS:
Parsing a SIGLENT SDS1000/SDS2000 file
01 0000002C --- 2.1.1.9 [000000C4-000DED94]
000000C4 - Checksum: FFBDDCC9
000000C8 - Name: 2.1.1.8
000000C8 - Section Data [000000C8-000DED94] CKSM OK
02 0000003B --- 20160606 [000DED95-0024A593]
000DED95 - Data Size: 0016B7B7
000DED95 - Header Size: 00000048
000DEDDD - FFFFFFFF Padding
000DEDE1 - FFFFFFFF Padding
000DEDE5 - FFFFFFFF Padding
000DEDE9 - FFFFFFFF Padding
000DEDED - AA995566 Sync Word (BPI/SPI Mode)
000DEDF1 - 30A1 0007 T1 W 0000001 CMD RCRC - Reset CRC
000DEDF5 - 2000 T1 - 0000000 NOP (1x)
000DEDF7 - 31A1 0628 T1 W 0000001 FLR
000DEDFB - 3141 3D00 T1 W 0000001 COR1
000DEDFF - 3161 09EE T1 W 0000001 COR2
000DEE03 - 31C2 04008093 T1 W 0000002 IDCODE
000DEE09 - 30E1 00CF T1 W 0000001 MASK
000DEE0D - 30C1 0081 T1 W 0000001 CTL
000DEE11 - 2000 T1 - 0000000 NOP (17x)
000DEE33 - 3381 3CC8 T1 W 0000001 CCLK_FREQ
000DEE37 - 3181 0881 T1 W 0000001 PWRDN_REG
000DEE3B - 3421 0000 T1 W 0000001 EYE_MASK
000DEE3F - 3201 001F T1 W 0000001 HC_OPT_REG
000DEE43 - 31E1 FFFF T1 W 0000001 CWDT
000DEE47 - 3321 0005 T1 W 0000001 PU_GWE
000DEE4B - 3341 0004 T1 W 0000001 PU_GTS
000DEE4F - 3301 0100 T1 W 0000001 MODE_REG
000DEE53 - 3261 0000 T1 W 0000001 GENERAL1
000DEE57 - 3281 0000 T1 W 0000001 GENERAL2
000DEE5B - 32A1 0000 T1 W 0000001 GENERAL3
000DEE5F - 32C1 0000 T1 W 0000001 GENERAL4
000DEE63 - 32E1 0000 T1 W 0000001 GENERAL5
000DEE67 - 33A1 1BE2 T1 W 0000001 SEU_OPT
000DEE6B - 33C2 00000000 T1 W 0000002 EXP_SIGN
000DEE71 - 2000 T1 - 0000000 NOP (2x)
000DEE75 - 3022 00000000 T1 W 0000002 FAR_MAJ
000DEE7B - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
000DEE7F - 5060 000B52A9 T2 W 00B52A9 FDRI CRC: 00131922
002493DB - 2000 T1 - 0000000 NOP (24x)
0024940B - 3022 00040017 T1 W 0000002 FAR_MAJ
00249411 - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
00249415 - 5060 00000082 T2 W 0000082 FDRI CRC: 0004280B
00249523 - 3022 000D0017 T1 W 0000002 FAR_MAJ
00249529 - 5060 00000082 T2 W 0000082 FDRI CRC: 000F94E1
00249637 - 3022 00230017 T1 W 0000002 FAR_MAJ
0024963D - 5060 00000082 T2 W 0000082 FDRI CRC: 00008F4D
0024974B - 3022 01040017 T1 W 0000002 FAR_MAJ
00249751 - 5060 00000082 T2 W 0000082 FDRI CRC: 0035DE97
0024985F - 3022 010D0017 T1 W 0000002 FAR_MAJ
00249865 - 5060 00000082 T2 W 0000082 FDRI CRC: 003E4DA8
00249973 - 3022 011A0017 T1 W 0000002 FAR_MAJ
00249979 - 5060 00000082 T2 W 0000082 FDRI CRC: 001822E4
00249A87 - 3022 01230017 T1 W 0000002 FAR_MAJ
00249A8D - 5060 00000082 T2 W 0000082 FDRI CRC: 003B04FB
00249B9B - 3022 02040017 T1 W 0000002 FAR_MAJ
00249BA1 - 5060 00000082 T2 W 0000082 FDRI CRC: 00303121
00249CAF - 3022 020D0017 T1 W 0000002 FAR_MAJ
00249CB5 - 5060 00000082 T2 W 0000082 FDRI CRC: 0025A24C
00249DC3 - 3022 021A0017 T1 W 0000002 FAR_MAJ
00249DC9 - 5060 00000082 T2 W 0000082 FDRI CRC: 00370282
00249ED7 - 3022 02230017 T1 W 0000002 FAR_MAJ
00249EDD - 5060 00000082 T2 W 0000082 FDRI CRC: 000DAEDE
00249FEB - 3022 03040017 T1 W 0000002 FAR_MAJ
00249FF1 - 5060 00000082 T2 W 0000082 FDRI CRC: 00319323
0024A0FF - 3022 04040017 T1 W 0000002 FAR_MAJ
0024A105 - 5060 00000082 T2 W 0000082 FDRI CRC: 000B7C1F
0024A213 - 3022 040D0017 T1 W 0000002 FAR_MAJ
0024A219 - 5060 00000082 T2 W 0000082 FDRI CRC: 001DE18B
0024A327 - 3022 05040017 T1 W 0000002 FAR_MAJ
0024A32D - 5060 00000082 T2 W 0000082 FDRI CRC: 003D0427
0024A43B - 3022 050D0017 T1 W 0000002 FAR_MAJ
0024A441 - 5060 00000082 T2 W 0000082 FDRI CRC: 003A50CB
0024A54F - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
0024A553 - 30A1 0003 T1 W 0000001 CMD DGHIGH/LFRM - Last Frame Write
0024A557 - 2000 T1 - 0000000 NOP (4x)
0024A55F - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
0024A563 - 30A1 0005 T1 W 0000001 CMD START - Begin Startup Sequence
0024A567 - 30E1 00FF T1 W 0000001 MASK
0024A56B - 30C1 0081 T1 W 0000001 CTL
0024A56F - 3002 000F3E32 T1 W 0000002 CRC
0024A575 - 30A1 000D T1 W 0000001 CMD DESYNC - Reset DALIGN Signal
0024A579 - 2000 T1 - 0000000 NOP (13x)
****************************************************
03 0000004A --- 20160606 [0024A594-003B5D92]
0024A594 - Data Size: 0016B7B7
0024A594 - Header Size: 00000048
0024A5DC - FFFFFFFF Padding
0024A5E0 - FFFFFFFF Padding
0024A5E4 - FFFFFFFF Padding
0024A5E8 - FFFFFFFF Padding
0024A5EC - AA995566 Sync Word (BPI/SPI Mode)
0024A5F0 - 30A1 0007 T1 W 0000001 CMD RCRC - Reset CRC
0024A5F4 - 2000 T1 - 0000000 NOP (1x)
0024A5F6 - 31A1 0628 T1 W 0000001 FLR
0024A5FA - 3141 3D00 T1 W 0000001 COR1
0024A5FE - 3161 09EE T1 W 0000001 COR2
0024A602 - 31C2 04008093 T1 W 0000002 IDCODE
0024A608 - 30E1 00CF T1 W 0000001 MASK
0024A60C - 30C1 0081 T1 W 0000001 CTL
0024A610 - 2000 T1 - 0000000 NOP (17x)
0024A632 - 3381 3CC8 T1 W 0000001 CCLK_FREQ
0024A636 - 3181 0881 T1 W 0000001 PWRDN_REG
0024A63A - 3421 0000 T1 W 0000001 EYE_MASK
0024A63E - 3201 001F T1 W 0000001 HC_OPT_REG
0024A642 - 31E1 FFFF T1 W 0000001 CWDT
0024A646 - 3321 0005 T1 W 0000001 PU_GWE
0024A64A - 3341 0004 T1 W 0000001 PU_GTS
0024A64E - 3301 0100 T1 W 0000001 MODE_REG
0024A652 - 3261 0000 T1 W 0000001 GENERAL1
0024A656 - 3281 0000 T1 W 0000001 GENERAL2
0024A65A - 32A1 0000 T1 W 0000001 GENERAL3
0024A65E - 32C1 0000 T1 W 0000001 GENERAL4
0024A662 - 32E1 0000 T1 W 0000001 GENERAL5
0024A666 - 33A1 1BE2 T1 W 0000001 SEU_OPT
0024A66A - 33C2 00000000 T1 W 0000002 EXP_SIGN
0024A670 - 2000 T1 - 0000000 NOP (2x)
0024A674 - 3022 00000000 T1 W 0000002 FAR_MAJ
0024A67A - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
0024A67E - 5060 000B52A9 T2 W 00B52A9 FDRI CRC: 000310D9
003B4BDA - 2000 T1 - 0000000 NOP (24x)
003B4C0A - 3022 000D0017 T1 W 0000002 FAR_MAJ
003B4C10 - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
003B4C14 - 5060 00000082 T2 W 0000082 FDRI CRC: 0020783B
003B4D22 - 3022 001A0017 T1 W 0000002 FAR_MAJ
003B4D28 - 5060 00000082 T2 W 0000082 FDRI CRC: 002806B7
003B4E36 - 3022 00230017 T1 W 0000002 FAR_MAJ
003B4E3C - 5060 00000082 T2 W 0000082 FDRI CRC: 0014E29D
003B4F4A - 3022 010D0017 T1 W 0000002 FAR_MAJ
003B4F50 - 5060 00000082 T2 W 0000082 FDRI CRC: 00141799
003B505E - 3022 011A0017 T1 W 0000002 FAR_MAJ
003B5064 - 5060 00000082 T2 W 0000082 FDRI CRC: 003A1B9A
003B5172 - 3022 01230017 T1 W 0000002 FAR_MAJ
003B5178 - 5060 00000082 T2 W 0000082 FDRI CRC: 0020B6FA
003B5286 - 3022 021A0017 T1 W 0000002 FAR_MAJ
003B528C - 5060 00000082 T2 W 0000082 FDRI CRC: 002554A2
003B539A - 3022 02230017 T1 W 0000002 FAR_MAJ
003B53A0 - 5060 00000082 T2 W 0000082 FDRI CRC: 001D9C65
003B54AE - 3022 03040017 T1 W 0000002 FAR_MAJ
003B54B4 - 5060 00000082 T2 W 0000082 FDRI CRC: 0038FD0C
003B55C2 - 3022 030D0017 T1 W 0000002 FAR_MAJ
003B55C8 - 5060 00000082 T2 W 0000082 FDRI CRC: 002782A6
003B56D6 - 3022 03230017 T1 W 0000002 FAR_MAJ
003B56DC - 5060 00000082 T2 W 0000082 FDRI CRC: 0014CA3C
003B57EA - 3022 040D0017 T1 W 0000002 FAR_MAJ
003B57F0 - 5060 00000082 T2 W 0000082 FDRI CRC: 001C57CE
003B58FE - 3022 04230017 T1 W 0000002 FAR_MAJ
003B5904 - 5060 00000082 T2 W 0000082 FDRI CRC: 0017A6CC
003B5A12 - 3022 050D0017 T1 W 0000002 FAR_MAJ
003B5A18 - 5060 00000082 T2 W 0000082 FDRI CRC: 00037603
003B5B26 - 3022 051A0017 T1 W 0000002 FAR_MAJ
003B5B2C - 5060 00000082 T2 W 0000082 FDRI CRC: 00069CF5
003B5C3A - 3022 05230017 T1 W 0000002 FAR_MAJ
003B5C40 - 5060 00000082 T2 W 0000082 FDRI CRC: 003DE286
003B5D4E - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
003B5D52 - 30A1 0003 T1 W 0000001 CMD DGHIGH/LFRM - Last Frame Write
003B5D56 - 2000 T1 - 0000000 NOP (4x)
003B5D5E - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
003B5D62 - 30A1 0005 T1 W 0000001 CMD START - Begin Startup Sequence
003B5D66 - 30E1 00FF T1 W 0000001 MASK
003B5D6A - 30C1 0081 T1 W 0000001 CTL
003B5D6E - 3002 00205EF5 T1 W 0000002 CRC
003B5D74 - 30A1 000D T1 W 0000001 CMD DESYNC - Reset DALIGN Signal
003B5D78 - 2000 T1 - 0000000 NOP (13x)
****************************************************
04 00000059 --- 20160516 [003B5D93-005218CD]
003B5D93 - Data Size: 0016BAF3
003B5D93 - Header Size: 00000048
003B5DDB - FFFFFFFF Padding
003B5DDF - FFFFFFFF Padding
003B5DE3 - FFFFFFFF Padding
003B5DE7 - FFFFFFFF Padding
003B5DEB - AA995566 Sync Word (BPI/SPI Mode)
003B5DEF - 30A1 0007 T1 W 0000001 CMD RCRC - Reset CRC
003B5DF3 - 2000 T1 - 0000000 NOP (1x)
003B5DF5 - 31A1 0628 T1 W 0000001 FLR
003B5DF9 - 3141 3D08 T1 W 0000001 COR1
003B5DFD - 3161 09EE T1 W 0000001 COR2
003B5E01 - 31C2 04008093 T1 W 0000002 IDCODE
003B5E07 - 30E1 00CF T1 W 0000001 MASK
003B5E0B - 30C1 0081 T1 W 0000001 CTL
003B5E0F - 2000 T1 - 0000000 NOP (17x)
003B5E31 - 3381 3CC8 T1 W 0000001 CCLK_FREQ
003B5E35 - 3181 0881 T1 W 0000001 PWRDN_REG
003B5E39 - 3421 0000 T1 W 0000001 EYE_MASK
003B5E3D - 3201 001F T1 W 0000001 HC_OPT_REG
003B5E41 - 31E1 FFFF T1 W 0000001 CWDT
003B5E45 - 3321 0005 T1 W 0000001 PU_GWE
003B5E49 - 3341 0004 T1 W 0000001 PU_GTS
003B5E4D - 3301 0100 T1 W 0000001 MODE_REG
003B5E51 - 3261 0000 T1 W 0000001 GENERAL1
003B5E55 - 3281 0000 T1 W 0000001 GENERAL2
003B5E59 - 32A1 0000 T1 W 0000001 GENERAL3
003B5E5D - 32C1 0000 T1 W 0000001 GENERAL4
003B5E61 - 32E1 0000 T1 W 0000001 GENERAL5
003B5E65 - 33A1 1BE2 T1 W 0000001 SEU_OPT
003B5E69 - 33C2 00000000 T1 W 0000002 EXP_SIGN
003B5E6F - 2000 T1 - 0000000 NOP (2x)
003B5E73 - 3022 00000000 T1 W 0000002 FAR_MAJ
003B5E79 - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
003B5E7D - 5060 000B52A9 T2 W 00B52A9 FDRI CRC: 002B8811
005203D9 - 2000 T1 - 0000000 NOP (24x)
00520409 - 3022 00040017 T1 W 0000002 FAR_MAJ
0052040F - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
00520413 - 5060 00000082 T2 W 0000082 FDRI CRC: 003AE8A0
00520521 - 3022 000D0017 T1 W 0000002 FAR_MAJ
00520527 - 5060 00000082 T2 W 0000082 FDRI CRC: 0003D2F5
00520635 - 3022 001A0017 T1 W 0000002 FAR_MAJ
0052063B - 5060 00000082 T2 W 0000082 FDRI CRC: 000C9D2E
00520749 - 3022 01040017 T1 W 0000002 FAR_MAJ
0052074F - 5060 00000082 T2 W 0000082 FDRI CRC: 000F9CED
0052085D - 3022 010D0017 T1 W 0000002 FAR_MAJ
00520863 - 5060 00000082 T2 W 0000082 FDRI CRC: 002B37CB
00520971 - 3022 011A0017 T1 W 0000002 FAR_MAJ
00520977 - 5060 00000082 T2 W 0000082 FDRI CRC: 000F731E
00520A85 - 3022 01230017 T1 W 0000002 FAR_MAJ
00520A8B - 5060 00000082 T2 W 0000082 FDRI CRC: 0008A05A
00520B99 - 3022 02040017 T1 W 0000002 FAR_MAJ
00520B9F - 5060 00000082 T2 W 0000082 FDRI CRC: 002A8550
00520CAD - 3022 020D0017 T1 W 0000002 FAR_MAJ
00520CB3 - 5060 00000082 T2 W 0000082 FDRI CRC: 003A459B
00520DC1 - 3022 030D0017 T1 W 0000002 FAR_MAJ
00520DC7 - 5060 00000082 T2 W 0000082 FDRI CRC: 000EFB42
00520ED5 - 3022 031A0017 T1 W 0000002 FAR_MAJ
00520EDB - 5060 00000082 T2 W 0000082 FDRI CRC: 0008F310
00520FE9 - 3022 03230017 T1 W 0000002 FAR_MAJ
00520FEF - 5060 00000082 T2 W 0000082 FDRI CRC: 00275C86
005210FD - 3022 04040017 T1 W 0000002 FAR_MAJ
00521103 - 5060 00000082 T2 W 0000082 FDRI CRC: 001C9593
00521211 - 3022 040D0017 T1 W 0000002 FAR_MAJ
00521217 - 5060 00000082 T2 W 0000082 FDRI CRC: 0024C949
00521325 - 3022 041A0017 T1 W 0000002 FAR_MAJ
0052132B - 5060 00000082 T2 W 0000082 FDRI CRC: 000126CA
00521439 - 3022 04230017 T1 W 0000002 FAR_MAJ
0052143F - 5060 00000082 T2 W 0000082 FDRI CRC: 001B87F4
0052154D - 3022 05040017 T1 W 0000002 FAR_MAJ
00521553 - 5060 00000082 T2 W 0000082 FDRI CRC: 000377BB
00521661 - 3022 050D0017 T1 W 0000002 FAR_MAJ
00521667 - 5060 00000082 T2 W 0000082 FDRI CRC: 00291A21
00521775 - 3022 06040017 T1 W 0000002 FAR_MAJ
0052177B - 5060 00000082 T2 W 0000082 FDRI CRC: 003EDDFD
00521889 - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
0052188D - 30A1 0003 T1 W 0000001 CMD DGHIGH/LFRM - Last Frame Write
00521891 - 2000 T1 - 0000000 NOP (4x)
00521899 - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
0052189D - 30A1 0005 T1 W 0000001 CMD START - Begin Startup Sequence
005218A1 - 30E1 00FF T1 W 0000001 MASK
005218A5 - 30C1 0081 T1 W 0000001 CTL
005218A9 - 3002 002E31B6 T1 W 0000002 CRC
005218AF - 30A1 000D T1 W 0000001 CMD DESYNC - Reset DALIGN Signal
005218B3 - 2000 T1 - 0000000 NOP (13x)
****************************************************
05 00000068 --- 1.2.1.38 [005218CE-00656599]
005218CE - Removing block encapsulations from Block Area [005218CE-00656599]
Total bytes extracted (from the blocks): 000FF877 Block area processed OK
Buffer Size: 00006DEA bytes (after converting from 16 to 8 bits)
0x00000000 DXE 0000 (Data Size: 00006DD4) [00000000-00006DE1]
Processor Type: ADSP-BF533/534/536/537/538/539 (boot address: 0xFFA00000)
Orig Offset: Offset: Block: Target Add: Byte Count: Flags: [ start - end ]
00000000 --- 0x00000000 0000 FF800040 00000004 0012 [0000000A-0000000D] resvect ignore
0000001C --- 0x0000000E 0001 FF800000 000022B0 0002 [00000018-000022C7] resvect
00004590 --- 0x000022C8 0002 FF8022B0 00000010 0003 zero-fill resvect
000045A4 --- 0x000022D2 0003 FF8022C0 00000010 0002 [000022DC-000022EB] resvect
000045D8 --- 0x000022EC 0004 FF8022D0 0000029E 0002 [000022F6-00002593] resvect
00004B28 --- 0x00002594 0005 FF80256E 0000000E 0003 zero-fill resvect
00004B3C --- 0x0000259E 0006 FF80257C 000009BA 0002 [000025A8-00002F61] resvect
00005EC4 --- 0x00002F62 0007 FF802F36 000000AA 0003 zero-fill resvect
00005ED8 --- 0x00002F6C 0008 FF802FE0 0000000C 0002 [00002F76-00002F81] resvect
00005F04 --- 0x00002F82 0009 FF902000 00000004 0002 [00002F8C-00002F8F] resvect
00005F20 --- 0x00002F90 000A FF902004 00000068 0003 zero-fill resvect
00005F34 --- 0x00002F9A 000B FFA00000 00003E32 0002 [00002FA4-00006DD5] resvect
0000DBAC --- 0x00006DD6 000C FFA00000 00000002 000A [00006DE0-00006DE1] resvect init
0000DBC4 --- ZLIB Decompressed Size: 0029FA20
0000DBCC --- ZLIB Compressed Block Size: 000F1CA3 [0000DBD4-000FF876]
****************************************************
Section Processed OK
06 00000077 ---
07 00000086 --- 3.1.1.13 [0065659A-006D6598]
0065659A - ?????: 0000DCBB
0065659E - Data Size: 0006B930
006565A2 - Name: 3.1.1.13 ???
006565AE - Section Data [006565AE-006C1EDD]
08 00000095 ---
SDS1000 - 1 x Spartan-6 XC6SLX45 + 1 Spartan-6 XC6SLX16
SDS2000 - 3 x Spartan-6 XC6SLX45
These lines look interesting:
SDS1000X
00276C62 - 31C2 04002093 T1 W 0000002 IDCODE
SDS2000
0024A602 - 31C2 04008093 T1 W 0000002 IDCODE
BW selection maybe ?
I used SDS ads 0.13 tool on the SDS2000X_V1.2.2.2_Firmware_Update_EN. Then, as it was suggested, I reversed bytes of the whole files: Part_2, Part_3 and Part4 with the code:
import sys, os, shutil
def reverse(b):
"function_docstring"
b = (b & 0xF0) >> 4 | (b & 0x0F) << 4
b = (b & 0xCC) >> 2 | (b & 0x33) << 2
b = (b & 0xAA) >> 1 | (b & 0x55) << 1
return b
input = 'Part_4.bit'
#input='sds2kx_V100R02B01D02P02_fvA1609220922M160922.ADS'
output = 'ByteSwap_'+input
b = bytearray(open(input, 'rb').read())
i = 0
j = 0
i = len(b)
while j < i:
b[j]=reverse(b[j])
j = j + 1
open(output, 'wb').write(b)
print (' * Byte reverse done * ')
All those files contain IDCODE: 04008093 at offset 0x70 what means three Spartan6 XC6SLX45 in the scope.
Anyway the files cannot be used in impact in this form. What is in the file can be a *.bin file. Then it does not have header and starts with FFFF sequence. Otherwise it is *.bit where the header is missing.
I generated an "empty" *.bit file for XC6SLX45 with ISE for reference. It is 16A6CE long. It finishes with 0202 sequence. There is something similar in the analysed file but not in the right place.
matib12,
Better way to reverse (C#):
private static byte reverseByteBits(byte a) // Reverse the bits in a Byte
{ return (byte)((a * 0x0202020202 & 0x010884422010) % 1023); }
Here's my parsing/decode of sds2kx_V100R02B01D02P02_fvA1609220922M160922.ADS:
Parsing a SIGLENT SDS1000/SDS2000 file
01 0000002C --- 2.1.1.9 [000000C4-000DED94]
000000C4 - Checksum: FFBDDCC9
000000C8 - Name: 2.1.1.8
000000C8 - Section Data [000000C8-000DED94] CKSM OK
02 0000003B --- 20160922 [000DED95-0024A47F]
000DED95 - Data Size: 0016B6A3
000DED95 - Header Size: 00000048
000DEDDD - FFFFFFFF Padding
000DEDE1 - FFFFFFFF Padding
000DEDE5 - FFFFFFFF Padding
000DEDE9 - FFFFFFFF Padding
000DEDED - AA995566 Sync Word (BPI/SPI Mode)
000DEDF1 - 30A1 0007 T1 W 0000001 CMD RCRC - Reset CRC
000DEDF5 - 2000 T1 - 0000000 NOP (1x)
000DEDF7 - 31A1 0628 T1 W 0000001 FLR
000DEDFB - 3141 3D00 T1 W 0000001 COR1
000DEDFF - 3161 09EE T1 W 0000001 COR2
000DEE03 - 31C2 04008093 T1 W 0000002 IDCODE
000DEE09 - 30E1 00CF T1 W 0000001 MASK
000DEE0D - 30C1 0081 T1 W 0000001 CTL
000DEE11 - 2000 T1 - 0000000 NOP (17x)
000DEE33 - 3381 3CC8 T1 W 0000001 CCLK_FREQ
000DEE37 - 3181 0881 T1 W 0000001 PWRDN_REG
000DEE3B - 3421 0000 T1 W 0000001 EYE_MASK
000DEE3F - 3201 001F T1 W 0000001 HC_OPT_REG
000DEE43 - 31E1 FFFF T1 W 0000001 CWDT
000DEE47 - 3321 0005 T1 W 0000001 PU_GWE
000DEE4B - 3341 0004 T1 W 0000001 PU_GTS
000DEE4F - 3301 0100 T1 W 0000001 MODE_REG
000DEE53 - 3261 0000 T1 W 0000001 GENERAL1
000DEE57 - 3281 0000 T1 W 0000001 GENERAL2
000DEE5B - 32A1 0000 T1 W 0000001 GENERAL3
000DEE5F - 32C1 0000 T1 W 0000001 GENERAL4
000DEE63 - 32E1 0000 T1 W 0000001 GENERAL5
000DEE67 - 33A1 1BE2 T1 W 0000001 SEU_OPT
000DEE6B - 33C2 00000000 T1 W 0000002 EXP_SIGN
000DEE71 - 2000 T1 - 0000000 NOP (2x)
000DEE75 - 3022 00000000 T1 W 0000002 FAR_MAJ
000DEE7B - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
000DEE7F - 5060 000B52A9 T2 W 00B52A9 FDRI CRC: 0030A883
002493DB - 2000 T1 - 0000000 NOP (24x)
0024940B - 3022 00040017 T1 W 0000002 FAR_MAJ
00249411 - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
00249415 - 5060 00000082 T2 W 0000082 FDRI CRC: 00024B83
00249523 - 3022 000D0017 T1 W 0000002 FAR_MAJ
00249529 - 5060 00000082 T2 W 0000082 FDRI CRC: 001EE1DD
00249637 - 3022 001A0017 T1 W 0000002 FAR_MAJ
0024963D - 5060 00000082 T2 W 0000082 FDRI CRC: 0020C6C9
0024974B - 3022 00230017 T1 W 0000002 FAR_MAJ
00249751 - 5060 00000082 T2 W 0000082 FDRI CRC: 0001E99E
0024985F - 3022 01040017 T1 W 0000002 FAR_MAJ
00249865 - 5060 00000082 T2 W 0000082 FDRI CRC: 003117C6
00249973 - 3022 010D0017 T1 W 0000002 FAR_MAJ
00249979 - 5060 00000082 T2 W 0000082 FDRI CRC: 00294671
00249A87 - 3022 011A0017 T1 W 0000002 FAR_MAJ
00249A8D - 5060 00000082 T2 W 0000082 FDRI CRC: 002473B9
00249B9B - 3022 01230017 T1 W 0000002 FAR_MAJ
00249BA1 - 5060 00000082 T2 W 0000082 FDRI CRC: 003E65E7
00249CAF - 3022 021A0017 T1 W 0000002 FAR_MAJ
00249CB5 - 5060 00000082 T2 W 0000082 FDRI CRC: 002675A2
00249DC3 - 3022 02230017 T1 W 0000002 FAR_MAJ
00249DC9 - 5060 00000082 T2 W 0000082 FDRI CRC: 00192AA0
00249ED7 - 3022 03040017 T1 W 0000002 FAR_MAJ
00249EDD - 5060 00000082 T2 W 0000082 FDRI CRC: 0010969D
00249FEB - 3022 04040017 T1 W 0000002 FAR_MAJ
00249FF1 - 5060 00000082 T2 W 0000082 FDRI CRC: 0028B252
0024A0FF - 3022 041A0017 T1 W 0000002 FAR_MAJ
0024A105 - 5060 00000082 T2 W 0000082 FDRI CRC: 002E7925
0024A213 - 3022 051A0017 T1 W 0000002 FAR_MAJ
0024A219 - 5060 00000082 T2 W 0000082 FDRI CRC: 0005A5E5
0024A327 - 3022 07230017 T1 W 0000002 FAR_MAJ
0024A32D - 5060 00000082 T2 W 0000082 FDRI CRC: 00158043
0024A43B - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
0024A43F - 30A1 0003 T1 W 0000001 CMD DGHIGH/LFRM - Last Frame Write
0024A443 - 2000 T1 - 0000000 NOP (4x)
0024A44B - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
0024A44F - 30A1 0005 T1 W 0000001 CMD START - Begin Startup Sequence
0024A453 - 30E1 00FF T1 W 0000001 MASK
0024A457 - 30C1 0081 T1 W 0000001 CTL
0024A45B - 3002 002E7B9D T1 W 0000002 CRC
0024A461 - 30A1 000D T1 W 0000001 CMD DESYNC - Reset DALIGN Signal
0024A465 - 2000 T1 - 0000000 NOP (13x)
****************************************************
03 0000004A --- 20160922 [0024A480-003B5C7E]
0024A480 - Data Size: 0016B7B7
0024A480 - Header Size: 00000048
0024A4C8 - FFFFFFFF Padding
0024A4CC - FFFFFFFF Padding
0024A4D0 - FFFFFFFF Padding
0024A4D4 - FFFFFFFF Padding
0024A4D8 - AA995566 Sync Word (BPI/SPI Mode)
0024A4DC - 30A1 0007 T1 W 0000001 CMD RCRC - Reset CRC
0024A4E0 - 2000 T1 - 0000000 NOP (1x)
0024A4E2 - 31A1 0628 T1 W 0000001 FLR
0024A4E6 - 3141 3D00 T1 W 0000001 COR1
0024A4EA - 3161 09EE T1 W 0000001 COR2
0024A4EE - 31C2 04008093 T1 W 0000002 IDCODE
0024A4F4 - 30E1 00CF T1 W 0000001 MASK
0024A4F8 - 30C1 0081 T1 W 0000001 CTL
0024A4FC - 2000 T1 - 0000000 NOP (17x)
0024A51E - 3381 3CC8 T1 W 0000001 CCLK_FREQ
0024A522 - 3181 0881 T1 W 0000001 PWRDN_REG
0024A526 - 3421 0000 T1 W 0000001 EYE_MASK
0024A52A - 3201 001F T1 W 0000001 HC_OPT_REG
0024A52E - 31E1 FFFF T1 W 0000001 CWDT
0024A532 - 3321 0005 T1 W 0000001 PU_GWE
0024A536 - 3341 0004 T1 W 0000001 PU_GTS
0024A53A - 3301 0100 T1 W 0000001 MODE_REG
0024A53E - 3261 0000 T1 W 0000001 GENERAL1
0024A542 - 3281 0000 T1 W 0000001 GENERAL2
0024A546 - 32A1 0000 T1 W 0000001 GENERAL3
0024A54A - 32C1 0000 T1 W 0000001 GENERAL4
0024A54E - 32E1 0000 T1 W 0000001 GENERAL5
0024A552 - 33A1 1BE2 T1 W 0000001 SEU_OPT
0024A556 - 33C2 00000000 T1 W 0000002 EXP_SIGN
0024A55C - 2000 T1 - 0000000 NOP (2x)
0024A560 - 3022 00000000 T1 W 0000002 FAR_MAJ
0024A566 - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
0024A56A - 5060 000B52A9 T2 W 00B52A9 FDRI CRC: 002483B9
003B4AC6 - 2000 T1 - 0000000 NOP (24x)
003B4AF6 - 3022 01230017 T1 W 0000002 FAR_MAJ
003B4AFC - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
003B4B00 - 5060 00000082 T2 W 0000082 FDRI CRC: 0005A45A
003B4C0E - 3022 021A0017 T1 W 0000002 FAR_MAJ
003B4C14 - 5060 00000082 T2 W 0000082 FDRI CRC: 003FDEB8
003B4D22 - 3022 02230017 T1 W 0000002 FAR_MAJ
003B4D28 - 5060 00000082 T2 W 0000082 FDRI CRC: 00327927
003B4E36 - 3022 03040017 T1 W 0000002 FAR_MAJ
003B4E3C - 5060 00000082 T2 W 0000082 FDRI CRC: 001F0CCB
003B4F4A - 3022 030D0017 T1 W 0000002 FAR_MAJ
003B4F50 - 5060 00000082 T2 W 0000082 FDRI CRC: 002995C9
003B505E - 3022 031A0017 T1 W 0000002 FAR_MAJ
003B5064 - 5060 00000082 T2 W 0000082 FDRI CRC: 00374AD7
003B5172 - 3022 03230017 T1 W 0000002 FAR_MAJ
003B5178 - 5060 00000082 T2 W 0000082 FDRI CRC: 000B2C82
003B5286 - 3022 04040017 T1 W 0000002 FAR_MAJ
003B528C - 5060 00000082 T2 W 0000082 FDRI CRC: 0013E5DB
003B539A - 3022 040D0017 T1 W 0000002 FAR_MAJ
003B53A0 - 5060 00000082 T2 W 0000082 FDRI CRC: 001EF8CF
003B54AE - 3022 041A0017 T1 W 0000002 FAR_MAJ
003B54B4 - 5060 00000082 T2 W 0000082 FDRI CRC: 00385AC2
003B55C2 - 3022 04230017 T1 W 0000002 FAR_MAJ
003B55C8 - 5060 00000082 T2 W 0000082 FDRI CRC: 002C7B03
003B56D6 - 3022 05040017 T1 W 0000002 FAR_MAJ
003B56DC - 5060 00000082 T2 W 0000082 FDRI CRC: 001FC3EF
003B57EA - 3022 050D0017 T1 W 0000002 FAR_MAJ
003B57F0 - 5060 00000082 T2 W 0000082 FDRI CRC: 003F9D02
003B58FE - 3022 05230017 T1 W 0000002 FAR_MAJ
003B5904 - 5060 00000082 T2 W 0000082 FDRI CRC: 001A7833
003B5A12 - 3022 06040017 T1 W 0000002 FAR_MAJ
003B5A18 - 5060 00000082 T2 W 0000082 FDRI CRC: 00266FD4
003B5B26 - 3022 06230017 T1 W 0000002 FAR_MAJ
003B5B2C - 5060 00000082 T2 W 0000082 FDRI CRC: 0032FDA2
003B5C3A - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
003B5C3E - 30A1 0003 T1 W 0000001 CMD DGHIGH/LFRM - Last Frame Write
003B5C42 - 2000 T1 - 0000000 NOP (4x)
003B5C4A - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
003B5C4E - 30A1 0005 T1 W 0000001 CMD START - Begin Startup Sequence
003B5C52 - 30E1 00FF T1 W 0000001 MASK
003B5C56 - 30C1 0081 T1 W 0000001 CTL
003B5C5A - 3002 0020E07A T1 W 0000002 CRC
003B5C60 - 30A1 000D T1 W 0000001 CMD DESYNC - Reset DALIGN Signal
003B5C64 - 2000 T1 - 0000000 NOP (13x)
****************************************************
04 00000059 --- 20160922 [003B5C7F-005219E1]
003B5C7F - Data Size: 0016BD1B
003B5C7F - Header Size: 00000048
003B5CC7 - FFFFFFFF Padding
003B5CCB - FFFFFFFF Padding
003B5CCF - FFFFFFFF Padding
003B5CD3 - FFFFFFFF Padding
003B5CD7 - AA995566 Sync Word (BPI/SPI Mode)
003B5CDB - 30A1 0007 T1 W 0000001 CMD RCRC - Reset CRC
003B5CDF - 2000 T1 - 0000000 NOP (1x)
003B5CE1 - 31A1 0628 T1 W 0000001 FLR
003B5CE5 - 3141 3D08 T1 W 0000001 COR1
003B5CE9 - 3161 09EE T1 W 0000001 COR2
003B5CED - 31C2 04008093 T1 W 0000002 IDCODE
003B5CF3 - 30E1 00CF T1 W 0000001 MASK
003B5CF7 - 30C1 0081 T1 W 0000001 CTL
003B5CFB - 2000 T1 - 0000000 NOP (17x)
003B5D1D - 3381 3CC8 T1 W 0000001 CCLK_FREQ
003B5D21 - 3181 0881 T1 W 0000001 PWRDN_REG
003B5D25 - 3421 0000 T1 W 0000001 EYE_MASK
003B5D29 - 3201 001F T1 W 0000001 HC_OPT_REG
003B5D2D - 31E1 FFFF T1 W 0000001 CWDT
003B5D31 - 3321 0005 T1 W 0000001 PU_GWE
003B5D35 - 3341 0004 T1 W 0000001 PU_GTS
003B5D39 - 3301 0100 T1 W 0000001 MODE_REG
003B5D3D - 3261 0000 T1 W 0000001 GENERAL1
003B5D41 - 3281 0000 T1 W 0000001 GENERAL2
003B5D45 - 32A1 0000 T1 W 0000001 GENERAL3
003B5D49 - 32C1 0000 T1 W 0000001 GENERAL4
003B5D4D - 32E1 0000 T1 W 0000001 GENERAL5
003B5D51 - 33A1 1BE2 T1 W 0000001 SEU_OPT
003B5D55 - 33C2 00000000 T1 W 0000002 EXP_SIGN
003B5D5B - 2000 T1 - 0000000 NOP (2x)
003B5D5F - 3022 00000000 T1 W 0000002 FAR_MAJ
003B5D65 - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
003B5D69 - 5060 000B52A9 T2 W 00B52A9 FDRI CRC: 0003C50A
005202C5 - 2000 T1 - 0000000 NOP (24x)
005202F5 - 3022 00040017 T1 W 0000002 FAR_MAJ
005202FB - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
005202FF - 5060 00000082 T2 W 0000082 FDRI CRC: 003E1099
0052040D - 3022 000D0017 T1 W 0000002 FAR_MAJ
00520413 - 5060 00000082 T2 W 0000082 FDRI CRC: 002FEF01
00520521 - 3022 001A0017 T1 W 0000002 FAR_MAJ
00520527 - 5060 00000082 T2 W 0000082 FDRI CRC: 000EC6B1
00520635 - 3022 01040017 T1 W 0000002 FAR_MAJ
0052063B - 5060 00000082 T2 W 0000082 FDRI CRC: 001A1576
00520749 - 3022 010D0017 T1 W 0000002 FAR_MAJ
0052074F - 5060 00000082 T2 W 0000082 FDRI CRC: 000C458E
0052085D - 3022 011A0017 T1 W 0000002 FAR_MAJ
00520863 - 5060 00000082 T2 W 0000082 FDRI CRC: 001A9D1D
00520971 - 3022 01230017 T1 W 0000002 FAR_MAJ
00520977 - 5060 00000082 T2 W 0000082 FDRI CRC: 001A1B36
00520A85 - 3022 02040017 T1 W 0000002 FAR_MAJ
00520A8B - 5060 00000082 T2 W 0000082 FDRI CRC: 0005C494
00520B99 - 3022 020D0017 T1 W 0000002 FAR_MAJ
00520B9F - 5060 00000082 T2 W 0000082 FDRI CRC: 00076315
00520CAD - 3022 03040017 T1 W 0000002 FAR_MAJ
00520CB3 - 5060 00000082 T2 W 0000082 FDRI CRC: 0026FBD1
00520DC1 - 3022 030D0017 T1 W 0000002 FAR_MAJ
00520DC7 - 5060 00000082 T2 W 0000082 FDRI CRC: 002525AE
00520ED5 - 3022 04040017 T1 W 0000002 FAR_MAJ
00520EDB - 5060 00000082 T2 W 0000082 FDRI CRC: 002DED8E
00520FE9 - 3022 040D0017 T1 W 0000002 FAR_MAJ
00520FEF - 5060 00000082 T2 W 0000082 FDRI CRC: 000785AD
005210FD - 3022 041A0017 T1 W 0000002 FAR_MAJ
00521103 - 5060 00000082 T2 W 0000082 FDRI CRC: 00173D17
00521211 - 3022 04230017 T1 W 0000002 FAR_MAJ
00521217 - 5060 00000082 T2 W 0000082 FDRI CRC: 0038A0E7
00521325 - 3022 05040017 T1 W 0000002 FAR_MAJ
0052132B - 5060 00000082 T2 W 0000082 FDRI CRC: 0019B766
00521439 - 3022 051A0017 T1 W 0000002 FAR_MAJ
0052143F - 5060 00000082 T2 W 0000082 FDRI CRC: 0028C4B0
0052154D - 3022 05230017 T1 W 0000002 FAR_MAJ
00521553 - 5060 00000082 T2 W 0000082 FDRI CRC: 002B3B85
00521661 - 3022 06040017 T1 W 0000002 FAR_MAJ
00521667 - 5060 00000082 T2 W 0000082 FDRI CRC: 001B9738
00521775 - 3022 061A0017 T1 W 0000002 FAR_MAJ
0052177B - 5060 00000082 T2 W 0000082 FDRI CRC: 002795C7
00521889 - 3022 06230017 T1 W 0000002 FAR_MAJ
0052188F - 5060 00000082 T2 W 0000082 FDRI CRC: 0038E821
0052199D - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
005219A1 - 30A1 0003 T1 W 0000001 CMD DGHIGH/LFRM - Last Frame Write
005219A5 - 2000 T1 - 0000000 NOP (4x)
005219AD - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
005219B1 - 30A1 0005 T1 W 0000001 CMD START - Begin Startup Sequence
005219B5 - 30E1 00FF T1 W 0000001 MASK
005219B9 - 30C1 0081 T1 W 0000001 CTL
005219BD - 3002 002025B0 T1 W 0000002 CRC
005219C3 - 30A1 000D T1 W 0000001 CMD DESYNC - Reset DALIGN Signal
005219C7 - 2000 T1 - 0000000 NOP (13x)
****************************************************
05 00000068 --- 1.2.2.2 [005219E2-00656E68]
005219E2 - Removing block encapsulations from Block Area [005219E2-00656E68]
Total bytes extracted (from the blocks): 000FFEDE Block area processed OK
Buffer Size: 00006DEA bytes (after converting from 16 to 8 bits)
0x00000000 DXE 0000 (Data Size: 00006DD4) [00000000-00006DE1]
Processor Type: ADSP-BF533/534/536/537/538/539 (boot address: 0xFFA00000)
Orig Offset: Offset: Block: Target Add: Byte Count: Flags: [ start - end ]
00000000 --- 0x00000000 0000 FF800040 00000004 0012 [0000000A-0000000D] resvect ignore
0000001C --- 0x0000000E 0001 FF800000 000022B0 0002 [00000018-000022C7] resvect
00004590 --- 0x000022C8 0002 FF8022B0 00000010 0003 zero-fill resvect
000045A4 --- 0x000022D2 0003 FF8022C0 00000010 0002 [000022DC-000022EB] resvect
000045D8 --- 0x000022EC 0004 FF8022D0 0000029E 0002 [000022F6-00002593] resvect
00004B28 --- 0x00002594 0005 FF80256E 0000000E 0003 zero-fill resvect
00004B3C --- 0x0000259E 0006 FF80257C 000009BA 0002 [000025A8-00002F61] resvect
00005EC4 --- 0x00002F62 0007 FF802F36 000000AA 0003 zero-fill resvect
00005ED8 --- 0x00002F6C 0008 FF802FE0 0000000C 0002 [00002F76-00002F81] resvect
00005F04 --- 0x00002F82 0009 FF902000 00000004 0002 [00002F8C-00002F8F] resvect
00005F20 --- 0x00002F90 000A FF902004 00000068 0003 zero-fill resvect
00005F34 --- 0x00002F9A 000B FFA00000 00003E32 0002 [00002FA4-00006DD5] resvect
0000DBAC --- 0x00006DD6 000C FFA00000 00000002 000A [00006DE0-00006DE1] resvect init
0000DBC4 --- ZLIB Decompressed Size: 002A0BE0
0000DBCC --- ZLIB Compressed Block Size: 000F230A [0000DBD4-000FFEDD]
****************************************************
Section Processed OK
06 00000077 ---
07 00000086 --- 3.1.1.13 [00656E69-006D6E67]
00656E69 - ?????: 0000DCBB
00656E6D - Data Size: 0006B930
00656E71 - Name: 3.1.1.13 ???
00656E7D - Section Data [00656E7D-006C27AC]
08 00000095 ---
What I'm trying to understand (without success) is part 7 (don't know if it's CPLD stuff...)
If you want to transform one of the .bin blocks into a .bit stream, you must add a header of this type (remember you must change the sizes according to your bitstream):
00000000 - 0009 (0x0009) File Header Length
00000002 - 0FF00FF0 (0x0FF00FF0) File Header Long 1
00000006 - 0FF00FF0 (0x0FF00FF0) File Header Long 2
0000000A - 00 (0x00) File Header Zero
0000000B - 0001 (0x0001) Key Length
0000000D - 61 001D (key 0x61) Design Name: VirtexUnitTest.reference.ncd
0000002D - 62 0009 (key 0x62) Part Name: v50bg256
00000039 - 63 000B (key 0x63) Generation Date: 2011/ 1/26
00000047 - 64 0009 (key 0x64) Generation Time: 11:51:59
00000053 - 65 0001110C (key 0x65) Bitstream Length: 0001110C [00000058-00011163]
-------------- BITSTREAM ------------------------
00000058 - FFFFFFFF Padding
0000005C - AA995566 Sync Word (BPI/SPI Mode)
Hi everybody.
Have any news?
Hello,
did anyone manage to find a serial console on the SDG1025? (Like this guy did on the 800 series:
http://41j.com/blog/2016/08/hacking-around-with-a-sdg800-sdg805/)
After soldering a pin header to the pads labelled UART, I tried (several known-good) TTL to USB converters, but there seems to be no output. Also, I've verified that the TX and RX pins go directly to the Blackfin TX&RX pins.
Checking with the Scope, the only thing that happens is it pulls TX high.
Any ideas?
I'm not surprised by the outcome of your experiment. I did the same with my SDS2000X with the same effect. It seems that the serial console had been disabled already in u-boot. My next attempt would be a memory dump via JTAG connector if I have some spare time.
The parsing of the latest SDS2000X fw is:
Parsing a SIGLENT SDS1000/SDS2000 file
01 0000002C --- 2.1.1.9 [000000C4-000DED94]
000000C4 - Checksum: FFBDDCC9
000000C8 - Name: 2.1.1.8
000000C8 - Section Data [000000C8-000DED94] CKSM OK
02 0000003B --- 20160922 [000DED95-0024A47F]
000DED95 - Data Size: 0016B6A3
000DED95 - Header Size: 00000048
000DEDDD - FFFFFFFF Padding
000DEDE1 - FFFFFFFF Padding
000DEDE5 - FFFFFFFF Padding
000DEDE9 - FFFFFFFF Padding
000DEDED - AA995566 Sync Word (BPI/SPI Mode)
000DEDF1 - 30A1 0007 T1 W 0000001 CMD RCRC - Reset CRC
000DEDF5 - 2000 T1 - 0000000 NOP (1x)
000DEDF7 - 31A1 0628 T1 W 0000001 FLR
000DEDFB - 3141 3D00 T1 W 0000001 COR1
000DEDFF - 3161 09EE T1 W 0000001 COR2
000DEE03 - 31C2 04008093 T1 W 0000002 IDCODE
000DEE09 - 30E1 00CF T1 W 0000001 MASK
000DEE0D - 30C1 0081 T1 W 0000001 CTL
000DEE11 - 2000 T1 - 0000000 NOP (17x)
000DEE33 - 3381 3CC8 T1 W 0000001 CCLK_FREQ
000DEE37 - 3181 0881 T1 W 0000001 PWRDN_REG
000DEE3B - 3421 0000 T1 W 0000001 EYE_MASK
000DEE3F - 3201 001F T1 W 0000001 HC_OPT_REG
000DEE43 - 31E1 FFFF T1 W 0000001 CWDT
000DEE47 - 3321 0005 T1 W 0000001 PU_GWE
000DEE4B - 3341 0004 T1 W 0000001 PU_GTS
000DEE4F - 3301 0100 T1 W 0000001 MODE_REG
000DEE53 - 3261 0000 T1 W 0000001 GENERAL1
000DEE57 - 3281 0000 T1 W 0000001 GENERAL2
000DEE5B - 32A1 0000 T1 W 0000001 GENERAL3
000DEE5F - 32C1 0000 T1 W 0000001 GENERAL4
000DEE63 - 32E1 0000 T1 W 0000001 GENERAL5
000DEE67 - 33A1 1BE2 T1 W 0000001 SEU_OPT
000DEE6B - 33C2 00000000 T1 W 0000002 EXP_SIGN
000DEE71 - 2000 T1 - 0000000 NOP (2x)
000DEE75 - 3022 00000000 T1 W 0000002 FAR_MAJ
000DEE7B - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
000DEE7F - 5060 000B52A9 T2 W 00B52A9 FDRI CRC: 0030A883
002493DB - 2000 T1 - 0000000 NOP (24x)
0024940B - 3022 00040017 T1 W 0000002 FAR_MAJ
00249411 - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
00249415 - 5060 00000082 T2 W 0000082 FDRI CRC: 00024B83
00249523 - 3022 000D0017 T1 W 0000002 FAR_MAJ
00249529 - 5060 00000082 T2 W 0000082 FDRI CRC: 001EE1DD
00249637 - 3022 001A0017 T1 W 0000002 FAR_MAJ
0024963D - 5060 00000082 T2 W 0000082 FDRI CRC: 0020C6C9
0024974B - 3022 00230017 T1 W 0000002 FAR_MAJ
00249751 - 5060 00000082 T2 W 0000082 FDRI CRC: 0001E99E
0024985F - 3022 01040017 T1 W 0000002 FAR_MAJ
00249865 - 5060 00000082 T2 W 0000082 FDRI CRC: 003117C6
00249973 - 3022 010D0017 T1 W 0000002 FAR_MAJ
00249979 - 5060 00000082 T2 W 0000082 FDRI CRC: 00294671
00249A87 - 3022 011A0017 T1 W 0000002 FAR_MAJ
00249A8D - 5060 00000082 T2 W 0000082 FDRI CRC: 002473B9
00249B9B - 3022 01230017 T1 W 0000002 FAR_MAJ
00249BA1 - 5060 00000082 T2 W 0000082 FDRI CRC: 003E65E7
00249CAF - 3022 021A0017 T1 W 0000002 FAR_MAJ
00249CB5 - 5060 00000082 T2 W 0000082 FDRI CRC: 002675A2
00249DC3 - 3022 02230017 T1 W 0000002 FAR_MAJ
00249DC9 - 5060 00000082 T2 W 0000082 FDRI CRC: 00192AA0
00249ED7 - 3022 03040017 T1 W 0000002 FAR_MAJ
00249EDD - 5060 00000082 T2 W 0000082 FDRI CRC: 0010969D
00249FEB - 3022 04040017 T1 W 0000002 FAR_MAJ
00249FF1 - 5060 00000082 T2 W 0000082 FDRI CRC: 0028B252
0024A0FF - 3022 041A0017 T1 W 0000002 FAR_MAJ
0024A105 - 5060 00000082 T2 W 0000082 FDRI CRC: 002E7925
0024A213 - 3022 051A0017 T1 W 0000002 FAR_MAJ
0024A219 - 5060 00000082 T2 W 0000082 FDRI CRC: 0005A5E5
0024A327 - 3022 07230017 T1 W 0000002 FAR_MAJ
0024A32D - 5060 00000082 T2 W 0000082 FDRI CRC: 00158043
0024A43B - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
0024A43F - 30A1 0003 T1 W 0000001 CMD DGHIGH/LFRM - Last Frame Write
0024A443 - 2000 T1 - 0000000 NOP (4x)
0024A44B - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
0024A44F - 30A1 0005 T1 W 0000001 CMD START - Begin Startup Sequence
0024A453 - 30E1 00FF T1 W 0000001 MASK
0024A457 - 30C1 0081 T1 W 0000001 CTL
0024A45B - 3002 002E7B9D T1 W 0000002 CRC
0024A461 - 30A1 000D T1 W 0000001 CMD DESYNC - Reset DALIGN Signal
0024A465 - 2000 T1 - 0000000 NOP (13x)
Section processed OK
****************************************************
03 0000004A --- 20160922 [0024A480-003B5C7E]
0024A480 - Data Size: 0016B7B7
0024A480 - Header Size: 00000048
0024A4C8 - FFFFFFFF Padding
0024A4CC - FFFFFFFF Padding
0024A4D0 - FFFFFFFF Padding
0024A4D4 - FFFFFFFF Padding
0024A4D8 - AA995566 Sync Word (BPI/SPI Mode)
0024A4DC - 30A1 0007 T1 W 0000001 CMD RCRC - Reset CRC
0024A4E0 - 2000 T1 - 0000000 NOP (1x)
0024A4E2 - 31A1 0628 T1 W 0000001 FLR
0024A4E6 - 3141 3D00 T1 W 0000001 COR1
0024A4EA - 3161 09EE T1 W 0000001 COR2
0024A4EE - 31C2 04008093 T1 W 0000002 IDCODE
0024A4F4 - 30E1 00CF T1 W 0000001 MASK
0024A4F8 - 30C1 0081 T1 W 0000001 CTL
0024A4FC - 2000 T1 - 0000000 NOP (17x)
0024A51E - 3381 3CC8 T1 W 0000001 CCLK_FREQ
0024A522 - 3181 0881 T1 W 0000001 PWRDN_REG
0024A526 - 3421 0000 T1 W 0000001 EYE_MASK
0024A52A - 3201 001F T1 W 0000001 HC_OPT_REG
0024A52E - 31E1 FFFF T1 W 0000001 CWDT
0024A532 - 3321 0005 T1 W 0000001 PU_GWE
0024A536 - 3341 0004 T1 W 0000001 PU_GTS
0024A53A - 3301 0100 T1 W 0000001 MODE_REG
0024A53E - 3261 0000 T1 W 0000001 GENERAL1
0024A542 - 3281 0000 T1 W 0000001 GENERAL2
0024A546 - 32A1 0000 T1 W 0000001 GENERAL3
0024A54A - 32C1 0000 T1 W 0000001 GENERAL4
0024A54E - 32E1 0000 T1 W 0000001 GENERAL5
0024A552 - 33A1 1BE2 T1 W 0000001 SEU_OPT
0024A556 - 33C2 00000000 T1 W 0000002 EXP_SIGN
0024A55C - 2000 T1 - 0000000 NOP (2x)
0024A560 - 3022 00000000 T1 W 0000002 FAR_MAJ
0024A566 - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
0024A56A - 5060 000B52A9 T2 W 00B52A9 FDRI CRC: 002483B9
003B4AC6 - 2000 T1 - 0000000 NOP (24x)
003B4AF6 - 3022 01230017 T1 W 0000002 FAR_MAJ
003B4AFC - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
003B4B00 - 5060 00000082 T2 W 0000082 FDRI CRC: 0005A45A
003B4C0E - 3022 021A0017 T1 W 0000002 FAR_MAJ
003B4C14 - 5060 00000082 T2 W 0000082 FDRI CRC: 003FDEB8
003B4D22 - 3022 02230017 T1 W 0000002 FAR_MAJ
003B4D28 - 5060 00000082 T2 W 0000082 FDRI CRC: 00327927
003B4E36 - 3022 03040017 T1 W 0000002 FAR_MAJ
003B4E3C - 5060 00000082 T2 W 0000082 FDRI CRC: 001F0CCB
003B4F4A - 3022 030D0017 T1 W 0000002 FAR_MAJ
003B4F50 - 5060 00000082 T2 W 0000082 FDRI CRC: 002995C9
003B505E - 3022 031A0017 T1 W 0000002 FAR_MAJ
003B5064 - 5060 00000082 T2 W 0000082 FDRI CRC: 00374AD7
003B5172 - 3022 03230017 T1 W 0000002 FAR_MAJ
003B5178 - 5060 00000082 T2 W 0000082 FDRI CRC: 000B2C82
003B5286 - 3022 04040017 T1 W 0000002 FAR_MAJ
003B528C - 5060 00000082 T2 W 0000082 FDRI CRC: 0013E5DB
003B539A - 3022 040D0017 T1 W 0000002 FAR_MAJ
003B53A0 - 5060 00000082 T2 W 0000082 FDRI CRC: 001EF8CF
003B54AE - 3022 041A0017 T1 W 0000002 FAR_MAJ
003B54B4 - 5060 00000082 T2 W 0000082 FDRI CRC: 00385AC2
003B55C2 - 3022 04230017 T1 W 0000002 FAR_MAJ
003B55C8 - 5060 00000082 T2 W 0000082 FDRI CRC: 002C7B03
003B56D6 - 3022 05040017 T1 W 0000002 FAR_MAJ
003B56DC - 5060 00000082 T2 W 0000082 FDRI CRC: 001FC3EF
003B57EA - 3022 050D0017 T1 W 0000002 FAR_MAJ
003B57F0 - 5060 00000082 T2 W 0000082 FDRI CRC: 003F9D02
003B58FE - 3022 05230017 T1 W 0000002 FAR_MAJ
003B5904 - 5060 00000082 T2 W 0000082 FDRI CRC: 001A7833
003B5A12 - 3022 06040017 T1 W 0000002 FAR_MAJ
003B5A18 - 5060 00000082 T2 W 0000082 FDRI CRC: 00266FD4
003B5B26 - 3022 06230017 T1 W 0000002 FAR_MAJ
003B5B2C - 5060 00000082 T2 W 0000082 FDRI CRC: 0032FDA2
003B5C3A - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
003B5C3E - 30A1 0003 T1 W 0000001 CMD DGHIGH/LFRM - Last Frame Write
003B5C42 - 2000 T1 - 0000000 NOP (4x)
003B5C4A - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
003B5C4E - 30A1 0005 T1 W 0000001 CMD START - Begin Startup Sequence
003B5C52 - 30E1 00FF T1 W 0000001 MASK
003B5C56 - 30C1 0081 T1 W 0000001 CTL
003B5C5A - 3002 0020E07A T1 W 0000002 CRC
003B5C60 - 30A1 000D T1 W 0000001 CMD DESYNC - Reset DALIGN Signal
003B5C64 - 2000 T1 - 0000000 NOP (13x)
Section processed OK
****************************************************
04 00000059 --- 20160922 [003B5C7F-005219E1]
003B5C7F - Data Size: 0016BD1B
003B5C7F - Header Size: 00000048
003B5CC7 - FFFFFFFF Padding
003B5CCB - FFFFFFFF Padding
003B5CCF - FFFFFFFF Padding
003B5CD3 - FFFFFFFF Padding
003B5CD7 - AA995566 Sync Word (BPI/SPI Mode)
003B5CDB - 30A1 0007 T1 W 0000001 CMD RCRC - Reset CRC
003B5CDF - 2000 T1 - 0000000 NOP (1x)
003B5CE1 - 31A1 0628 T1 W 0000001 FLR
003B5CE5 - 3141 3D08 T1 W 0000001 COR1
003B5CE9 - 3161 09EE T1 W 0000001 COR2
003B5CED - 31C2 04008093 T1 W 0000002 IDCODE
003B5CF3 - 30E1 00CF T1 W 0000001 MASK
003B5CF7 - 30C1 0081 T1 W 0000001 CTL
003B5CFB - 2000 T1 - 0000000 NOP (17x)
003B5D1D - 3381 3CC8 T1 W 0000001 CCLK_FREQ
003B5D21 - 3181 0881 T1 W 0000001 PWRDN_REG
003B5D25 - 3421 0000 T1 W 0000001 EYE_MASK
003B5D29 - 3201 001F T1 W 0000001 HC_OPT_REG
003B5D2D - 31E1 FFFF T1 W 0000001 CWDT
003B5D31 - 3321 0005 T1 W 0000001 PU_GWE
003B5D35 - 3341 0004 T1 W 0000001 PU_GTS
003B5D39 - 3301 0100 T1 W 0000001 MODE_REG
003B5D3D - 3261 0000 T1 W 0000001 GENERAL1
003B5D41 - 3281 0000 T1 W 0000001 GENERAL2
003B5D45 - 32A1 0000 T1 W 0000001 GENERAL3
003B5D49 - 32C1 0000 T1 W 0000001 GENERAL4
003B5D4D - 32E1 0000 T1 W 0000001 GENERAL5
003B5D51 - 33A1 1BE2 T1 W 0000001 SEU_OPT
003B5D55 - 33C2 00000000 T1 W 0000002 EXP_SIGN
003B5D5B - 2000 T1 - 0000000 NOP (2x)
003B5D5F - 3022 00000000 T1 W 0000002 FAR_MAJ
003B5D65 - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
003B5D69 - 5060 000B52A9 T2 W 00B52A9 FDRI CRC: 0003C50A
005202C5 - 2000 T1 - 0000000 NOP (24x)
005202F5 - 3022 00040017 T1 W 0000002 FAR_MAJ
005202FB - 30A1 0001 T1 W 0000001 CMD WCFG - Write Config Data
005202FF - 5060 00000082 T2 W 0000082 FDRI CRC: 003E1099
0052040D - 3022 000D0017 T1 W 0000002 FAR_MAJ
00520413 - 5060 00000082 T2 W 0000082 FDRI CRC: 002FEF01
00520521 - 3022 001A0017 T1 W 0000002 FAR_MAJ
00520527 - 5060 00000082 T2 W 0000082 FDRI CRC: 000EC6B1
00520635 - 3022 01040017 T1 W 0000002 FAR_MAJ
0052063B - 5060 00000082 T2 W 0000082 FDRI CRC: 001A1576
00520749 - 3022 010D0017 T1 W 0000002 FAR_MAJ
0052074F - 5060 00000082 T2 W 0000082 FDRI CRC: 000C458E
0052085D - 3022 011A0017 T1 W 0000002 FAR_MAJ
00520863 - 5060 00000082 T2 W 0000082 FDRI CRC: 001A9D1D
00520971 - 3022 01230017 T1 W 0000002 FAR_MAJ
00520977 - 5060 00000082 T2 W 0000082 FDRI CRC: 001A1B36
00520A85 - 3022 02040017 T1 W 0000002 FAR_MAJ
00520A8B - 5060 00000082 T2 W 0000082 FDRI CRC: 0005C494
00520B99 - 3022 020D0017 T1 W 0000002 FAR_MAJ
00520B9F - 5060 00000082 T2 W 0000082 FDRI CRC: 00076315
00520CAD - 3022 03040017 T1 W 0000002 FAR_MAJ
00520CB3 - 5060 00000082 T2 W 0000082 FDRI CRC: 0026FBD1
00520DC1 - 3022 030D0017 T1 W 0000002 FAR_MAJ
00520DC7 - 5060 00000082 T2 W 0000082 FDRI CRC: 002525AE
00520ED5 - 3022 04040017 T1 W 0000002 FAR_MAJ
00520EDB - 5060 00000082 T2 W 0000082 FDRI CRC: 002DED8E
00520FE9 - 3022 040D0017 T1 W 0000002 FAR_MAJ
00520FEF - 5060 00000082 T2 W 0000082 FDRI CRC: 000785AD
005210FD - 3022 041A0017 T1 W 0000002 FAR_MAJ
00521103 - 5060 00000082 T2 W 0000082 FDRI CRC: 00173D17
00521211 - 3022 04230017 T1 W 0000002 FAR_MAJ
00521217 - 5060 00000082 T2 W 0000082 FDRI CRC: 0038A0E7
00521325 - 3022 05040017 T1 W 0000002 FAR_MAJ
0052132B - 5060 00000082 T2 W 0000082 FDRI CRC: 0019B766
00521439 - 3022 051A0017 T1 W 0000002 FAR_MAJ
0052143F - 5060 00000082 T2 W 0000082 FDRI CRC: 0028C4B0
0052154D - 3022 05230017 T1 W 0000002 FAR_MAJ
00521553 - 5060 00000082 T2 W 0000082 FDRI CRC: 002B3B85
00521661 - 3022 06040017 T1 W 0000002 FAR_MAJ
00521667 - 5060 00000082 T2 W 0000082 FDRI CRC: 001B9738
00521775 - 3022 061A0017 T1 W 0000002 FAR_MAJ
0052177B - 5060 00000082 T2 W 0000082 FDRI CRC: 002795C7
00521889 - 3022 06230017 T1 W 0000002 FAR_MAJ
0052188F - 5060 00000082 T2 W 0000082 FDRI CRC: 0038E821
0052199D - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
005219A1 - 30A1 0003 T1 W 0000001 CMD DGHIGH/LFRM - Last Frame Write
005219A5 - 2000 T1 - 0000000 NOP (4x)
005219AD - 30A1 000A T1 W 0000001 CMD GRESTORE - Pulse GRESTORE Signal
005219B1 - 30A1 0005 T1 W 0000001 CMD START - Begin Startup Sequence
005219B5 - 30E1 00FF T1 W 0000001 MASK
005219B9 - 30C1 0081 T1 W 0000001 CTL
005219BD - 3002 002025B0 T1 W 0000002 CRC
005219C3 - 30A1 000D T1 W 0000001 CMD DESYNC - Reset DALIGN Signal
005219C7 - 2000 T1 - 0000000 NOP (13x)
Section processed OK
****************************************************
05 00000068 --- 1.2.2.2 [005219E2-00656E68]
005219E2 - Removing block encapsulations from Block Area [005219E2-00656E68]
Total bytes extracted (from the blocks): 000FFEDE Block area processed OK
Buffer Size: 00006DEA bytes (after converting from 16 to 8 bits)
0x00000000 DXE 0000 (Data Size: 00006DD4) [00000000-00006DE1]
Processor Type: ADSP-BF533/534/536/537/538/539 (boot address: 0xFFA00000)
Orig Offset: Offset: Block: Target Add: Byte Count: Flags: [ start - end ]
00000000 --- 0x00000000 0000 FF800040 00000004 0012 [0000000A-0000000D] resvect ignore
0000001C --- 0x0000000E 0001 FF800000 000022B0 0002 [00000018-000022C7] resvect
00004590 --- 0x000022C8 0002 FF8022B0 00000010 0003 zero-fill resvect
000045A4 --- 0x000022D2 0003 FF8022C0 00000010 0002 [000022DC-000022EB] resvect
000045D8 --- 0x000022EC 0004 FF8022D0 0000029E 0002 [000022F6-00002593] resvect
00004B28 --- 0x00002594 0005 FF80256E 0000000E 0003 zero-fill resvect
00004B3C --- 0x0000259E 0006 FF80257C 000009BA 0002 [000025A8-00002F61] resvect
00005EC4 --- 0x00002F62 0007 FF802F36 000000AA 0003 zero-fill resvect
00005ED8 --- 0x00002F6C 0008 FF802FE0 0000000C 0002 [00002F76-00002F81] resvect
00005F04 --- 0x00002F82 0009 FF902000 00000004 0002 [00002F8C-00002F8F] resvect
00005F20 --- 0x00002F90 000A FF902004 00000068 0003 zero-fill resvect
00005F34 --- 0x00002F9A 000B FFA00000 00003E32 0002 [00002FA4-00006DD5] resvect
0000DBAC --- 0x00006DD6 000C FFA00000 00000002 000A [00006DE0-00006DE1] resvect init
0000DBC4 --- ZLIB Decompressed Size: 002A0BE0
0000DBCC --- ZLIB Compressed Block Size: 000F230A [0000DBD4-000FFEDD]
****************************************************
File Processed OK
06 00000077 ---
07 00000086 --- 3.1.1.13 [00656E69-006D6E67]
00656E69 - ?????: 0000DCBB
00656E6D - Data Size: 0006B930
00656E71 - Name: 3.1.1.13 ???
00656E7D - Section Data [00656E7D-006C27AC]
08 00000095 ---
I did the same with my SDS2000X with the same effect. It seems that the serial console had been disabled already in u-boot.
No need for JTAG. You can try to look inside the Blackfin code if there is something that might indicate Serial output. The ZLIB decompressed Blackfin (block 5) code is attached. You don't have any U-Boot in this scope!
For comparison, here is a parsing of the SDG800 (latest fw - SDG800 V100R008B01D01P12R2.ADS):
File Header Size: 00000070
00000000 - File Checksum: CC58A027 [000004-EOF] (with only the File Header decrypted) CKSM OK
00000004 - File Size: 0067D31D (without 0x70 bytes of the File Header)
00000008 - Section Size: 00000000
0000000C - Blocks Area: 00000002 [0067D31B-0067D31C]
00000026 - Vendor/Content: SIGLENT
0000003A - Version: ISP1763
****************************************************
Decrypting the 0x2800 and 0x1400 blocks...
Reversing file...
XORing with 0xFF (incrementing pattern)...
XORing with 0xFF from 0x0033E98F until 0x0067D31C
****************************************************
00000000 --- Section Checksum: FD6D33CE
00000004 --- Section Size: 0004B034 [00000034-0004B067] CKSM OK
00000008 --- Section # 00000006
00000034 - Section Type: Logo
00000038 - Data Checksum: FD6D37D3 [0000003C-0004B067]
0000003C - Data Size: 0004B034
00000040 - Section Header Size: 00000028
00000034 --- 0004B067 ***** Logo file (320x240 RGB32) *****
****************************************************
0004B068 --- Section Checksum: CC92757D
0004B06C --- Section Size: 00632281 [0004B09C-0067D31C] CKSM OK
0004B070 --- Section # 00000007
0004B09C --- 0067D31C ***** ZIP file *****
****************************************************
File Processed OK
The parsing of the latest SDS2000X fw is:
Thank you all for a great job.
Have anybody got to the linux filesystem? I'd like to change something and pack it back...
I could try to pack it back, but it would be the first time. The only hurdle in repacking the SDS2K fw is to encapsulate the ZLIB in the blocks.
I haven't split the image yet, short on time.
Funny if i can brick the device...
The parsing of sds2kx_V100R02B01D02P02_fvA1609220922M160922_NO_BLOCKS_DECOMPRESSED.bin (blackfin LDR) is in the attached file.
The FFA08000 range (BF531 boot address) is overwritten with the last block.
I'm guessing that as long as you ensure that it has a correct boot code at FFA08000 you could go along with the initial "false" FFA00000 boot adress.
Now that I've discovered how to decompress Altera FPGA streams, I returned to a type of blocks that I hadn't parse before:
- Block 03 of the SDS1000X_V100R001B01D02P1503.ADS firmware
It's an Altera FPGA (EP4CE6 or EP4CE10) stream:
[00000048 00000021]
Bit 7 - 1111111111111111111111111111111111111111 FFFFFFFFFF
Bit 6 - 1111111111111111111111111111111111111111 FFFFFFFFFF
Bit 5 - 1111111111111111111111111111111111111111 FFFFFFFFFF
Bit 4 - 1111111111111111111111111111111111111111 FFFFFFFFFF
Bit 3 - 1111111111111111111111111110011010000000 FFFFFFE680
Bit 2 - 0000101100000110000000111000000000111111 0B0603803F
Bit 1 - 1111000000000111100011000000011111111111 F0078C07FF
Bit 0 - 1111111111111111111111111111111111111111 FFFFFFFFFF
Bits 0080 - EPCS/EPCQ ID check: Enabled
Bits 005F - Stream size: 1.444.871 bits (0002C181 bytes) Compression Bit ON (+1)
Bits 0056 - 0000 0000 : 0x56-0x5D
Bits 004C - Programming Mode: 1-bit Passive Serial
Bits 003B - IDCode (Version+Part Number only): 0x020F1
Bits 0008 - Usercode: FFFFFFFF
00000049 - Header CRC-16_MODBUS: BD40 [00000021-00000048] CRC OK
0000004B - Data Framesize: 207 [0000004B-000000F1]
000000F2 - 4-byte words: 1260 [000000F2-000014A1]
000014A2 - Stream Size (Uncompressed): 2.944.056 bits
000014A2 - CRC Framesize: 207+0 # Data Frames: 1727 [000014A2-00059D4F]
00059D50 - Post-device bitstream pad bytes (0xFF): 55 [00059D50-00059D86]
File Checksum: 00C2D766
and, as a curiosity, a graphical image of its decompressed content (8 bits/pixel) is attached (without the frame CRCs).
Quick look into the Blackfin code with strings reveal funny things.
This you might expect:
$ strings sds2kx_V100R02B01D02P02_fvA1609220922M160922_NO_BLOCKS_DECOMPRESSED.bin | grep -i siglent
SIGLENT TEST
SIGLENT
Siglent Technologies Co,. Ltd.
This might be a minor surprise:
$ strings sds2kx_V100R02B01D02P02_fvA1609220922M160922_NO_BLOCKS_DECOMPRESSED.bin | grep -i lecroy
LECROY_2_3
LECROY,WA200,600300,5.01
; LeCroy Digital Oscilloscopes,
LECROY
Great work in decoding these firmware files. Had only a short glimpse into this, but it was fun.
If you search carefully in that file, you can see the designations of several brands/models:
Brands:
ATTEN, LECROY, SIGLENT, BK, AKIP, METRIX, SDS
Atten, (Aktakom, ?):
ADS2024, ADS2044, ADS2064, ADS2104, ADS2154, ADS2204, ADS2304, ADS2054, ADS2074, ADS2022, ADS2042, ADS2062, ADS2102, ADS2152, ADS2202, ADS2302, ADS2052, ADS2072
Lecroy:
WA204, WaveAce2014, WaveAce2024, WaveAce2034, WaveAce2004, WA202, WaveAce2012, WaveAce2022, WaveAce2032, WaveAce2002
AKIP:
AKIP-4126, AKIP-4126/2A, AKIP-4126/3A, AKIP-4126/4A, AKIP-4126/1A, AKIP-4126/2, AKIP-4126/3, AKIP-4126/4, AKIP-4126/1
Siglent:
SDS2022X, SDS2042X, SDS2062X, SDS2102X, SDS2152X, SDS2202X, SDS2302X, SDS2052X, SDS2072X, SDS2024X, SDS2044X, SDS2064X, SDS2104X, SDS2154X, SDS2204X, SDS2304X, SDS2054X, SDS2074X
Attached is a log of the parsing of (almost) all the Siglent .ADS files available (all models) + some Lecroy + some Atten:
ADS1102_Software Version 2.0_V100R002B07D02P10R5.ADS / CRC32: 482FDAF7
ATTEN_ADS1000CAL_V100R003B01D01P31R16.ADS / CRC32: 3195554C
ATTEN_ADS1000CL+_V100R003B01D01P31R16.ADS / CRC32: 24CCD3A9
ATTEN_ADS1000CML_V100R003B01D01P31R16.ADS / CRC32: 80A57BDD
ATTEN_ADS1202CML_v2.06.02.15R1.ADS / CRC32: E9C8791F
SDG1000-V100R001B01D01P27.ADS / CRC32: F4E746F9
SDG1000-V100R001B01D01P31.ADS / CRC32: 046FAF25
SDG1000-V100R001B01D01P31R1.ADS / CRC32: 4BAF4345
SDG1000-V100R001B01D01P36R1.ADS / CRC32: CE6B6D42
SDG1000-V100R001B01D01P37R2.ADS / CRC32: 97DDECD1
SDG1000-V100R001B01D01P37R3.ADS / CRC32: B28CDE5D
SDG1000-V100R001B01D01P39R2.ADS / CRC32: AD6C46D1
SDG1000X_1.01.01.22R5.ADS / CRC32: C62D04EE
SDG1000X_V100R001B01D01P22.ADS / CRC32: B14D5521
SDG1000X_V100R001B01D01P22_eevblog.ads / CRC32: 2CB0008E
SDG1000_1.01.01.39R5.ADS / CRC32: D9B4C673
SDG2000X_2.01.01.23R7.ADS / CRC32: E3770C8A
SDG2000X_V2.0.CFG.ADS / CRC32: 8934257D
SDG2000X_V200R001B01D01P23R3.ADS / CRC32: 45C65605
SDG2000X_eevblog_23R7.ads / CRC32: 852BDEBD
SDG2000_V200R001B01D01P15R2.ADS / CRC32: 51FC8172
SDG2000_V200R001B01D01P16R2.ADS / CRC32: E4926B51
SDG2000_V200R001B01D01P17R5.ADS / CRC32: A62CF60D
SDG2000_V200R001B01D01P21R2.ADS / CRC32: 9B336DB9
SDG2000_V200R001B01D01P22R5.ADS / CRC32: 393FFDD8
SDG5000 V500R001B01D01P10R1.ADS / CRC32: C95609A4
SDG5000-V500R001B01D01P12.ADS / CRC32: 37BDC62E
SDG5000-V500R001B01D01P15R1.ADS / CRC32: 91629F0B
SDG5000-V500R001B01D01P15R5.ADS / CRC32: C0B2A723
SDG800 V100R008B01D01P06.ADS / CRC32: 5B5767B2
SDG800 V100R008B01D01P07.ADS / CRC32: 9DE4B005
SDG800 V100R008B01D01P08.ADS / CRC32: 4920167F
SDG800 V100R008B01D01P09R1.ADS / CRC32: DD2C7FD3
SDG800 V100R008B01D01P10R1.ADS / CRC32: CE230F0A
SDG800 V100R008B01D01P11.ADS / CRC32: FD6F8FE9
SDG800 V100R008B01D01P12R1.ADS / CRC32: 0E21A078
SDG800 V100R008B01D01P12R2.ADS / CRC32: 867E8DDD
SDG800 V100R008B01D01P13R5.ADS / CRC32: 335B08D9
SDG800 Vp07-to-p08-transition.ADS / CRC32: 7DAB9D04
SDG800_transition.ADS / CRC32: 7DAB9D04
SDM3045X_5.01.01.03.ADS / CRC32: B722F3F1
SDM305(V100R001B01D01P13R1).ADS / CRC32: 5E84E31E
SDM3055_1.01.01.16R2.ADS / CRC32: C72A5CEE
SDM3055_1.01.01.19.ADS / CRC32: 12743868
SDM3065X_3.01.01.03.ADS / CRC32: E914E8A4
SDS1000CFL_2CH_SSP_V100R005B03D02P12.ADS / CRC32: 305EED12
SDS1000CFL_2CH_SSP_V100R005B08D02P30.ADS / CRC32: 56916B35
SDS1000CFL_2CH_SSP_V100R005B08D02P38.ADS / CRC32: 46AA7E43
SDS1000CFL_SSP_V100R005B03D02P12.ADS / CRC32: E43FF437
SDS1000CFL_SSP_V100R005B03D02P30.ADS / CRC32: 41E32C6B
SDS1000CFL_SSP_V100R005B03D02P38.ADS / CRC32: A9250B6B
SDS1000CML+_V100R006B01D01P19_FPGA_V5.2.ADS / CRC32: 5C6B0F1A
SDS1000CML+_V6.01.01.18.ADS / CRC32: 203ACC1E
SDS1000CML_SSP_V100R005B01D02P13.ADS / CRC32: 6D788CDE
SDS1000CML_SSP_V100R005B01D02P22.ADS / CRC32: F4525B3F
SDS1000CML_SSP_V100R005B01D02P29.ADS / CRC32: EF2F0429
SDS1000CML_SSP_V100R005B01D02P32.ADS / CRC32: 68A992F5
SDS1000DL+_V100R006B02D01P08_FPGA_V3.1.ADS / CRC32: 7A3691D4
SDS1000DL+_V6.02.01.07.ADS / CRC32: 332CC506
SDS1000DL_V100R005B06D02P16.ADS / CRC32: C7B3AB3A
SDS1000DL_V100R005B06D02P19.ADS / CRC32: 418912FF
SDS1000X&X+_V100R001B01D02P1305_fvA20160802.ADS / CRC32: 4BBED455
SDS1000X-E_1.3.13_FPGA_V20170622.ADS / CRC32: 6067B3F4
SDS1000X_V100R001B01D01P39R5_fvA20151001.ADS / CRC32: CE78DA56
SDS1000X_V100R001B01D02P0101_fvA20151211.ADS / CRC32: 00E208AB
SDS1000X_V100R001B01D02P06_fvA20160227.ADS / CRC32: 675B14B3
SDS1000X_V100R001B01D02P15.ADS / CRC32: BF0B6F7E
SDS1000X_V100R001B01D02P1503.ADS / CRC32: 7D785143
SDS1000X_V100R001B01D02P1510.ADS / CRC32: EA317A79
SDS1002X-E_5.1.3.17R1.ADS / CRC32: D64CD117
SDS1004X-E_7.6.1.12_FPGA_V20171107.ADS / CRC32: 9E2F7325
SDS1004X_E_6.1.25R1.ADS / CRC32: F2A6E2A1
SDS1004X_E_6.1.25R2.ADS / CRC32: 831783F6
SDS1004X_E_7.6.1.20.ADS / CRC32: A18BD2F3
SDS1004X_E_7.6.1.20R1.ADS / CRC32: AFAFFBDC
SDS2000x_1.2.2.2R10.ADS / CRC32: FBD42874
SHS1000_V100R003B01D02P01.ADS / CRC32: E37E4883
SHS1000_V100R003B01D02P02R2.ADS / CRC32: EBBD20F4
SHS1000_V100R003B01D02P02R7.ADS / CRC32: 15276A83
SHS1000_V5.09.01.05.ADS / CRC32: 6716D9EB
SHS800_V5.09.01.05.ADS / CRC32: 6716D9EB
SHS820_V100R003B01D02P01.ADS / CRC32: 44139E02
SHS820_V100R003B01D02P02R2.ADS / CRC32: 4D98764A
SHS820_V100R003B01D02P02R7.ADS / CRC32: 6C16AA6B
SHS820_V5.10.01.01.ADS / CRC32: 4FC9C274
SLA1016_7.8.1.8.ADS / CRC32: 492B6D07
SLA1016_8.1.9.ADS / CRC32: 8F68CC42
SPD3303X-1.01.01.02.05.ADS / CRC32: 8D42C003
SPD3303X-E-1.01.01.02.05.ADS / CRC32: B0419B9C
SPD3303X-E-V100R001B01D02P02R2.ADS / CRC32: D510D51A
SPD3303X-E_1.01.01.02.03.ADS / CRC32: D0789A98
SPD3303X-V100R001B01D02P02R2.ADS / CRC32: FBC0457D
SPD3303X_1.01.01.02.03.ADS / CRC32: CF403574
SSA3000X_D07P03.ADS / CRC32: D2B7E463
SSA3000X_v1.2.8.5a.ADS / CRC32: 80235A01
SSA3000X_v1.2.9.1.ADS / CRC32: 6D70F8D3
V01.02.08.01.ADS / CRC32: F67F09A3
V1.2.8.2.ADS / CRC32: 48F4F21B
V1.2.8.3.ADS / CRC32: 93FDFDAB
V100.01.02.07.07.ADS / CRC32: 8470CDE0
Vp10R3-to-p11-transition.ADS / CRC32: 0BD8FD19
Vp15R2-to-p16-transition.ADS / CRC32: 7B9B174E
WA_101 v2.07.02.100_W.ads / CRC32: 26949B7B
WA_101 v2.07.02.160.ADS / CRC32: 001FAE5F
WA_102 v2.07.01.100_N.ads / CRC32: EEE15A1D
WA_102 v2.07.01.100_W.ads / CRC32: 2D0A1FEE
WA_102 v2.07.02.160.ADS / CRC32: A31B1F2A
WA_112 v2.07.01.100_N.ads / CRC32: C1C09E8F
WA_112 v2.07.01.100_W.ads / CRC32: 9762F2AF
WA_112 v2.07.02.160.ADS / CRC32: EC64A923
WA_202 v2.06.01.08_N.ads / CRC32: DF2BBC31
WA_202 v2.06.02.11_W.ads / CRC32: 91210A12
WA_202 v2.06.02.19.ADS / CRC32: 64DD774A
WA_212 v2.06.01.08_N.ads / CRC32: 6CE1B754
WA_212 v2.06.02.11_W.ads / CRC32: 23025C19
WA_212 v2.06.02.19.ADS / CRC32: 36F047C4
WA_222 v2.06.01.08_N.ads / CRC32: 73CCFBF1
WA_222 v2.06.02.19.ADS / CRC32: E375216D
WA_232 v2.06.01.08_N.ads / CRC32: 125CADB4
WA_232 v2.06.02.11_W.ads / CRC32: BD9EC351
WA_232 v2.06.02.19.ADS / CRC32: 1FAC2084
WA_2x4.ADS / CRC32: B54CBECA
sdm305(V100R001B01D01P09).ADS / CRC32: D2362F4C
sdm305(V100R001B01D01P11R1).ADS / CRC32: 26CCDB35
sdm305(V100R001B01D01P12R1).ADS / CRC32: C49D7D95
sdm305(V100R001B01D01P15R1).ADS / CRC32: 2363E004
sds2k_V100R01B01D01P3501_fvA140620140620M140715.ADS / CRC32: A4D2A904
sds2k_V100R01B01D01P3702_fvA141204141203M141117.ADS / CRC32: 1C954983
sds2k_V100R01B01D01P3709_fvA141204141203M141117.ADS / CRC32: B2FED91C
sds2k_V100R02B01D01P27_fvA1511171117M151117.ADS / CRC32: 5E826C18
sds2k_V100R02B01D01P2801_fvA1511171117M151126.ADS / CRC32: 1F81CB83
sds2k_V100R02B01D01P3301_fvA1601290129M160129.ADS / CRC32: 74968A25
sds2k_V100R02B01D01P38R07_fvA1606060606M160516.ADS / CRC32: 176C2D06
sds2k_V100R02B01D02P0109_fvA1609220922M160922.ADS / CRC32: ABD70008
sds2k_V100R02B01D02P02_fvA1609220922M160922.ADS / CRC32: 2AC88D06
sds2kx_V100R02B01D01P2801_fvA1511171117M151126.ADS / CRC32: CA4EE474
sds2kx_V100R02B01D01P3301_fvA1601290129M160129.ADS / CRC32: 44F3DFD3
sds2kx_V100R02B01D01P38R07_fvA1606060606M160516.ADS / CRC32: 8B4BB764
sds2kx_V100R02B01D02P0109_fvA1609220922M160922.ADS / CRC32: FDB18978
sds2kx_V100R02B01D02P02_fvA1609220922M160922.ADS / CRC32: FC7F7840
transition.ADS / CRC32: 0BD8FD19
waveace10xx_5.01.02.29.ADS / CRC32: 8F44CBF5
waveace2xx2_5.08.02.38.ADS / CRC32: 15AF114A
waveace2xx4_5.03.02.38.ADS / CRC32: 48FA2455
wavestation_2000_v1.01.02.31.ads / CRC32: 0926F234
wavestation_2000_v1.01.02.34.ads / CRC32: 4A6EF551
wavestation_2000_v1.01.02.36.ads / CRC32: 51595069
wavestation_3000_v5.01.02.13.ads / CRC32: 93EB575F
The only part that I still haven't figured it out is Section 7 of SDS1000/SDS2000 files. But it's probably the CPLD programming of those scopes.
Edit7: updated Sep 23rd, 2018 - Added all the recent FW updates