Ha habido mucha controversia en torno a UEFI, pero nos guste o no, se está convirtiendo en la única opción cuando se trata de placas base de escritorio generalmente disponibles. He estado evitando los mobos UEFI por algún tiempo, pero ahora se volvió bastante difícil ya que los vendedores de mobo envían productos UEFI con más características que los BIOS (es decir, soporte para más RAM). Con esto en mente, quiero asegurarme de que haya al menos una opción para usar el código abierto en el futuro, y si no la hay, puedo soportar menos funciones pero más libertad.
TianoCore es la implementación de código abierto de Intel de las interfaces UEFI y Wikipedia tiene esto que decir al respecto :
TianoCore carece de los controladores especializados que inicializan las funciones del conjunto de chips, que en su lugar son proporcionados por Coreboot, de los cuales TianoCore es una de las muchas opciones de carga útil. El desarrollo de Coreboot requiere la cooperación de los fabricantes de conjuntos de chips para proporcionar las especificaciones necesarias para desarrollar controladores de inicialización.
Mi pregunta es, ¿estos controladores proporcionados por coreboot todavía requieren algún tipo de blobs binarios de los proveedores de chipset? Además, Ronald G. Minnich tiene esto que decir sobre EFI:
Los accesos a las direcciones de E / S IDE, o ciertas direcciones de memoria, pueden quedar atrapados en el código EFI y potencialmente examinados, modificados o abortados. Muchos ven esto como un esfuerzo para construir un "DRM BIOS".
En una configuración de arranque de TianoCore +, ¿hay partes que podrían hacer ese firmware de código abierto o binario proporcionado por el proveedor de hardware?
fuente
Es posible combinar coreboot (inicialización temprana del hardware) y TianoCore (que proporciona la API UEFI) para una implementación completa de firmware UEFI. Sin embargo, eso todavía está en desarrollo. Tampoco será un UEFI "canónico" ya que la capa externa será coreboot.
Puede encontrar un enfoque, basado en Duet, en http://notabs.org/coreboot/duet-payload/ : se inicia un poco en hardware real.
Otro intento (divulgación: mi proyecto) que intenta reutilizar más de Tiano y permanecer más cerca de la arquitectura UEFI está en github: https://github.com/pgeorgi/edk2/ . Todavía no se han realizado muchas pruebas en hardware real, solo Qemu.
En principio, también podría funcionar tomar el código coreboot y hacer paquetes tianocore con ellos, por lo que se ve y se siente como UEFI en todos los aspectos (no solo aquellos visibles para el usuario y el sistema operativo). Obviamente, los desarrolladores de coreboot no están muy interesados en eso.
fuente
La inicialización del chipset y otro código específico de hardware de nivel extremadamente bajo siempre ha sido principalmente de código cerrado. BIOS / UEFI no cambia el hecho de que los detalles de la inicialización del controlador de memoria, etc., rara vez son revelados por los proveedores de la placa.
Para tener una verdadera placa de código abierto, deberá buscar hardware de código abierto, algún proveedor que exponga todas las especificaciones de cada componente de hardware en la placa base. Eso es difícil de encontrar, por decir lo menos.
fuente