3 недели назад
Пишем операционную систему Триалогия - Шина PCI - как находят устройства, config space, BAR
Первая серия статей крутилась вокруг центральных интерфейсов ядра. Теперь спускаемся на уровень ниже, к фундаменту на котором стоят все драйверы. Как ядро вообще находит железо с которым должно говорить? При старте оно ничего не знает о машине в которой работает. Ни списка дисков, ни сетевой карты, ничего. Ответ - это шина PCI и она на удивление систематична. У каждого устройства PCI есть 256-байтовое конфигурационное пространство, в котором оно описывает само себя. Устройство адресуется тремя числами: шина, устройство и функция...