Project

General

Profile

SIMtrace Firmware » History » Version 7

Anonymous, 02/19/2016 10:48 PM
Use $ for shell commands

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 7 laforge
$ 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
sam7utils will be used to flash the '''main_simtrace.samba''' image over SAM-BA.
35
{{{
36
sudo aptitude install libreadline-dev
37
wget http://www.openpcd.org/dl/sam7utils-0.2.1-bm.tar.bz2
38
tar xf sam7utils-*.tar.bz2
39
cd sam7utils
40
./configure --prefix=/usr/local
41
make
42
}}}
43
44
to flash the samba image using serial :
45
{{{
46 7 laforge
$ sudo ./sam7 -l /dev/ttyUSB0 --exec set_clock --exec unlock_regions --exec "flash ../openpcd/firmware/main_simtrace.samba"
47 4 laforge
}}}
48
to flash the samba image using libusb :
49
{{{
50 7 laforge
$ sudo ./sam7 --exec set_clock --exec unlock_regions --exec "flash ../openpcd/firmware/main_simtrace.samba"
51 4 laforge
}}}
52
53
if you want to use sam7 multiple times, remove the loaded module after each run:
54
{{{
55 7 laforge
$ sudo rmmod sam_ba
56 4 laforge
}}}
57
58 5 laforge
==== sam7utils for x86 ====
59 4 laforge
60
On x86, sam7utils will be compiled to communicate with the board using POSIX.
61
62
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 :
63
{{{
64 7 laforge
$ sudo rmmod usbserial
65
$ sudo modprobe usbserial vendor=0x03EB product=0x6124
66 4 laforge
}}}
67
68
Now replug board. It should map to /dev/ttyUSBx (use dmesg to know which).
69
70 5 laforge
==== sam7utils for amd64 ====
71 4 laforge
72
On amd64, sam7utils will be compiled to communicate with the board using libusb.
73
74
On ubuntu 10.10 & 11.04, the usb device 03eb:6124 is mapped on /dev/ttyACMx using the cdc_cam module.
75
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).
76
{{{
77
sudo rmmod cdc_acm
78
}}}
79
80 6 laforge
=== DFU ===
81
82
The SAM-BA mode is useful to recover from broken firmwares, but the DFU bootloader included into it is easier to use for updates.
83
You can upload the firmware over USB using dfu-util.
84
85
To get dfu-util:
86
{{{
87 7 laforge
$ sudo apt-get install dfu-util
88 6 laforge
}}}
89
90
To flash the firmware:
91
{{{
92 7 laforge
$ dfu-util -d 16c0:0762 -a0 -D ./main_simtrace.bin -R
93 6 laforge
}}}
94
dfu-util should reset the board and use the DFU bootloader. Try the command a second time if it did not work at first.
95
If this still does not work, power up the board while pressing the '''BOOTLOADER''' button.
96
97 4 laforge
98 1 laforge
== DFU Image ==
99
100
DFU images only contain the actual SIMtrace application firmware, but not the bootloader (sam7dfu).
101
102
They can be installed using '''dfu-util'''.  Their installation does not require any jumper-setting or
103
cable plugging/unplugging.
104
105
 * Firmware v0.2: 
106
== SAM-BA Image ==
107
108 2 laforge
SAM-BA images contain a full NOR flash image.  They can be used in case the sam7dfu bootloader was corrupted,
109
and can be installed either using the '''sam7''' program released by Atmel, or via JTAG based flashing.
110
111
Installing firmware using SAM-BA is a bit cumbersome and requires strict adherence to a sequence of USB cable plugging/unplugging and jumper setting, waiting, jumper removal, etc.
112 3 laforge
113
114
== Bugs ==
115
116
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.
Add picture from clipboard (Maximum size: 48.8 MB)