Desarrollo de capa de compatibilidad del Firmware CIAApara procesadores LEON3
Gerardo L. Puga
Departamento de Electrotecnia, Facultad de IngenieríaUniversidad Nacional de La Plata
Diciembre 2016(doc. rev. C)
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 1 / 26
Outline
1 Introducción y Objetivos
2 Desarrollo
3 Ensayos y Resultados
4 Conclusión
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 2 / 26
Sección 1
Introducción y Objetivos
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 3 / 26
LEON 3
Softcore de arquitectura SPARC v8, sintetizable en FPGA.Código fuente VHDL distribuido bajo licencia GPL.Configurable: cache, multiplicador, MAC, etc.Disponible en versión Fault Tolerant (con licencia comercial).Forma parte de la GRLIB: SoC configurables en FPGA.Toolchain provisto por Cobham Gaisler.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 4 / 26
Aplicaciones del LEON 3.
Orientado hacia aplicaciones de tipoaeroespacial, pero la versión no-FT es unprocesador convencional que puede serutilizado en cualquier sistema de lógica
reconfigurable.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 5 / 26
Sistemas basados en lógica reconfigurable
Basados en FPGAs y CPLDs.
Permiten su reconfiguración yrefuncionalización múltiples veces.
Aptos para el desarrollo de prototipos ysistemas especializados en bajas cantidades.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 6 / 26
Firmware CIAA
Presenta una interfaz de programación común para todas las versiones de lascomputadoras CIAA Industriales y Educativas
Estructura modular.
RTOS de tipo OSEK-OS.
Acceso a dispositivos POSIX-like.
Pensado para ser portable entreplataformas.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 7 / 26
Objetivos y alcance
ObjetivosExtender la base de hardware disponible que puede ser programada
utilizando el Firmware de la CIAA al incorporar sistemas de lógicaprogramable basados en LEON3/GRLIB.
Alcance definidoPortar el sistema operativo FreeOSEK.
Implementar el driver UART.
Adaptar sistemas de build y validación rtos.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 8 / 26
Sección 2
Desarrollo
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 9 / 26
Requisitos mínimos de la plataforma
La plataforma sintetizada debe satisfacer una serie de requisitos mínimospara poder correr el firmware.
LEON3 Con HW MUL/DIV, 8 WIN.
IRQMP Controlador de interrupciones.
GPTIMER Temporizador modular.
MCTRL Controlador de memoria.
DSU3 Depuración (+ AHBUART, AHBJTAG, etc.).
APBUART ≥ 1 para usar driver POSIX. Deben compartir IRQ.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 10 / 26
Firmware CIAA
Los proyectos tienen una arquitectura estratificada.El Firmware CIAA se puede dividir en dos niveles principales:
Una capa independiente de la plataforma.Una capa de compatibilidad con el hardware subyacente.
Para portar el firmware a una nueva plataforma es necesario desarrollaruna nueva capa de compatibilidad para la plataforma correspondiente.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 11 / 26
Módulo rtos (I)
Gestión propia de las ventanas de registros SPARC.
Hardware autodetectado durante la inicialización utilizando Plug’n’Playde la GRLIB: no requiere modificaciones al código fuente.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 12 / 26
Módulo rtos (II)
LEON3 no tiene un mecanismo definido de cambio de contexto.
El Firmware LEON3 implementa los cambios de contexto usando unacombinación de interrupciones por hardware y software.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 13 / 26
Módulo drivers
Siguiendo el alcance definido para el proyecto, sólo se implementa eldriver UART.
Se usa Plug’n’Play para detectar la cantidad de APBUARTs.
Para c/u, autoconfiguración de dirección base y modo FIFOs.
Las UARTs se registran en POSIX como “/dev/uart/X”.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 14 / 26
Otros elementos
Sistema de buildSe definió un nuevo target de
compilación del Firmware:
Test-harness FreeOSEKSe adaptó el harness de validaciónautomática de FreeOSEK para que
funcione sobre la plataformaLEON3.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 15 / 26
Sección 3
Ensayos y Resultados
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 16 / 26
Kit DE2-115
Puertos ETH, PS/2, VGA Out, RS-232,audio, USB Host y Device.
Módulo LCD de 16x2.
Displays de 7 segmentos, pulsadores,interruptores y leds.
Oscilador interno de 50 MHz.
Múltiples memorias: 2MB SRAM, 8MBFlash, 64MB SDRAM.
Sistema LEON3 sintetizado en una FPGA Cyclone IV, con reloj de sistema de50 MHz, 2 temporizadores y salida a través de RS-232.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 17 / 26
Simulación en TSIM
TSIM es un simulador deCobham Gaisler que permite
trabajar con sistemas basadosen los procesadores
espaciales ERC32, LEON2,LEON3 y LEON4.
Alta velocidad de simulación (60 MIPS @ i7 2.6GHz).
Funcionamiento independiente o ligado a GDB.
Pueden configurarse las características del HW simulado.
Software pago, pero existe una versión de evaluación restringida (sóloLEON3) para uso no comercial.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 18 / 26
Validación del sistema operativo
Se validó el RTOS OSEK-OS corriendo el test-harness incluido en el propioFirmware CIAA, adaptado para LEON3.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 19 / 26
Validación del sistema operativo
Para mejor cobertura se ejecutó harness en diferentes configuraciones dehardware real y simulado.
En las configuraciones ensayadas los resultados fueron satisfactorios.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 20 / 26
Funcionamiento de las UARTs
La verificación del driver UART fue manual:
Transmisiones y recepciones.
Diferentes baudrates: 1200, 2400, ..., 115200.
Diferentes largos de paquetes de datos.
Diferentes configuraciones de los FIFOs de la UART (TSIM).
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 21 / 26
Sección 4
Conclusión
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 22 / 26
Aportes realizados
Se creó un port funcional del Firmware CIAA para sistemasLEON3/GRLIB.
Se validó el sistema operativo FreeOSEK en esta plataforma.Se amplió la base de plataformas de hardware disponibles:
Kits de desarrollo FPGA preexistentes.Potencialmente puede utilizarse en la EDU-CIAA Xilinx.
Las plataformas incorporadas son flexibles:Amplia disponibilidad de IP Cores, dentro y fuera de la GRLIB.Variedad de hardware físico disponible en kits FPGA.Posibilidad de incluir IP Cores especializados en el SoC FPGA.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 23 / 26
Relación con las cursadas
Son múltiples las herramientas vistas a lo largo de las cursadas quese utilizaron durante la ejecución del proyecto
Control de versiones con GIT.
Configuración y uso del Firmware CIAA.
Planificación del proyecto.
Conceptos de sistemas operativos de tiempo real.
Lenguajes de descripción de hardware.
Configuración y síntesis de hardware programable.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 24 / 26
Líneas abiertas
A partir del trabajo realizado se abren una serie de vertientes futurasde desarrollo
Incorporar una variante para sistemas con FPU.
Stack de interrupciones separado.
Implementación de controladores adicionales.
Mecanismo para detectar desbordamientos de stack.
Generar una alternativa open source a GRMON.
Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 25 / 26
Top Related