Я хочу узнать о 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.
Вы также можете найти больше информации в этом ответе.