I downloaded and builded the svn version of urjtag, and I found some significant changes related to Bus Blaster, which appear as a ft2232 cable. Related to this the source file ft2232.c in the 0.10 version has 61208 bytes and is from 2009-04-12, and in the svn version has 90305 bytes and is from 2012-09-19.
They are many changes, like the new jtag executable in my case is only 6232 bytes vs the 0.10 jtag of 2153838 bytes, because the new is based on libraries (I must to execute before use it the first time ldconfig, to add to the system the new libraries)
We can compile urjtag without the use of propietary software. The solution is the same than openocd: Using the libftdi open source library: http://www.intra2net.com/en/developer/libftdi/
From the configure help to compile urjtag: --enable-cable Enable default set or specific cable drivers. 'default' enables: arcom byteblaster dlc5 ea253 ei012 ft2232 igloo jlink keithkoep lattice mpcbdm triton usbblaster wiggler xpc Disabled by default are: ep9307 jim ts7800
--enable-lowlevel Enable default set or specific lowlevel drivers: 'default' enables: direct ftdi ftd2xx ppdev ppi
Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gnu-ld assume the C compiler uses GNU ld default=no --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir --with-libusb use libusb for some USB JTAG cables --with-libftdi use libftdi for FTDI-based cables --with-ftd2xx use ftd2xx library for FTDI-based cables --with-inpout32 use InpOut32.dll for parallel port access on Windows
To build urjtag for the Bus Blaster, the configure option is: ./configure --enable-cable ft2232 --with-libftdi
I tryed about 3 times to obtain a feedback from the OpenOCD list, but without success.
But I can use urjtag. I tryed with openocd and urjtag the first day, but because urjtag do'nt detected the interface, I continued with openocd. A few days later, with the imposibility of writing the flash memories, I downloaded the ftd2xx propietary libraries and drivers, and recompiled urjtag with the ftd2xx propietary libraries support, and then urjtag detected the interface, but I could'nt use it, because any time I want to use urjtag with the Bus Blaster JTAG debugger V 2.5, I got the same error:
TDO seems to be stuck at 1
Now, I'm waiting the tracking number of the shipping of a new Bus Blaster, to be sent as replacement.
Yesterday, I searched for the bsdl files and I found the S3C44B0X.BSD in http://www.codeforge.com/read/37467/Tftp.c__html which are one of the closer types of boards and mcu to mine. Other similar board is the LPC2294, but the nearest bsdl file are from the LPC23xx series.
But now are a new question:
urjtag detects automatically the flash memories and types?
Or I must to specify in a configuration file the driver for the internal and external flash memories, with his addresses and sizes?
My Clarion CZ500 came up with an error that said "MCU UPG", drained my battery over the weekend, and now it won't turn on. I buyed the first time a ulink2 interface, but it only works with the keil software, and is useless to reflash a firmware with a jffs ramdisk image, because it has not the image option. I see on the schematics from the service manual of the stereo, that the section of the principal MCU of the 2 cores, is a development of MCSLOGIC, based on a ARM7TDMI, and other 32 bits DSP, the BX8805, equivalent to the MLC3895: http://clubimgfile.paran.com/dig/bbs/20 ... _V1.02.pdf
I see on the online documentation from the mcslogic website a procedure to create a new firmware (uCLinux initrd):
1) Run “sysconf set” 2) TFTP setting (Refer to Environment Setting) 3) Write “root=/dev/mtdblock2” at Root Device Setting item 4) Select “OFF” at NFS Setting item 5) Move created JFFS2 image to TFTP home directory 6) Change the JFFS2 image name into “jffs2.image” 7) Move created compressed kernel image to TFTP home directory. 8) Change the compressed kernel image into “mcs.gz.jffs” 9) Run “flash prog jffs ” (for recorde to flash device) 10) Run “boot flash”
But I do'nt found what software are using to this procedure.
The flash memory of the board is a SST39VF1601.
You can tell me how is the procedure to write the firmware to the Flash memory via JTAG, with openocd?
I selected on the config board for openocd the lpc2294, which uses the arm7tdmi, and edited one config file,to add the external flash SST39VF1601, which is present on some boards like the LPC2294, or the Samsung S3C44B0, but in the boards files from openocd the nearest model of Samsung is the S3C4510, which has no one line to setup the flash memories, internal and external.
I tryed with the command "flash write_image firmware.mcs 0x00400000" (the address from the start of the external flash SST39VF1601). The boot file is in the internal flash of the mcu of 256 Kbyte.
They are a similar model of Clarion, the CZ501, which uses the same MCU than the CZ500, and it uses 2 firmware files: *CZ501MCU.BIN (129kB) *AUDIO_v2x_V101_CZ501_MXIC_110125_00_375K.mcs (1,585kB) http://www.clarion.com/ca/en/support/so ... index.html
I tryed to write the littler file which appear as the boot file with:
flash write_image /root/CZ501MCU.BIN 0x00000000 Verification will fail since checksum in image (0x20282024) to be written to flash is different from calculated vector checksum (0x3f482590). To remove this warning modify build tools on developer PC to inject correct LPC vector checksum. ThumbEE -- incomplete support target reentered debug state, but not at the desired exit point: 0xfffffff9 lpc2000 prepare sectors returned -1571637640 error writing to flash at address 0x00000000 at offset 0x00000000 in procedure 'flash'
If I could write at least the boot file to the internal flash, later with the assembled device, I could load the rest of the firmware via USB.
I do'nt know if the error is related to a hardware problem in the interface: viewtopic.php?f=37&t=4754 Or is other error. When I tryed to write or see the external flash, I got this error: flash probe 1 Flash Manufacturer/Device: 0xffff 0xffff Could not probe bank: no QRY Try workaround w/0x555 instead of 0x55 to get QRY. Could not probe bank: no QRY auto_probe failed in procedure 'flash'
But the proposed solution by You, has the problem that any time You must to call it via the script. If You forget it, They will'nt work.
I do'nt patched urjtag. I downloaded the propietary libraries and drivers from the FTDI website, and recompiled urjtag to use the libraries ftd2xx. I must have installed it in the proper directory, with the symlinks. I used this option, and the configure script detected the ftd2xx libraries:
./configure --enable-cable ft2232 --with-ftd2xx
But the first time I wanted to use the bus blaster interface with openocd and urtjtag, I finded to get to work openocd first, without downloading the propietary libraries and drivers.
Aside from the issue of the TDO terminal fixed on 1, I had a problem with the detection of SST39VF1601 flash memory of the board, and I do'nt know if the problem was due to the TDO terminal, or is other problem. It was with openocd, because urjtag was unable to start by the hardware problem on the interface. viewtopic.php?f=37&t=4754
My ceramic pencil type welder, only has 2 levels of power, 22 watt and 150. It has about 25 years old. Now I see You are from Tokio. I mean you can get at a good price modern welders there! You can help me on this issue? (to upgrade my welder)
I do'nt use OS X, but I use Linux Opensuse 12.2, and because OS X, are based on Darwin, which is a derivative of Unix, like Linux, then they are very similar. Yesterday, I downloaded the propietary libraries and drivers from the FTDI website, and recompiled urjtag to use the libraries ftd2xx. I must have installed it in the proper directory, with the symlinks. I used this option, and the configure script detected the ftd2xx libraries:
The open source driver ftdi_sio (present in the actual Linux systems), do'nt work. The best way to prevent this module to not load, is to add to the blacklist modules in /etc/modprobe.d/ They are 2 options about the driver; one, is the ftdi propietary driver, and the best, is to use with libftdi and libusb.
I tryed to use urjtag, but I do'nt finded the patch for the source, to use with the bus blaster.
I builded openocd, configured with ./configure --enable-maintainer-mode --enable-ft2232_libftdi With this option (the first time used only "./configure --enable-ft2232_libftdi"
I must have installed oin the system libftdi and libftdi-dev, libusb and libusb-dev.
I use Opensuse 12.2, and here You have a guide usable for many Linux systems:
I could'nt add the link, search in Google "STM32/ARM Cortex-M3 HOWTO: Development under Ubuntu (Debian)"
You can use this device as user, creating the udev.rules:
$> lsusb ... Bus 004 Device 005: ID 0403:6010 Future Technology Devices International, Ltd FT2232C Dual USB-UART/FIFO IC ...
Then we are going to add this device to udev so we don't have to use sudo to use it. First check that you are a member of the group plugdev (with commands like groups or id), then add the following to a udev rules file.
sudo vi /etc/udev/rules.d/45-ftdi2232-libftdi.rules
No. I only have a ceramic pencil type solder. For this case, I must to have a hot air solder station, and it's very expensive in Argentina. I buyed the interface to de-brick a equipment.
Yes, I tryed with the jtag output disconnected, and I got the same error.
With openocd, when i sent a reset, with the output board connected, I got this error:
Error: JTAG scan chain interrogation failed: all ones Error: Check JTAG interface, timings, target power, etc. Error: Trying to use configured scan chain anyway... Error: lpc2294.cpu: IR capture error; saw 0x0f not 0x01 Warn : Bypassing JTAG setup events due to errors Warn : ThumbEE -- incomplete support target state: halted target halted in ThumbEE state due to watchpoint, current mode: System cpsr: 0xffffffff pc: 0xfffffff9 Warn : NOTE! Severe performance degradation without fast memory access enabled. Type 'help fast'.
Any time I want to use urjtag with Bus Blaster JTAG debugger V 2.5, I got the same error:
TDO seems to be stuck at 1
If I try with openocd, the problem is similar:
openocd -f /etc/openocd.cfg Open On-Chip Debugger 0.7.0-dev-00066-gfc302a0 (2012-11-04-18:45)
Info : only one transport option; autoselect 'jtag' adapter speed: 500 kHz none trst_pulls_srst Warning - assuming default core clock 12MHz! Flashing may fail if actual core clock is different. trst_and_srst trst_pulls_srst srst_gates_jtag trst_push_pull srst_open_drain adapter_nsrst_delay: 100 jtag_ntrst_delay: 100 adapter speed: 1500 kHz Info : max TCK change to: 30000 kHz Info : clock speed 1500 kHz Error: JTAG scan chain interrogation failed: all ones Error: Check JTAG interface, timings, target power, etc. Error: Trying to use configured scan chain anyway... Error: lpc2294.cpu: IR capture error; saw 0x0f not 0x01 Warn : Bypassing JTAG setup events due to errors Info : Embedded ICE version 15 Error: unknown EmbeddedICE version (comms ctrl: 0xffffffff) Info : lpc2294.cpu: hardware has 2 breakpoint/watchpoint units Warn : ThumbEE -- incomplete support
I wanted to add a reply to this post, but is impossible to add a complete guide because the stupid "anti spam rules" Now I see the reason because they are so few posts