lowRISC / lowRISC/opentitan

[fpga,ci] Consider switching the default JTAG adapter on `master` to FTDI

Open
#30,741 0 comments 0 reactions 0 assignees View on GitHub
Component:CI Component:FPGA Component:Software
Dominant language
SystemVerilog
Stars
3.6k
Forks
1.1k
Avg merge
2d 22h
Merged PRs (30d)
141

Description

### Description

Currently, on `master`, we use the CMSIS-DAP adapter for JTAG. This is limited in its clock speed (up to around 1 MHz), and is poor for streaming larger amounts of data due to the small 256 byte buffers for CMSIS-DAP on HyperDebug.

Now that `master` is only using the CW340 and the CW310 has been dropped (where the CW310 had no FTDI adapter), we should implement #30739 and then switch to use the FTDI adapter by default. This would require:
* Migrate `earlgrey_1.0.0` to only run tests on CW310s. This has a side effect of helping to balance CI load.
* Switch the CW340s in CI to be configured for FTDI (switch from the HD to the FTDI adapter, and remove the jumper JP5 for `USR_DBG_nRST` from each board).
* Change the default adapter in OpenTitanLib. *Optionally*, to ease migration, try both adapters as a fallback and loudly warn if the user is still using CMSIS-DAP without providing the correct option to do so?
* Bump the clock rate used for JTAG commands up to 10-14 MHz (whichever value seems sensible).

This would allow much greater JTAG throughput, which would help greatly with the time taken to load memories to the FPGA in our testing flow.

Contributor guide

Open the contributing guide

Research direction

Start with the implementation requested in #30739, then inspect the CI configurations for earlgrey_1.0.0, CW310, and CW340 and the adapter defaults in OpenTitanLib. Confirm the required board jumper and adapter changes, then verify that CI uses FTDI by default, JTAG runs at the selected higher clock rate, and CMSIS-DAP migration behavior matches the chosen fallback approach.

Written by the indexing model from the issue text.

Assessment

Domain
ci-cd, embedded-iot, performance, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.