###############################################################################
#
# Copyright 2015, Rodrigo Melo (INTI)
# Copyright 2015, Juan Cecconi (UTN-FRBA, Numetron),
# Copyright 2015, Alejandro Permingeat (FI-UBA, VSATMotion)
#
# This file is part of CIAA Firmware.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice,
#    this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice,
#    this list of conditions and the following disclaimer in the documentation
#    and/or other materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its
#    contributors may be used to endorse or promote products derived from this
#    software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
###############################################################################
#OpenOCD configuration (target and interface) for CIAA-FSL
######################################################################################################
# Utilizar una interface tipo FTDI, todo lo que sigue está basado en ello
######################################################################################################
interface ftdi

######################################################################################################
# Agrego el Par VID-PID del FTDI, si hay más agregar a continuación...
######################################################################################################
ftdi_vid_pid 0x0403 0x6010

######################################################################################################
# Se utilizó el Channel A (ADBUS0 a ADBUS3) para conectar el JTAG mediante MPSSE
######################################################################################################
ftdi_channel 0

######################################################################################################
# ftdi_layout_init 'Valor' 'Dirección', Configura los GPIO (H-L), su valor y dirección en ese orden(1 = Salida, 0 = entrada)
# los 16 bits se arman H-L como sigue 'ACBUS7-0+ADBUS7-0'
#ADBUS0 = FT_CLCK = 1, salida de Clock
#ADBUS1 = FT_TDI = 1, salida de datos del FT
#ADBUS2 = FT_TDO = 0, entrada de datos al FT
#ADBUS3 = FT_TMS = 1, salida de Test Mode Select, setear a 1
#ADBUS4 = Pin 14 - conector P9 = 1 salida para no dejar flotante e ingresar ruido al FT
#ADBUS5 = Pin 12 - conector P9 = 1 salida para no dejar flotante e ingresar ruido al FT
#ADBUS6 = Pin 10 - conector P9 = 1 salida para no dejar flotante e ingresar ruido al FT
#ADBUS7 = Pin 8 - conector P9 = 1 salida para no dejar flotante e ingresar ruido al FT
#ACBUS0 = FT_TRST = 1, salida de TRST...va al buffer y luego no se usa, setear a 1
#ACBUS1 = FT_RST = 1, salida de RST...va al buffer y luego no se usa, setear a 1
#ACBUS2 = FT_OE = 1, salida de OE para manejar el Buffer del JTAG, setear a 0
#ACBUS3 = Pin 6 - conector P9 = 1 salida para no dejar flotante e ingresar ruido al FT
#ACBUS4 = Pin 4 - conector P9 = 1 salida para no dejar flotante e ingresar ruido al FT
#ACBUS5 = Pin 2 - conector P9 = 1 salida para no dejar flotante e ingresar ruido al FT
#ACBUS6 = Pin 1 - conector P9 = 1 salida para no dejar flotante e ingresar ruido al FT
#ACBUS7 = Pin 3 - conector P9 = 1 salida para no dejar flotante e ingresar ruido al FT
######################################################################################################
ftdi_layout_init 0x0208 0xFFFB

######################################################################################################
# La creación de las señales que siguen no hacen falta porque se indicó en el Target cfg que no se
# las tiene conectadas a ningún lado
######################################################################################################



######################################################################################################
# Creo la señal llamada nSRST (Not System Reset) que se activa cuando se hace un cmd 'reset'
# Es tipo dato y usa el bit 9 del GPIO (H-L), es decir GPIOH1 (pin ACBUS1) por eso 0x200,
# y a la vez se activa conjuntamente con el OE que  está usado en el bit 10 del GPIO, es decir,
# en GPIOH2 (pin ACBUS2) por eso 0x400
######################################################################################################
ftdi_layout_signal nSRST -data 0x0200

################################################################
# Especifica en KHz la frecuencia del Clock en el JTAG (TCK)
################################################################
adapter_khz 5000

adapter_nsrst_assert_width 100
adapter_nsrst_delay 100

###############################################################################
# Board config
###############################################################################

source [find target/k60.cfg]

$_TARGETNAME configure -event reset-init {
	puts "-event reset-init occured"
}

#
# Bank definition for the 'program flash' (instructions and/or data)
#
flash bank pflash.0 kinetis 0x00000000 0x40000 0 4 $_TARGETNAME
flash bank pflash.1 kinetis 0x00040000 0x40000 0 4 $_TARGETNAME
flash bank pflash.2 kinetis 0x00080000 0x40000 0 4 $_TARGETNAME
flash bank pflash.3 kinetis 0x000c0000 0x40000 0 4 $_TARGETNAME

reset_config srst_nogate srst_only srst_push_pull connect_assert_srst


init

reset halt

