summaryrefslogtreecommitdiff
path: root/example/ice4pi_prog
blob: 5e1f23c77c368528e009f35a728fcc7195607d4f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash


if [ $(grep -c "Raspberry Pi 5" /proc/device-tree/model) -eq 1 ]
then
    echo "Programming from Raspberry Pi 5"
    sys_gpio_num=423
else
    echo "Programming NOT from Raspberry Pi 5 (assuming 2-4 + zero)"
    sys_gpio_num=23
fi

echo ${sys_gpio_num} > /sys/class/gpio/export || true
echo out > /sys/class/gpio/gpio${sys_gpio_num}/direction
echo 1 >/sys/class/gpio/gpio${sys_gpio_num}/value
sleep 1
echo 0 >/sys/class/gpio/gpio${sys_gpio_num}/value

tr '\0' '\377' < /dev/zero | dd bs=1M count=4 of=image iflag=fullblock
dd if=${1} conv=notrunc of=image
flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=20000 -w image
#workaround first time fails after initial programming
flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=20000 -w image
echo 1 >/sys/class/gpio/gpio${sys_gpio_num}/value