fix: start hw_server explicitly before Vivado JTAG scan
Previously the TCL script relied on Vivado's connect_hw_server to auto-start hw_server. On Windows this either never worked (hw_server never shows in Task Manager) or hung indefinitely during Vivado's slow batch-mode initialisation. Root cause: hw_server was never started. Changes: - vitis_checker.py: add 'hw_server' to TOOL_ALIASES + get_hw_server_path() - zynq_checker.py: start hw_server via Popen before Vivado, kill in finally - 2s sleep for port binding after start - timeout from config.step_timeouts.check_env (default bumped to 120s) - clean terminate/kill sequence in finally - config_manager.py: check_env default 30 → 120s
This commit is contained in:
@@ -56,6 +56,7 @@ TOOL_ALIASES: dict[str, list[str]] = {
|
||||
"xsct": ["xsct"],
|
||||
"program_flash": ["program_flash"],
|
||||
"bootgen": ["bootgen"],
|
||||
"hw_server": ["hw_server"],
|
||||
}
|
||||
|
||||
# Product subdirectories under xilinx_root to scan (in preference order)
|
||||
@@ -330,6 +331,24 @@ def get_vivado_path(vitis_path: str = "", xilinx_root: str = "") -> str | None:
|
||||
return _find_executable("vivado", vitis_path, platform.system().lower(), xilinx_root)
|
||||
|
||||
|
||||
def get_hw_server_path(vitis_path: str = "", xilinx_root: str = "") -> str | None:
|
||||
"""Find the hw_server executable (Xilinx hardware server).
|
||||
|
||||
hw_server must be running before Vivado/xsct can connect to the
|
||||
JTAG chain. This finder searches the same Vitis/Vivado bin dirs.
|
||||
|
||||
Args:
|
||||
vitis_path: Legacy Vitis installation directory.
|
||||
xilinx_root: Xilinx root directory.
|
||||
|
||||
Returns:
|
||||
Path to hw_server executable, or None.
|
||||
"""
|
||||
return _find_executable(
|
||||
"hw_server", vitis_path, platform.system().lower(), xilinx_root
|
||||
)
|
||||
|
||||
|
||||
# ── Tool version detection ───────────────────────────────────────────
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user