| #!/bin/sh |
| |
| if [ ! -e "$1"/mpfs_bitstream.spi ]; then |
| echo "No gateware file found." |
| exit 1 |
| fi |
| |
| if [ ! -d /lib/firmware ] |
| then |
| mkdir /lib/firmware |
| fi |
| |
| cp "$1"/mpfs_dtbo.spi /lib/firmware/mpfs_dtbo.spi |
| cp "$1"/mpfs_bitstream.spi /lib/firmware/mpfs_bitstream.spi |
| |
| mount -t debugfs none /sys/kernel/debug |
| |
| # Trash existing device tree overlay in case the rest of the process fails: |
| flash_erase /dev/mtd0 0 1024 |
| |
| # # Write device tree overlay |
| dd if=/lib/firmware/mpfs_dtbo.spi of=/dev/mtd0 seek=1024 |
| |
| # Fake the presence of a golden image for now. |
| dd if=/dev/zero of=/dev/mtd0 count=4 bs=1 |
| |
| # 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 |