openocd/src/jtag/drivers/OpenULINK
Marc Schink d0e763ac7e Remove FSF address from GPL notices
Also make GPL notices consistent according to:
https://www.gnu.org/licenses/gpl-howto.html

Change-Id: I84c9df40a774958a7ed91460c5d931cfab9f45ba
Signed-off-by: Marc Schink <openocd-dev@marcschink.de>
Reviewed-on: http://openocd.zylin.com/3488
Tested-by: jenkins
Reviewed-by: Andreas Färber <afaerber@suse.de>
Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
2016-05-24 22:30:01 +01:00
..
include Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
src Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
Makefile Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
README Add OpenULINK firmware 2011-06-26 17:43:51 +02:00
ulink_firmware.hex OpenULINK firmware: update firmware hex image 2013-07-17 14:31:19 +00:00

This is the OpenULINK firmware for the Keil ULINK JTAG adapter.

The main components of the Keil ULINK adapter are:
- Cypress EZ-USB microcontroller: enhanced 8051 CPU + USB core (1.1 Full-Speed)
- SRAM memory chip
- Level shifters to support different JTAG signal voltage levels
- Pin headers for various JTAG pin assignments

This firmware can only be run on the ORIGINAL Keil ULINK adapter, not on the
newer ULINK2, ULINK-ME or ULINK-PRO, as these adapters are based on different
hardware.

To compile the firmware, the SDCC compiler package is required. Most Linux
distributions include SDCC in their official package repositories. The SDCC
source code can be found at http://sdcc.sourceforge.net/
Simply type "make hex" in the OpenULINK directory to compile the firmware.
"make clean" will remove all generated files except the Intel HEX file required
for downloading the firmware to the ULINK adapter.

Note that the EZ-USB microcontroller does not have on-chip flash, nor does the
Keil ULINK include on-board memory to store the firmware program of the EZ-USB.
Instead, upon initial connection of the ULINK adapter to the host PC via USB,
the EZ-USB core has enough intelligence to act as a stand-alone USB device,
responding to USB control requests and allowing firmware download via a special
VENDOR-type control request. Then, the EZ-USB microcontroller simulates a
disconnect and re-connect to the USB bus. It may take up to two seconds for the
host to recognize the newly connected device before OpenOCD can proceed to
execute JTAG commands. This delay is only visible when OpenOCD first uses a
blank (unconfigured) ULINK device.

Once the user disconnects the ULINK adapter, all its memory contents are lost
and the firmware download process has to be executed again. This also maintains
compatibility with the original Keil uVision IDE, which will happily download
its own firmware image to a blank ULINK adapter.