Files
gps/targets/fpga/vcu118/flow/vivado/scripts/write_flash_regions.tcl
T
2026-07-12 11:01:51 +03:00

50 lines
2.0 KiB
Tcl

set script_dir [file dirname [file normalize [info script]]]
set fpga_dir [file normalize [file join $script_dir ../..]]
proc getenv_default {name default} {
if {[info exists ::env($name)] && $::env($name) ne ""} {
return $::env($name)
}
return $default
}
set bit_file [file normalize [getenv_default BIT_FILE [file join $fpga_dir out bitstream vcu118_rocket.bit]]]
set app_image [file normalize [getenv_default APP_FLASH_IMAGE [file join $fpga_dir out flash hello_uart.flash.bin]]]
set bitstream_mcs [file normalize [getenv_default BITSTREAM_MCS [file join $fpga_dir out flash regions bitstream.mcs]]]
set app_mcs [file normalize [getenv_default APP_MCS [file join $fpga_dir out flash regions app.mcs]]]
set flash_size_mb [getenv_default FLASH_SIZE_MB 128]
set flash_interface [getenv_default FLASH_INTERFACE SPIx4]
set bitstream_offset [getenv_default BITSTREAM_OFFSET 0x00000000]
set app_flash_offset [getenv_default APP_FLASH_OFFSET 0x06000000]
set region_names [split [getenv_default FLASH_REGION_NAMES "bitstream;app"] ";"]
foreach region $region_names {
if {$region eq ""} {
continue
} elseif {$region eq "bitstream"} {
if {![file exists $bit_file]} {
error "Bitstream not found: $bit_file"
}
file mkdir [file dirname $bitstream_mcs]
puts "Generating bitstream region MCS:"
puts " bitstream: $bit_file @ $bitstream_offset"
write_cfgmem -force -format MCS -size $flash_size_mb -interface $flash_interface \
-loadbit "up $bitstream_offset $bit_file" \
$bitstream_mcs
puts "Wrote $bitstream_mcs"
} elseif {$region eq "app"} {
if {![file exists $app_image]} {
error "Application flash image not found: $app_image"
}
file mkdir [file dirname $app_mcs]
puts "Generating app region MCS:"
puts " app image: $app_image @ $app_flash_offset"
write_cfgmem -force -format MCS -size $flash_size_mb -interface $flash_interface \
-loaddata "up $app_flash_offset $app_image" \
$app_mcs
puts "Wrote $app_mcs"
} else {
error "Unknown flash region: $region"
}
}