phdussud / pico-dirtyjtag Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Hi, I am trying to implement a cJTAG debugger on Pico. I'm already finished PIO part.
The protocol is not so complicated. It is a wakeup sequence and JTAG(TMS+TDO+TDI) transform to cJTAG(TMSC=TMS+TDO+TDI). So there is no difference to the upper.
Do you willing to merge it if I submit a PR?
If yes, Could you tell me the status of OpenOCD support? Where can i get the latest code and example config?
As far as I know, The cJTAG mainly used in RISC-V segment and some TI MCU. Most of RISC-V vendor have their own OpenOCD fork. And I want to use it on RISC-V MCU. I ask this question because I need to patch their code.
The provided firmware works great and I establish communication between my pico and a board with an Samsung S3C2416 via UrJTAG. But unfortunatly I am not familiar with UrJTAG, but rather with OpenOCD.
But I can not find the right configuration to work with this pico.
Any suggestions? I guess it will not be compatible.
dirtyjtag.c:7:10
I am trying to build your firmware with pico-sdk, and I hit the following error:
[ 26%] Building C object CMakeFiles/dirtyJtag.dir/get_serial.c.obj
In file included from /code/pico-dirtyJtag/get_serial.c:27:
/code/pico-sdk/src/rp2_common/pico_unique_id/include/pico/unique_id.h:72:52: error: unknown type name 'uint'; did you mean 'int'?
72 | void pico_get_unique_board_id_string(char *id_out, uint len);
| ^~~~
| int
make[2]: *** [CMakeFiles/dirtyJtag.dir/build.make:102: CMakeFiles/dirtyJtag.dir/get_serial.c.obj] Error 1
make[2]: Leaving directory '/code/pico-dirtyJtag/build'
I am using pico-sdk version 1.2.0 (bfcbefafc5d2a210551a4d9d80b4303d4ae0adf7).
Hi,
I appreciate the effort that you gave while developing the code and everything is well explainable, but actually i am new with jtag as well as rpi pico, so after loading the uf2 file in the pico i lost the usb access to my laptop, so can you please help me with that .Also will i be needing to connect any jtag device on the other hand, currently i am using the analyzer to observe the jtag frames but even after writting to the buffer i am not able to see the frames, so also if some help with this is possible it will mean a lot.
Thanks
Devanshu
Loading devices from SVF files with openFPGALoader take forever.
How difficult would it be to take the SVF parsing from openFPGALoader and run it locally on the RP2040?
It would be nice to be able to send a .SVF file into the RP2040 through a virtual UART and process it locally.
Could we use the SVF parsing from openFPGALoader, or should we look for one that already runs on an MCU?
I'd love for this codebase to also support a UART over the same connection.
Are there any plans for this?
Would a PR for this functionality be interesting?
Same as title. Help me fix it or fix the code PLEASE. It's SUPER IMPORTANT.
Hello, I'm trying to debug a STM32F103 microcontroller using a Raspberry Pico with pico-DirtyJTAG firmware. I successfully flashed the Raspberry and tried connecting to it using openFPGALoader and I think it worked, because I got some IDs of the chip (IDCODE: 0x00000003, manufacturer: 0x001, part: 0x00 vers: 0x0). But openFPGALoader prompted me that the chip was an unknown device for it. So I decided to try out urjtag, but there is one step in the README.md file of your project that I cannot execute - "cable dirtyjtag". There is no "dirtyjtag" in the list of "cables". How do I add it, because I can't find any source that shows adding a "cable" configuration?
a general question, as I want to connect to two jtags. not sure if I can use one rp2040 for both, or use two rp2040s, one for each. Thanks.
Hi. I'm am trying to get this firmware working on a custom RP2040 board but I'm having some issues.
The device does show up after the firmware is loaded:
[10506.385827] usb 1-3.2: new full-speed USB device number 27 using xhci_hcd
[10506.487533] usb 1-3.2: New USB device found, idVendor=1209, idProduct=c0ca, bcdDevice= 1.10
[10506.487547] usb 1-3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[10506.487554] usb 1-3.2: Product: DirtyJTAG
[10506.487559] usb 1-3.2: Manufacturer: Jean THOMAS
[10506.487564] usb 1-3.2: SerialNumber: DC6134A3633A8033
The target board has an ECP5 and only has TDO/TDI/TMS/TCK signals. I have tested the board with openFPGALoader using a USB Blaster cable and it's working as expected, but with the pico-dirtyJtag firmware I get:
$ sudo openFPGALoader -c dirtyJtag --freq 1000 test.bit
getVersion: read: usb bulk read failed -7
Jtag frequency : requested 1000Hz -> real 1000Hz
writeTDI: read: usb bulk read failed -7
JTAG init failed with: Unknown device with IDCODE: 0xeba89991 (manufacturer: 0x4c8 (), part: 0x5d vers: 0xe
Any advice appreciated.
Very nice project indeed, i'm looking for openocd Cfg file pico for debugging, can someone share ? i'm using already build uf2
Building the project in vs code (clear build). Error while JTAG/pio_jtag.c:4:10: fatal error: jtag.pio.h: No such file or directory
Is this a tool configuration issue?
Hi, I am trying to make cJTAG happen.
The current dirtyJtag OpenOCD driver based on bitq interface.
I need issue a command to dirtyJtag to send cJTAG escape sequence / set initial state on pico in bitq_execute_queue(). It seems like it can't be done without heavily modify bitq.c.
I can only think of rewriting dirtyJtag.c completely using ftdi.c as template.
Is there a simple way to archive this?
That's what I want to archive
https://github.com/riscv-collab/riscv-openocd/blob/ae7ffa424e1b686559ae833ce2d384ded47ba4c4/src/jtag/drivers/ftdi.c#L672
Hi,
I need to use the both of UART on the pico. So i modified the code.
Can i submit a pull request?
hi,
Compiled from sources... sometimes reports errors
SDK 1.5.1 default configuration BOARD_TYPE BOARD PICO USB_CDC_UART_BRIDGE 0
root@cnc-centrum:/pico-dirtyJtag/build# openFPGALoader --cable dirtyJtag --detect/pico-dirtyJtag/build# openFPGALoader --cable dirtyJtag --detect
Jtag frequency : requested 6000000Hz -> real 6000000Hz
JTAG init failed with: Unknown device with IDCODE: 0xa0811043 (manufacturer: 0x021 (lattice), part: 0x04 vers: 0xa
root@cnc-centrum:
Jtag frequency : requested 6000000Hz -> real 6000000Hz
JTAG init failed with: Unknown device with IDCODE: 0xf0001043 (manufacturer: 0x021 (lattice), part: 0x00 vers: 0xf
root@cnc-centrum:/pico-dirtyJtag/build# openFPGALoader --cable dirtyJtag --detect/pico-dirtyJtag/build# openFPGALoader --cable dirtyJtag --detect
Jtag frequency : requested 6000000Hz -> real 6000000Hz
JTAG init failed with: Unknown device with IDCODE: 0xf8000043 (manufacturer: 0x021 (lattice), part: 0x40 vers: 0xf
root@cnc-centrum:
Jtag frequency : requested 6000000Hz -> real 6000000Hz
index 0:
idcode 0x1111043
manufacturer lattice
family ECP5
model LFE5UM-25
irlength 8
Raspberry Pi Pico connected to a generic XC6SLX16 development board, work OK with a (patched) openFPGAloader:
sudo ./openFPGALoader --cable dirtyJtag --detect
write to ram
Jtag frequency : requested 6000000Hz -> real 6000000Hz
idcode 0x44002093
manufacturer xilinx
model xc6slx16
family spartan6
But on UrJTAG:
UrJTAG 2021.03 #
Copyright (C) 2002, 2003 ETC s.r.o.
Copyright (C) 2007, 2008, 2009 Kolja Waschk and the respective authors
UrJTAG is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
There is absolutely no warranty for UrJTAG.
warning: UrJTAG may damage your hardware!
Type "quit" to exit, "help" for help.
jtag> cable dirtyjtag
jtag> detect
USB read failed (timeout expired ?)
USB read failed (timeout expired ?)
USB read failed (timeout expired ?)
USB read failed (timeout expired ?)
USB read failed (timeout expired ?)
USB read failed (timeout expired ?)
USB read failed (timeout expired ?)
USB read failed (timeout expired ?)
(it goes on and on for a while like this)
how to talk to this JTAG adapter? will openocd work somehow and do I need write a service daemon on the host PC for pico-dirtyJtag? any doc on how to use this in practice? Thanks.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.