element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
Ultra96 Hardware Design Using OpenOCD with Ultra96
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 14 replies
  • Subscribers 333 subscribers
  • Views 3631 views
  • Users 0 members are here
  • openocd
  • jtag
  • usb to jtag
Related

Using OpenOCD with Ultra96

ChuckMcM
ChuckMcM over 6 years ago

I am trying to use OpenOCD with the Ultra96 board and the Avnet JTAG to serial adapter. I'm wondering if anyone has been down this road yet or if I'm the first one.

--Chuck

  • Sign in to reply
  • Cancel

Top Replies

  • sb0
    sb0 over 5 years ago in reply to sb0 +1
    For an example of specifications that would be useful but hopefully without revealing "proprietary information", see e.g. the specs from Olimex: https://www.olimex.com/Products/ARM/JTAG/ARM-USB-OCD-H/…
  • sb0
    sb0 over 5 years ago in reply to bhfletcher +1
    This works and, according to my USB analyzer, corresponds to what the Vivado bloatware does: ``` interface ftdi ftdi_vid_pid 0x0403 0x6010 ftdi_layout_init 0x3dc8 0x02eb ftdi_layout_signal nSRST -data…
  • commandpaul
    commandpaul over 5 years ago in reply to sb0 +1
    This ? https://forums.xilinx.com/t5/ACAP-and-SoC-Boot-and/JTAG-Chain-Configuration-for-Zynq-UltraScale-MPSoC/td-p/758924 , Upstream openocd has some support for zynq mpsoc.
  • bhfletcher
    bhfletcher over 5 years ago

    Hi Chuck,

    I know that Avnet has not used OpenOCD with Ultra96, and I have not heard of anyone else using it either. I don't think this is specific to just the Ultra96 either. I'm not sure OpenOCD is used commonly with any Xilinx board given some of the posts I see online:

     

    https://forums.xilinx.com/t5/ACAP-and-SoC-Boot-and/set-up-device-with-OpenOCD/td-p/974675

    https://forum.sparkfun.com/viewtopic.php?t=45482

     

    However, I do see some limited success as well:

    https://forums.xilinx.com/t5/ACAP-and-SoC-Boot-and/OpenOCD-QSPI-flash-programming-versus-Vivado-special-sauce/td-p/10759…

    https://tomverbeure.github.io/2019/09/15/Loading-a-Spartan-6-bitstream-with-openocd.html

     

    Avnet does not post the schematics for the USB-to-JTAG/UART Pod publicly due to proprietary information. However, if there is a specific pin that you want me to look up, then I can reply.

     

    Bryan

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • sb0
    sb0 over 5 years ago in reply to bhfletcher

    Programming FPGAs and even Zynqs with OpenOCD is nothing new. The issue at hand is getting the proprietary Ultra96 JTAG pod under control of the lower-level OpenOCD layers.

     

    Several things are required for this:

    * Set FTDI GPIO pins to enable level translators for JTAG, UART, and SRST

    * Set FTDI GPIO levels to leave POR untouched, though control of POR with some tool would be nice: Zynq 7000 devices are prone to unrecoverable JTAG lockups in the PS part, and those bugs could be also present in US+. POR is probably usable to work around them.

    * Tell OpenOCD how to control SRST (a questionable design decision by ARM is to disable the JTAG interface until a SRST edge is received; on Zynq this means only the PL is visible until the SRST edge)

     

    What FTDI pins are connected to what? What are the recommended FTDI GPIO register settings?

     

    I tried playing with the GPIO register values, and could get the PL to be detected by OpenOCD (driving all FTDI GPIOs low enables level translators and drives POR low - in this state the US+ chip has the PL only accessible on JTAG) and apparently control SRST and POR by setting some bits in the data register. But the PS never shows up for some reason. It would be good to check that I am not doing something wrong with the GPIOs...

     

    What's up with the proprietary information? It's a FT2232H, voltage regulator, and some combination of SN74LVC1T45 / SN74AVC2T245 translators - no rocket science there. I generally find JTAG solutions on the market to be extremely frustrating (buggy/unstable/temperamental, lacking features, not interoperable, etc.), and withholding such technical information makes it even worse. Do I really need to take the JTAG pod to my dentist for an X-Ray?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • sb0
    sb0 over 5 years ago in reply to sb0

    For an example of specifications that would be useful but hopefully without revealing "proprietary information", see e.g. the specs from Olimex:

    https://www.olimex.com/Products/ARM/JTAG/ARM-USB-OCD-H/

     

    Connected LED Inversion Mask 0x0000

    Connected LED Mask = 0x0800

    nSRST Inversion Mask = 0x0200

    nSRST Mask = 0x0200

    nTRST Inversion Mask = 0x0000

    nTRST Mask = 0x0100

    Output Pins = 0x0F1B

    Output Value = 0x0D08

    Running LED Inversion Mask = 0x0000

    Running LED Mask = 0x0800

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • narrucmot
    narrucmot over 5 years ago in reply to sb0

    Hi Sebastien,

     

    The programming of the FTDI chip on the Ultra96 JTAG/UART adapter is proprietary to Xilinx.  Avnet cannot share this information publicly.  You may want to contact Xilinx directly on their forums:

    https://forums.xilinx.com/

     

    --Tom

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • bhfletcher
    bhfletcher over 5 years ago in reply to narrucmot

    Be aware that you may get pointed to this AR: https://www.xilinx.com/support/answers/68889.html

     

    "the proprietary solution is not documented or supported, and cannot be provided to customers as a reference."

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • sb0
    sb0 over 5 years ago in reply to bhfletcher

    This works and, according to my USB analyzer, corresponds to what the Vivado bloatware does:

     

    ```

    interface ftdi

    ftdi_vid_pid 0x0403 0x6010

     

    ftdi_layout_init 0x3dc8 0x02eb

     

    ftdi_layout_signal nSRST -data 0x0080

     

    reset_config srst_only srst_push_pull

    adapter_nsrst_assert_width 250

    adapter_nsrst_delay 400

     

    ```

     

    Next time just don't bother me with your "proprietary programming" BS.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • sb0
    sb0 over 5 years ago in reply to sb0

    Open On-Chip Debugger 0.10.0

    Licensed under GNU GPL v2

    For bug reports, read

        http://openocd.org/doc/doxygen/bugs.html

    adapter speed: 1000 kHz

    Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.

    Zynq CPU1.

    srst_only separate srst_gates_jtag srst_push_pull connect_deassert_srst

    adapter_nsrst_assert_width: 250

    adapter_nsrst_delay: 400

    Info : clock speed 1000 kHz

    Info : JTAG tap: zynq.tap tap/device found: 0x5ba00477 (mfg: 0x23b (ARM Ltd.), part: 0xba00, ver: 0x5)

    Info : JTAG tap: zynq.dap tap/device found: 0x14710093 (mfg: 0x049 (Xilinx), part: 0x4710, ver: 0x1)

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • sb0
    sb0 over 5 years ago in reply to sb0

    There is still one little problem though: this only works after Vivado has accessed the board at least once. Are you going to tell me what the solution is, or do you want to continue wasting my time with USB dump dissection? It's amazing how some hardware companies make their products deliberately customer-hostile like this.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • commandpaul
    commandpaul over 5 years ago in reply to sb0

    This ? https://forums.xilinx.com/t5/ACAP-and-SoC-Boot-and/JTAG-Chain-Configuration-for-Zynq-UltraScale-MPSoC/td-p/758924 , Upstream openocd has some support for zynq mpsoc.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • bhfletcher
    bhfletcher over 5 years ago in reply to commandpaul

    Thanks, Paul. Hopefully this is helpful to Sebastien.

     

    Saying "proprietary" earlier didn't portray an accurate meaning. I should have said "Xilinx Proprietary" and we are Avnet. Of course our intent is to be customer-friendly. However, there are legal agreements to which we must abide. Xilinx designed the FTDI circuit, wrote the firmware, and developed the software in their tools that interact with it. We have a license to use it, but we are not licensed to share the details. Even if Avnet had the information that you seek, we are not legally allowed to share it. I suggest you read https://www.xilinx.com/support/answers/68889.html, which references this identical circuit used on other Xilinx reference boards, and then use the Xilinx forum to request this same information -- https://forums.xilinx.com/ .

     

    Bryan

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube