Werner's Miscellanea
Sign in or create your account | Project List | Help
Werner's Miscellanea Commit Details
Date: | 2011-09-07 09:23:32 (12 years 6 months ago) |
---|---|
Author: | Werner Almesberger |
Commit: | 757f19cd7b4e61ff04f1707ccea9fa3b146db220 |
Message: | moved m1/torture/ to more specific m1rc3/norruption/ |
Files: |
m1/torture/LOG (1 diff) m1/torture/README (1 diff) m1/torture/loop (1 diff) m1rc3/norruption/LOG (1 diff) m1rc3/norruption/README (1 diff) m1rc3/norruption/loop (1 diff) |
Change Details
m1/torture/LOG | ||
---|---|---|
1 | ||
2 | 1: started around 11:53 (M1 configuration is original, without locking) | |
3 | (around 500) visually checked boot process; standby was reached normally | |
4 | ||
5 | ||
6 | 645: neocon stopped working (around 01:58) | |
7 | 666: detected neocon failure at run 666: restarted neocon; urjtag failed | |
8 | this cycle; back to normal at 667 | |
9 | 684: checked LEDs again (first time since ~500) and found that standby | |
10 | may be failing. stopping test at 685 (around 02:50) for | |
11 | investigation. | |
12 | ||
13 | Downloaded the standby bitstream: | |
14 | ||
15 | wget https://raw.github.com/milkymist/scripts/master/scripts/reflash_m1.sh | |
16 | chmod 755 reflash_m1.sh | |
17 | ||
18 | ./reflash_m1.sh --read-flash | |
19 | ||
20 | Found two corruptions in the standby bitstream: | |
21 | ||
22 | diff -u <(hexdump -C standby.fpg) <(hexdump -C /home/root/.qi/milkymist/read-flash/2011...) | |
23 | ||
24 | -00000080 00 00 4c 83 00 00 4c 87 00 00 cc 85 d8 47 cc 43 |..L...L......G.C| | |
25 | +00000080 00 00 4c 83 00 00 4c 87 00 00 c4 80 d8 47 cc 43 |..L...L......G.C| | |
26 | ||
27 | -00002840 00 08 cc 26 00 00 00 00 00 00 00 00 0c 44 00 98 |...&.........D..| | |
28 | +00002840 00 00 cc 26 00 00 00 00 00 00 00 00 0c 44 00 98 |...&.........D..| | |
29 | ||
30 | CRC-checked the partitions: | |
31 | ||
32 | git clone git://github.com/milkymist/milkymist | |
33 | cd milkymist/tools/ | |
34 | gcc -Wall -I. -o flterm flterm.c | |
35 | wget http://milkymist.org/updates/current/for-rc3/boot.4e53273.bin | |
36 | ./flterm --port /dev/ttyUSB0 --kernel boot.4e53273.bin | |
37 | ||
38 | only standby.fpg failed the CRC check | |
39 | ||
40 | Reflashed the standby bitstream: | |
41 | ||
42 | wget http://milkymist.org/updates/2011-07-13/for-rc3/fjmem.bit | |
43 | (or http://milkymist.org/updates/fjmem.bit.bz2) | |
44 | wget http://milkymist.org/updates/current/standby.fpg | |
45 | ||
46 | jtag | |
47 | ||
48 | cable milkymist | |
49 | detect | |
50 | instruction CFG_OUT 000100 BYPASS | |
51 | instruction CFG_IN 000101 BYPASS | |
52 | pld load fjmem.bit | |
53 | initbus fjmem opcode=000010 | |
54 | frequency 6000000 | |
55 | detectflash 0 | |
56 | endian big | |
57 | flashmem 0 standby.fpg noverify | |
58 | ||
59 | M1 enters standby normally again. |
m1/torture/README | ||
---|---|---|
1 | power-cycling torture test, to see if booting into FN and then | |
2 | power-cycling causes NOR corruption. | |
3 | ||
4 | You need: | |
5 | - an M1 with JTAG board | |
6 | - a Lab Switch (../../labsw) to control power to the M1 | |
7 | - a USB connection to the Lab Switch | |
8 | - the Lab Switch control tool "labsw" installed | |
9 | - a USB connection to the JTAG board | |
10 | - UrJTAG installed, see | |
11 | http://milkymist.org/wiki/index.php?title=Flashing_the_Milkymist_One#compile_urjtag | |
12 | - neocon from http://svn.openmoko.org/developers/werner/neocon/ | |
13 | (or any other program to monitor and log an outbound serial line) | |
14 | ||
15 | Run | |
16 | neocon -a -l log -T /dev/ttyUSB0 | |
17 | ||
18 | Then | |
19 | ./loop | |
20 | ||
21 | This will: | |
22 | - power-cycle the M1, leaving it powered off for 5 seconds | |
23 | - give it two seconds to power on | |
24 | - boot the "regular" bitstream, i.e., Flickernoise | |
25 | - wait 70 seconds for Flickernoise to start and to render the | |
26 | "The Tunnel" for a few seconds | |
27 | - repeat this forever | |
28 | ||
29 | The log file records the console output from the M1, plus time | |
30 | stamps and cycle numbers written from the "loop" script. |
m1/torture/loop | ||
---|---|---|
1 | #!/bin/sh | |
2 | n=0 | |
3 | while true; do | |
4 | n=`expr $n + 1` | |
5 | echo ===== $n ===== | |
6 | ||
7 | labsw ch1=0 ch2=0 | |
8 | sleep 5 | |
9 | labsw ch1=1 ch2=1 | |
10 | sleep 2 | |
11 | ||
12 | make -C ../jtag-boot boot | |
13 | ||
14 | sleep 60 | |
15 | echo echo === $n === `date` >/dev/ttyUSB0 | |
16 | sleep 10 | |
17 | done |
m1rc3/norruption/LOG | ||
---|---|---|
1 | --- Tue 2011-09-06 ------------------------------------------------------------ | |
2 | ||
3 | 1: started around 11:53 (M1 configuration is original, without locking) | |
4 | (around 500) visually checked boot process; standby was reached normally | |
5 | ||
6 | --- Wed 2011-09-07 ------------------------------------------------------------ | |
7 | ||
8 | 645: neocon stopped working (around 01:58) | |
9 | 666: detected neocon failure at run 666: restarted neocon; urjtag failed | |
10 | this cycle; back to normal at 667 | |
11 | 684: checked LEDs again (first time since ~500) and found that standby | |
12 | may be failing. stopping test at 685 (around 02:50) for | |
13 | investigation. | |
14 | ||
15 | Downloaded the standby bitstream: | |
16 | ||
17 | wget https://raw.github.com/milkymist/scripts/master/scripts/reflash_m1.sh | |
18 | chmod 755 reflash_m1.sh | |
19 | ||
20 | ./reflash_m1.sh --read-flash | |
21 | ||
22 | Found two corruptions in the standby bitstream: | |
23 | ||
24 | diff -u <(hexdump -C standby.fpg) <(hexdump -C /home/root/.qi/milkymist/read-flash/2011...) | |
25 | ||
26 | -00000080 00 00 4c 83 00 00 4c 87 00 00 cc 85 d8 47 cc 43 |..L...L......G.C| | |
27 | +00000080 00 00 4c 83 00 00 4c 87 00 00 c4 80 d8 47 cc 43 |..L...L......G.C| | |
28 | ||
29 | -00002840 00 08 cc 26 00 00 00 00 00 00 00 00 0c 44 00 98 |...&.........D..| | |
30 | +00002840 00 00 cc 26 00 00 00 00 00 00 00 00 0c 44 00 98 |...&.........D..| | |
31 | ||
32 | CRC-checked the partitions: | |
33 | ||
34 | git clone git://github.com/milkymist/milkymist | |
35 | cd milkymist/tools/ | |
36 | gcc -Wall -I. -o flterm flterm.c | |
37 | wget http://milkymist.org/updates/current/for-rc3/boot.4e53273.bin | |
38 | ./flterm --port /dev/ttyUSB0 --kernel boot.4e53273.bin | |
39 | ||
40 | only standby.fpg failed the CRC check | |
41 | ||
42 | Reflashed the standby bitstream: | |
43 | ||
44 | wget http://milkymist.org/updates/2011-07-13/for-rc3/fjmem.bit | |
45 | (or http://milkymist.org/updates/fjmem.bit.bz2) | |
46 | wget http://milkymist.org/updates/current/standby.fpg | |
47 | ||
48 | jtag | |
49 | ||
50 | cable milkymist | |
51 | detect | |
52 | instruction CFG_OUT 000100 BYPASS | |
53 | instruction CFG_IN 000101 BYPASS | |
54 | pld load fjmem.bit | |
55 | initbus fjmem opcode=000010 | |
56 | frequency 6000000 | |
57 | detectflash 0 | |
58 | endian big | |
59 | flashmem 0 standby.fpg noverify | |
60 | ||
61 | M1 enters standby normally again. |
m1rc3/norruption/README | ||
---|---|---|
1 | power-cycling torture test, to see if booting into FN and then | |
2 | power-cycling causes NOR corruption. | |
3 | ||
4 | You need: | |
5 | - an M1 with JTAG board | |
6 | - a Lab Switch (../../labsw) to control power to the M1 | |
7 | - a USB connection to the Lab Switch | |
8 | - the Lab Switch control tool "labsw" installed | |
9 | - a USB connection to the JTAG board | |
10 | - UrJTAG installed, see | |
11 | http://milkymist.org/wiki/index.php?title=Flashing_the_Milkymist_One#compile_urjtag | |
12 | - neocon from http://svn.openmoko.org/developers/werner/neocon/ | |
13 | (or any other program to monitor and log an outbound serial line) | |
14 | ||
15 | Run | |
16 | neocon -a -l log -T /dev/ttyUSB0 | |
17 | ||
18 | Then | |
19 | ./loop | |
20 | ||
21 | This will: | |
22 | - power-cycle the M1, leaving it powered off for 5 seconds | |
23 | - give it two seconds to power on | |
24 | - boot the "regular" bitstream, i.e., Flickernoise | |
25 | - wait 70 seconds for Flickernoise to start and to render the | |
26 | "The Tunnel" for a few seconds | |
27 | - repeat this forever | |
28 | ||
29 | The log file records the console output from the M1, plus time | |
30 | stamps and cycle numbers written from the "loop" script. |
m1rc3/norruption/loop | ||
---|---|---|
1 | #!/bin/sh | |
2 | n=0 | |
3 | while true; do | |
4 | n=`expr $n + 1` | |
5 | echo ===== $n ===== | |
6 | ||
7 | labsw ch1=0 ch2=0 | |
8 | sleep 5 | |
9 | labsw ch1=1 ch2=1 | |
10 | sleep 2 | |
11 | ||
12 | make -C ../../m1/jtag-boot boot | |
13 | ||
14 | sleep 60 | |
15 | echo echo === $n === `date` >/dev/ttyUSB0 | |
16 | sleep 10 | |
17 | done |
Branches:
master