GithubHelp home page GithubHelp logo

pico-dirtyjtag's Issues

Support for OpenOCD

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.

USB Port Access

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

Any plans for a UART device?

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?

Compiled from sources... openFPGALoader sometimes reports errors

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
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:
/pico-dirtyJtag/build# openFPGALoader --cable dirtyJtag --detect
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
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:
/pico-dirtyJtag/build# openFPGALoader --cable dirtyJtag --detect
Jtag frequency : requested 6000000Hz -> real 6000000Hz
index 0:
idcode 0x1111043
manufacturer lattice
family ECP5
model LFE5UM-25
irlength 8

modify OpenOCD driver

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

Processing SVF files directly

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?

Openocd Cfg File

Very nice project indeed, i'm looking for openocd Cfg file pico for debugging, can someone share ? i'm using already build uf2

Issues with openFPGALoader on custom board

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.

does this work with openocd?

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.

Build error

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).

SIG_SRST cannot be controlled with BOARD_PICO configuration.

Hey,

First of all, great work on the firmware. However, I've noticed that despite defining #define BOARD_TYPE BOARD_PICO, I am unable to control the pin_rst as "emulate open drain with pull up and direction". So the USB write command "CMD_SETSIG" (0x04) to enable and disable "SIG_SRST" (1 << 6) has no effect.
I observed that in the file pio_jtag.c, the lines 244 and 265:
#if !( BOARD_TYPE == BOARD_QMTECH_RP2040_DAUGHTERBOARD )
have no effect because #include "dirtyJtagConfig.h" is missing and thus, the information about BOARD_TYPE is absent.

By adding #include "dirtyJtagConfig.h" to the pio_jtag.c file, I was able to control the reset pin via USB as desired by the function.

Thank you and best regards,
Dave

cJTAG and OpenOCD

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.

Problem with UrJTAG

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?

Unable to start a detection on UrJTAG

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.