LINUX.ORG.RU

Инициализация внешних устройств

 , , ,


0

1

Правильно ли я понял, что информацию о устройствах предоставляет BIOS при загрузке ОС? А процессор потом взаимодействует с этими устройствами с помощью шины, используя адреса ранее предоставленные BIOS?

В общем, да. Но BIOS не просто предоставляет информацию, он конфигурирует устройства на шинах. Если речь про PCI/PCI-Express. А на всяких второстеменных шинах типа i2c ядро само может сканировать и обнаруживать устройства...

mky ★★★★★ ()
Ответ на: комментарий от mky

В общем, да. Но BIOS не просто предоставляет информацию, он конфигурирует устройства на шинах. Если речь про PCI/PCI-Express.

Некоторые конфигурирует, некоторые не конфигурирует. Ядро может само все переконфигурировать. Да и собственно BIOS не везде имеется, где Linux может работать.

zloy_starper ★★★ ()
Ответ на: комментарий от zloy_starper

Ядро может само все переконфигурировать

Каким образом детектятся устройства? С помощью контроллера шины что-ли?

bubvalet ()
Ответ на: комментарий от zloy_starper

Вы это лучше ТС`у пишите и раскажите про дивный мир микроконтроллеров, роутеров, ARM'ов :)

mky ★★★★★ ()
Ответ на: комментарий от bubvalet

Каким образом детектятся устройства? С помощью контроллера шины что-ли?

Вопрос не ясен. Разумеется любым устройством, подключенным к шине, можно манипулировать с использованием контроллера шины. Способ детектирования зависит от тиап шины и устройства. Некоторые никак нельзя детектировать. В конфигурации просто прописано, что на такой-то шине по такому-то адресу должно быть такое-то устройство, для которого следует использовать такой-то драйвер.

zloy_starper ★★★ ()
Ответ на: комментарий от bubvalet

Надо сначала как-то ограничить предмет обсуждения. Если говорить про шину PCI, то типы устройств там вполне определены в стандарте. И устройство просит вполне опрелённые ресурсы, например область адресного пространства процессора, куда должна быть отображена память устройства.

Вобще шина это очень общее понятие. Есть шина памяти, там BIOS всё конфигурит, а ядро туда вобще не лезет. А SCSI к устройствам (когда это была действительно шина и на одном шлейфе висел винт, стриммер, сканер) BIOS не лез и ядро их само обнаруживало.

Далее, если говорить про классический BIOS, то каждое устройство может содержать ПЗУ, и BIOS, если найдёт, запускает код из этого ПЗУ — как бы драйвер устройства. Код может что-то менять в структурах BIOS. Допустим контроллер дисков может прописать найденые им его кабелях диски в таблицу дисковых накопителей BIOS.

mky ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.