Я хочу узнать о BIOS на материнской плате Raspberry Pi. Как называется BIOS? У него есть конкретное имя или он просто называется BIOS на Raspberry Pi?
Я хочу узнать о BIOS на материнской плате Raspberry Pi. Как называется BIOS? У него есть конкретное имя или он просто называется BIOS на Raspberry Pi?
Ответы:
Это встроенное программное обеспечение с закрытым исходным кодом, запрограммированное в процессор SoC (система на чипе), которое нельзя изменить. После включения питания прошивка запустит загрузчик на SD-карте. Я не верю, что какие-либо другие сервисы предоставляются через микропрограмму SoC, так что это на самом деле не «BIOS» (базовая система ввода / вывода). После этого все остальное приходит с SD-карты.
Согласно разделу программного обеспечения вики , порядок загрузки следующий:
bootcode.bin
с SD-карты. По этой причине невозможно загрузить RaspberryPi с носителя, отличного от SD-карты.
@TevoD почти прав в том, что он написал в своем ответе - RaspberryPi использует двоичный файл прошивки с закрытым исходным кодом в качестве загрузчика. Текущую версию можно найти здесь . Два файла, из которых состоит прошивка: bootcode.bin
(загрузчик 2-й ступени) и start.elf
(«прошивка» для GPU). Что интересно и совершенно уникально для RaspberryPi, так это то, что он начинается с GPU
(графического чипа), и именно здесь запускается загрузчик. GPU
затем запускается ARM CPU
и запускается ядро Linux.
Однако после запуска Linux код GPU
не выгружается. Вместо этого он запускает свою собственную простую ОС, которая называется VCOS
( Video Core Operating System
). Ядро Linux связывается со своими сервисами, используя специальные mailbox protocol
и используя прерывания (GPU может генерировать прерывания ARM). Вы можете прочитать некоторую информацию о протоколе почтового ящика, используемого framebuffer
здесь . GPU отвечает не только за графические объекты, но также контролирует часы и производит звук, например. В связи с этим прошивку графического процессора можно считать чем-то похожим на BIOS
обычные компьютеры ПК. Вы можете найти больше информации об этом чтении драйверов ядра RaspberryPi Linux.
Вы также можете найти больше информации в этом ответе.