Chcę się dowiedzieć o systemie BIOS na płycie głównej Raspberry Pi. Jak nazywa się BIOS? Czy ma określoną nazwę, czy po prostu nazywa się BIOS na Raspberry Pi?
Chcę się dowiedzieć o systemie BIOS na płycie głównej Raspberry Pi. Jak nazywa się BIOS? Czy ma określoną nazwę, czy po prostu nazywa się BIOS na Raspberry Pi?
Odpowiedzi:
Oprogramowanie to zastrzeżony kod źródłowy zaprogramowany w procesorze SoC (System on a Chip), którego nie można modyfikować. Po włączeniu zasilania oprogramowanie uruchomi moduł ładujący na karcie SD. Nie wierzę, aby jakiekolwiek inne usługi były świadczone przez oprogramowanie układowe SoC, więc tak naprawdę nie jest to „BIOS” (Basic Input / Output System) per se. Po tym punkcie wszystko inne pochodzi z karty SD.
Zgodnie z sekcją oprogramowania wiki kolejność uruchamiania jest następująca:
bootcode.bin
z karty SD. To jest powód, dla którego nie można uruchomić RaspberryPi z nośnika innego niż karta SD.
@TevoD ma prawie rację w tym, co napisał w swojej odpowiedzi - RaspberryPi używa binarnego oprogramowania układowego jako bootloadera. Aktualna wersja znajduje się tutaj . Dwa pliki, które tworzą oprogramowanie wewnętrzne to bootcode.bin
(bootloader 2. etapu) i start.elf
(„firmware” GPU). Co ciekawe i dość unikalne dla RaspberryPi, to to, że zaczyna się od GPU
(układ graficzny) i właśnie tam działa bootloader. GPU
następnie uruchamia ARM CPU
i uruchamia jądro Linuksa.
GPU
Jednak po uruchomieniu Linuksa kod nie jest zwalniany. Zamiast tego działa własny, prosty system operacyjny o nazwie VCOS
( Video Core Operating System
). Jądro Linux komunikuje się ze swoimi usługami za pomocą specjalnych mailbox protocol
i wykorzystujących przerwania (GPU może wytwarzać przerwania ARM). Można przeczytać informacje na temat protokołu używanego do poczty framebuffer
tutaj . GPU jest odpowiedzialna nie tylko za elementy graficzne - kontroluje również zegary i wytwarza na przykład dźwięk. Pod tym względem oprogramowanie układowe GPU można uznać za coś podobnego do BIOS
zwykłego komputera PC. Więcej informacji na ten temat można znaleźć w czytaniu sterowników jądra Linux RaspberryPi.
Możesz również znaleźć więcej informacji w tej odpowiedzi.