Какой BIOS использует малина Pi?

Я хочу узнать о BIOS на материнской плате Raspberry Pi. Что называется BIOS? Имеет ли оно определенное имя или это просто называется BIOS на малине Pi?

arm
26 голосов | спросил Devyn Collier Johnson 17 J000000Wednesday13 2013, 17:20:52

2 ответа


30

Прошивка представляет собой закрытый код с закрытым исходным кодом, запрограммированный в процессоре SoC (System on Chip), который не может быть изменен. После включения питания прошивка начнет загрузчик на SD-карте. Я не считаю, что любые другие услуги предоставляются через прошивку SoC, поэтому она не является «BIOS» (базовая система ввода-вывода) сама по себе. После этого все остальное происходит от SD-карты.

В разделе программного обеспечения раздела wiki , порядок загрузки выглядит следующим образом:

  1. Первый загрузочный загрузчик . Это используется для установки загрузочного раздела FAT32 на SD-карте, чтобы можно было получить доступ к загрузчику второго этапа. Он запрограммирован в SoC самостоятельно при изготовлении RPi и не может быть перепрограммирован пользователем.
  2. Второй загрузочный загрузчик (bootcode.bin) - используется для извлечения прошивки GPU с SD-карты, программирования прошивки и запуска графического процессора.
  3. прошивка GPU (start.elf) - после загрузки это позволяет графическому процессору запускать CPU. Дополнительный файл fixup.dat используется для настройки раздела SDRAM между GPU и CPU. На этом этапе CPU освобождается от сброса, и выполнение переносится.
  4. Код пользователя . Это может быть любое количество двоичных файлов. По умолчанию это ядро ​​Linux (обычно называемое kernel.img), но оно также может быть другим загрузчиком (например, U-Boot) или приложением с голыми костями.
ответил Tevo D 17 J000000Wednesday13 2013, 20:49:01
16

@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 отвечает не только за графические вещи - он также управляет часами и производит звук, например. В этом отношении прошивку GPU можно считать чем-то похожей на BIOS с обычных компьютеров ПК. Вы можете найти более подробную информацию об этих чтениях драйверов ядра RaspberryPi Linux.

Вы также можете найти дополнительную информацию в этом ответ.

ответил Krzysztof Adamski 17 J000000Wednesday13 2013, 21:28:45

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132