Hello Kyle,

the patch works with the TMS570 eval. board. You should use gerrit to submit 
the patch.

"Short" instruction that works for me:

1.) register at http://openocd.zylin.com/ with a OPENID (you need a google or 
yahoo account (or other))
2.) create a ssl certificate and set it in your profile at gerrit and make it 
available to your
local ssh client
3.) choose a USERNAME
4.) clone the current openocd "git git clone 
git://openocd.git.sourceforge.net/gitroot/openocd/openocd"
5.) change the email and name in the git repo (local or global) to your 
registration set at 1.
6.) execute: git remote add review 
ssh://usern...@openocd.zylin.com:29418/openocd.git (USERNAME is
your registration USERNAME)
7.) execute: git config remote.review.push HEAD:refs/for/master
8.) execute: scp -p -P 29418 usern...@openocd.zylin.com:hooks/commit-msg 
.git/hooks/ (USERNAME is
your registration USERNAME)
9.) apply your changes again
10.) push the changes to review

Hope that i don't miss anything.


Regards,

Mathias


Am 24.10.2011 19:42, schrieb Kyle Manna:
> The CPLD on the xds100v2 expects to see a rising edge on PWR_RST to
> enable the outputs.  This patch creates that transition correctly by
> fixing the direction register for PWR_RST.
> 
> THe CPLD will also loop back the data if the LOOPBACK signal is
> asserted.  Set this signal to an output and keep it clear.
> 
> This was tested with a TI DM3730 Beagleboard xM.
> 
> Signed-off-by: Kyle Manna <kyle.ma...@fuel7.com>
> ---
>  src/jtag/drivers/ft2232.c |   53 
> +++++++++++++++++++++++++++++++++------------
>  1 files changed, 39 insertions(+), 14 deletions(-)
> 
> diff --git a/src/jtag/drivers/ft2232.c b/src/jtag/drivers/ft2232.c
> index 3cca26d..ceb3c0b 100644
> --- a/src/jtag/drivers/ft2232.c
> +++ b/src/jtag/drivers/ft2232.c
> @@ -3175,40 +3175,65 @@ static int flossjtag_init(void)
>       return ftx232_dbus_write();
>  }
>  
> +/*
> + * The reference schematic from TI for the XDS100v2 has a CPLD on which opens
> + * the door for a number of different configurations
> + *
> + * Known Implementations:
> + * 
> http://processors.wiki.ti.com/images/9/93/TMS570LS20216_USB_STICK_Schematic.pdf
> + *
> + * http://processors.wiki.ti.com/index.php/XDS100 (rev2)
> + *   * CLPD logic: Rising edge to enable outputs (XDS100_PWR_RST)
> + *           * ACBUS3 to transition 0->1 (OE rising edge)
> + *   * CPLD logic: Put the EMU0/1 pins in Hi-Z:
> + *           * ADBUS5/GPIOL1 = EMU_EN = 1
> + *           * ADBUS6/GPIOL2 = EMU0 = 0
> + *           * ACBUS4/SPARE0 = EMU1 = 0
> + *   * CPLD logic: Disable loopback
> + *           * ACBUS6/SPARE2 = LOOPBACK = 0
> + */
> +#define XDS100_nEMU_EN       (1<<5)
> +#define XDS100_nEMU0 (1<<6)
> +
> +#define XDS100_PWR_RST       (1<<3)
> +#define XDS100_nEMU1 (1<<4)
> +#define XDS100_LOOPBACK      (1<<6)
>  static int xds100v2_init(void)
>  {
> -     low_output    = 0x3A;
> -     low_direction = 0x7B;
> +     /* These are in the lower byte */
> +     nTRST    = 0x10;
> +     nTRSTnOE = 0x10;
> +
> +     /* These aren't actually used on 14 pin connectors */
> +     /* These are in the upper byte */
> +     nSRST    = 0x01;
> +     nSRSTnOE = 0x01;
> +
> +     low_output    = 0x08 | nTRST | XDS100_nEMU_EN;
> +     low_direction = 0x0b | nTRSTnOE | XDS100_nEMU_EN | XDS100_nEMU0;
>  
> -     /* initialize low byte for jtag */
>       if (ft2232_set_data_bits_low_byte(low_output,low_direction) != ERROR_OK)
>       {
>               LOG_ERROR("couldn't initialize FT2232 with 'xds100v2' layout");
>               return ERROR_JTAG_INIT_FAILED;
>       }
>  
> -     nTRST    = 0x10;
> -     nTRSTnOE = 0x0;     /* not output enable for nTRST */
> -     nSRST    = 0x00;    /* TODO: SRST is not supported yet */
> -     nSRSTnOE = 0x00;    /* no output enable for nSRST */
> -
> -     high_output    = 0x00;
> -     high_direction = 0x59;
> +     high_output = 0;
> +     high_direction = nSRSTnOE | XDS100_LOOPBACK | XDS100_PWR_RST | 
> XDS100_nEMU1;
>  
>       /* initialize high byte for jtag */
>       if (ft2232_set_data_bits_high_byte(high_output,high_direction) != 
> ERROR_OK)
>       {
> -             LOG_ERROR("couldn't initialize FT2232 with 'xds100v2' layout");
> +             LOG_ERROR("couldn't put CPLD in to reset with 'xds100v2' 
> layout");
>               return ERROR_JTAG_INIT_FAILED;
>       }
>  
> -     high_output    = 0x86;
> -     high_direction = 0x59;
> +     high_output |= XDS100_PWR_RST;
>  
>       /* initialize high byte for jtag */
>       if (ft2232_set_data_bits_high_byte(high_output,high_direction) != 
> ERROR_OK)
>       {
> -             LOG_ERROR("couldn't initialize FT2232 with 'xds100v2' layout");
> +             LOG_ERROR("couldn't bring CPLD out of reset with 'xds100v2' 
> layout");
>               return ERROR_JTAG_INIT_FAILED;
>       }
>  
> -- 1.7.5.4

_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to