Desarrollo de capa de compatibilidad del Firmware CIAA ...

26
Desarrollo de capa de compatibilidad del Firmware CIAA para procesadores LEON3 Gerardo L. Puga Departamento de Electrotecnia, Facultad de Ingeniería Universidad Nacional de La Plata Diciembre 2016 (doc. rev. C) Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 1 / 26

Transcript of Desarrollo de capa de compatibilidad del Firmware CIAA ...

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

(fin)

Gerardo L. Puga (FI UNLP) Capa compatibilidad LEON3 Diciembre 2016 (doc. rev. C) 26 / 26