tl; dr: Suponiendo que se haya fabricado perfectamente un BeagleBone a partir de esquemas y diseños de código abierto, ¿qué sería necesario para obtener el mismo nivel de funcionalidad que un BeagleBone recién descascarillado?
Alternativamente, ¿cómo se podría desbloquear un BeagleBone que se niega a iniciar desde flash o eMMC, suponiendo que todo el hardware funciona perfectamente?
La pregunta de seguimiento es aquí .
He estado experimentando con placas integradas básicas, procesadores ARM / AVR de baja gama soldados a mano que se muestran directamente.
Si quisiera hacer un clon funcional de un BeagleBone, ¿qué sería necesario para lograr el nivel de funcionalidad que tienen fuera de la caja?
Entonces, después de gastar una cantidad ridícula de tiempo y dinero en la fabricación de un clon de < $ 100 en un tablero listo para usar, ¿qué tendría que hacer para poder simplemente enchufar una tarjeta SD? ¿El botón de selección de inicio y el inicio de la tarjeta desde la tarjeta SD?
Supongo que antes de invocar U-boot en la tarjeta SD / eMMC, hay un cargador de arranque anterior que se muestra en el Sitara.
Entonces el orden sería:
-
La imagen en Sitara se ejecuta desde flash y configura una interfaz UART en serie, hardware externo, etc.
-
Dependiendo del estado del botón de selección de inicio, esa imagen carga U-boot desde el eMMC o desde la tarjeta SD, y salta a él.
-
U-boot luego carga el kernel y el initrd, le pasa los datos del árbol de dispositivos y la línea de comandos, luego salta a él.
-
Botas de Linux
"Profit!"
En estas placas más complejas, ¿cómo se activará el cargador de arranque de la primera etapa? ¿Cómo podría usar un BeagleBone para desarrollar y probar mi propio gestor de arranque de primera etapa?
Bien, he encontrado que hay un código ROM en el Sitara, que comprueba algunos bytes en el eMMC y arranca si parece válido. Comprueba la tarjeta SD si el eMMC no parece válido.
Mi pregunta ahora, que volveré a hacer como otra pregunta: ¿Viene este código ROM en la propia Sitara, o de otro modo, cómo se obtendría y flashearía? ¿Es de código abierto? ¿Es una burbuja binaria en el SDK de Sitara? ¿Es inmutable y está integrado en el Sitara antes de salir de la fábrica de TI?