-
Llevar SerenityOS al hardware real
- La razón por la que decidí involucrarme más en el proyecto SerenityOS era que la base de código solo se ejecutaba en QEMU y no en hardware real. Para solucionarlo, elegí un Chromebook Dell 3100.
-
Por qué elegí el Chromebook
- Los Chromebook son baratos y fáciles de conseguir, y cuentan con un chip de seguridad Cr50 que permite hacer depuración incluso con el firmware bloqueado. Elegí el modelo Dell 3100 porque era económico y su teclado era mejor que en modelos de mayor gama.
-
Problema con cros_ec
- El chip Cr50 del Chromebook era útil para depurar, pero en el modelo Dell 3100 no funcionó correctamente. Probé varios hacks de hardware, pero no tuve éxito.
-
Exploración de alternativas
- Como el chip Cr50 no funcionó, implementé una solución alternativa de depuración usando una placa Raspberry Pi Pico. Esto permitió conectar UART y una flash SPI para habilitar la depuración.
-
Enfoque de software
- Usé CircuitPython para implementar la conexión con dispositivos USB e implementé el protocolo serprog en CircuitPython para flashear EEPROM.
-
Depuración de SerenityOS
- Para depurar el kernel de SerenityOS, configuré Alpine Linux y preparé un entorno donde GRUB descarga y prueba automáticamente el kernel.
-
Comprensión de 16550 UART
- 16550 UART es una interfaz estándar para comunicación serial, presente en la mayoría de las PC. Sin embargo, en el Dell 3100 se implementó usando MMIO, lo que provocó dificultades durante la depuración inicial.
-
Implementación del driver eMMC
- Para implementar el driver eMMC, entendí la diferencia entre SD y MMC y desarrollé la secuencia de inicialización. Descubrí que la causa era una configuración incorrecta del registro de control de energía y la corregí.
-
Conclusión
- El proyecto duró seis meses y fue un paso importante para ejecutar SerenityOS en hardware real. Se requiere continuar con más depuración y mejoras.
1 comentarios
Opinión de Hacker News