You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.8 KiB
Bash
37 lines
1.8 KiB
Bash
1 year ago
|
#!/bin/bash
|
||
|
echo "================================================================================"
|
||
|
echo "| FPGA Gateware Update |"
|
||
|
echo "| |"
|
||
|
echo "| Please ensure that the mpfs_bitstream.spi file containing the gateware |"
|
||
|
echo "| update has been copied to directory /lib/firmware. |"
|
||
|
echo "| |"
|
||
|
echo "| !!! This will take a couple of minutes. !!! |"
|
||
|
echo "| |"
|
||
|
echo "| Give the system a few minutes to reboot itself |"
|
||
|
echo "| after Linux has shutdown. |"
|
||
|
echo "| |"
|
||
|
echo "================================================================================"
|
||
|
|
||
|
read -rsp $'Press any key to continue...\n' -n1 key
|
||
|
|
||
|
mount -t debugfs none /sys/kernel/debug
|
||
|
|
||
|
# Trash exisitng device tree overlay in case the rest of the process fails:
|
||
|
mtd_debug erase /dev/mtd0 0x0 0x10000
|
||
|
|
||
|
# Write device tree overlay
|
||
|
dtbo_ls=$(ls -l /lib/firmware/mpfs_dtbo.spi)
|
||
|
dtbo_size=$(echo $dtbo_ls | cut -d " " -f 5)
|
||
|
|
||
|
mtd_debug write /dev/mtd0 0x400 $dtbo_size /lib/firmware/mpfs_dtbo.spi > /dev/zero
|
||
|
|
||
|
# Fake the presence of a golden image for now.
|
||
|
mtd_debug write /dev/mtd0 0 4 /dev/zero > /dev/zero
|
||
|
|
||
|
# Initiate FPGA update.
|
||
|
echo 1 > /sys/kernel/debug/fpga/microchip_exec_update
|
||
|
|
||
|
# Reboot Linux for the gateware update to take effect.
|
||
|
# FPGA reprogramming takes places between Linux shut-down and HSS restarting the board.
|
||
|
reboot
|