47 lines
1.8 KiB
Tcl
47 lines
1.8 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 mcs_file [file normalize [getenv_default FLASH_MCS [file join $fpga_dir out flash vcu118_rocket.mcs]]]
|
|
set bin_file [file normalize [getenv_default FLASH_BIN [file join $fpga_dir out flash vcu118_rocket.bin]]]
|
|
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]
|
|
|
|
file mkdir [file dirname $mcs_file]
|
|
file mkdir [file dirname $bin_file]
|
|
|
|
if {![file exists $bit_file]} {
|
|
error "Bitstream not found: $bit_file"
|
|
}
|
|
if {![file exists $app_image]} {
|
|
error "Application flash image not found: $app_image"
|
|
}
|
|
|
|
puts "Generating flash MCS:"
|
|
puts " bitstream: $bit_file @ $bitstream_offset"
|
|
puts " app image: $app_image @ $app_flash_offset"
|
|
puts " size/interface: ${flash_size_mb}MiB $flash_interface"
|
|
|
|
write_cfgmem -force -format MCS -size $flash_size_mb -interface $flash_interface \
|
|
-loadbit "up $bitstream_offset $bit_file" \
|
|
-loaddata "up $app_flash_offset $app_image" \
|
|
$mcs_file
|
|
|
|
write_cfgmem -force -format BIN -size $flash_size_mb -interface $flash_interface \
|
|
-loadbit "up $bitstream_offset $bit_file" \
|
|
-loaddata "up $app_flash_offset $app_image" \
|
|
$bin_file
|
|
|
|
puts "Wrote $mcs_file"
|
|
puts "Wrote $bin_file"
|