EEVblog Electronics Community Forum
Products => Test Equipment => Topic started by: Igor_k on January 26, 2016, 12:13:34 pm
-
JTAG Blackfin & Altera
-
WIGGLER Blackfin JTAG Altera JTAG
TMS -- TMS -- TMS
TCK -- TCK -- TCK
TDI -- TDI
TDO -- TDI
TDO -------------------- TDO
-
Scheme
-
Windows XP SP3
TopJTAG Flash Programmer
-
JTAG chain
-
Flash array
-
Signal pins
-
Backup Full Flash
-
=========
Links:
=========
http://www.topjtag.com/flash-programmer/ (http://www.topjtag.com/flash-programmer/)
http://www.analog.com/media/en/simulation-models/bsdl-model-files/ADSP_BF532_LQFP.bsdl.txt (http://www.analog.com/media/en/simulation-models/bsdl-model-files/ADSP_BF532_LQFP.bsdl.txt)
ftp://ftp.altera.com/outgoing/download/bsdl/EP2C8AQ208.BSD (http://ftp://ftp.altera.com/outgoing/download/bsdl/EP2C8AQ208.BSD)
-
Nice work, thank you for the detailed post. Oh how I miss the parallel port, it was useful for so many things.
Are you also able to erase/program the various memories?
-
Nice work, thank you for the detailed post.
I will be glad if the information will be useful.
Oh how I miss the parallel port, it was useful for so many things.
The parallel port has been selected as an example.
TopJTAG Flash Programmer support many USB cables:
Altera USB-Blaster, USB to JTAG interfaces based on FTDI FT2232 chip, e.g.
Olimex ARM-USB-TINY-H, ARM-USB-OCD and ARM-USB-TINY, Digilent JTAG-USB...
Are you also able to erase/program the various memories?
Yes.
-
Thanks, Igor, for the detailed instructions. I've managed to flash my Atten ADS1102CAL over JTAG with J-Link cable+topJTAG Flash Programmer. There are some differences. I have Lattice FPGA on the board which controls 3 high address pins of the flash.
Could you explain what is the purpose of configuring static pins of Altera FPGA in topJTAG Flash Programmer Setup?
-
Hi everyone,
I'm bumping this thread in the hope that the owner of an old DG1022 will be able to backup his/her firmware and let me know about it.
I desperately need a firmware PRIOR 00.01.00.04.00.02.07. I think the best one for my equipment is 00.01.00.04.00.02.03
If some one could spare some time doing this, you would make my (and other people in the same boat) day as Rigol last legacy (.ldr) firmware (00.01.00.04.00.02.03) has a bug disabling the channel 1 and they are totally helpless.
Thanks in advance,
Paul
-
hi, could it possible to load flash via jtag? i have setup seems to your and can read flash but cant to write and have error
-
hi, could it possible to load flash via jtag? i have setup seems to your and can read flash but cant to write and have error
You can read, erase and write!
Checked personally.
-
finally i can write some to flash but when i start read after write ist only FFFFF.... in memory (seems empty). :-BROKE
jtag my chain is Altera EP2C5Q208 + BF531+j-linkv8 normally detected by topjtag
Maybe something wrong? If it possible Could you share your mem dump I try to load it?
-
Hello,
anyone here able to send me a backup of an 00.03.00.08.00.02.08 Version?
I tried to update using the "help" button update procedure with .GEL files. But my DG1022 doesn't stop boot process.
So i tried to update using the .LDR file via menu/recall button for older devices.
Update succeeded, it told me to restart the device. After reboot, the display is dead (illuminated but dark).
Seems the device is bricked.
I found this thread here (after the update failed). I followed the instructions and i'm able to read the flash memory as described by Igor_k.
I need a backup or maybe a unpacked .GEL update-files (bootloader and firmware) and the memory addresses where i have to put this content to.
-
:palm:
I don't know these equipments BUT if you say you loaded a .GEL as a .LDR file, you messed things big. Because the .LDR is a raw file designed to be loaded in the BF.
A .GEL file is a package that usually contains one or more .LDR files and others.
-
@tv84 I read your comments from 2016 and later for the DS1000Z series (very helpful thread by the way). I got a DS1054Z too.
The mentioned tools for the DS1000Z-GEL files does not work with the GEL files for the DG1022 devices.
I don't know why my device did not respond to the help button at boot time. Pressing help button did nothing. The device booted normal when pressing the help button (before the update trial). So i tought it must be one of the older devices that needs the LDR file. I did the update with the LDR file not with a GEL file.
Anyway, it will not start now and i need a backup dump. Otherwise i can try to flash the firmware and the new bootloader separatly. There is a M25X20AV 1Mbit SPI eeprom. I read that content out before i tried to update. I'm not sure if the content from the bootloader file has to be flashed to this SPI eeprom.
-
Jim,
The files from DS are different from DG.
Here is the parsing of the 00.03.01.00.00 DG10x2Update.GEL:
00000000 - File Type: RIGOL:DG1:UPDATE FILE ALL
Offset StartAdd Size LoadAddr CRC16 Rsvd
00000040 - 000002C0 00000000 20000000 0000 0000 00000000
00000054 - 000002C0 0013F95A 20030000 403C 0000 00000000 [000002C0-0013FC19] CRC NOT OK
00000068 - 0013FC1A 00001194 20208000 1907 0000 00000000 [0013FC1A-00140DAD] CRC NOT OK
0000007C - 00140DAE 00001194 2020C000 532D 0000 00000000 [00140DAE-00141F41] CRC NOT OK
00000090 - 00141F42 00004650 20210000 7712 0000 00000000 [00141F42-00146591] CRC NOT OK
000000A4 - 00146592 00002EE0 20220000 9CD1 0000 00000000 [00146592-00149471] CRC NOT OK
000000B8 - 00149472 0000EA60 20228000 DC3F 0000 00000000 [00149472-00157ED1] CRC NOT OK
000000CC - 00157ED2 00007530 20250000 5105 0000 00000000 [00157ED2-0015F401] CRC NOT OK
000000E0 - 0015F402 000005DC 20260000 1416 0000 00000003 [0015F402-0015F9DD] CRC NOT OK
000000F4 - 0015F9DE 00070000 20290000 B748 0000 00000000 [0015F9DE-001CF9DD] CRC NOT OK
It seems that I was never able to recreate the CRC... |O
Here is the parsing of Bootloader_03 DG10x2Update.GEL:
00000000 - File Type: RIGOL:DG1:UPDATE FILE ALL
Offset StartAdd Size LoadAddr CRC16 Rsvd
00000040 - 000002C0 00019982 20000000 0000 0000 00000000 [000002C0-00019C41]
00000054 - 00019C42 00000000 20030000 0000 0000 00000000 EOF
00000068 - 00019C42 00000000 20208000 0000 0000 00000000 EOF
0000007C - 00019C42 00000000 2020C000 0000 0000 00000000 EOF
00000090 - 00019C42 00000000 20210000 0000 0000 00000000 EOF
000000A4 - 00019C42 00000000 20220000 0000 0000 00000000 EOF
000000B8 - 00019C42 00000000 20228000 0000 0000 00000000 EOF
000000CC - 00019C42 00000000 20250000 0000 0000 00000000 EOF
000000E0 - 00019C42 00000000 20260000 0000 0000 00000000 EOF
000000F4 - 00019C42 00000000 20290000 0000 0000 00000000 EOF
Don't know if this helps you extract the raw parts. :-//
-
I just compared the content of the W25X20AV SPI chip with the content i dumped before the update. Seems this content is untouched.
# md5sum W25*.bin
9a2725ee35180f428d517cce2de1718e W25X20AV_2_flashrom_20210527_backup-test.bin
9a2725ee35180f428d517cce2de1718e W25X20AV_flashrom_20210524_backup.bin
Maybe the SPI flash has nothing to do with bootloader. Or the LDR file i flashed has no bootloader update inside.
-
I just compared the content of the W25X20AV SPI chip with the content i dumped before the update. Seems this content is untouched.
# md5sum W25*.bin
9a2725ee35180f428d517cce2de1718e W25X20AV_2_flashrom_20210527_backup-test.bin
9a2725ee35180f428d517cce2de1718e W25X20AV_flashrom_20210524_backup.bin
Maybe the SPI flash has nothing to do with bootloader. Or the LDR file i flashed has no bootloader update inside.
And how do those contents compare with the parts in the .GEL that I parsed?
-
I searched for some random content from the SPI dump in the two GEL files you mentioned. But could not find any match.
But, i also searched for longer random content from the two GEL files in my JTAG-NVRAM dump. And bingo, i found a lot of matches. I found nearly every content from the GEL file in my NVRAM-dump.
I attachted the NVRAM-dump. Hope someone with more clue than me can tell me whats wrong with my memory dump.
-
The W25X20AV_flashrom_20210524_backup.bin file is the dump of the Altera FPGA.
Your NVRAM dump is from the BF.
Look at the Load Addresses of my parsings and the blocks I indicate there.
I think you have to load (patch) those blocks into your NVRAM dump. I would start by putting the bootloader in the offset 0x000000.
Remember that the offset 0 of the dump corresponds to 0x20000000 in the addresses table.
-
I grabbed the W25X20AV_flashrom_20210524_backup.bin of the eeprom. I desoldered (now 2 times) the eeprom an read it with my RT809H and Batronix BX48II (tried different programmer just so see if there is a different).. Maybe it's code for the Altera processor. But i read it from eeprom.
-
One of my files is the bootloader.
00000040 - 000002C0 00019982 20000000 0000 0000 00000000 [000002C0-00019C41]
You must place the blue block at the red address in the NVRAM dump! (remember that address 0x20000000 = offset 000000 in the dump)
-
@tv84 Today i tried to flash the modified ldr file. The file is attached as zip file.
I could not erase the memory before writing. After writing i could not verify it. The DG1022 does not start.
Please, can someone send me a flashdump or proper prepared ldr file for DG1022?
-
I've asked for external help BUT you should further investigate the not being able to verify.
Because, even with a correct dump, if you can't write/verify the thing correctly, it is useless.
-
@tv84 OK, i used shorter wires and reduced clock speed (1 MHz instead of 6 MHz). Writing and verifying worked.
But the device will not start.
-
@tv84 I found out that the problem was related to the clock speed rather than wire length. The clock signal on the Segger clone becomes unstable at more than 3MHz.
-
@tv84 Any idea why i can't programm the address space 0x0000 - 0x3fff? When i programm the nvram via jtag, the mentioned area is empty.
I tried different programmers now: TIAO Tumpa, Olimex Tiny-H, Segger j-link clone. Always the same result.
-
@tv84 How can i move data from 0000 02C0 - 0001 9C4 to 2000 0000 in NVRAM dump when the file ends at 003F FFFF?
-
That's good news. I'll try to get some help.
Till now i couldn't figure our why i cannot write to 0x0000 0000 - 0x0000 3fff via jtag. Hint's are welcome.
Anyway, i desoldered the 4MB S29GL032N 48 pin flash memory and programmed it in my RT809H using an 48-pin adapter.
I have to say that this is way faster than waiting 40 minutes when programming via jtag.
Desoldering with low melting solder (Chemet Bi57Sn43) took less than 2 minutes, cleaning and preparing the solderpads with new solder took 2 more minutes.
Erasing, programming and verifying the data took less than 5 minutes. Soldering back the Chip was pretty easy.
I did this in less than 20 minutes, half the time i need to programm the flash via jtag. And soldering looks better than factory.
@tv84 The 52 49 ... data from the file now starts at 0x0000 0000 in the flashmemory (loaded at 0x2000 0000 for BF531).
But the device still doesn't start.
Would be great ff anyone could support me with a memory dump for a DG1022, Version 00.03.00.08.00.02.08.
-
Jim,
I corrected the first 0x130 bytes of your dump (they were totally wrong).
Attached is the corrected .bin you should flash. Even so, the file missed some important areas.
I include also its Blackfin .LDR parsings to validate that the contents of this dump is sound and should allow the device to boot.
-
@tv84 Thank you alot for your effort. The device starts with your modification.
I can see the button lights at boot sequence and hear the relais after booting.
I can recognize the device via USB on Linux and it show up on UltraSigma in my Windows-VM.
The display will not turn on. It flashes one time when pressing power button and goes dark.
After booting up when pressing "View" button, the button itself lights up but display remains dark.
I can't use it with UltraSigma (maybe Softwareproblem, not a device problem?).
-
@tv84 It was 00.03.00.08.00.02.08 when i tried to update.
00 Bootversion
.03 Hardware revision
.00.08 FPGA version
.00.02.08 DSP version
-
Try this one from a working unit with your settings, crafted by me.
This one was extracted from a 00.03.00.08 machine also running FW 2.08. So I'm confident it must work.
Report the results.
-
@tv64 Many many thanks for your patience and effort. The device works.
It shows up the correct serial number.
-
The device works.
It shows up the correct serial number.
:popcorn: Show us the screenshot with the HW and FW version just for future reference.
-
@tv84 Interesting, the Version number show some crap.
What is the best way to update this device? Using a LDR file or with a GEL file?
The bootloader has to be updated first.
-
Interesting and that could be helpful for my investigations. -> EDIT: There are 20 bytes (I think they are not very important) that were wrong in the dump you provided and that I unknowingly reused, but should be corrected in order for the HW/FW version to look correct.
So, that allowed me to discover where the .GEL contains the FW version.
Here is the parsing of the 2.10 FW as an example:
00000000 - File Type: RIGOL:DG1:UPDATE FILE ALL
Offset StartAdd Size LoadAddr CRC16 Rsvd CRC16_calc
00000040 - 000002C0 00000000 20000000 0000 0000 00000000
00000054 - 000002C0 001B4BC0 20030000 0000 0000 00000000 [000002C0-001B4E7F] DBE0
00000068 - 001B4E80 00001194 20208000 0000 0000 00000000 [001B4E80-001B6013] 1907
0000007C - 001B6014 00001194 2020C000 0000 0000 00000000 [001B6014-001B71A7] 532D
00000090 - 001B71A8 00004650 20210000 0000 0000 00000000 [001B71A8-001BB7F7] 7712
000000A4 - 001BB7F8 00002EE0 20220000 0000 0000 00000000 [001BB7F8-001BE6D7] 9CD1
000000B8 - 001BE6D8 0000EA60 20228000 0000 0000 00000000 [001BE6D8-001CD137] DC3F
000000CC - 001CD138 00007530 20250000 0000 0000 00000000 [001CD138-001D4667] E68F
000000E0 - 001D4668 00000590 20260000 0000 0000 00000003 [001D4668-001D4BF7] 5C1C
001D46A8 - FW Version: 00.02.10.00 - RIGOL TECHNOLOGIES,DG1012C,DG1F
000000F4 - 001D4BF8 00070000 20290000 0000 0000 00000000 [001D4BF8-00244BF7] B343
Regarding upgrade, AFAIK 2.08 can't be upgraded (see attached file). I suppose it must be because of the bootloader.
So, my suggestion would be, I can create an image based on a 2.10 dump. Then you flash that image.
Then you can execute upgrade to version 2.12.
Or, first, you try to upgrade to 2.10 with the stock GEL only and see if you can make it work.
-
@tv84 Where did you got this information from? The official Rigol release notes confused me when i tried to update because my device never displayed such a long 10 digit DSP version number.
They advised in their release notes:
IF you have a DG1022 read this:
1) If the version is < 00.03.00.08.00.02.08.00.01 then you can only update using the LDR version.
Then you MUST use the LDR file and the instructions in “DG1022 Legacy LDR Update
Instructions”.
Does version number 00.03.00.08.00.02.08 means < 00.03.00.08.00.02.08.00.01? Or is it the mentioned version number but some digits are just missing on the display?
I took the attached image before the update.
-
@tv84 I can't update the regular way. Maybe because of the strange version number?
-
Most probably. I suspected that.
Do you want me to create a 2.12 version with boot 3?
I think that would allow to flash a stock 3.01.00 FW directly.
-
@tv84 That would be great. I would give it a try.
-
@tv84 That would be great. I would give it a try.
But you"ll have to flash with programmer, ok?
-
@tv84 I have done this about 10 or 12 times now with this chip. I ordered some new S29GL032N90TFI04 flash chips because I think the chip will die eventually. At some point it will have been too much. Even if you are skilled, once, twice or three times you can do it with a TSOP48 flash chip. But the chip can't take that much heat. And the more often you do it, the worse it sits in the programming socket. Solder residues remain on the legs and lead to contact problems in the socket.
-
Just for future reference, and because Rigol instructions are not very clear, what Rigol calls the .LDR file (attached) is a file that loads (IMHO) the 00.02.07.00 FW version.
So, anyone with a higher version should never flash this one. I think this was JimKnopf's initial mistake.
-
@tv84 I think i tried a LDR file but it was a different one. I checked the LDR files i have and compared the md5sum against the file you attached:
find ./ -name '*LDR*.zip' -exec md5sum {} \;
c30ee29b93dc6bddb540b385c1b6be5b ./examples/tv84/DG10x2_Update_Last_LDR.zip
876a1d457f5f3e77aeddd8290bd02270 ./DG10x2_Update_Last_LDR_00.02.07.00.zip
c30ee29b93dc6bddb540b385c1b6be5b ./dg1000_latest/LDR/DG10x2_Update_Last_LDR.zip
c30ee29b93dc6bddb540b385c1b6be5b ./dg1000_/DG10x2_Update_Last_LDR.zip
I have the latest LDR file from Rigol website.
-
I have the latest LDR file from Rigol website.
My ZIP contains a parsing of the .LDR made by me. :)
You should not compare the ZIPs but the LDR inside.
-
@tv84 Oh, i see. I was too quick. I extracted the files:
find ./ -name '*.ldr' -exec md5sum {} \;
698cd8eb479c8dce5b85e9478ae098ac ./examples/tv84/DG10x2_Update.ldr
a1d5cd44227fe07e44de9d6e6b0dde7f ./examples/tv84/bootloader-tv084-v1.ldr
698cd8eb479c8dce5b85e9478ae098ac ./DG10x2_Update_Last_LDR_00.02.07.00/DG10x2_Update.ldr
698cd8eb479c8dce5b85e9478ae098ac ./dg1000_latest/LDR/DG10x2_Update.ldr
698cd8eb479c8dce5b85e9478ae098ac ./dg1000_/DG10x2_Update.ldr
Indeed it's this LDR file i tried.
-
Here is the flash dump that should give you FW 02.12.00 with Bootloader 03 already included.
It should allow for a direct stock 00.03.01.00 .GEL flash (which I think is the latest AFAIK).
Try and report.
Edit: removed file as it was not OK.
-
@tv84 I programmed the flash memory and tried to boot. All illuminated buttons light up, device will not start.
-
Jim,
Version 2.10 with your settings. Extracted from a working unit.
Test and report.
-
@tv84 Thanks again.
The device booted with your latest firmware file. To speed things up, i build an adapter with flying wires soldered to the pads on the board and to 2x 24-pin-headers. Now i can switch the TSOP48 programming socket from the programmer to the adapter quickly without solder/desolder the chip every time.
I tried to update the bootloader using the menu. But i couldn't recall a GEL file. I did it like mentioned here:
https://www.eevblog.com/forum/testgear/rigol-dg1022-how-to-update-the-firmware/msg592701/#msg592701 (https://www.eevblog.com/forum/testgear/rigol-dg1022-how-to-update-the-firmware/msg592701/#msg592701)
After updating the bootloader, the device won't start. I just did the same proceding with the firmware update GEL file and the device started.
The only thing was, some keys were locked. I fixed it like mentioned here:
https://www.eevblog.com/forum/testgear/rigol-dg1022-how-to-update-the-firmware/msg3261146/#msg3261146 (https://www.eevblog.com/forum/testgear/rigol-dg1022-how-to-update-the-firmware/msg3261146/#msg3261146)
I just put a USB-Stick with the unlock.scpi file into the device and used the recall function. After that, the keys working normal.
Maybe i have to recalibrate the device.
Many thanks for your effort.
@tv84 I attached the latest NVRAM dump after updating.
-
Jim,
:clap: I was hoping for you to solve the rest! :)
Now, update to 03.01 and send me the new dump. You used 03.00. ;)
-
For sure I downloaded and installed the latest version DG1022X(DSP)Update(Normal)_00.03.00.00.01 from the Rigol site.
-
For sure I downloaded and installed the latest version DG1022X(DSP)Update(Normal)_00.03.00.00.01 from the Rigol site.
Nope, this is the latest.
-
@tv84 Ok, i didn't notice that there are several sources on Rigols sites with different "last" versions:
rigol.eu
rigolna.com (03.00 is the last version)
rigol.com (03.01 is the last version)
I updated without errors to 03.01.
-
I updated without errors to 03.01.
:-+ Thread closed.