<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wikilegacy.armadeus.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SergioB</id>
	<title>ArmadeusWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wikilegacy.armadeus.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SergioB"/>
	<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Special:Contributions/SergioB"/>
	<updated>2026-04-28T03:46:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=GSM/GPRS&amp;diff=10960</id>
		<title>GSM/GPRS</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=GSM/GPRS&amp;diff=10960"/>
		<updated>2012-06-12T09:32:34Z</updated>

		<summary type="html">&lt;p&gt;SergioB: /* Sending AT commands &amp;quot;manually&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will summarize informations to use the GSM/GPRS/3G module of the [[Wireless_extension_board|APF27Wireless board]] and the [[APF51Dev]] (optional).&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
GSM/GPRS are generally driven through the RS-232 bus. AT commands are used to dialog with the module.&lt;br /&gt;
* GSM MODEM of the [[Wireless_extension_board|APF27Wireless extension board (APW)]] is connected to the UART2 (/dev/ttySMX1) of the [[APF27]].&lt;br /&gt;
* GSM/3G MODEM of the [[APF51Dev]] is connected to the i.MX processor through an UART implemented in the FPGA. So the corresponding bitfile has to loaded before trying to access the MODEM.&lt;br /&gt;
Both are using a Sagem&#039;s Hilo module. Hilo AT commands can be found [http://www.libelium.com/tienda/catalog/images/arduino/AT_Commands.pdf here]&lt;br /&gt;
&lt;br /&gt;
==Linux configuration (APF27Dev only)==&lt;br /&gt;
* Linux will have to be configured in order to tell that an APW is connected to your [[APF27Dev]]:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
System Type  ---&amp;gt;&lt;br /&gt;
    Freescale MXC Implementations  ---&amp;gt;&lt;br /&gt;
            ...&lt;br /&gt;
            Extension board (Wireless (APW))  ---&amp;gt;&lt;br /&gt;
       [*] GSM/GPRS Modem (NEW)&lt;br /&gt;
       [ ] Bluetooth &amp;amp; WiFi module (NEW)&lt;br /&gt;
       [ ] CSI (Camera) pass-through (NEW)&lt;br /&gt;
       [ ] GPS module (NEW)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* reflash you Linux kernel&lt;br /&gt;
&lt;br /&gt;
==Configure serial port==&lt;br /&gt;
====APF27====&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttySMX1              (or /dev/ttymxc1 on recent kernels)&lt;br /&gt;
# stty -F $GSM_DEVICE raw -echo -echoe -echok 115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====APF51Dev====&lt;br /&gt;
	&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;* Don&#039;t forget to put &amp;quot;Wireless&amp;quot; jumper J42 on your [[APF51Dev]] (near microSD connector) &#039;&#039;&#039;AND&#039;&#039;&#039; power on FPGA Bank 3 (with corresponding jumper J39).&amp;lt;/span&amp;gt;&lt;br /&gt;
* On APF51Dev, GSM/3G module is accessed through serial ports synthetized in APF51&#039;s FPGA. So we have to load it first. (Needed dual UARTs FPGA firmware can be found under armadeus-4.0 distribution in &#039;&#039;firmware/pod_scripts&#039;&#039; directory, with the [[POD]] script needed to regenerate it, and is by default installed in rootfs).&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# load_fpga /lib/firmware/fpga/apf51_gsm_gps_firmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Once firmware loaded, drivers related to FPGA can be used :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe irq_ocore&lt;br /&gt;
# modprobe 8250&lt;br /&gt;
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled&lt;br /&gt;
# modprobe twin_uarts_irq_mng&lt;br /&gt;
# modprobe twin_uarts_16750&lt;br /&gt;
serial8250.0: ttyS0 at MMIO 0xb8000020 (irq = 320) is a TI16750&lt;br /&gt;
serial8250.0: ttyS1 at MMIO 0xb8000040 (irq = 321) is a TI16750&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Bring MODEM out of reset state (POK_IN/PWON pin, connected to [[APF51_PMIC#GPIO|PMIC GPIO6]]):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe wm831x-gpio&lt;br /&gt;
# echo 245 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
# echo out &amp;gt; /sys/class/gpio/gpio245/direction&lt;br /&gt;
# echo 1 &amp;gt; /sys/class/gpio/gpio245/value&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Configure serial port:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ls /dev/ttyS*&lt;br /&gt;
/dev/ttyS0  /dev/ttyS1  /dev/ttyS2  /dev/ttyS3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If the /dev/ttyS[0-1] files don&#039;t exist, create it/them with &#039;&#039;mknod&#039;&#039; :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mknod /dev/ttyS0 c 4 64&lt;br /&gt;
# mknod /dev/ttyS1 c 4 65&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttyS0&lt;br /&gt;
# stty -F $GSM_DEVICE raw -echo -echoe -echok 115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Basic Usage==&lt;br /&gt;
===Sending AT commands &amp;quot;manually&amp;quot;===&lt;br /&gt;
* Sending AT commands with &#039;&#039;cu&#039;&#039; utility (be sure to [[cu/uucp|have installed it before]]):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cu -l $GSM_DEVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
( To exit &#039;&#039;cu&#039;&#039; you will have to type &#039;&#039;&#039;~.&#039;&#039;&#039; )&lt;br /&gt;
* Check module presence:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATI3&lt;br /&gt;
SAGEM HiC,A.005.00&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note| If no echo are printed on serial console: you can&#039;t see what you&#039;re typing. In that case, to reactivate the echo, use:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATE1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note| By default, the module starts in auto baudrate. This mays result in loss of communication with baud rate higher than 19200 bauds. To avoid problems, the baud rate has to be fixed (here to 115200 bauds):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+IPR=115200&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
* Get constructor name:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CGMI&lt;br /&gt;
SAGEM&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get model name:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CGMM&lt;br /&gt;
HILO GPRS&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Enter PIN code (here 0000). &#039;&#039;&#039;!! Use your own and beware that you will only get 3 tries !!:&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPIN=&amp;quot;0000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Check PIN code status:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPIN?&lt;br /&gt;
+CPIN: READY&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note|Don&#039;t launch further AT commands if PIN code wasn&#039;t entered successfully}}&lt;br /&gt;
&lt;br /&gt;
* Check module status (0 Ready, 1 Unavailable, 2 Status unknown, 3 Ringing, 4 Call in progress, 5 Asleep):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CPAS&lt;br /&gt;
+CPAS: 0&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get Indicator control (&amp;lt;battchg&amp;gt;[0-4],&amp;lt;signal&amp;gt;[0-4],&amp;lt;service&amp;gt;0/1,&amp;lt;message&amp;gt;0/1,&amp;lt;call&amp;gt;0/1,&amp;lt;smsfull&amp;gt;0/1):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CIND?&lt;br /&gt;
+CIND: 0,4,1,0,0,0,1&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Get signal quality (should be better than 12/99):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CSQ&lt;br /&gt;
+CSQ: 24,99&lt;br /&gt;
&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Voice call &amp;quot;123456789&amp;quot; (; is important here to signify a voice call, otherwise a data call is tried and may fail if you don&#039;t have the right subscribe)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATD&amp;quot;123456789&amp;quot;;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Terminate current call:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
ATH&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sending AT commands in shell scripts===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
GSM_DEVICE=/dev/ttyXXX&lt;br /&gt;
send_at_cmd()&lt;br /&gt;
{&lt;br /&gt;
        echo -e -n &amp;quot;$1\015&amp;quot; &amp;gt; $GSM_DEVICE&lt;br /&gt;
        sleep 1      # Adjustable ! (usleep)&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
send_at_cmd AT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* See &#039;&#039;target/test/test_gsm.sh&#039;&#039; for more details&lt;br /&gt;
&lt;br /&gt;
==Sending SMS==&lt;br /&gt;
* Supposing you are already connected to the modem with cu&lt;br /&gt;
* Check if you can send SMS with your SIM card (you should get +CMGF: (0,1))&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMGF=?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If OK, switch to SMS sending mode:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMGF=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Write a message for 0661234567 phone number:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
AT+CMGW=&amp;quot;0661326109&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Hey ! How are you doing ??&lt;br /&gt;
&amp;gt;                    &amp;lt;-- Ctrl+z to end SMS here&lt;br /&gt;
&lt;br /&gt;
+CMGW: 8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* +CMGW give you the number of your SMS saved in SIM card or phone memory&lt;br /&gt;
* Then, at anytime, you can send your SMS with (pass previous number as parameter):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 AT+CMSS=8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Tools to look at==&lt;br /&gt;
* http://www.developershome.com/sms/freeLibForSMS.asp&lt;br /&gt;
* http://www.gnokii.org/&lt;br /&gt;
* http://www.alamin.org/en/index.html&lt;br /&gt;
* http://www.gammu.org/wiki/index.php?title=Gammu:Main_Page&lt;br /&gt;
* http://gatling.ikk.sztaki.hu/~kissg/gsm/index.html&lt;br /&gt;
&lt;br /&gt;
==Data tranfers (EDGE/3G)==&lt;br /&gt;
&lt;br /&gt;
===PPP installation (done by default on APF51)===&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Device Drivers  ---&amp;gt;&lt;br /&gt;
    [*] Network device support  ---&amp;gt;&lt;br /&gt;
        &amp;lt;M&amp;gt;   PPP (point-to-point protocol) support&lt;br /&gt;
        [ ]     PPP multilink support (EXPERIMENTAL)&lt;br /&gt;
        [ ]     PPP filtering&lt;br /&gt;
        &amp;lt;M&amp;gt;     PPP support for async serial ports&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP support for sync tty ports&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP Deflate compression&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP BSD-Compress compression&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP MPPE compression (encryption) (EXPERIMENTAL)&lt;br /&gt;
        &amp;lt; &amp;gt;     PPP over Ethernet (EXPERIMENTAL)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Networking applications  ---&amp;gt;&lt;br /&gt;
        [*] pppd&lt;br /&gt;
        [ ]   filtering&lt;br /&gt;
        [ ]   radius&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux26 &amp;amp;&amp;amp; make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* reflash kernel &amp;amp; rootfs&lt;br /&gt;
&lt;br /&gt;
===PPP configuration===&lt;br /&gt;
{{Note|Following instructions are given for the French operator &amp;quot;Bouygtel&amp;quot; and may need to be ajusted accordingly, depending on your operator/country}}&lt;br /&gt;
&lt;br /&gt;
* Create a &amp;quot;chat&amp;quot; script that will be used to initiate MODEM dialup (here we use the &amp;quot;cat &amp;gt; xxxx &amp;lt;&amp;lt; EOF trick&amp;quot; to automatically create the file, but you can also manually edit it with &#039;&#039;vi&#039;&#039; or &#039;&#039;nano&#039;&#039;):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/chatscripts/&lt;br /&gt;
# cat &amp;gt; /etc/chatscripts/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
ABORT BUSY ABORT &#039;NO CARRIER&#039; ABORT VOICE ABORT &#039;NO DIALTONE&#039; ABORT &#039;NO ANSWER&#039; ABORT DELAYED ABORT ERROR&lt;br /&gt;
&#039;&#039; AT&lt;br /&gt;
OK AT+IPR=115200&lt;br /&gt;
OK AT+CPIN=&amp;quot;0000&amp;quot;&lt;br /&gt;
OK AT+CFUN=1&lt;br /&gt;
OK AT+COPS?&lt;br /&gt;
OK AT+CSQ&lt;br /&gt;
OK &#039;AT+CGDCONT=1,&amp;quot;IP&amp;quot;,&amp;quot;ebouygtel.com&amp;quot;,&amp;quot;&amp;quot;,0,0&#039;&lt;br /&gt;
OK &#039;AT&amp;amp;FE0Q0V1&#039;&lt;br /&gt;
OK &#039;ATD*99#&#039;&lt;br /&gt;
CONNECT &amp;quot;&amp;quot;&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Don&#039;t forget to set the baudrate (default: 115200) to have a stable communication between the modem and the processor&lt;br /&gt;
* Don&#039;t forget to update &amp;quot;AT+CPIN=&amp;quot; with your real PIN code and &amp;quot;AT+CGDCONT&amp;quot; and &amp;quot;ATD*99#&amp;quot; with your operator parameters.&lt;br /&gt;
* If you want to test your chat script (verbose mode -v, on console -s, with 5 second timeout by default for commands -t 5), then launch:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# /usr/sbin/chat -v -s -t 5 -f /etc/chatscripts/bouygtel &amp;gt; $GSM_DEVICE &amp;lt; $GSM_DEVICE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If this test was OK, you may have to poweroff/poweron the MODEM to bring it to its initial state and go further.&lt;br /&gt;
&lt;br /&gt;
====For &#039;&#039;&#039;APF51&#039;&#039;&#039;====&lt;br /&gt;
* create the PPPd config files (&#039;&#039;/etc/ppp/peers/bouygtel&#039;&#039; and &#039;&#039;/etc/ppp/options.ttyS0&#039;&#039;):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/ppp/peers/&lt;br /&gt;
# cat &amp;gt; /etc/ppp/peers/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
noauth&lt;br /&gt;
connect &amp;quot;/usr/sbin/chat -v -t 5 -f /etc/chatscripts/bouygtel&amp;quot;&lt;br /&gt;
debug&lt;br /&gt;
ttyS0&lt;br /&gt;
defaultroute&lt;br /&gt;
noipdefault&lt;br /&gt;
usepeerdns&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
# cat &amp;gt; /etc/ppp/options.ttyS0 &amp;lt;&amp;lt;EOF&lt;br /&gt;
115200&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====For &#039;&#039;&#039;APF27&#039;&#039;&#039;====&lt;br /&gt;
{{Note| Check if /dev/ttySMX1 exists, if not create it with :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
mknod /dev/ttySMX1 c 204 42&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
* create the PPPd config files (&#039;&#039;/etc/ppp/peers/bouygtel&#039;&#039; and &#039;&#039;/etc/ppp/options.ttySMX1&#039;&#039;):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mkdir -p /etc/ppp/peers/&lt;br /&gt;
# cat &amp;gt; /etc/ppp/peers/bouygtel &amp;lt;&amp;lt;EOF&lt;br /&gt;
noauth&lt;br /&gt;
connect &amp;quot;/usr/sbin/chat -v -t 5 -f /etc/chatscripts/bouygtel&amp;quot;&lt;br /&gt;
debug&lt;br /&gt;
ttySMX1&lt;br /&gt;
defaultroute&lt;br /&gt;
noipdefault&lt;br /&gt;
usepeerdns&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
# cat &amp;gt; /etc/ppp/options.ttySMX1 &amp;lt;&amp;lt;EOF&lt;br /&gt;
115200&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===PPP Usage===&lt;br /&gt;
* Load PPP module:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe ppp          (APF27)&lt;br /&gt;
or&lt;br /&gt;
# modprobe ppp_async    (APF51)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Setup serial port name depending on your platform (&#039;&#039;/dev/ttyS0&#039;&#039; on APF51, &#039;&#039;/dev/ttySMX1&#039;&#039; on APF27)&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# export GSM_DEVICE=/dev/ttyS0&lt;br /&gt;
or&lt;br /&gt;
# export GSM_DEVICE=/dev/ttySMX1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Launch the beast:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# pppd $GSM_DEVICE 115200 call bouygtel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Test===&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ping www.google.fr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Troubleshots ===&lt;br /&gt;
* Might be needed after a successful IP setup:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# cp /etc/ppp/resolv.conf /etc/resolv.conf&lt;br /&gt;
# route add default ppp0     (due to defaultroute option in ppp ?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* To see what happened after having launched &#039;&#039;pppd&#039;&#039; or &#039;&#039;chat&#039;&#039;:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# tail -f /var/log/messages&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==GSM Muxing==&lt;br /&gt;
===Why ?===&lt;br /&gt;
* By default AT commands usage is single threaded, ie only one program can open MODEM serial port and send AT commands at a given time. However it could be interesting to be able to send multiple AT commands from multiple programs at the same time, for example in order to: have a PPP link, send SMS and monitor network signal quality.&lt;br /&gt;
* This can be done by a &amp;quot;GSM mux&amp;quot;, if your MODEM support the GSM 07.10 muxing norm (which is the case with our HiLo modules).&lt;br /&gt;
===Build gsmmux===&lt;br /&gt;
* To build GSM mux (if not already done):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Hardware handling  ---&amp;gt;&lt;br /&gt;
        [*] gsmmux&lt;br /&gt;
              Version to use (sagem)  ---&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use it===&lt;br /&gt;
* If you have access to Sagem&#039;s version (you will get as much as virtual serial port as times you pass &#039;&#039;/dev/ptmx&#039;&#039; to the daemon):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# gsmMuxd -p $GSM_DEVICE -b 115200 -x /dev/ptmx /dev/ptmx /dev/ptmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Virtual serial ports will be created in &#039;&#039;/dev/pts/&#039;&#039;:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
/dev/pts/0 /dev/pts/1 /dev/pts/2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* to know how &#039;&#039;/dev/ptmx&#039;&#039; &amp;amp; &#039;&#039;/dev/pts/x&#039;&#039; is working: [http://linux.die.net/man/4/ptmx]&lt;br /&gt;
* If you have telnet or SSH sessions running &#039;&#039;/dev/pts/0&#039;&#039; may already be used ans so virtual serial ports will be allocated from &#039;&#039;/dev/pts/1&#039;&#039;, etc...&lt;br /&gt;
&lt;br /&gt;
===Going further===&lt;br /&gt;
* In recent Linux kernels, there is also a driver to hanlde GSM muxing: n_gsm&lt;br /&gt;
* People wanting to do a &amp;quot;real&amp;quot; phone can take a look at [http://ofono.org/documentation ofono]&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://support.sagemcom.com/site/modele_fax.php?page=produit&amp;amp;numero_type=22&amp;amp;produit=877 HiLo 3G documentation at Sagem]&lt;br /&gt;
* [http://www.libelium.com/tienda/catalog/images/arduino/AT_Commands.pdf HiLo AT Commands]&lt;br /&gt;
* [http://www.developershome.com/sms/ SMS tutorial]&lt;br /&gt;
* http://wiki.openmoko.org/wiki/Neo_1973_and_Neo_FreeRunner_gsm_modem&lt;br /&gt;
* [http://www.anotherurl.com/library/at_test.htm AT Test commands]&lt;br /&gt;
* http://www.gsm-modem.de/gsm-faq.html&lt;br /&gt;
* [http://www.technologuepro.com/gsm/commande_at.htm Les commandes AT]&lt;br /&gt;
&lt;br /&gt;
[[Category:Wireless]]&lt;/div&gt;</summary>
		<author><name>SergioB</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Target_Software_Installation&amp;diff=10710</id>
		<title>Target Software Installation</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Target_Software_Installation&amp;diff=10710"/>
		<updated>2012-02-29T10:09:34Z</updated>

		<summary type="html">&lt;p&gt;SergioB: /* Linux kernel installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page you will learn how to flash new U-Boot, Linux and rootfs images on your APF module.&lt;br /&gt;
&lt;br /&gt;
==Configure U-Boot==&lt;br /&gt;
&lt;br /&gt;
===Environment variables===&lt;br /&gt;
U-Boot can be customized in a flexible way with the use of &amp;quot;environment variables/scripts&amp;quot;.&lt;br /&gt;
The command &#039;&#039;&#039;printenv&#039;&#039;&#039; shows you most of them and their current value:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; printenv&lt;br /&gt;
 bootcmd=run jffsboot&lt;br /&gt;
 bootdelay=20&lt;br /&gt;
 baudrate=115200&lt;br /&gt;
 ethaddr=&lt;br /&gt;
 autoload=no&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The command &#039;&#039;&#039;setenv&#039;&#039;&#039; is used to change these variables. For example, to set the IP address (don&#039;t do it yet):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; setenv ipaddr 192.168.0.10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The command &#039;&#039;&#039;saveenv&#039;&#039;&#039; is used to save the state of your environment variables in FLASH memory; that way they will be available at next boot:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
 Saving Environment to Flash...&lt;br /&gt;
 . done&lt;br /&gt;
 Un-Protected 1 sectors&lt;br /&gt;
 Erasing Flash...&lt;br /&gt;
 . done&lt;br /&gt;
 Erased 1 sectors&lt;br /&gt;
 Writing to Flash... done&lt;br /&gt;
 . done&lt;br /&gt;
 Protected 1 sectors&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Network configuration===&lt;br /&gt;
In order to use the U-Boot&#039;s network features, you have to set the network environment variables:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; setenv netmask 255.255.255.0                (this default value should be fine in most situations)&lt;br /&gt;
 BIOS&amp;gt; setenv ipaddr 192.168.0.10 &lt;br /&gt;
 BIOS&amp;gt; setenv serverip 192.168.0.2                 (the IP address of your tftp server/PC hosting the files to download)&lt;br /&gt;
 BIOS&amp;gt; setenv rootpath &amp;quot;/tftpboot/apf9328-root&amp;quot;    (to boot Linux over NFS)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can use the &#039;&#039;&#039;dhcp&#039;&#039;&#039; command to configure these variables from your DHCP server. You probably will have to adjust the &#039;&#039;&#039;serverip&#039;&#039;&#039; variable manually.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; dhcp&lt;br /&gt;
 dm9000 i/o: 0x15c00000, id: 0x90000a46&lt;br /&gt;
 MAC: 00:0e:32:00:00:01&lt;br /&gt;
 operating at 100M full duplex mode&lt;br /&gt;
 BOOTP broadcast 1&lt;br /&gt;
 DHCP client bound to address 192.168.0.10&lt;br /&gt;
 BIOS&amp;gt; setenv serverip 192.168.0.2&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Do not forget to save your changes in FLASH, to have them available at next power up:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In case of troubles you can use the following U-Boot script to reset the variables to the &amp;quot;factory&amp;quot;/default settings:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run flash_reset_env&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Linux kernel installation==&lt;br /&gt;
XX, in the following chapters, has to be replaced by your board name&lt;br /&gt;
&lt;br /&gt;
* Check that your Armadeus kernel image size is smaller than the U-Boot partition (see [[#Flash_memory_partitions|Flash Memory Partitions]] for size allowances):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ ls -al buildroot/binaries/XX/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If yes, copy it to your TFTP server directory (here &#039;&#039;/tftpboot/&#039;&#039;):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ cp buildroot/binaries/XX/XX-linux.bin /tftpboot/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Load kernel image with U-Boot through network:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; tftpboot ${loadaddr} XX-linux.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or with the serial line:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; loadb ${loadaddr}&lt;br /&gt;
     &#039;&#039;Ctrl+Altgr+\+c to access kermit command line then:&#039;&#039;&lt;br /&gt;
 (/home/.../) C-Kermit&amp;gt;send /tftpboot/XX-linux.bin&lt;br /&gt;
     &#039;&#039;After download is completed, you can type the c command to reconnect to the terminal:&#039;&#039;&lt;br /&gt;
 (/home/.../) C-Kermit&amp;gt;c&lt;br /&gt;
 Connecting to /dev/ttyUSB0, speed 115200&lt;br /&gt;
  Escape character: Ctrl-\ (ASCII 28, FS): enabled&lt;br /&gt;
 Type the escape character followed by C to get back,&lt;br /&gt;
 or followed by ? to see other options.&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 ## Total Size      = 0x0013d0b0 = 1298608 Bytes&lt;br /&gt;
 ## Start Addr      = 0x08000000&lt;br /&gt;
 BIOS&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{{Warning|If the loaded kernel image is too large, the following operation can destroy data that are stored after the partition limits (e.g. RootFS)}}&lt;br /&gt;
Check that transfered size value is less than the ones specified here [[#Flash_memory_partitions|Flash Memory Partitions]]&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 Bytes transferred = 1313216 (1409c0 hex)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* You can test your new kernel image without flashing it with; if so you will have to reload it again after test:&lt;br /&gt;
** &#039;&#039;&#039;Please note&#039;&#039;&#039;: The &#039;&#039;bootm&#039;&#039; command is not supported by [[APF51]] boards yet; directly flash the kernel with the below commands instead&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; bootm ${loadaddr}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* a U-Boot script exists to ease kernel image loading through Ethernet:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run download_kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* After kernel image has been downloaded into RAM memory, you can flash it with:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run flash_kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* To make it easier, you can use automatic scripts that will download the image and flash it in the same go. So next time you will only launch:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run update_kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* To know what &#039;&#039;update_kernel&#039;&#039; script is doing you can display its content:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; printenv update_kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If you only want to try a new kernel without flashing the kernel image you can launch it directly from RAM:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; setenv bootargs ${console} ${mtdparts}; run addjffsargs addipargs; bootm&lt;br /&gt;
(the kernel image you want to try must have been loaded at ${loadaddr})&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==rootfs installation==&lt;br /&gt;
&lt;br /&gt;
* Check that your Armadeus rootfs image size is smaller than the rootfs partition (see [[#Flash_memory_partitions|Flash Memory Partitions]] for size allowances):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ ls -al buildroot/output/images/&lt;br /&gt;
 ...&lt;br /&gt;
 [armadeus]$ cp buildroot/output/images/XX-rootfs.ubi /tftpboot/        (apf9328-rootfs.jffs2 on [[APF9328]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Load rootfs image with U-Boot through network:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; tftpboot ${loadaddr} XX-rootfs.ubi                (apf9328-rootfs.jffs2 on [[APF9328]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For large rootfs (bigger than the available RAM on your system) please use this method (&#039;&#039;&#039;not&#039;&#039;&#039; supported on the [[APF9328]]):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; tftpboot ${rootfs_offset} XX-rootfs.ubi nand&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or serial line:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
BIOS&amp;gt; loadb ${loadaddr}&lt;br /&gt;
    &#039;&#039;Ctrl+Altgr+\+c to access kermit command line then...&#039;&#039;&lt;br /&gt;
(/home/.../) C-Kermit&amp;gt;send path_to_your_host_buildroot_dir/XX-rootfs.ubi&lt;br /&gt;
    &#039;&#039;After download is completed, you can type the c command to reconnect to the terminal:&#039;&#039;&lt;br /&gt;
(/home/.../) C-Kermit&amp;gt;c&lt;br /&gt;
Connecting to /dev/ttyUSB0, speed 115200&lt;br /&gt;
 Escape character: Ctrl-\ (ASCII 28, FS): enabled&lt;br /&gt;
Type the escape character followed by C to get back,&lt;br /&gt;
or followed by ? to see other options.&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
## Total Size      = 0x........&lt;br /&gt;
## Start Addr      = 0x........&lt;br /&gt;
BIOS&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Flash rootfs image with:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run flash_rootfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Now you should be ready to test Linux:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* To make it easier, you can use U-Boot scripts we defined. So next time you will only launch:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run update_rootfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FPGA firmware test==&lt;br /&gt;
&lt;br /&gt;
The FPGA firmwares are all located in the &#039;&#039;firmware/&#039;&#039; directory of your Armadeus view:&lt;br /&gt;
 [armadeus]$ ls firmware/&lt;br /&gt;
 apf_pkg  BRAMTest  bus_led  led  PS2  PS2_Opencore  servo  sram_test  wishbone_example  Xtools&lt;br /&gt;
You can make some trials with the &#039;&#039;firmware/PS2/ps2_top.bin&#039;&#039; file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Warning| for the APF9328, Check that your bitfile size is smaller than the firmware partition size (256KB) before trying the following commands or you may corrupt your Linux kernel FLASH partition !!!}}&lt;br /&gt;
{{Note | For the APF51 only binary file format work (&#039;&#039;&#039;.bin&#039;&#039;&#039;). Do not use &#039;&#039;&#039;.bit&#039;&#039;&#039; format}}&lt;br /&gt;
&lt;br /&gt;
* Load FPGA firmware image file with U-Boot through:&amp;lt;br&amp;gt;&lt;br /&gt;
Ethernet:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; tftpboot ${loadaddr} fpgafirmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;fpgafirmware.bin&#039;&#039; is of course the name of your bitfile stored in your TFTP shared directory (&#039;&#039;/tftpboot/&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
or serial line:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; loadb ${loadaddr}&lt;br /&gt;
 Ctrl+Altgr+\+c to access kermit command line then...&lt;br /&gt;
 C-Kermit&amp;gt; send path_to_your_tftp/fpgafirmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then you can type the c command to reconnect to the terminal&lt;br /&gt;
&lt;br /&gt;
* Test your new FPGA firmware&#039;s downloading:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; fpga load 0 ${loadaddr} ${firmware_len}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FPGA firmware installation==&lt;br /&gt;
&lt;br /&gt;
* Flash your firmware image with:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run flash_firmware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* When you are &#039;&#039;&#039;satisfied with your firmware&#039;&#039;&#039;, you can make it &amp;quot;autoloaded&amp;quot; at power up:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; setenv firmware_autoload 1&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Update U-Boot==&lt;br /&gt;
&lt;br /&gt;
There are two steps to update U-Boot:&lt;br /&gt;
===Load the new U-Boot code in RAM===&lt;br /&gt;
You can use the following commands to download U-boot:&amp;lt;br&amp;gt;&lt;br /&gt;
*With Ethernet and a TFTP server:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; tftpboot ${loadaddr} apf9328-u-boot.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*With Ethernet and a NFS server:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; nfs ${loadaddr} host_ip_addr:/nfs_path_to_buildroot/apf9328-u-boot.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*With kermit and the serial/RS232 line&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; loadb ${loadaddr}&lt;br /&gt;
    &amp;lt;CTRL&amp;gt;&amp;lt;ALT GR&amp;gt;\&lt;br /&gt;
    c&lt;br /&gt;
    send path_to_buildroot/apf9328-u-boot.bin&lt;br /&gt;
    c&amp;lt;ENTER&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transfer code from RAM to Flash memory===&lt;br /&gt;
There is a simple U-Boot command/script to do that:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run flash_uboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advanced informations can be found at the [[BootLoader]] wiki page.&lt;br /&gt;
&lt;br /&gt;
==Flash memory partitions==&lt;br /&gt;
===APF9328 Flash memory partitions===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;APF9328 Flash memory partitions&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! width=&amp;quot;40%&amp;quot; | Armadeus 2.x address range &amp;lt;br&amp;gt;(index from FLASH physical @ 0x10000000) !! width=&amp;quot;40%&amp;quot; | Armadeus 3 address range &amp;lt;br&amp;gt;(index from FLASH physical @ 0x10000000) !! Type&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x000000 - 0x03FFFF ( 256KB )&lt;br /&gt;
|0x000000 - 0x03FFFF ( 256KB )&lt;br /&gt;
| U-Boot&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x040000 - 0x5FFFF ( 128KB )&lt;br /&gt;
|0x040000 - 0x5FFFF ( 128KB )&lt;br /&gt;
| U-Boot environment variables&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x060000 - 0x9FFFF ( 256KB )&lt;br /&gt;
|0x060000 - 0x9FFFF ( 256KB )&lt;br /&gt;
| FPGA bitfile&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x0A0000 - &#039;&#039;&#039;0x21FFFF ( 1.5MB )&#039;&#039;&#039;&lt;br /&gt;
|0x0A0000 - &#039;&#039;&#039;0x29FFFF ( 2MB )&#039;&#039;&#039;&lt;br /&gt;
| Linux kernel image&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;0x220000&#039;&#039;&#039; - End of FLASH ( ~6 MB or ~14MB  )&lt;br /&gt;
|&#039;&#039;&#039;0x2A0000&#039;&#039;&#039; - End of FLASH ( ~5.5 MB or ~13.5MB  )&lt;br /&gt;
| Root filesystem&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===APF27 Flash memory partitions===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;APF27 Flash memory partitions&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
!  width=&amp;quot;80%&amp;quot; | NAND flash address range !! Type&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x00000000 - 0x0009FFFF (640KB, including NAND SPL and 384KB spare memory for bad blocks)&lt;br /&gt;
| U-Boot&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x000A0000 - 0x000FFFFF (384KB)&lt;br /&gt;
| U-Boot environment variables&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00100000 - 0x0017FFFF (512KB)&lt;br /&gt;
| FPGA bitfile&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00180000 - 0x0067FFFF (5MB)&lt;br /&gt;
| Linux kernel image&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00680000 - End of FLASH (&amp;gt;~250MB)&lt;br /&gt;
| Root filesystem&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===APF51 Flash memory partitions===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;APF51 Flash memory partitions&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
!  width=&amp;quot;80%&amp;quot; | NAND flash address range !! Type&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x00000000 - 0x000fffff (1MB, including NAND SPL and spare memory for bad blocks)&lt;br /&gt;
| U-Boot&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x00100000 - 0x001fffff (1MB)&lt;br /&gt;
| U-Boot environment variables&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00200000 - 0x002fffff (1MB)&lt;br /&gt;
| FPGA bitfile&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00300000 - 0x00afffff (8MB)&lt;br /&gt;
| Linux kernel image&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00b00000 - End of FLASH (&amp;gt;~500MB)&lt;br /&gt;
| Root filesystem&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>SergioB</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Target_Software_Installation&amp;diff=10709</id>
		<title>Target Software Installation</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Target_Software_Installation&amp;diff=10709"/>
		<updated>2012-02-29T10:07:00Z</updated>

		<summary type="html">&lt;p&gt;SergioB: /* Linux kernel installation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page you will learn how to flash new U-Boot, Linux and rootfs images on your APF module.&lt;br /&gt;
&lt;br /&gt;
==Configure U-Boot==&lt;br /&gt;
&lt;br /&gt;
===Environment variables===&lt;br /&gt;
U-Boot can be customized in a flexible way with the use of &amp;quot;environment variables/scripts&amp;quot;.&lt;br /&gt;
The command &#039;&#039;&#039;printenv&#039;&#039;&#039; shows you most of them and their current value:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; printenv&lt;br /&gt;
 bootcmd=run jffsboot&lt;br /&gt;
 bootdelay=20&lt;br /&gt;
 baudrate=115200&lt;br /&gt;
 ethaddr=&lt;br /&gt;
 autoload=no&lt;br /&gt;
 ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The command &#039;&#039;&#039;setenv&#039;&#039;&#039; is used to change these variables. For example, to set the IP address (don&#039;t do it yet):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; setenv ipaddr 192.168.0.10&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The command &#039;&#039;&#039;saveenv&#039;&#039;&#039; is used to save the state of your environment variables in FLASH memory; that way they will be available at next boot:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
 Saving Environment to Flash...&lt;br /&gt;
 . done&lt;br /&gt;
 Un-Protected 1 sectors&lt;br /&gt;
 Erasing Flash...&lt;br /&gt;
 . done&lt;br /&gt;
 Erased 1 sectors&lt;br /&gt;
 Writing to Flash... done&lt;br /&gt;
 . done&lt;br /&gt;
 Protected 1 sectors&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Network configuration===&lt;br /&gt;
In order to use the U-Boot&#039;s network features, you have to set the network environment variables:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; setenv netmask 255.255.255.0                (this default value should be fine in most situations)&lt;br /&gt;
 BIOS&amp;gt; setenv ipaddr 192.168.0.10 &lt;br /&gt;
 BIOS&amp;gt; setenv serverip 192.168.0.2                 (the IP address of your tftp server/PC hosting the files to download)&lt;br /&gt;
 BIOS&amp;gt; setenv rootpath &amp;quot;/tftpboot/apf9328-root&amp;quot;    (to boot Linux over NFS)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You can use the &#039;&#039;&#039;dhcp&#039;&#039;&#039; command to configure these variables from your DHCP server. You probably will have to adjust the &#039;&#039;&#039;serverip&#039;&#039;&#039; variable manually.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; dhcp&lt;br /&gt;
 dm9000 i/o: 0x15c00000, id: 0x90000a46&lt;br /&gt;
 MAC: 00:0e:32:00:00:01&lt;br /&gt;
 operating at 100M full duplex mode&lt;br /&gt;
 BOOTP broadcast 1&lt;br /&gt;
 DHCP client bound to address 192.168.0.10&lt;br /&gt;
 BIOS&amp;gt; setenv serverip 192.168.0.2&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Do not forget to save your changes in FLASH, to have them available at next power up:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
In case of troubles you can use the following U-Boot script to reset the variables to the &amp;quot;factory&amp;quot;/default settings:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run flash_reset_env&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Linux kernel installation==&lt;br /&gt;
XX, in the following chapters, has to be replaced by your board name&lt;br /&gt;
&lt;br /&gt;
* Check that your Armadeus kernel image size is smaller than the U-Boot partition (see [[#Flash_memory_partitions|Flash Memory Partitions]] for size allowances):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ ls -al buildroot/binaries/XX/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If yes, copy it to your TFTP server directory (here &#039;&#039;/tftpboot/&#039;&#039;):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ cp buildroot/binaries/XX/XX-linux.bin /tftpboot/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Load kernel image with U-Boot through network:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; tftpboot ${loadaddr} XX-linux.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or with the serial line:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; loadb ${loadaddr}&lt;br /&gt;
     &#039;&#039;Ctrl+Altgr+\+c to access kermit command line then:&#039;&#039;&lt;br /&gt;
 (/home/.../) C-Kermit&amp;gt;send /tftpboot/XX-linux.bin&lt;br /&gt;
     &#039;&#039;After download is completed, you can type the c command to reconnect to the terminal:&#039;&#039;&lt;br /&gt;
 (/home/.../) C-Kermit&amp;gt;c&lt;br /&gt;
 Connecting to /dev/ttyUSB0, speed 115200&lt;br /&gt;
  Escape character: Ctrl-\ (ASCII 28, FS): enabled&lt;br /&gt;
 Type the escape character followed by C to get back,&lt;br /&gt;
 or followed by ? to see other options.&lt;br /&gt;
 ----------------------------------------------------&lt;br /&gt;
 ## Total Size      = 0x0013d0b0 = 1298608 Bytes&lt;br /&gt;
 ## Start Addr      = 0x08000000&lt;br /&gt;
 BIOS&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
{{Warning|If the loaded kernel image is too large, the following operation can destroy data that are stored after the partition limits (e.g. RootFS)}}&lt;br /&gt;
Check that transfered size value is less than the ones specified here [[#Flash_memory_partitions|Flash Memory Partitions]]&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 Bytes transferred = 1313216 (1409c0 hex)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
* You can test your new kernel image without flashing it with; if so you will have to reload it again after test:&lt;br /&gt;
** &#039;&#039;&#039;Please note&#039;&#039;&#039;: The &#039;&#039;bootm&#039;&#039; command is not supported on &#039;&#039;&#039;APF51&#039;&#039;&#039; boards yet; directly flash the kernel with the below commands instead&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; bootm ${loadaddr}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* a U-Boot script exists to ease kernel image loading through Ethernet:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run download_kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* After kernel image has been downloaded into RAM memory, you can flash it with:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run flash_kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* To make it easier, you can use automatic scripts that will download the image and flash it in the same go. So next time you will only launch:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run update_kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* To know what &#039;&#039;update_kernel&#039;&#039; script is doing you can display its content:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; printenv update_kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* If you only want to try a new kernel without flashing the kernel image you can launch it directly from RAM:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; setenv bootargs ${console} ${mtdparts}; run addjffsargs addipargs; bootm&lt;br /&gt;
(the kernel image you want to try must have been loaded at ${loadaddr})&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==rootfs installation==&lt;br /&gt;
&lt;br /&gt;
* Check that your Armadeus rootfs image size is smaller than the rootfs partition (see [[#Flash_memory_partitions|Flash Memory Partitions]] for size allowances):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ ls -al buildroot/output/images/&lt;br /&gt;
 ...&lt;br /&gt;
 [armadeus]$ cp buildroot/output/images/XX-rootfs.ubi /tftpboot/        (apf9328-rootfs.jffs2 on [[APF9328]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Load rootfs image with U-Boot through network:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; tftpboot ${loadaddr} XX-rootfs.ubi                (apf9328-rootfs.jffs2 on [[APF9328]]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
For large rootfs (bigger than the available RAM on your system) please use this method (&#039;&#039;&#039;not&#039;&#039;&#039; supported on the [[APF9328]]):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; tftpboot ${rootfs_offset} XX-rootfs.ubi nand&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or serial line:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
BIOS&amp;gt; loadb ${loadaddr}&lt;br /&gt;
    &#039;&#039;Ctrl+Altgr+\+c to access kermit command line then...&#039;&#039;&lt;br /&gt;
(/home/.../) C-Kermit&amp;gt;send path_to_your_host_buildroot_dir/XX-rootfs.ubi&lt;br /&gt;
    &#039;&#039;After download is completed, you can type the c command to reconnect to the terminal:&#039;&#039;&lt;br /&gt;
(/home/.../) C-Kermit&amp;gt;c&lt;br /&gt;
Connecting to /dev/ttyUSB0, speed 115200&lt;br /&gt;
 Escape character: Ctrl-\ (ASCII 28, FS): enabled&lt;br /&gt;
Type the escape character followed by C to get back,&lt;br /&gt;
or followed by ? to see other options.&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
## Total Size      = 0x........&lt;br /&gt;
## Start Addr      = 0x........&lt;br /&gt;
BIOS&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Flash rootfs image with:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run flash_rootfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Now you should be ready to test Linux:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* To make it easier, you can use U-Boot scripts we defined. So next time you will only launch:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run update_rootfs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FPGA firmware test==&lt;br /&gt;
&lt;br /&gt;
The FPGA firmwares are all located in the &#039;&#039;firmware/&#039;&#039; directory of your Armadeus view:&lt;br /&gt;
 [armadeus]$ ls firmware/&lt;br /&gt;
 apf_pkg  BRAMTest  bus_led  led  PS2  PS2_Opencore  servo  sram_test  wishbone_example  Xtools&lt;br /&gt;
You can make some trials with the &#039;&#039;firmware/PS2/ps2_top.bin&#039;&#039; file.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Warning| for the APF9328, Check that your bitfile size is smaller than the firmware partition size (256KB) before trying the following commands or you may corrupt your Linux kernel FLASH partition !!!}}&lt;br /&gt;
{{Note | For the APF51 only binary file format work (&#039;&#039;&#039;.bin&#039;&#039;&#039;). Do not use &#039;&#039;&#039;.bit&#039;&#039;&#039; format}}&lt;br /&gt;
&lt;br /&gt;
* Load FPGA firmware image file with U-Boot through:&amp;lt;br&amp;gt;&lt;br /&gt;
Ethernet:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; tftpboot ${loadaddr} fpgafirmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;fpgafirmware.bin&#039;&#039; is of course the name of your bitfile stored in your TFTP shared directory (&#039;&#039;/tftpboot/&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
or serial line:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; loadb ${loadaddr}&lt;br /&gt;
 Ctrl+Altgr+\+c to access kermit command line then...&lt;br /&gt;
 C-Kermit&amp;gt; send path_to_your_tftp/fpgafirmware.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then you can type the c command to reconnect to the terminal&lt;br /&gt;
&lt;br /&gt;
* Test your new FPGA firmware&#039;s downloading:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; fpga load 0 ${loadaddr} ${firmware_len}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FPGA firmware installation==&lt;br /&gt;
&lt;br /&gt;
* Flash your firmware image with:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run flash_firmware&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* When you are &#039;&#039;&#039;satisfied with your firmware&#039;&#039;&#039;, you can make it &amp;quot;autoloaded&amp;quot; at power up:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; setenv firmware_autoload 1&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Update U-Boot==&lt;br /&gt;
&lt;br /&gt;
There are two steps to update U-Boot:&lt;br /&gt;
===Load the new U-Boot code in RAM===&lt;br /&gt;
You can use the following commands to download U-boot:&amp;lt;br&amp;gt;&lt;br /&gt;
*With Ethernet and a TFTP server:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; tftpboot ${loadaddr} apf9328-u-boot.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*With Ethernet and a NFS server:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; nfs ${loadaddr} host_ip_addr:/nfs_path_to_buildroot/apf9328-u-boot.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*With kermit and the serial/RS232 line&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; loadb ${loadaddr}&lt;br /&gt;
    &amp;lt;CTRL&amp;gt;&amp;lt;ALT GR&amp;gt;\&lt;br /&gt;
    c&lt;br /&gt;
    send path_to_buildroot/apf9328-u-boot.bin&lt;br /&gt;
    c&amp;lt;ENTER&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Transfer code from RAM to Flash memory===&lt;br /&gt;
There is a simple U-Boot command/script to do that:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run flash_uboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Advanced informations can be found at the [[BootLoader]] wiki page.&lt;br /&gt;
&lt;br /&gt;
==Flash memory partitions==&lt;br /&gt;
===APF9328 Flash memory partitions===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;APF9328 Flash memory partitions&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! width=&amp;quot;40%&amp;quot; | Armadeus 2.x address range &amp;lt;br&amp;gt;(index from FLASH physical @ 0x10000000) !! width=&amp;quot;40%&amp;quot; | Armadeus 3 address range &amp;lt;br&amp;gt;(index from FLASH physical @ 0x10000000) !! Type&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x000000 - 0x03FFFF ( 256KB )&lt;br /&gt;
|0x000000 - 0x03FFFF ( 256KB )&lt;br /&gt;
| U-Boot&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x040000 - 0x5FFFF ( 128KB )&lt;br /&gt;
|0x040000 - 0x5FFFF ( 128KB )&lt;br /&gt;
| U-Boot environment variables&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x060000 - 0x9FFFF ( 256KB )&lt;br /&gt;
|0x060000 - 0x9FFFF ( 256KB )&lt;br /&gt;
| FPGA bitfile&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x0A0000 - &#039;&#039;&#039;0x21FFFF ( 1.5MB )&#039;&#039;&#039;&lt;br /&gt;
|0x0A0000 - &#039;&#039;&#039;0x29FFFF ( 2MB )&#039;&#039;&#039;&lt;br /&gt;
| Linux kernel image&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|&#039;&#039;&#039;0x220000&#039;&#039;&#039; - End of FLASH ( ~6 MB or ~14MB  )&lt;br /&gt;
|&#039;&#039;&#039;0x2A0000&#039;&#039;&#039; - End of FLASH ( ~5.5 MB or ~13.5MB  )&lt;br /&gt;
| Root filesystem&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===APF27 Flash memory partitions===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;APF27 Flash memory partitions&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
!  width=&amp;quot;80%&amp;quot; | NAND flash address range !! Type&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x00000000 - 0x0009FFFF (640KB, including NAND SPL and 384KB spare memory for bad blocks)&lt;br /&gt;
| U-Boot&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x000A0000 - 0x000FFFFF (384KB)&lt;br /&gt;
| U-Boot environment variables&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00100000 - 0x0017FFFF (512KB)&lt;br /&gt;
| FPGA bitfile&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00180000 - 0x0067FFFF (5MB)&lt;br /&gt;
| Linux kernel image&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00680000 - End of FLASH (&amp;gt;~250MB)&lt;br /&gt;
| Root filesystem&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===APF51 Flash memory partitions===&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;APF51 Flash memory partitions&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
!  width=&amp;quot;80%&amp;quot; | NAND flash address range !! Type&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x00000000 - 0x000fffff (1MB, including NAND SPL and spare memory for bad blocks)&lt;br /&gt;
| U-Boot&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|0x00100000 - 0x001fffff (1MB)&lt;br /&gt;
| U-Boot environment variables&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00200000 - 0x002fffff (1MB)&lt;br /&gt;
| FPGA bitfile&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00300000 - 0x00afffff (8MB)&lt;br /&gt;
| Linux kernel image&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| 0x00b00000 - End of FLASH (&amp;gt;~500MB)&lt;br /&gt;
| Root filesystem&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>SergioB</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=MemberList&amp;diff=10708</id>
		<title>MemberList</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=MemberList&amp;diff=10708"/>
		<updated>2012-02-29T09:59:28Z</updated>

		<summary type="html">&lt;p&gt;SergioB: /* Here is the list of the (active) members and their skills */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Here is the list of the (active) members and their skills==&lt;br /&gt;
&lt;br /&gt;
This list is maintained by the users themself.&lt;br /&gt;
&lt;br /&gt;
*0: Novice&lt;br /&gt;
*1: Notions. At least one successfull experiment&lt;br /&gt;
*2: Confirmed&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;Signal connections&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! &#039;&#039;&#039;Name / IRC Nickname&#039;&#039;&#039; || &#039;&#039;&#039;Linux Apps&#039;&#039;&#039;|| &#039;&#039;&#039;Linux Drivers&#039;&#039;&#039;|| &#039;&#039;&#039;FPGA&#039;&#039;&#039; || &#039;&#039;&#039;Board Design&#039;&#039;&#039; || &#039;&#039;&#039;Projet/Domain&#039;&#039;&#039;&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:Salocin68|Nicolas Colombain / Salocin]] || 1 || 1 || 1 || 2 || domotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JulienB|Julien Boibessot / Artemys]] || 2 || 2 || 0 || 1 || multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JeanBaptisteM|Jean-Baptiste Mayer / JiBee]] || 2 || 1 || 1 || 1 || robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:NicolasA|Nicolas Aguirre]] || 2 || 0 || 1 || 1 || multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:BenoitC|Benoît Canet]] || 2 || 0 || 0 || 0 || multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:SonZerro|Sonzerro]] || 0 || 0 || 1 || 2 || domotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:HenriG|Henri Geist]] || 1 || 1 || 0 || 1 || robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:BorredonB|Bernard Borredon]] || 2 || 1 || 0 || 1 || domotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:ThomasB|Thomas Bores]] || 2 || 0 || 0 || 1 || Entertainment&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:FabriceM|Fabrice Mousset / KroMignon]] || 1 || 1 || 2 || 1 || Domotics &amp;amp; multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:AmineH|Amine EL HEDADI]] || 2 || 2 || 0 || 0 || domotics &amp;amp; robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:PhilippeM|Philippe Monteil]] || 2 || 0 || 0 || 0 || multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:CedricZ|Cédric Zmyj]] || 0 || 0 || 0 || 0 || domotics &amp;amp; robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JeanMichelN|Jean Michel Naimo / jeanmi12 ]] || 2 || 1 || 1 || 1 || Domotics &amp;amp; entertainment&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:OlivierC|Olivier Coutanceau]] || 1 || 0 || 0 || 0 || multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:ArnaudC|Arnaud COFFINET]] || 0 || 0 || 1 || 2 || multimedia &amp;amp; domotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:SylvainP|Sylvain PARRINO]] || 2 || 1 || 0 || 0 || robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:AurelienH|Aurélien HIRON]] || 2 || 0 || 0 || 1 || robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:GuillaumeT|Guillaume TRANNOY]] || 0 || 0 || 0 || 2 || domotics &amp;amp; robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JulienN|Julien NICOLAS / jujun]] || 2 || 1 || 0 || 1 || multimedia &amp;amp; network&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:StephaneF|Stéphane Falck]] || 0 || 0 || 0 || 0 || multimedia &amp;amp; robotics &amp;amp; domotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:GillesD|Gilles DUSSIN/ Sellig]] || 1 || 0 || 1 || 1 || robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:MaximeL|Maxime Liron]] || 0 || 0 || 0 || 0 || domotics, robotics &amp;amp; multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:NicolasC|Nicolas CHARLERY/ realniko]] || 2 || 0 || 0 || 0 || electronic&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:BenoitJ|Benoit JESTER]] || 0 || 0 || 0 || 0 || robotics &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:FabienM|Fabien MARTEAU/ FabM]] || 1 || 2 || 1 || 1 || robotics,domotics &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:XavierA|Xavier AZNAR]] || 1 || 1 || 0 || 0 || environment, entertainment, domotic &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:AlbericA|Albéric AUBLANC / PoueT]] || 2 || 0 || 1 || 0 || domotics &amp;amp; multimedia, robotics, entertainment, &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:FredericB| Frédéric Blain / creber]] || 2 || 1 || 0 || 0 || system, domotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JeanBaptisteMa| Jean-Baptiste Maillet]] || 2 || 1 || 0 || 0 || system&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JeanFrancoisR| Jean-François Rousval]] || 2 || 1 || 0 || 1 || &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JulienPeeters| Julien Peeters]] || 2 || 1 || 0 || 0 || domotics, real-time, entertainment, network&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:YoannC| Yoann Congal / Alpheb]] || 0 || 0 || 0 || 1 || robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:MatthieuT| Matthieu Texier / weeber]] || 1 || 0 || 1 || 0 || robotics, real-time&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:MartialG| Martial Guex]] || 2 || 1 || 1 || 2 || transceiver RF, real-time, wireless&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:NicolasL| Nicolas Lantz]] || 2 || 2 || 1 || 1 ||&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:GuillaumeD| Guillaume DELVIT]] || 1 || 1 || 1 || 1 || system, asynchronous CPU&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:BernardR|Bernard REMOND ]] || x || x || x || x || &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:SamirH| Samir HAMNACHE]] || 0 || 0 || 0 || 1 || électronique&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:OlivierT|Olivier TARDIEU]] || 0 || 0 || 0 || 1 || électronique,robotics,domotics &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:ThibautR|Thibault Rétornaz]] || 1 || 1 || 1 || 0 || bio-med, électronique&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:FrancoisM|Francois Minaud]] || 1 || 1 || 1 || 0 || domotics, real-time, network&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:BrunoS|Bruno Suarez]] || 2 || 0 || 0 || 0 ||  électronique, Network&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:guillaumeDe|Guillaume Denis]] || 0 || 0 || 2 || 1 || Electronique numérique, FPGA&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:KevinP|Kévin PETIT]] || 1 || 0 || 1 || 1 || Multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:PierreBa|Pierre Baudemont / b4ud3]] || 2 || 0 || 1 || 0 || domotics, robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:BrunoL|Bruno Landré]] || 0 || 0 || 0 || 0 || robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:AntonioMB|Antonio Meléndez]] || 0 || 0 || 1 || 2 || domotics, robotics, eletcronics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:MichelTe|Michel Le Mer]] || 0 || 0 || 2 || 2 || electronics, software&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JulienBa|Julien Baley]] || 0 || 0 || 0 || 0 || &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:FrankA|Frank ANJEAUX]] || 1 || 0 || 0 || 1 || software,robotics, domotics, electronics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JulienViaud|Julien viaud/polric]] || 2 || 0 || 1 || 1 || &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:NicolasCa|Nicolas CARTIER]] || 1 || 1 || 0 || 2 || domotics &amp;amp; robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:PierreAlexandreS|Pierre Alexandre SCHEMBRI]] || 2 || 1 || 2 || 2 || electronics, board design, embedded software, FPGA, robotics, low power&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:AlexG|Alex GONZALEZ]] || 2 || 2 || 0 || 1 || telecommunications, network &amp;amp; multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JulienL|Julien Lefrique / apapi]] || 1 || 0 || 1 || 1 ||&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:PaoloB|Paolo Bernini / nihil84]] || 2 || 1 || 0 || 0 || robotics, real-time&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:MichielE|Michiel Ettema]] || 0 || 0 || 0 || 1 || telecommunications, networking&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:NicolasD|Nicolas Duclos]] || 2 || 1 || 0 || 0 || telecommunications, domotics and funs&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:SebastienP|Sebastien Philippe]] || 1 || 2 || 1 || 2 || electronics, board design, embedded linux&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:PaulM|Paul MONSINJON]] || 1 || 1 || 2 || 1 || robotics, fpga, embedded linux&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:OlivierR|Olivier REYNET]] || 1 || 0 || 0 || 0 || robotics, linux, networking&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:HugoP|Hugo Petit]] || 0 || 0 || 1 || 2 || electronics, automotive, board design, embedded software&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:PhilippeL|Philippe Leduc]] || 1 || 0 || 1 || 1 || robotics, real-time, embedded software, domotic&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:PierreDe|Pierre Delarboulas]] || 1 || 1 || 0 || 0 || robotics, domotic&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:WilliamB|William Benharbone]] || 0 || 0 || 1 || 1 || electronics, board design and funs&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JeanJacquesP|JeanJacques Pitrolle]] || 2 || 1 || 0 || 0 || embedded software, robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:SebastienVC|Sébastien Van Cauwenberghe]] || 2 || 2 || 2 || 0 || Power Electronics, Embedded Systems, FPGA&#039;s&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:PhilBB|Phil Bergeron-Burns]] || 0 || 0 || 2 || 0 || bio-medical&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JaumeF|Jaume Figueras i Jové]] || 0 || 0 || 2 || 0 || academic, mapping&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:MathieuB|Mathieu Boucher]] || 1 || 2 || 1 || 0 ||&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:SamuelM|Samuel Martin / smartin]] || 2 || 0 || 1 || 1 || embedded systems, real-time, robotics, multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:GaelV|Gaël Vanderbruggen]] || 1 || 0 || 0 || 0 || bio-medical, robotics, multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JeanMarcM| pieddemamouth/Jean-Marc Montanier]] || 1 || 0 || 0 || 1 || robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:ChaoyiH| Chaoyi HU]] || 1 || 0 || 0 || 2 || entertainement, telecommunications, electronic&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:FrancoisG| Francois Goudal / Fanfwe]] || 2 || 2 || 1 || 1 || robotics, telecommunications&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:PhilippeLe| Philippe Le Rhun]] || 1 || 0 || 0 || 2 || entertainement, robotics, domotic&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JeremieG| Jeremie Girouard]] || 0 || 0 || 0 || 0 || expérimentations,learning, Embedded Systems&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:RafalK| Rafal Kapela]] || 2 || 0 || 2 || 0 || Multimedia, real-time video content processing&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:XavierB| Xavier Bruhière]] || 1 || 1 || 1 || 1 || Robotics, domotic, learning&lt;br /&gt;
|----------------&lt;br /&gt;
||[[User:HerveDa| Dang Hervé]] || 0 || 0 || 0 || 0 || Robotics, aeronautics...&lt;br /&gt;
|----------------&lt;br /&gt;
||[[User:SergioB| Sergio Borghese]] || 2 || 1 || 0 || 0 || Networking, cryptography, embedded&lt;br /&gt;
|----------------&lt;br /&gt;
||[[User:KennethM| Ken Cracraft]] || 2 || 1 || 2 || 0 || embedded systems, FPGA, telecommunications, linux, networking&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [[Members | Geographical position of the members]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Association]]&lt;/div&gt;</summary>
		<author><name>SergioB</name></author>
	</entry>
</feed>