feat(fpga_diff): support split-host UVHS workflows - #168
Open
klin02 wants to merge 3 commits into
Open
Conversation
klin02
force-pushed
the
uvhs-doc-new
branch
5 times, most recently
from
September 8, 2026 09:10
5fb251d to
de1220f
Compare
xiaokamikami
approved these changes
Sep 8, 2026
Expose local XDMA controls and a backend-neutral fpga-host environment for caller-owned orchestration. Derive UVHS project names internally, stage portable runtime data, and validate XDMA rescans. The UVHS host environment supplies ILA and DDR hooks plus a run-scoped UART bridge. ILA upload clears capture state, while runtime release remains a caller responsibility.
Reject an occupied runtime UART before binding it so stale readers cannot split the serial byte stream. Use the C locale for nested SSH commands and document the zsh-compatible cleanup trap. Match the default ILA gated clocks to the 0804 runtime database while preserving an override for other hardware.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
pcie_removeandpcie_rescantargets for caller-owned split-host orchestration.host_enventry point: Vivado emits no extra settings, while UVHS supplies ILA arm/upload hooks and the DDR fallback hook.ila_host_env.sh; withBIND_UART=1by default, additionally callbind_uart.shto bridge runtime/dev/ttyUSB0to a unique host PTY and export its cleanup command.fpga_top_debug.core_def.inter_soc_clkas the default gated ILA clock for every CPU profile.runtime_stoprelease UVHS and do nothing for Vivado.PRJ_NAMEfrom backend, CPU, and suffix, and stage a portable UVHS runtime database with copyable paths.Responsibility
env-scripts provides local programming, XDMA,
host_env, UART, ILA, DDR, and runtime-control capabilities. Machine selection, SSH ordering, artifact deployment, and process lifecycle remain caller responsibilities.The corresponding Minjie orchestration is tracked by OpenXiangShan/minjie-playground#31.
Validation
main@d93f67e.make -C fpga_diff -pn check_project_name CPU=kmhbash -n fpga_diff/uvhs/runtime/ila_host_env.sh fpga_diff/uvhs/runtime/bind_uart.sh fpga_diff/tools/pcie-remove.sh fpga_diff/tools/pcie-rescan.shgit diff --check origin/main...HEADBIND_UART=0runs onlyila_host_env.shand emits no UART or cleanup exports.BIND_UART=1combines ILA hooks with the local UART path when runtime and host are the same machine.kmh,nutshell, andnanhuexpand the same defaultUVHS_ILA_GATED_CLOCK.ila_uploadbeforeila_clear.runtime_stopsucceeds as an empty backend implementation.REMOTE_ENV, and XDMA rescan checks from the earlier revision.The final commit was not used for a new full board run.