summarylogtreecommitdiffstats
path: root/bpir3-flash2emmc
blob: 8ae71573abf17d87ec4f62d9fe7e6b773f546929 (plain)
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
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/ash

# Tool for %PKGBASE% package, needs to run from initrd!
# Connect UART and when kernel starts, keep 'x' key pressed.

mkdir -p /tmp/mnt
mount --source /dev/disk/by-partlabel/*-sdmmc-root --target /tmp/mnt
[ $? -ne 0 ] && exit
[ ! -e "/tmp/mnt$1" ] && exit
echo "Reading file $1 now..."
cp -f "/tmp/mnt$1" "/tmp/tempfile"
umount /tmp/mnt
[ $? -ne 0 ] && exit

while [ ! -e /sys/block/mmcblk0boot0 ]; do
  echo 11230000.mmc >/sys/bus/platform/drivers/mtk-msdc/unbind
  sleep 0.1
  echo 11230000.mmc >/sys/bus/platform/drivers/mtk-msdc/bind
  echo "Flip SD/EMMC switch now (most near to power plug)!"
  sleep 1.9
done

echo "Setting up EMMC so that mmcblk0boot0 is the bootdevice."
mmc bootpart enable 1 1 /dev/mmcblk0
echo "Writing $1 to EMMC now..."
xz -dcv "/tmp/tempfile" | dd of=/dev/mmcblk0 conv=fsync,notrunc

echo "Copying atf partition to mmcblk0boot0"
echo 0 >/sys/block/mmcblk0boot0/force_ro
dd if=/dev/mmcblk0 of=/dev/mmcblk0boot0 bs=512 skip=34 count=1024 conv=fsync,notrunc
echo 1 >/sys/block/mmcblk0boot0/force_ro

echo "Flip other switch now (most far away from power plug)!"
echo "Reboot and enjoy booting from EMMC."