feat(jtag): enhance Zynq JTAG detection with PS/PL status

- Remove IP check from Step 1 environment check
- Add PS (ARM DAP) and PL detection to zynq_checker
- Log detailed JTAG chain information in Step 1
- Show PS/PL detection status in GUI logs
- Display JTAG chain devices with type classification
This commit is contained in:
Jeremy Shen
2026-06-10 09:43:02 +08:00
parent 2bde6d869e
commit 62609b6e80
2 changed files with 116 additions and 22 deletions
+15 -11
View File
@@ -509,25 +509,29 @@ class MainWindow(ctk.CTk):
self._vitis_status.configure(text="Vitis: Partial", text_color=WARNING_COLOR)
self._log_message(f" Issues: {'; '.join(result.errors)}")
# Check Zynq IP connectivity
ip = self._config.zynq_ip
self._log_message(f" Checking Zynq IP {ip}...")
if ping_ip(ip, self._config.ping_count, self._config.ping_timeout):
self._log_message(f"{ip} is reachable")
self._ip_status.configure(text=f"IP: {ip}", text_color=SUCCESS_COLOR)
else:
self._log_message(f"{ip} is not reachable")
self._ip_status.configure(text=f"IP: {ip}", text_color=DANGER_COLOR)
return False
# Check Zynq JTAG presence
self._log_message(" Checking Zynq JTAG presence...")
jtag_result = check_zynq_jtag(self._config, self._jtag_callback)
jtag_dict = get_zynq_status_dict(jtag_result)
# Log JTAG chain information
if jtag_result.jtag_chain:
self._log_message(f" JTAG chain: {len(jtag_result.jtag_chain)} device(s)")
for jtag_dev in jtag_result.jtag_chain:
dev_type = "ARM DAP (PS)" if jtag_dev.is_arm_dap else "PL" if jtag_dev.is_pl_device else "Other"
self._log_message(f" - {jtag_dev.name} ({dev_type})")
if jtag_result.is_present:
self._zynq_jtag_present = True
self._zynq_jtag_info = jtag_result.devices[0]
part = jtag_result.devices[0].part_number
# Log PS and PL detection status
ps_status = "" if jtag_result.ps_detected else ""
pl_status = "" if jtag_result.pl_detected else ""
self._log_message(f" PS (ARM DAP): {ps_status}")
self._log_message(f" PL: {pl_status}")
self._log_message(f" ✓ Zynq {part} detected on JTAG chain")
self._jtag_status.configure(text=f"JTAG: {part}", text_color=SUCCESS_COLOR)
else: