1ère connexion JTAG fonctionnelle TI-Nspire TouchPad
Posted: 17 Mar 2018, 18:38
Les cartes mères de TI-Nspire CX commercialisées depuis la rentrée 2011 disposent d'un emplacement J04 vide.
Mais les modèles de développement et prototypes disposent à cet endroit d'un connecteur alors accessible via une fenêtre ouverte dans le boîtier, connecteur que nous avons déjà référencé.
Dans un article précédent nous réussissions justement notre première connexion JTAG avec une TI-Nspire CX, grâce à un modèle de développement importé d'Asie.
C'est exactement la même situation pour la génération originelle des TI-Nspire ClickPad sorties pour la rentrée 2007, à la différence que le connecteur en question est plus gros et donc non utilisable avec notre interface.
Dans un article précédent, nous découvrions enfin ce qu'il en était de la génération intermédiaire des TI-Nspire TouchPad sorties pour la rentrée 2010, grâce à un prototype une fois de plus importé d'Asie : elles utilisent exactement le même connecteur que les TI-Nspire CX, et les modèles en étant munis sont donc directement connectables à notre interface.
Mais les modèles de développement et prototypes disposent à cet endroit d'un connecteur alors accessible via une fenêtre ouverte dans le boîtier, connecteur que nous avons déjà référencé.
Dans un article précédent nous réussissions justement notre première connexion JTAG avec une TI-Nspire CX, grâce à un modèle de développement importé d'Asie.
C'est exactement la même situation pour la génération originelle des TI-Nspire ClickPad sorties pour la rentrée 2007, à la différence que le connecteur en question est plus gros et donc non utilisable avec notre interface.
Dans un article précédent, nous découvrions enfin ce qu'il en était de la génération intermédiaire des TI-Nspire TouchPad sorties pour la rentrée 2010, grâce à un prototype une fois de plus importé d'Asie : elles utilisent exactement le même connecteur que les TI-Nspire CX, et les modèles en étant munis sont donc directement connectables à notre interface.
Nous voici donc munis de notre Olimex TMS320-JTAG-USB XDS100 V2 et de la carte interface. Le prototype n'ayant pas ici de fenêtre prédécoupée dans le boîtier, la connexion nécessite de retirer totalement la face arrière.
Et bingo, ça marche !
- Code: Select all
openocd.exe -f openocd.cfg
Open On-Chip Debugger 0.9.0 (2016-09-01) [https://github.com/sysprogs/openocd]
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 500 kHz
Error: libusb_open() failed with LIBUSB_ERROR_NOT_SUPPORTED
Info : clock speed 500 kHz
Warn : There are no enabled taps. AUTO PROBING MIGHT NOT WORK!!
Info : JTAG tap: auto0.tap tap/device found: 0xb069316d (mfg: 0x0b6 (ZSP Corp.), part: 0x0693, ver: 0xb)
Warn : AUTO auto0.tap - use "jtag newtap auto0 tap -irlen 29 -expected-id 0xb069316d"
Warn : gdb services need one or more targets defined
Info : JTAG tap: auto0.tap tap/device found: 0x0792606d (mfg: 0x036 (LSI Logic), part: 0x7926, ver: 0x0)
TapName Enabled IdCode Expected IrLen IrCap IrMask
-- ------------------- -------- ---------- ---------- ----- ----- ------
0 auto0.tap Y 0x0792606d 0x00000000 29 0x01 0x03
TargetName Type Endian TapName State
-- ------------------ ---------- ------ ------------------ ------------
Et bingo, ça marche !
OpenOCD nous détecte une puce 0x0792606d. On note donc que contrairement aux TI-Nspire CX, le fabricant de la puce ASIC sur les TI-Nspire TouchPad n'est donc pas TI (0x787), mais LSI Logic (0x036).
Il ne reste plus qu'à mettre à jour notre fichier de configuration OpenOCD en y rajoutant ça :
Et en voici donc maintenant la sortie finale correcte :
Il ne reste plus qu'à mettre à jour notre fichier de configuration OpenOCD en y rajoutant ça :
- Code: Select all
#set DRV "ft2232"
set DRV "ftdi"
set INT "xds100v2"
#set INT "tinyh"
#set TRG "navigator"
#set TRG "viewscreen"
set TRG "nspire"
#set TRG "cx"
#set TRG "none"
# *** DRIVERS ***
interface $DRV
# *** INTERFACES ***
if { $INT=="xds100v2" } {
set INT_DESC "Texas Instruments Inc.XDS100 Ver 2.0"
set INT_VID 0x0403
set INT_PID 0xa6d0
}
if { $INT=="tinyh" } {
set INT_DESC "Olimex OpenOCD JTAG ARM-USB-TINY-H"
set INT_VID 0x15ba
set INT_PID 0x002a
}
if { $DRV=="ft2232" } {
ft2232_device_desc "$INT_DESC"
ft2232_vid_pid $INT_VID $INT_PID
ft2232_layout $INT
}
if { $DRV=="ftdi"} {
ftdi_vid_pid $INT_VID $INT_PID
if { $INT=="xds100v2"} {
ftdi_layout_init 0x0038 0x597b
ftdi_layout_signal nTRST -data 0x0010
ftdi_layout_signal nSRST -oe 0x0100
ftdi_layout_signal EMU_EN -data 0x0020
ftdi_layout_signal EMU0 -oe 0x0040
ftdi_layout_signal EMU1 -oe 0x1000
ftdi_layout_signal PWR_RST -data 0x0800
ftdi_layout_signal LOOPBACK -data 0x4000
}
if { $INT=="tinyh"} {
ftdi_layout_init 0x0808 0x0a1b
ftdi_layout_signal nSRST -oe 0x0200
ftdi_layout_signal nTRST -data 0x0100 -oe 0x0100
ftdi_layout_signal LED -data 0x0800
}
transport select jtag
}
adapter_khz 500
# *** TARGETS ***
if { $TRG=="navigator" } { # TI-Nspire Navigator access point
jtag newtap nsnav jrc -irlen 6 -expected-id 0x2b89102f -ircapture 0x1 -irmask 0x3f
target create nsnav.jrc cortex_a -chain-position nsnav.jrc
}
if { $TRG=="viewscreen" } { # TI-Nspire+ calculator / TI-Nspire ViewScreen
jtag newtap nspirep cpu -irlen 4 -expected-id 0x0692602f
jtag newtap nspirep unknown -irlen 2 -expected-id 0x00000000 -ircapture 0x1 -irmask 0x3
target create nspirep.cpu arm926ejs -endian little -chain-position nspirep.cpu
}
if { $TRG=="cx" } { # TI-Nspire CX calculator
jtag newtap nspire bs -irlen 4 -expected-id 0x1b900f0f
jtag newtap nspire cpu -irlen 4 -expected-id 0x07926f0f
target create nspire.cpu arm926ejs -endian little -chain-position nspire.cpu
}
if { $TRG=="nspire" } { # TI-Nspire calculator
jtag newtap nspire cpu -irlen 4 -expected-id 0x0792606d
target create nspire.cpu arm926ejs -endian little -chain-position nspire.cpu
}
init
if { $DRV=="ftdi" && $INT=="xds100v2"} {
ftdi_set_signal PWR_RST 1
jtag arp_init
}
scan_chain
targets
Et en voici donc maintenant la sortie finale correcte :
- Code: Select all
openocd.exe -f openocd.cfg
Open On-Chip Debugger 0.9.0 (2016-09-01) [https://github.com/sysprogs/openocd]
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 500 kHz
Error: libusb_open() failed with LIBUSB_ERROR_NOT_SUPPORTED
Info : clock speed 500 kHz
Info : JTAG tap: nspire.cpu tap/device found: 0x0792606d (mfg: 0x036 (LSI Logic), part: 0x7926, ver: 0x0)
Info : Embedded ICE version 6
Info : nspire.cpu: hardware has 2 breakpoint/watchpoint units
Info : JTAG tap: nspire.cpu tap/device found: 0x0792606d (mfg: 0x036 (LSI Logic), part: 0x7926, ver: 0x0)
TapName Enabled IdCode Expected IrLen IrCap IrMask
-- ------------------- -------- ---------- ---------- ----- ----- ------
0 nspire.cpu Y 0x0792606d 0x0792606d 4 0x01 0x03
TargetName Type Endian TapName State
-- ------------------ ---------- ------ ------------------ ------------
0* nspire.cpu arm926ejs little nspire.cpu running