From 23b5166c3223d01050472f8190f3875fc65eff16 Mon Sep 17 00:00:00 2001 From: Madeline Busig Date: Thu, 9 Jul 2026 09:16:00 -0700 Subject: [PATCH] Add tcl scripts for opening hardware and running over jtag --- open_hw.tcl | 9 ++++++++ run.tcl | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 open_hw.tcl create mode 100644 run.tcl diff --git a/open_hw.tcl b/open_hw.tcl new file mode 100644 index 0000000..86fc245 --- /dev/null +++ b/open_hw.tcl @@ -0,0 +1,9 @@ +set SRC_XSA_FILE [lindex $argv 0] +set HW_WORK_DIR hw +set WORK_XSA_FILE $HW_WORK_DIR/hw.xsa + +exec mkdir "$HW_WORK_DIR" +exec cp "$SRC_XSA_FILE" "$WORK_XSA_FILE" + +openhw "$WORK_XSA_FILE" + diff --git a/run.tcl b/run.tcl new file mode 100644 index 0000000..4890c14 --- /dev/null +++ b/run.tcl @@ -0,0 +1,61 @@ +set PART xc7z007s +set APP_ELF main.elf + +set HW_WORK_DIR hw +set HW_WORK_XSA_FILE $HW_WORK_DIR/hw.xsa + +set HW_ADDR_BEGIN 0x40000000 +set HW_ADDR_END 0xbfffffff + +# Connect to HW server and get target IDS +connect + +puts "--- Targets ---" +puts "[targets]" +puts "--- ------- ---" + +set TARGET_APU [lindex [targets -filter {name =~ "APU*"}] 0] +set TARGET_PS0 [lindex [targets -filter {name =~ "*A9*#0"}] 0] +set TARGET_PL [lindex [targets -filter {name =~ "$PART"}] 0] + +set TARGET_APU [string trim $TARGET_APU *] +set TARGET_PS0 [string trim $TARGET_PS0 *] +set TARGET_PL [string trim $TARGET_PL *] + +puts "Target APU ID: $TARGET_APU" +puts "Target PS0 ID: $TARGET_PS0" +puts "Target PL ID: $TARGET_PL" + +targets $TARGET_APU + +# Reset and wait +rst -system +after 3000 + +# Program PL +targets $TARGET_PL +fpga -file "$HW_WORK_DIR/bist.bit" + +loadhw -hw "$HW_WORK_XSA_FILE" -mem-ranges [list {0x40000000 0xbfffffff}] + +# Disable access protection for dow command +configparams force-mem-accesses 1 + +# Init and program PS +targets $TARGET_APU + +source "$HW_WORK_DIR/ps7_init.tcl" +ps7_init +ps7_post_config + +targets $TARGET_PS0 + +dow "$APP_ELF" + +# Re-enable access protection +configparams force-mem-accesses 0 + +# Start +targets $TARGET_PS0 +con +