Me pregunto cuál es la secuencia de arranque de la Raspberry Pi en una configuración típica (por ejemplo, NOOBS), desde la aplicación de energía (o reinicio en caliente si es diferente) hasta, por ejemplo, la aparición del logotipo; o donde se describe eso.
Además de una imagen general más necesaria de esa secuencia, estoy más interesado en las primeras etapas:
- ¿Cuál es el vector de reinicio para la CPU ARM y cómo / dónde se define eso?
- ¿Desde qué memoria se obtienen las primeras instrucciones de CPU ARM? ¿Dónde está eso y qué tecnología se utiliza para almacenar este código?
- ¿Es ese el código ARM32 o Thumb (o quizás Jazelle)? ¿Depende eso del bit de orden inferior del vector de reinicio?
- ¿Está disponible la fuente (o desensamblaje, o volcado) de ese código de arranque temprano? Si no, ¿hay algo técnico que impida el uso del puerto JTAG para determinar eso? En cuanto a lo legal, estoy dispuesto a asumir el riesgo de confiar en mi comprensión de la ley aplicable en mi lugar de residencia (Francia), que es que estoy totalmente autorizado a analizar mi propia computadora, al menos en ausencia de un contrato explícito requisito de no hacerlo.
- ¿En qué orden se inicializan los periféricos y por qué código?
- Además de la CPU ARM, ¿hay algún procesador / autómata ejecutándose en el BCM2835, y afirmativamente cómo se relaciona su secuencia de arranque con la CPU ARM?
Estoy listo para sumergirme en el Manual de referencia técnica de la CPU ARM y los periféricos ARM BCM2835 , o cualquier otro documento.
Actualización: después de publicar, encontré esto y esto , indicando que la GPU del BCM2835 está actuando como un maestro para el ARM, y está muy involucrado en la secuencia de arranque.