X86: Как Linux узнает, какая область памяти используется для ввода-вывода, отображаемого в памяти (MMIO)?Linux

Ответить Пред. темаСлед. тема
Anonymous
 X86: Как Linux узнает, какая область памяти используется для ввода-вывода, отображаемого в памяти (MMIO)?

Сообщение Anonymous »


В настоящее время я изучаю процесс инициализации ядра Linux. Меня немного смущает, откуда ядро ​​узнает о конкретной области памяти, используемой для MMIO. У меня следующие гости.

Сначала ядро ​​запросит службы BIOS, чтобы определить, какая область памяти используется для нормальной работы, а какая зарезервирована для других целей (например, через INT 0x15, EAX = 0xE820). Но, насколько мне известно, BIOS предоставляет лишь минимальную информацию об этом (зарезервировано, APIC и нормально).

Почему первый вопрос: если драйвер устройства обязан знать, какая область памяти сопоставлена ​​с его устройством, как он может узнать, какая область памяти ему подходит? (возможно, через таблицы APIC или что-то еще)

Далее, если ядро ​​Linux не использует BIOS, какой механизм отвечает за определение структуры памяти для всех устройств, подключенных к компьютеру? И существует ли какой-либо механизм динамической настройки MMIO в драйверах устройств?

Последний вопрос более широкий: я хочу знать, как ядро ​​узнает, подключено ли к нему устройство, есть ли в ядре какой-то процесс сканирования для него или устройства будут генерировать прерывания, чтобы сигнализировать ядру? или это зависит от конкретного устройства, у каждого будут разные подходы (последовательный порт, клавиатура, мышь, PCIe и т. д.).

P/S: Не могли бы вы порекомендовать какие-нибудь ресурсы/статьи, в которых подробно объясняется взаимодействие ввода-вывода или периферийных устройств?

Я действительно хочу найти опытного разработчика ядра Linux, который поможет мне подробно ответить на эти вопросы.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»