blob: ee9d8e7fef78d010136e0ebec5bf2bcef921e72c (
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
36
37
38
39
40
41
|
#!/bin/sh
# Generates the YUP commands for DMBootloader for erasing even and odd
# pages
MIN_PAGE=1
MAX_PAGE=992
EVEN_OUTDIR=5_erase_even_pages
ODD_OUTDIR=6_erase_odd_pages
MEMIMAGE=3_cmd_read_all_pages/memory_image
cp $MEMIMAGE ${EVEN_OUTDIR}
cp $MEMIMAGE ${ODD_OUTDIR}
cmd_num=1
for i in $(seq $MIN_PAGE $MAX_PAGE); do
virtual_page=$(( $i - 1 ))
e=${EVEN_OUTDIR}/${cmd_num}_cmd
o=${ODD_OUTDIR}/${cmd_num}_cmd
# Generate erase command and gradually construct images of virtual
# address space with even and odd pages erased
if [ $(( $virtual_page % 2 )) -eq 0 ]; then
./create_dmbootloader_cmd.sh erase $virtual_page $e
{ dd if=/dev/zero bs=1 count=512 | tr '\000' '\377' | \
dd bs=1 of=${EVEN_OUTDIR}/memory_image seek=$(( $virtual_page * 512)) conv=notrunc; } 2>/dev/null
else
./create_dmbootloader_cmd.sh erase $virtual_page $o
{ dd if=/dev/zero bs=1 count=512 | tr '\000' '\377' | \
dd bs=1 of=${ODD_OUTDIR}/memory_image seek=$(( $virtual_page * 512)) conv=notrunc; } 2>/dev/null
cmd_num=$(( $cmd_num + 1 ))
fi
echo "Generated $(( $i )) / $(( $MAX_PAGE ))"
done
# Each Erase command must complete with success
printf '\x00' >${EVEN_OUTDIR}/reply
printf '\x00' >${ODD_OUTDIR}/reply
exit 0
|