Project

General

Profile

SIMtrace Firmware » History » Version 15

tsaitgaist, 02/19/2016 10:48 PM
$ removed: annoying for copy paste

1 1 laforge
= SIMtrace Firmware =
2
3 4 laforge
The Firmware for the AT91SAM7S device was written by reusing a lot of the code for the [http://www.openpcd.org/ OpenPCD]
4
RFID reader.  
5 1 laforge
6 4 laforge
There is a {{{simtrace}}} Makefile target in the git://git.gnumonks.org/openpcd.git repository containing the latest firmware code.
7
8
Eventually, the OS part of OpenPCD/OpenPICC/SIMtrace will be separated.  At that point, the firmware source can become
9
part of simtrace.git
10
11
== Building the firmware ==
12
13
Precondition: You need to set your PATH in a way that contains an arm-elf [wiki:toolchain], i.e. the same way that you build [wiki:GettingStarted OsmocomBB].
14
15
{{{
16 15 tsaitgaist
git clone git://git.gnumonks.org/openpcd.git
17
cd openpcd/firmware
18
make -f Makefile.dfu BOARD=SIMTRACE
19
make BOARD=SIMTRACE DEBUG=1 TARGET=main_simtrace
20
cat dfu.bin main_simtrace.bin > main_simtrace.samba
21
cd ../..
22 4 laforge
}}}
23
24
=== Firmware parts ===
25
26
The firmware build process creates two images:
27
 * dfu.bin -- the sam7dfu 2nd level bootloader. It implements the USB DFU (Device Firmware Upgrade) profile.
28
 * main_simtrace.bin -- the actual simtrace program. To be loaded via DFU, using [http://dfu-util.gnumonks.org/ dfu-util].
29
 * main_simtrace.samba -- [http://www.openpcd.org/Sam7dfu sam7dfu] + simtrace image. to be loaded via SAM-BA, using sam7utils (see below).
30
31
32 5 laforge
=== sam7utils ===
33 4 laforge
34 9 laforge
SAM-BA images contain a full NOR flash image.  They can be used in case the sam7dfu bootloader was corrupted,
35
and can be installed either using the '''sam7''' program released by Atmel, or via JTAG based flashing.
36
37
Installing firmware using SAM-BA is a bit cumbersome and requires strict adherence to a sequence of USB cable
38
plugging/unplugging and jumper setting, waiting, jumper removal, etc.
39
40
41 4 laforge
sam7utils will be used to flash the '''main_simtrace.samba''' image over SAM-BA.
42
{{{
43 15 tsaitgaist
sudo aptitude install libreadline-dev
44
wget http://www.openpcd.org/dl/sam7utils-0.2.1-bm.tar.bz2
45
tar xf sam7utils-*.tar.bz2
46
cd sam7utils
47
./configure --prefix=/usr/local
48
make
49 4 laforge
}}}
50
51 12 laforge
==== Entering the SAM-BA mode ====
52
The first time you flash the device, you will have to use the SAM-BA method using the main_simtrace.samba image.
53
54
To put the board into SAM-BA mode, use the following steps:
55
56
 * unplug the board
57
 * short TEST to VCC (3.3V) pin using a jumper. leave PA0,PA1,PA2 unconnected.
58
 * power up the board
59
 * wait 20s
60
 * unplug board
61
 * remove jumper
62 14 laforge
63
[[Image(shortTEST.jpg)]]
64
65 12 laforge
Now when the board is attached to USB, lsusb should show :
66
{{{
67
Bus 002 Device 015: ID 03eb:6124 Atmel Corp. at91sam SAMBA bootloader
68
}}}
69
70 13 laforge
'''note for v1.0p boards''': sometimes the SAM-BA mode is not working. This is the case
71
if the 2 LEDs are on when powering up the board while VCC and TEST is shorted. The
72 12 laforge
reason in unknown, but there are several methods to correct this:
73
74
 * press the RESET button while powering up
75
 * touch PA0 (pin 48, on the right upper corner) with a piece of metal
76 13 laforge
 * short PA0 and PA1 (pin 48 and 47, next to each other on the right upper corner)
77 12 laforge
78
As soon as the LEDs go off, the SAM-BA mode is working.
79
80
For more information about SAM-BA, please refer to the Atmel documentation on the AT91SAM7S component.
81
82
83
==== Flashing the firmware ====
84
85 4 laforge
to flash the samba image using serial :
86
{{{
87 15 tsaitgaist
sudo ./sam7 -l /dev/ttyUSB0 --exec set_clock --exec unlock_regions --exec "flash ../openpcd/firmware/main_simtrace.samba"
88 4 laforge
}}}
89
to flash the samba image using libusb :
90 6 laforge
{{{
91 15 tsaitgaist
sudo ./sam7 --exec set_clock --exec unlock_regions --exec "flash ../openpcd/firmware/main_simtrace.samba"
92 11 laforge
}}}
93
94
if you want to use sam7 multiple times, remove the loaded module after each run:
95
{{{
96 15 tsaitgaist
sudo rmmod sam_ba
97 11 laforge
}}}
98
99
==== sam7utils for x86 ====
100
101
On x86, sam7utils will be compiled to communicate with the board using POSIX.
102
103
The board should be attached to a node. On ubuntu 10.10, the usb device 03eb:6124 is mapped on /dev/ttyACM0 using the cdc_cam module. If not mapped, use usbserial :
104
{{{
105 15 tsaitgaist
sudo rmmod usbserial
106
sudo modprobe usbserial vendor=0x03EB product=0x6124
107 11 laforge
}}}
108
109
Now replug board. It should map to /dev/ttyUSBx (use dmesg to know which).
110
111
==== sam7utils for amd64 ====
112
113
On amd64, sam7utils will be compiled to communicate with the board using libusb.
114
115
On ubuntu 10.10 & 11.04, the usb device 03eb:6124 is mapped on /dev/ttyACMx using the cdc_cam module.
116
Remove it while the board is plugged, so sam7utils is able to communicate with it (using libusb for 10.10 and serial for 11.04).
117
{{{
118 15 tsaitgaist
sudo rmmod cdc_acm
119 11 laforge
}}}
120
121
122 1 laforge
=== DFU ===
123 6 laforge
124 9 laforge
The Device Firmware Upgrade (DFU) can be used to replace the SIMtrace payload.
125 6 laforge
126
To get dfu-util:
127
{{{
128 15 tsaitgaist
sudo apt-get install dfu-util
129 6 laforge
}}}
130 1 laforge
131
To flash the firmware:
132
{{{
133 15 tsaitgaist
dfu-util -d 16c0:0762 -a0 -D ./main_simtrace.bin -R
134 1 laforge
}}}
135 9 laforge
136 2 laforge
dfu-util should reset the board and use the DFU bootloader. Try the command a second time if it did not work at first.
137
If this still does not work, power up the board while pressing the '''BOOTLOADER''' button.
138
139
== Bugs ==
140 3 laforge
141
Currently there is a bug in the firmware that makes the device fail to enumerate on OSX. We provide an alternative hacked firmware until we have resolved the issue properly.
142 9 laforge
143
== Version History ==
144 10 laforge
 * v0.2 Fixes ATR handling for older SIMcards.
Add picture from clipboard (Maximum size: 48.8 MB)