Flash / obtener el código ROM para Sitara en BeagleBone Black

0

¿Cómo se carga / proporciona el código ROM en el BeagleBone Black?

Veo algunas posibilidades:

  • Se carga en la fábrica de TI y es inmutable [improbable]

  • Está encendido durante la fabricación de BeagleBone [muy probablemente]

  • De alguna otra manera

Si es de código abierto, ¿de dónde se puede obtener?

Si no es de código abierto, y TI no lo transfiere a Sitara, ¿se puede obtener como un blob binario o se puede extraer de otro Sitara?

¿Cómo se emitirá (a través de USB? ¿JTAG?)

¿Este código ROM cumple una función similar a la BIOS de una PC? ¿Restablecer el estado inicial del sistema (incluida la configuración de dispositivos de arranque) y luego cargar un cargador de arranque?

Esta pregunta es la secuela de this .

He estado jugando con FreeRTOS en algunos tableros Cortex M3 y F1 por un tiempo y decidí comenzar a aprender cómo funcionan los sistemas integrados más complejos.

    
pregunta Mark K Cowan

2 respuestas

1

La ROM AM335x está arreglada por TI, no hay una razón real para necesitar el código. Carga un pequeño archivo ejecutable en función de los pines de arranque desde una de las muchas ubicaciones posibles, incluidas MMC, NAND, UART (a través de XMODEM), un servidor a través de Ethernet que utiliza el protocolo BOOTP y otros.

Lo que se usa como el programa que carga la ROM depende de su configuración.

En el caso de Linux, un proceso de arranque típico tiene este aspecto:

  1. ROM carga U-Boot SPL
  2. U-Boot SPL inicializa relojes (incluyendo MPU), RAM y algunas otras cosas (como UART para consola)
  3. SPL carga U-Boot correctamente
  4. U-Boot carga correctamente tu sistema operativo o hace lo que sea

U-Boot SPL es la versión reducida de U-Boot, que se usa porque U-Boot es demasiado grande (300k +) para cargarse en la RAM de Sitara (o caché, como lo llames, es de 128k).

En el caso particular de BeagleBone, tanto SPL como U-Boot se encuentran en el eMMC (o tarjeta SD), ya sea en la pequeña partición FAT o en los primeros 2kB en una dirección fija si no hay una partición FAT.

SPL es en realidad una parte de U-Boot y está integrado junto con él, por lo que si desea experimentar, simplemente compile U-Boot con la configuración de BeagleBone y juegue con él.

Respondiendo a sus otras preguntas, lo único que hace la ROM es cargar el cargador de arranque: toda la inicialización del hardware, incluido el AM335x mismo, lo realiza el cargador de arranque en cualquiera de las etapas.

Tenga en cuenta que no todos los cargadores de arranque son de dos etapas, es solo que U-Boot es demasiado grande. En algunas otras MPU, como i.MX6 que tiene más RAM incorporada, no es necesario utilizar dos etapas, incluso con U-Boot.

    
respondido por el Jan Dorniak
0

El cargador de arranque ROM (una versión reducida de U-boot) es flasheado por TI y es inmutable a partir de entonces.

Intenta cargar la segunda etapa desde los dispositivos de arranque en un orden predefinido (MMC, SPI, ... ¿UART? ...).

La segunda etapa puede ser un sistema operativo en sí mismo, o es más probable que sea otro cargador de arranque (generalmente un arranque en U completo), que carga el sistema operativo principal (por ejemplo, Linux).

    
respondido por el Mark K Cowan

Lea otras preguntas en las etiquetas