...
Code Block |
---|
$ sudo systemctl disable apport.service |
Rebuilding the Image Selector Utility
The core of the Certified Ubuntu for Xilinx Devices boot process on ZCU10x boards is the Image Selector tool. This utility performs the initial boot of the board, reads board-identifying information from the attached EEPROM, and then reboots into a customized set of boot collateral for the specific board it is running on. This is what allows the same Certified Ubuntu for Xilinx Devices SD card image to boot on multiple boards. Typically, there is no need to modify this code. If a user determines that they would like to modify the way that Image Selector operates, it can be rebuilt inside the Vitis environment. The source code of Image Selector is part of the Xilinx embeddedsw
repository on the Xilinx GitHub.
The Tcl code below automates the building of the Image Selector tool inside of Vitis. Be sure to pass the symbol XIS_UART_ENABLE to see the STDOUT info (as seen below).
imgsel
Code Block |
---|
proc generate_imgsel {} {
set xsa [glob -nocomplain -directory [pwd] -type f *.xsa]
puts "Using XSA: $xsa"
setws vitis_workspace
platform create -name [file tail [file rootname $xsa]]_platform_0 -hw $xsa
domain create -name "app_domain" -os standalone -proc psu_cortexa53_0
configbsp -bsp "app_domain" stdin psu_uart_1
configbsp -bsp "app_domain" stdout psu_uart_1
regenbsp -bsp "app_domain"
platform generate
app create -name imgsel -domain app_domain -template "Image Selector"
configapp -app imgsel define-compiler-symbols XIS_UART_ENABLE
app build -name imgsel
elf2bin vitis_workspace/imgsel/Debug/imgsel.elf
}
proc elf2bin {elf} {
set fileId [open bootgen.bif "w"]
puts $fileId "the_ROM_image:"
puts $fileId "\{"
puts $fileId "\t\[fsbl_config\] a53_x64"
puts $fileId "\t\[bootloader, destination_cpu=a53-0\] $elf"
puts $fileId "\}"
close $fileId
} |