ACTAS DE LAS VII JORNADAS DE COMPUTACIN RECONFIGURABLE Y APLICACIONES (JCRA 2007) No est permitida la reproduccin total o parcial de este libro, ni su tratamiento informtico, ni la transmisin de ninguna forma o por cualquier otro medio, ya sea electrnico, mecnico, por fotocopia, por registro u otros medios, sin el permiso previo y por escrito de los titulares del Copyright. Derechos reservados 2007 respecto a la primera edicin en espaol, por LOS AUTORES Derechos reservados 2007International Thomson Editores Spain, S.A. Magallanes, 25; 28015 Madrid, ESPAA Telfono 91 4463350 Fax: 91 4456218 clientes@paraninfo.es ISBN: 978-84-9732-600-1 Depsito legal: M- Maquetacin: Los Editores Coordinacin del proyecto: @LIBROT E X Portada: Estudio Dixi Impresin y encuademacin: FER Fotocomposicin, S. A. IMPRESO EN ESPAA-PRINTED IN SPAIN x Sistema de compresin de la seal de fonocardiograma ..................................... 43 F. Javier Toledo (Univ. Politcnica de Cartagena), Antonio Legaz (Univ. Politcnica de Cartagena), J. Javier Martnez (Univ. Politcnica de Cartagena), Juan Martnez (Univ. Politcnica de Cartagena), Ramn Ruiz (Univ. Politcnica de Cartagena) Implementacin de algoritmos multiplicativos para el clculo de la divisin en FPGAs Virtex-4 y Virtex-5 de Xilinx ............................................................ 51 Roberto Gutirrez (Univ. Miguel Hernndez), Javier Valls (Univ. Politcnica de Valencia) Implementation of two Greatest Common Divisor algorithms on FPGA ........... 59 Pablo Costi (Univ. Politcnica de Valencia), Roberto Gutirrez (Univ. Miguel Hernndez) Captulo 3: Arquitecturas SoC/NoC Exploracin del espacio de diseo en sistemas CSoC mediante modelos TLM ..................................................................................................................... 69 Ral Mateos (Univ. Alcal), Jos L. Lzaro (Univ. Alcal), Ignacio Bravo (Univ. Alcal) Reubicacin y comunicacin entre tareas en un sistema hardware de propsito general ................................................................................................. 77 ngel L. Gonzlez (Univ. Complutense de Madrid), Hortensia Mecha (Univ. Complutense de Madrid), Daniel Mozos (Univ. Complutense de Madrid), Julio Septin (Univ. Complutense de Madrid) Un Ejemplo de Implantacin de una Distribucin Linux en un SoC Basado en Hardware Libre ............................................................................................... 85 Alejandro Muoz (Univ. Sevilla), Enrique Ostua (Univ. Sevilla), Paulino Ruiz-de-Clavijo (Univ. Sevilla), Manuel J. Bellido (Univ. Sevilla), Alejandro Milln (Univ. Sevilla), Julin Viejo (Univ. Sevilla), Jorge Juan (Univ. Sevilla), David Guerrero (Univ. Sevilla) Implementacin eficiente de sistemas GALS sobre FPGAs ............................... 93 Javier D. Garca (Univ. Pblica de Navarra) Un Ejemplo de Implantacin de una Distribucin Linux en un SoC basado en Hardware Libre. Alejandro Muoz Rivera, Enrique Ostua Arangena, Paulino Ruiz de Clavijo Vazquez, Manuel J. Bellido Diaz, Julian Viejo Corts, Alejandro Millan Calderon, Jorge Juan Chico y David Guerrero Martos Dept. de Tecnologia Electronica ETS Ingenieria InIormatica Univ. de Sevilla 41012 Avda. Reina Mercedes, Sevilla amrivera,ostua,paulino,bellido,julian,amillan,jjchico,guerre}dte.us.es
Resumen
Se presenta un mtodo de implantacion de de una distribucion Linux sobre un System on Chip (SoC) basado en hardware libre. En el ejemplo presentado en este trabajo se ha empleado el microprocesador Leon 3 y diversos periIricos que Iorman parte de la libreria de IP cores de codigo abierto GRLIB, constituyendo un SoC implementado sobre una FPGA. Sobre este sistema se ha elaborado un mtodo que nos ha permitido implantar una distribucion genrica de Linux, como es la distribucion Debian 3.1 (sarge), lo que permite dotar al SoC de inIinidad de soItware (aplicaciones, librerias, etc.) convirtindose asi un entorno de desarrollo completo y extremadamente versatil.
1. Introduccin El continuo desarrollo de la tecnologia de Iabricacion de circuitos integrados lleva a un incremento de la densidad de integracion asi como a una mejora de velocidad de operacion de los sistemas electronicos. En el caso de los sistemas digitales, este avance da lugar a una mejora muy signiIicativa en el rendimiento mientras que se reduce drasticamente el tamao del sistema. Sin embargo, la metodologia de diseo tambin incrementa su complejidad de Iorma que los diseadores tienen que considerar aspectos que hasta ese momento no eran necesarios. Asi dos problemas principales aparecen: por una parte, el incremento de velocidad y densidad de dispositivos lleva aparejado un incremento del consumo de potencia y, por consiguiente, incremento trmico del sistema lo que puede provocar un Iallo hardware; por otra parte, el aumento en la densidad de integracion implica que el sistema diseado aumenta su complejidad, lo que implica que es necesario deIinir una buena metodologia de diseo e implementacion para poder manejar eIicientemente la complejidad de los sistemas digitales. Una de las metodologias mas extendidas hoy en dia es la denominada System on Chip (SoC design). La idea basica consiste en emplear las posibilidades actuales de integracion no tanto para disear sistemas mas complejos en si (como podrian ser los nuevos microprocesadores que sacan al mercado las compaias INTEL o AMD) sino mas bien, en implementar dentro de un mismo chip la mayor parte posible de los bloques que constituyen un sistema completo. Con esto se consigue reducir signiIicativamente el espacio que ocupan, lo que permite que estos sistemas puedan emplearse en multitud de nuevas aplicaciones en las que sean necesarias tanto la movilidad como un tamao reducido. Casi el 100 de los sistemas digitales tipo SoC se construyen alrededor de un microprocesador que actua como unidad de control de todo el sistema. La seleccion del microprocesador condiciona Iuertemente el rendimiento y las caracteristicas principales del sistema. Es muy importante considerar que la mayoria de las aplicaciones de este sistema no requieren una alta capacidad de computacion sino, principalmente, una buena Iiabilidad asi como una reduccion del consumo de potencia lo que signiIica que los microprocesadores que van a 85
utilizarse en este tipo de sistemas no necesitan ser de una excesiva complejidad. Hay varios microprocesadores que viene siendo usados de Iorma habitual en el diseo de SoC, tanto cores comerciales, esto es, que requieren la adquisicion de una licencia para su uso, como por ejemplo el ARM |3|, PowerPC |7|, NIOS3 |1|, MicroBlaze |13| y otros; asi como cores libres o de codigo abierto como LEON |6|, OpenRisc |8|, o MICO32 |9|. Mientras que los microprocesadores comerciales estan generalmente bien testados y optimizados, los sistemas de codigo abierto proveen otras ventajas que pueden resultar de gran inters. Asi, nuestro grupo de investigacion lleva algunos aos trabajando con microprocesadores de codigo abierto intentando explotar estas ventajas que supone el libre acceso a los mismos. El trabajo que presentamos en este articulo es parte del los ultimos desarrollos del grupo en el diseo de SoC para aplicaciones empotradas. En concreto se ha conIigurado una metodologia de desarrollo de aplicaciones de SoC basada en el microprocesador LEON mencionado anteriormente sobre el que se ha implantado, no solo el sistema operativo LINUX, sino toda una distribucion completa como es la Debian 3.1 (Sarge) |4| sobre una placa de desarrollo con una FPGA de la Iamilia Spartan-3 de XILINX |14|. En este ejemplo se ha utilizado el microprocesador LEON por ser uno de los cores abiertos mas desarrollados hasta la Iecha y con un potente entorno de desarrollo soItware. El implantar sobre este microprocesador una distribucion como la Debian dota al sistema de una enorme versatilidad en las aplicaciones que pueden ser desarrolladas tanto porque se dispone de una enorme cantidad de soItware operativo y de Iacil instalacion (mecanismo propio de la distribucion Debian) asi como por la disponibilidad de innumerables librerias que Iacilitan el desarrollo de cualquier soItware necesario para completar la aplicacion que pretenda desarrollarse. Asi, el resto del trabajo esta organizado como sigue: en el siguiente apartado se va a presentar la arquitectura hardware/soItware del sistema; en el tercer apartado se muestra una descripcion detallada de las caracteristicas principales del hardware implementado (tanto para placa de desarrollo como para el System on Chip implementado); el cuarto apartado esta dedicado a presentar las caracteristicas principales del soItware del sistema y el proceso seguido para la implantacion tanto del sistema operativo LINUX como de la distribucion Debian completa. Por ultimo, se presentan las conclusiones mas signiIicativas del trabajo.
2. Arquitectura Hardware/software del sistema La Iigura 1 presenta la estructura general hardware/soItware que constituira el sistema digital desarrollado. Development Board MicroProcessor Peripheral Controller Operating System S O F T W A R E H A R D W A R E FPGA LEON3 Devices Linux Own Apps Application Application Application Peripheral Controller Peripheral Controller Drivers Peripheral Module Peripheral Module Peripheral Module
Figura 1. Estructura Hardware/soItware del sistema En ella se muestra una estructura en niveles donde en la base se encuentra la placa de desarrollo con dispositivos logicos programables del tipo FPGA, la cual incluye ademas diversos periIricos y memorias para realizar la tarea de desarrollado y testeo de una Iorma eIectiva. En esa FPGA se implementara un microprocesador soIt-core, concretamente LEON3, el cual contara con una serie de controladores para los periIricos que se desean utilizar segun la aplicacion deseada. LEON3 es un microprocesador de 32 bits que implementa una arquitectura RISC conIorme a la deIinicion de SPARC v8 |12|. Es un IP core sintetizable escrito en VHDL y puede ser implementado tanto en FPGA como en ASIC (una Captulo 3: Arquitecturas SoC/NoC 86
gran ventaja Irente a otros microprocesadores como MicroBlace o NIOS en los que su codigo Iuente no esta disponible). Se distribuye bajo licencia GNU GPL y es, por tanto, un codigo abierto. Desde el punto de vista Iuncional, posee registros internos de 32 bits, 72 instrucciones con 3 Iormatos de instruccion y 3 modos de direccionamiento (inmediato indexado y con desplazamiento). Implementa multiplicacion con signo y sin signo, division y operaciones MAC. Tiene un pipeline de 7 etapas e implementa la arquitectura Hardvard (cach de datos e instrucciones separadas) tal y como se observa en la Figura 2.
Figura 2. Diagrama de bloques Leon3 En el nivel soItware de nuestro sistema podemos observar que el microprocesador correra un sistema operativo de codigo abierto, GNU/Linux, cuyo nucleo (el kernel) ha sido compilado para dicha arquitectura, incluyendo los correspondientes drivers de control necesarios para el manejo del hardware. Por ultimo, las aplicaciones Iinales haran uso de los servicios que el nucleo del sistema operativo Linux les oIrece. El adoptar este esquema de niveles con el sistema operativo Linux entre ambas capas nos permite obviar los detalles del hardware concreto en el Ilujo de diseo del soItware. Ademas la eleccion concreta de Linux nos Iacilita en gran medida el desarrollo. Al estar disponibles tanto el nucleo como gran multitud de herramientas para diversas arquitecturas hardware y gracias su alto grado de portabilidad, nos permite desarrollar soItware en estaciones de trabajos independientes del sistema. A continuacion, se presenta en mayor detalle el hardware utilizado. 3. Sistema Hardware Para la implementacion del SoC basado en hardware libre, se ha utilizado una FPGA de 1`5 millones de puertas, Xilinx Spartan3 XC3S1500, montada en una placa de desarrollo de Pender Electronic Design |10|, concretamente el modelo GR-XC3S-1500 LEON Development board (Iigura 3), especialmente pensada para el desarrollo de sistemas basados en Leon 2 o Leon 3/GRLIB.
Figura 3. Placa de desarrollo GR-XC3S-1500 La inclusion de memoria volatil (64 Mbytes de SDRAM) y memoria no volatil (8 Mbytes de FLASH), junto a interIaces de comunicaciones serie, PS2, Ethernet, USB e incluso VGA, asi como (diodos LED, interruptores, pulsadores, etctera) convierten a esta placa en una excelente opcion para el desarrollo y evaluacion tanto del propio hardware sintetizable como de soItware basado en microprocesadores como por ejemplo el Leon 3. En la Iigura 4 podemos observar el diagrama de bloques de los componentes que constituyen el hardware base donde implementaremos el sistema basado en el Leon 3 / GRLIB.
Figura 4. Diagrama de bloques GR-XC3S-1500 VII Jornadas de Computacin Reconfigurable y Aplicaciones (JCRA 2007) 87
En lo que respecta al propio System on Chip, la eleccion de este kit de desarrollo simpliIica bastante la complejidad y el tiempo invertido en el diseo del sistema basado en GRLIB, ya que se proporcionan plantillas de las distintas Iases del Ilujo de diseo, tanto de pin-out como de una conIiguracion base Iuncional e imagenes precompiladas listas para cargar en la FPGA. Partiendo de estas plantillas y mediante el sistema de scripts Linux que proporciona GRLIB se hace muy sencillo obtener el modelo sintetizable de un sistema personalizado basado en Leon 3 utilizando los numerosos IP cores que se proporcionan. Es importante mencionar que, ademas, pueden aadirse periIricos desarrollados por otros, siempre que cumplan las especiIicaciones de compatibilidad con el bus AMBA 2.0 |2|. Para el desarrollo que hemos llevado acabo, se ha constituido un sistema compuesto del controlador de bus AMBA AHB (AHBCTRL) y un microprocesador Leon 3 como nucleo de control, ademas de otros IP cores pertenecientes a la libreria GRLIB de los que destacamos los siguientes:
MCTRL - Esclavo del bus AHB, proporciona un controlador combinado de memoria estatica y dinamica (FLASH, SRAM, SDRAM), asi como de dispositivos entrada salida asignados al mapa de memoria. Compatible con conIiguraciones de 32 o 64 bits de ancho de bus de datos para memorias SDRAM de 100 o 133 Mhz, y conIiguraciones de 32, 16 y 8 bits de ancho de bus de datos para las memorias FLASH y SRAM, asi como multiples combinaciones organizaciones de bancos.
DSU3 (LEON3 Hardware Debug Support Unit) Este IP core capacita al sistema para la depuracion hardware tanto del microprocesador como de todos los dispositivos conectados al bus AMBA. Puede ser accedido desde el host por medio de multiples interIaces, JTAG, RS232, Ethernet, etctera. Por tanto se hace indispensable en las Iases de desarrollo para permitir la ejecucion de las herramientas de depurado.
GRETH MAC (Gaisler Research Ethernet Media Access Controller ) - Este IP core proporciona una interIaz de conexion entre el bus AMBA AHB y una red Ethernet. Soporta los modos de 10 y 100 Mbits en modo Full o HalI Duplex. Incluye tambin el subsistema opcional Ethernet Debug Communication Link (EDCL) que permite la depuracion remota del sistema mediante Ethernet.
ATACTRL Es un controlador ATA/ATAPI- 5 host interIace. Este IP core proporciona una interIace a dispositivos IDE (Integrated Drive Electronics), siendo compatible con el estandar ATA/ATAPI-5. Soporta transIerencias unicamente en modo PIO, y sera utilizado en este ejemplo de sistema para aadir un disco duro externo que oIrezca la suIiciente capacidad para albergar una copia de la distribucion Linux Debian.
APBCTRL - Proporciona un puente entre el bus AHB y bus APB, cumpliendo el estandar AMBA 2.0. Soporta 16 esclavos y proporciona plug&play.
APBPS2 - Este IP core se conecta al bus APB para proporcionar la logica de un interIaz PS2 serie bidireccional sincrono, principalmente usado la comunicacion de periIricos como teclados y ratones.
APBUART - Tambin conectado al bus APB, proporciona la logica para las comunicaciones serie con todas las caracteristicas clasicas incluidas (Control de Ilujo, paridad, .) .
GPTIMER (General Purpose Timer Unit) - Incluye de 1 a 7 Timers conIigurables. Actuan como esclavos del bus AMBA APB y poseen capacidad de generar interrupciones. Estos dispositivos son indispensables para el correcto Iuncionamiento de multitud de sistemas operativos.
IRQMP Este modulo sintetizable actua como controlador de interrupciones recogiendo la seales de interrupciones generadas por otros dispositivo. Estas seales Captulo 3: Arquitecturas SoC/NoC 88
son rutadas por el bus AMBA, de donde el nucleo de control de interrupciones monitoriza, selecciona y prioriza las interrupciones que seran propagadas al procesador.
Otros IP cores como un dispositivo de video de tipo frame buffer SVGACTRL o un controlador para un bus de entrada salida de uso general GRGPIO.
La Iigura 5 muestra un resumen del conjunto de bloques que constituyen el sistema SoC implementado:
Figura 5. Sistema Leon3 / GRLIB implementado Una vez que los scripts de GRLIB hayan generado el codigo VHDL sintetizable del sistema, se procede a su compilacion. Para esta tarea, esta libreria tambin proporciona distintos scripts que Iacilitan la tarea segun la FPGA objetivo del SoC y paquete soItware que usemos. Como se pretende sintetizar el sistema para una FPGA Xilinx Spartan3, utilizaremos el paquete soItware Xilinx ISE Foundation |15|. Es posible obtener una version gratuita, denominada Xilinx ISE Webpack disponible en su pagina Web. Una vez hayan terminado los procesos de compilacion como el emplazado y el rutado, obtendremos el codigo objeto de conIiguracion de la FPGA. Este codigo debe ser adaptado a las dos memorias FLASH PROM de conIiguracion disponibles en la placa de evaluacion si queremos que se produzca la conIiguracion automatica de la FPGA en cada encendido de la placa. Se ha utilizado la herramienta Impact del entorno ISE de XILINX para este proceso, obtenindose dos imagenes que programaremos en sendas memorias a travs del interIace JTAG.
4. Sistema Software Una vez tengamos preparado el sistema SoC basado en Leon3/GRLIB procederemos a la implantacion del sistema operativo. En este ejemplo, nuestro objetivo consistira en la instalacion de una distribucion Linux libre y de reIerencia, concretamente Debian 3.1. El mtodo que presentaremos permitira obtener directamente de cualquier repositorio oIicial de Debian todos los paquetes necesarios para la instalacion trabajando directamente desde la placa de desarrollo. Para llevar a cabo tal empresa, necesitaremos dividir el proceso en dos etapas:
1. Una instalacion preliminar de un sistema operativo Linux de bajo peso especialmente concebido para sistemas empotrados, Snapgear |11|. 2. La implantacion deIinitiva del sistema operativo Linux Debian aprovechando los recursos proporcionados por la anterior.
A continuacion se explica cada etapa con mayor detalle.
4.1. Implantacin de Snapgear Snapgear es una distribucion de Linux especiIica para sistemas empotrados y de codigo abierto. Existe una version especialmente adaptada por Gaisler Research |5| para los sistemas Leon, en la que han incluido diversos parches para el nucleo asi como distintos drivers para los dispositivos que incluye GRLIB. En este paquete soItware se incluye tambin un elemento Iundamental e imprescindible para la carga del sistema operativo, el denominado boot loader. Esta pequea pieza de soItware desarrollada tambin por Gaisler Research, es normalmente almacenada al principio de la memoria FLASH que debe corresponder a la direccion de memoria 0. Esta posicion de memoria es ejecutada en primera instancia por el microprocesador tras arrancar, siempre que no la hayamos modiIicado. La VII Jornadas de Computacin Reconfigurable y Aplicaciones (JCRA 2007) 89
primera Iuncion del boot loader consiste en inicializar el hardware basico del sistema, como por ejemplo la consola de depurado o la memoria SDRAM. Posteriormente procedera a descomprimir el conjunto soItware que deseemos ejecutar en el microprocesador Leon, a la memoria SDRAM del sistema para ser ejecutada a continuacion. Concretamente dicho soItware se compondra de un nucleo de Linux 2.6.x preparado para Leon, asi como un pequeo sistema de Iicheros RomFS, ambos comprimidos en G:ip. Sobre este sistema de Iicheros de solo lectura, el nucleo de Linux montara la unidad root de sistema, que contendra todas las utilidades y aplicaciones que le hayamos incluido en la compilacion. Es importante destacar la capacidad de este pequea pieza de soItware (boot loader) de pasar una linea de argumentos al nucleo de Linux, Iuncion que sera de gran utilidad y evitara la necesidad de utilizar cargadores de arranque tales como LILO o GRUB, necesarios en los sistemas convencionales. La conIiguracion del nucleo de Linux y del boot loader y la preparacion de la unidad RomFS se hacen de Iorma automatizada gracias al sistema de scripts que proporciona esta version de adaptada de Snapgear. Proceso tras el cual procederemos a compilar todo el sistema soItware, obtenindose un conjunto de imagenes o Iicheros objeto. Este conjunto de Iicheros objeto generados por los scripts de Snapgear abren diversas alternativas de ejecucion del sistema, de la que optaremos por la imagen preparada para la memoria FLASH que contiene el boot loader junto al nucleo de Linux y la pequea unidad RomFS comprimidos en Iormato Gzip. La carga de esta memoria puede hacerse directamente en la placa utilizando la unidad de depuracion DSU3 y una conexion por medio de algun interIace, como JTAG o Ethernet, desde el programa de depuracion grmon. Una vez terminado el proceso, dispondremos de un sistema operativo Linux de bajo peso y totalmente Iuncional corriendo sobre un sistema basado en Leon3/GRLIB. La Iigura 6 sirve de ilustracion del sistema obtenido:
Figura 6. Linux Snapgear en SoC Leon3 4.2. Implantacin de Debian Una vez tengamos el sistema operativo Linux Snapgear Iuncionando en el sistema podremos proceder a la implantacion de una distribucion Debian 3.1, obtenida directamente de cualquier repositorio oIicial de Debian. Esta distribucion se encuentra precompilada para multitud de plataIormas, incluido SPARC, concretamente SPARC V8, por lo que no deberemos olvidar incluir en nuestras caracteristicas del microprocesador Leon 3 un multiplicador de enteros y una unidad de punto Ilotante por hardware, ya que al contrario de lo que ocurre con SPARC V7, se hace uso de instrucciones MUL y DIV. Existen multitud de mtodos para instalar este sistema operativo, sin embargo en este caso se ha optado por utilizar una pequea aplicacion denominada aebootstrap, que se encargara de descargar, descomprimir e instalar todos los paquetes necesarios para obtener la distribucion base de Debian que deseemos. Para nuestro Iin, crearemos un sistema de Iicheros RomFS que incluya dicha aplicacion, asi como sus dependencias wget y binutils. Todas ellas se obtuvieron de www.debian.org y para simpliIicar la tarea se integraron en la imagen RomFS incluida en la distribucion Snapgear para Leon 3 Iacilitada por Gaisler Research. Captulo 3: Arquitecturas SoC/NoC 90
Una vez tengamos incluido el nuevo RomFS en nuestra compilacion de Snapgear, podremos arrancar el sistema y preparar la instalacion. Para ello, una vez inicializado el sistema y mediante el intrprete de comandos de Linux, levantaremos y conIiguraremos la interIaz Ethernet para poder obtener acceso Internet y a un servidor DNS: # Ifconfig eth0 ip netmask gw gateway up # echo nameserver 'ipDNS` ~ /etc/resolv.conf
Tras esto se prepara la unidad donde deseemos instalar el sistema operativo, que en nuestro caso sera una unidad de disco duro conectada a travs del IP core ATACTRL incluido en GRLIB, pero tambin podria ser una unidad remota NFS, una memoria portable Compact Flash, etctera. Es deseable disponer al menos 1`5 GBytes libres en el dispositivo para permitir una comoda instalacion de cuantos paquetes soItware necesitamos y para poder hacer uso de una particion de intercambio. Crearemos dos particiones, una para el sistema de Iicheros ext2 y otra de intercambio mediante los comandos faisk, mke2fs y mkswap, que despus montaremos y activaremos mediante mount y swapon. Debemos tener en cuenta que RomFS es un sistema de Iicheros de solo lectura, por lo que necesitaremos tener preparado una ruta vacia donde montar la unidad, en nuestro caso usaremos /mnt/aebinst. Ahora ya estamos preparados para realizar la instalacion cruzada de Debian 3.1 en nuestro sistema. Basta con ejecutar la aplicacion de instalacion aebootstrap que habiamos integrado con la siguiente estructura: aebootstrap arch 'plataforma` 'aistribucion` 'punto ae instalacion`
En concreto, = /usr/sbin/aebootstrap --arch sparc sarge /mnt/aebinst http.//ftp.es.aebian.org/aebian , comenzara la descarga de paquetes del repositorio junto con la validacion e instalacion en nuestro sistema. Una vez Iinalizado el proceso tendremos realizada una instalacion basica de Debian en nuestra unidad, a la que tendremos que conIigurar ciertos aspectos para su uso. En este punto el uso del comando chroot puede ser bastante util. = chroot /mnt/aebinst /bin/bash
En primer lugar necesitaremos indicar explicitamente al sistema operativo que nos abra una shell cuando arranquemos (init), para lo cual podremos aadir la siguiente linea al archivo /etc/inittab del root del sistema de Iicheros debian: T0.234.respawn./sbin/getty -L ttyS0 38400 vt100
Asi, getty nos lanzara una shell por el puerto serie (login prompt) cuando el sistema reinicie. Otros aspectos importantes a conIigurar son el tipo de consola: = export TERMxterm-color
Las interIaces de red y los servidores DNS: # eaitor /etc/network/interfaces
= auto lo = iface lo inet loopback = = auto eth0 = iface eth0 inet static = aaaress 192.168.1.10 = netmask 255.255.255.0 = gateway 192.168.1.1 = broaacast 192.168.1.255
# eaitor /etc/resolv.conf Y los puntos puntos de montaje del resto de unidades como el swap: = eaitor /etc/fstab
Por ultimo se debe comprobar que la instalacion contiene los nodos de dispositivos por bloques dentro de /aev/ , de no ser asi se puede proceder a crearlos con el comando mknoa, o a copiarlos directamente de la unidad RomFS que tenemos activa. Una vez concluyamos el proceso de instalacion y conIiguracion de la distribucion Linux Debian 3.1, solamente nos quedara recompilar nuestro nucleo de Snapgear para Leon donde deberemos eliminar la unidad RomFS e indicar al boot loader que incluya en la linea de argumentos del nucleo el punto de montaje del disco donde hemos realizado la instalacion. La siguiente linea conIiguraria la consola por el puerto serie e indicaria al nucleo que monte el root del sistema de Iicheros en el disco /aev/haa1 # consolettyS0,38400 root/aev/haa1 VII Jornadas de Computacin Reconfigurable y Aplicaciones (JCRA 2007) 91
Finalmente iniciaremos el sistema con el nuevo nucleo de Snapgear y la instalacion de Linux Debian 3.1, que tras su carga, nos presentara una consola con todas las bondades de este sistema operativo. Cabe destacar que ahora dispondremos de las herramientas de instalacion de paquetes Debian, como aptituae, que nos permitiran instalar inIinidad de aplicaciones y actualizaciones de una manera rapida y comoda, como servidores de servicios de Internet, servidores graIicos, etc.
5. Conclusiones El diseo de sistemas digitales esta evolucionando Iuertemente hacia un proceso de co-diseo hardware/soItware. Con respecto a la parte hardware, se pretende convertir al sistema en un computador con un conjunto de periIricos especiIicos de la aplicacion deseada en que todos los componentes principales del mismo (microprocesador controladores, periIricos) se incluyan dentro de un mismo chip, bien un ASIC, bien un dispositivo programable tipo FPGA (en deIinitiva lo que es un SoC). Esto da lugar a un sistema de tamao reducido y con un bajo consumo de potencia pero, a la vez, con capacidad de ejecucion de soItware. Con respecto al soItware, se esta evolucionando en el sentido de Iacilitar el desarrollo de las aplicaciones y, por esto, se esta tendiendo a implantar un sistema operativo sobre la plataIorma hardware. En el trabajo que hemos presentado en este articulo, se ha desarrollado un sistema digital con las caracteristicas de diseo tipo SoC sobre una FPGA, que incluye el microprocesador LEON3 junto con un conjunto de controladores/periIricos de la libreria GRLIB, sobre el que se ha implantado un kernel de LINUX 2.6 y, sobre el kernel,una distribucion completa de LINUX como es la Debian 3.1. Esto dota al sistema de un mecanismo relativamente sencillo tanto de actualizacion de paquetes como de instalacion de los mismos, asi como una cantidad muy grande de soItware ya desarrollado y usable; tambin una cantidad de librerias asi como herramientas de compilacion, depuracion que Iacilitan el desarrollo de nuevo soItware. De esta Iorma, el resultado Iinal es una plataIorma de sistema digital tipo microcomputador (micro en el sentido de reducido tamao comparado con computadores convencionales) pero con capacidades idnticas a las que posee cualquier otro computador desde el punto de vista de ejecucion y desarrollo de soItware. Asi, este tipo de sistema puede emplearse en innumerables aplicaciones que necesiten como caracteristica principal el reducido tamao, bajo consumo y donde no sea critica la velocidad de operacion.