Sistema de arranque de un SoC tipo RISC
Fecha
2019-05-06Registro en:
Vargas Valdivieso, Ivan. (2018). Sistema de arranque de un SoC tipo RISC (Maestría en Ciencias en Ingeniería de Cómputo). Instituto Politécnico Nacional, Centro de Investigación en Computación, México.
Autor
Vargas Valdivieso, Ivan
Institución
Resumen
RESUMEN:
El presente trabajo de tesis analiza las etapas de BIOS y boot loader sobre diferentes arquitecturas como: ARM, INTEL y MIPS, con el objetivo de entender cómo se lleva a cabo el proceso de arranque de un Sistema Operativo, enfocándose en los sistemas en chip. Este trabajo tiene como objetivo contribuir al entendimiento del proceso de arranque de un sistema en chip y lograr una adaptación de un BIOS y boot loader para el procesador desarrollado en el laboratorio Lagarto I.
Durante esta tesis se estudia la comunicación entre el boot loader y el kernel de linux abarcando dos métodos, el paso de parámetros (targets) y mediante árboles de dispositivos (Device Tree). También, se analiza el funcionamiento de la MMU (Memory Management Unit) y la distribución del mapa de memorias para la arquitectura MIPS y su importancia en el proceso de arranque de un procesador. Se analiza el papel de las interrupciones y el procesador de sistema en el momento del arranque.
En este trabajo también se plantea el diseño y programación de un emulador para el procesador Lagarto. Se explican cada uno de los archivos programados del emulador y su funcionamiento como herramienta para el desarrollo de código de boot.
Finalmente, se explica cómo se caracterizó el procesador lagarto dentro del código del emulador QEMU y el código del boot loader U-Boot.
Se realiza la adaptación del código de U-Boot a las configuraciones del procesador Lagarto y se prueba sobre QEMU.
ABSTRACT:
In this Thesis work, BIOS and boot loader are analized on different architectures: ARM, INTEL and MIPS, in order to better understand the whole initialization process of an operative system. During this work we are going to focus on system on chips, the objective is to contribute to a larger effort to better understand how initialization does and to adapt the boot to the laboratory developed processor Lagarto I.
Along the thesis the comunication between the boot loader and the linux kernel is studied, by parameters and by device tree. It is also analized the MMU (Memory Management Unit) and the memory map distribution for MIPS architecture and its importance on the boot process. It is also examined the funtion of interrupts and the system processor during initialization.
In the work it is also explained the code of an emulator created for debbuging the initialization process of the Lagarto processor. This emulator was programed in phyton and was coded to emulate the lagarto architecture.
Finally, it is explained how the QEMU emulator and boot loader U-boot are carachterized to emulate the lagarto processor.