Проект по созданию полностью открытой прошивки для Raspberry Pi

14.01.2017 09:09

В рамках проекта rpi-open-firmware развивается полностью открытый вариант прошивки для плат Raspberry Pi, способный загружать Linux без использования блобов. Несмотря на наличие открытых драйверов, работа видеоускорителя VideoCore IV обеспечивается загружаемой в GPU проприетарной прошивкой, в которую вынесена достаточно обширная функциональность, например, на стороне прошивки реализована поддержка OpenGL ES. По сути на стороне GPU выполняется подобие операционной системы, а работа открытых драйверов сводится к трансляции вызовов к закрытой прошивке. Задачей проекта rpi-open-firmware является создание простейшего свободного варианта подобной прошивки, позволяющей обойтись без загрузки каких-либо блобов.

Rpi-open-firmware заменяет штатную прошивку, поставляемую в файле bootcode.bin, и состоит из двух частей: компонентов для выполнения на стороне GPU VC4 и компонентов, исполняемых на центральном процессоре. Прошивка совместима с Raspberry Pi 1 Model B, Raspberry Pi 2 Model B и Raspberry Pi 3 Model B. Исходные тексты поставляются под лицензией GPLv2+.

На текущем уровне развития прошивка позволяет загружать урезанное ядро Linux, инициализирует UART, VPU PLL (PLLC) и процессор ARM, включает драйверы для управления частотой и энергопотреблением. Компоненты, выполняемые на стороне CPU ARM, обеспечивают инициализацию контроллера eMMC и доступ к загрузочному разделу. Частично реализована поддержка USB PHY (выполняется инициализация, но для полноценной работы не хватает работы с DMA).