From f130f95d455332a114e468b3f77a203e3fdf4aee Mon Sep 17 00:00:00 2001 From: zwelch Date: Tue, 30 Jun 2009 09:09:30 +0000 Subject: [PATCH] Marcel Jost : This patch adds support for the Luminary Micro LM3S9B90 target and LM3S9B92 Evaluation Kit. These kits include a new ft2232 adapter, the Luminary In-Circuit Debug Interface (ICDI) Board, so this is added as a new ft2232 layout called "luminary_icdi". git-svn-id: svn://svn.berlios.de/openocd/trunk@2429 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- doc/openocd.texi | 3 +++ src/jtag/ft2232.c | 10 +++++++++ tcl/board/ek-lm3s9b9x.cfg | 18 +++++++++++++++ tcl/interface/luminary-icdi.cfg | 12 ++++++++++ tcl/target/lm3s9b9x.cfg | 39 +++++++++++++++++++++++++++++++++ 5 files changed, 82 insertions(+) create mode 100644 tcl/board/ek-lm3s9b9x.cfg create mode 100644 tcl/interface/luminary-icdi.cfg create mode 100644 tcl/target/lm3s9b9x.cfg diff --git a/doc/openocd.texi b/doc/openocd.texi index b9520604..b1aae199 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -539,6 +539,8 @@ chips are starting to become available in JTAG adapters. @* See: @url{http://www.signalyzer.com} @item @b{evb_lm3s811} @* See: @url{http://www.luminarymicro.com} - The Stellaris LM3S811 eval board has an FTD2232C chip built in. +@item @b{luminary_icdi} +@* See: @url{http://www.luminarymicro.com} - Luminary In-Circuit Debug Interface (ICDI) Board, included in the Stellaris LM3S9B90 and LM3S9B92 Evaluation Kits. @item @b{olimex-jtag} @* See: @url{http://www.olimex.com} @item @b{flyswatter} @@ -1829,6 +1831,7 @@ Currently valid layout @var{name} values include: @item @b{evb_lm3s811} Luminary Micro EVB_LM3S811 as a JTAG interface, either for the local Cortex-M3 (SRST only) or in a passthrough mode (neither SRST nor TRST) +@item @b{luminary_icdi} Luminary In-Circuit Debug Interface (ICDI) Board @item @b{flyswatter} Tin Can Tools Flyswatter @item @b{icebear} ICEbear JTAG adapter from Section 5 @item @b{jtagkey} Amontec JTAGkey and JTAGkey-Tiny (and compatibles) diff --git a/src/jtag/ft2232.c b/src/jtag/ft2232.c index c870262e..4cba9d90 100644 --- a/src/jtag/ft2232.c +++ b/src/jtag/ft2232.c @@ -156,6 +156,7 @@ static const ft2232_layout_t ft2232_layouts[] = { "oocdlink", jtagkey_init, jtagkey_reset, NULL }, { "signalyzer", usbjtag_init, usbjtag_reset, NULL }, { "evb_lm3s811", usbjtag_init, usbjtag_reset, NULL }, + { "luminary_icdi", usbjtag_init, usbjtag_reset, NULL }, { "olimex-jtag", olimex_jtag_init, olimex_jtag_reset, olimex_jtag_blink }, { "flyswatter", flyswatter_init, flyswatter_reset, flyswatter_jtag_blink }, { "turtelizer2", turtle_init, turtle_reset, turtle_jtag_blink }, @@ -2163,6 +2164,15 @@ static int usbjtag_init(void) low_output = 0x88; low_direction = 0x8b; } + else if (strcmp(ft2232_layout, "luminary_icdi") == 0) + { + nTRST = 0x0; + nTRSTnOE = 0x00; + nSRST = 0x20; + nSRSTnOE = 0x20; + low_output = 0x88; + low_direction = 0xcb; + } else { LOG_ERROR("BUG: usbjtag_init called for unknown layout '%s'", ft2232_layout); diff --git a/tcl/board/ek-lm3s9b9x.cfg b/tcl/board/ek-lm3s9b9x.cfg new file mode 100644 index 00000000..ccf7c883 --- /dev/null +++ b/tcl/board/ek-lm3s9b9x.cfg @@ -0,0 +1,18 @@ +# +# Luminary Micro Stellaris LM3S9B9x Evaluation Kits +# +# http://www.luminarymicro.com/products/ek-lm3s9b90.html +# http://www.luminarymicro.com/products/ek-lm3s9b92.html +# + +source [find interface/luminary-icdi.cfg] +source [find target/lm3s9b9x.cfg] + +# jtag speed +jtag_khz 500 + +jtag_nsrst_delay 100 +jtag_ntrst_delay 100 + +#LM3S9B9x Evaluation Board has only srst +reset_config srst_only diff --git a/tcl/interface/luminary-icdi.cfg b/tcl/interface/luminary-icdi.cfg new file mode 100644 index 00000000..04330a16 --- /dev/null +++ b/tcl/interface/luminary-icdi.cfg @@ -0,0 +1,12 @@ +# +# Luminary Micro Stellaris LM3S9B9x Evaluation Kits +# In-Circuit Debug Interface (ICDI) Board +# +# http://www.luminarymicro.com/products/ek-lm3s9b90.html +# http://www.luminarymicro.com/products/ek-lm3s9b92.html +# + +interface ft2232 +ft2232_device_desc "Luminary Micro ICDI Board" +ft2232_layout luminary_icdi +ft2232_vid_pid 0x0403 0xbcda diff --git a/tcl/target/lm3s9b9x.cfg b/tcl/target/lm3s9b9x.cfg new file mode 100644 index 00000000..e5a5b504 --- /dev/null +++ b/tcl/target/lm3s9b9x.cfg @@ -0,0 +1,39 @@ +# +# Luminary Micro Stellaris LM3S9B9x Microcontroller +# +# http://www.luminarymicro.com/products/lm3s9b90.html +# http://www.luminarymicro.com/products/lm3s9b92.htm +# + +if { [info exists CHIPNAME] } { + set _CHIPNAME $CHIPNAME +} else { + set _CHIPNAME lm3s9b9x +} + +if { [info exists ENDIAN] } { + set _ENDIAN $ENDIAN +} else { + # this defaults to a little endian + set _ENDIAN little +} + +if { [info exists CPUTAPID ] } { + set _CPUTAPID $CPUTAPID +} else { + # forth generation Tempest device + set _CPUTAPID 0x4ba00477 +} + +#jtag scan chain +jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 1 -irmask 0xf -expected-id $_CPUTAPID + +#Cortex-M3 with Luminary lm3s variant +set _TARGETNAME $_CHIPNAME.cpu +target create $_TARGETNAME cortex_m3 -endian $_ENDIAN -chain-position $_TARGETNAME -variant lm3s + +# 16k working area at base of ram +$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x20000000 -work-area-size 0x4000 -work-area-backup 0 + +#flash configuration +flash bank stellaris 0 0 0 0 0 -- 2.39.5