Linux Embedded

Le blog des technologies libres et embarquées

ARM + FPGA = Armadeus

Entretien avec Julien Boibessot, responsable logiciel chez Armadeus.

Armadeus Systems est une société Mulhousienne créée en 2007. Elle fournit des solutions embarquées complètes "System On Module" avec système d'exploitation et outils de développements.
Ces "System On Module" sont basées sur des SoCs ARM i.MX de Freescale (i.MXL/i.MX27/i.MX51) et un FPGA Spartan3/6 de Xilinx. La partie logicielle repose sur des logiciels ouverts tels que U-Boot, Linux, Busybox et Buildroot.
La société propose également de réaliser des systèmes monocartes personnalisés, basés sur l'architecture de ses produits ou de développer des cartes d'accueil/extensions spécifiques pour ses modules.

Outre les technologies employées, son originalité tient au fait de maintenir un lien étroit avec sa communauté par le biais d'une association : Armadeus Project.

- Comment est venue l'idée de créer une association ?

En fait tout a commencé en 2006 alors que nous développions pour le fun un module basé sur un coeur ARM9 (i.MXL) + FPGA. La carte s'est mise à marcher extrêmement bien et nous nous sommes dit : "pourquoi ne pas en faire profiter le maximum de monde ?".
Nous étions tous alors employés dans des sociétés différentes et avons décidé de créer l'association Armadeus Project afin de "distribuer" les 100 premiers modules qui avaient été financés sur nos deniers propres.
Après tout s'est enchainé très vite et devant l'intérêt des industriels pour notre module nous avons fondé Armadeus Systems.

- Quelles sont principalement les réalisations de la communauté ?

Compte tenu de la complexité d'un système Linux embarqué et de la jeunesse du projet, les retours de la communauté se font plus sur du signalement de problèmes, ce qui nous permet d'améliorer la qualité du logiciel, ou sur des demandes d'ajouts de fonctionnalités pour nos systèmes.
Nous organisons tous les ans un concours et commençons cependant à voir émerger des projets intéressants basés sur nos cartes.
Etant encore assez "franco-français" nous avons remarqué que pas mal de membres font des choses intéressantes sans pour autant les publier. Nous nous demandons si ce n'est pas une spécificité française car nous avons plus de retours avec les membres internationaux qui commencent à nous rejoindre.

- Pourquoi les membres de l'association sont-ils intéressés par Armadeus ?

Parce que nous proposons actuellement la seule carte abordable pour le grand public, écoles et universités, qui permet de s'exercer à la programmation Linux embarqué avec FPGA et écran LCD tactile.
De plus le BSP/SDK est librement disponible et facilement installable (pour un linuxien).

- Pourquoi les sociétés s'intéressent elles à Armadeus ?

Parce que nous maîtrisons l'ensemble de nos systèmes (hard + soft) et que nous pouvons donc développer des systèmes complets (avec GUI) sur mesure et en très peu de temps. En effet alors que beaucoup de concurrents se basent fortement sur le design officiel (hard/soft) du fondeur du processeur, nous prenons notre temps pour choisir les composants optimums pour notre système et maîtriser leur fonctionnement.
Nous avons donc très peu de mauvaises surprises quand il s'agit d'adapter un de nos systèmes pour un client et de le mettre en production rapidement. Cette maitrise nous permet aussi de fournir un support de qualité, rapidement.
Le fait d'utiliser des logiciels libres/ouverts/standards est aussi un gros plus pour la majorité de nos clients.

- Pourquoi avoir choisi de travailler avec Freescale et Xilinx ?

Au moment du choix du processeur pour notre premier module, Freescale fournissait les systèmes à base d'ARM avec la roadmap la plus intéressante. De plus leurs processeurs sont entièrement reprogrammable à l'aide d'un simple port série (pas besoin de sonde JTAG).
A cette même période, Xilinx proposait le meilleur compromis coût/performance/consommation avec leur famille Spartan.

- Comment peut-on se passer de sonde JTAG avec l'i.MX ?

Les processeurs i.MX disposent d'un mode "bootstrap" dans lequel on peut les faire démarrer lorsque la FLASH du système n'est pas programmée ou bien est endommagée. Dans ce mode, l'i.MX attend des instructions sur un de ses ports séries (voire USB pour certains modèles).
Nous fournissons, dans nos outils de développement, un petit script python qui permet, depuis le PC, d'initialiser la RAM du module et d'y charger un U-Boot minimal pour reprendre la main sur le système.

- Est-il facile de développer pour un FPGA Xilinx sous Linux ?

Oui, les outils Xilinx sont disponibles sous Linux. Nous utilisons en plus tout un ensemble d'outils libres (GHDL, GTKwave, etc...) pour simplifier le développement pour ceux qui ne veulent pas forcément se servir des outils graphiques, bien souvent très gourmands en ressources système.

- Xilinx fournit également un softcore nommé Microblaze. Peut-il fonctionner sur vos modules ?

Non, pas à l'heure actuelle, les FPGAs de nos modules ne contenant pas assez de portes logiques pour intégrer ce type de coeurs.
Cela ne fait d'ailleurs pas partie de nos buts : sur nos plateformes le coeur ARM communique directement avec le FPGA qui a donc plus une fonctionnalité de co-processeur. Ainsi on y gagne en performances, consommation et en prix par rapport à une solution "softcore".

- Concernant la base logicielle, avez-vous obtenu un support officiel de vos cartes dans les projets phares que sont U-Boot, Linux et Buildroot ?

L'inconvénient d'avoir choisi la plateforme i.MX est que le support officiel de cette dernière dans U-Boot/Linux était quasi inexistant à nos débuts. Depuis cela s'est grandement amélioré, mais comme nous privilégions la stabilité de notre BSP/SDK nous n'utilisons pas les dernières versions U-Boot/Linux et donc n'avons pas encore fait l'effort d'introduire nos cartes dans la mainline de ces projets.
Cela devrait changer en 2011, lors de notre migration vers ces nouvelles versions.
Nous fournissons cependant assez régulièrement des patches à U-Boot et Buildroot. Par exemple, une partie du support i.MX27 dans U-Boot est issue de notre travail.

- Est-ce difficile de demander l'intégration de patchs spécifiques pour Linux ?

Les mainteneurs sont assez stricts et cela requiert pas mal de travail et de patience. Mais au final le jeu en vaut la chandelle car la communauté du noyau est très réactive et les critiques sont constructives ; le patch intégré est alors souvent de meilleure qualité que le travail original.

- Une nouvelle carte est-elle prévue ?

Nous venons de sortir une carte d'accueil (PPS) permettant de transformer notre module APF27 en passerelle réseau sécurisée. Et début d'année prochaine, nous proposerons à la vente un nouveau module processeur à base d'i.MX51 (Cortex A8) + FPGA Spartan 6.

- Merci pour toutes ces informations et bon courage pour ce nouveau module !

    • le 13 février 2013 à 16:04

      très intéressante comme combinaison.
      mais je voudrais savoir dans quel type d'applications elle a été déjà utilisées?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.