Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: proper IR quirk handling for Xilinx FPGAs #1620

Merged
merged 7 commits into from
Oct 29, 2023

Conversation

lethalbit
Copy link
Contributor

Detailed description

This fixes potentials issues that one may run into when they have a scan-chain with an Xilinx FPGA on it, as not all Xilinx FPGAs have the 6-bit IR. The documentation such as UG5701 states that the IR is 6-bits as a general rule of thumb, however one must consult the device specific BSDL2 files in order to divine the correct IR length for any given device.

Upon consultation of the BSDL models provided by Xilinx, it is made apparent that the following IR lengths are present: 6, 12, 14, 18, 21, 22, 28, and 38. While the vast majority of the devices are in-fact 6-bit wide IR devices, the chance of encountering a device with one of the other IR lengths is reasonably high.

Rather than individually listing each device ID and it's IR length, effort has been made to reduce the device ID space into the greatest common denominators, which then uses the IR quirks machinery to ensure that the IR length is set correctly.

This should enable more robust handling of scan-chains with Xilinx FPGAs present on them.

Your checklist for this pull request

  • I've read the Code of Conduct
  • I've read the guidelines for contributing to this repository
  • It builds for hardware native (make PROBE_HOST=native)
  • It builds as BMDA (make PROBE_HOST=hosted)
  • I've tested it to the best of my ability
  • My commit messages provide a useful short description of what the commits do

Footnotes

  1. https://docs.xilinx.com/v/u/en-US/ug570-ultrascale-configuration

  2. https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/device-models.html

@dragonmux dragonmux added this to the v2.0 release milestone Sep 9, 2023
@dragonmux dragonmux added Bug Confirmed bug Enhancement General project improvement labels Sep 9, 2023
@lethalbit lethalbit changed the title Fix: propr IR quirk handling for Xilinx FPGAs Fix: proper IR quirk handling for Xilinx FPGAs Sep 10, 2023
@lethalbit lethalbit force-pushed the aki/xilinx branch 4 times, most recently from 2184f90 to bb1ad49 Compare September 16, 2023 21:44
@lethalbit lethalbit force-pushed the aki/xilinx branch 3 times, most recently from 61b47f3 to b4ea79e Compare September 28, 2023 04:13
@dragonmux dragonmux merged commit 41bfd64 into blackmagic-debug:main Oct 29, 2023
6 checks passed
@lethalbit lethalbit deleted the aki/xilinx branch July 22, 2024 16:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Confirmed bug Enhancement General project improvement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants