Date:2011-09-07 09:23:32 (8 years 1 month 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
21: started around 11:53 (M1 configuration is original, without locking)
3(around 500) visually checked boot process; standby was reached normally
4
5
6645: neocon stopped working (around 01:58)
7666: detected neocon failure at run 666: restarted neocon; urjtag failed
8     this cycle; back to normal at 667
9684: 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
13Downloaded 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
20Found 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
30CRC-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
40Reflashed 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
59M1 enters standby normally again.
m1/torture/README
1power-cycling torture test, to see if booting into FN and then
2power-cycling causes NOR corruption.
3
4You 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
15Run
16neocon -a -l log -T /dev/ttyUSB0
17
18Then
19./loop
20
21This 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
29The log file records the console output from the M1, plus time
30stamps and cycle numbers written from the "loop" script.
m1/torture/loop
1#!/bin/sh
2n=0
3while 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
17done
m1rc3/norruption/LOG
1--- Tue 2011-09-06 ------------------------------------------------------------
2
31: 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
8645: neocon stopped working (around 01:58)
9666: detected neocon failure at run 666: restarted neocon; urjtag failed
10     this cycle; back to normal at 667
11684: 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
15Downloaded 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
22Found 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
32CRC-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
42Reflashed 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
61M1 enters standby normally again.
m1rc3/norruption/README
1power-cycling torture test, to see if booting into FN and then
2power-cycling causes NOR corruption.
3
4You 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
15Run
16neocon -a -l log -T /dev/ttyUSB0
17
18Then
19./loop
20
21This 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
29The log file records the console output from the M1, plus time
30stamps and cycle numbers written from the "loop" script.
m1rc3/norruption/loop
1#!/bin/sh
2n=0
3while 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
17done

Archive Download the corresponding diff file

Branches:
master



interactive