Что означает отображение виртуального адреса на физический адрес?

Я использую "ioremap" для сопоставления адреса порта GPIO в техническом паспорте Ti AM3359 . Код работает нормально.

Проблема:

1> Проблема в том, почему нам нужно сопоставить виртуальный адрес с физическим адресом? Это потому, что физический адрес является реальным адресом оборудования, к которому мы хотим получить доступ?

2> Если приведенное выше верно, то почему таблицы данных не дают физического адреса.

3> Будет ли физический адрес, возвращаемый "ioremap", отличаться в разных платах с разным объемом оперативной памяти?

2 ответа

Что касается вашего первого вопроса, причина, по которой вы используете ioremap потому что адресное пространство ядра не соответствует физическому адресному пространству. Вам необходимо отобразить физические страницы в виртуальное адресное пространство, чтобы иметь возможность их адресовать вообще. Это то, что ioremap делает.

Что касается ваших второго и третьего вопросов, я бы не знал, что ваши таблицы дают или не дают.:)

Как правило, я ожидаю, что аппаратные таблицы данных дадут физические адреса, если только физический адрес не должен быть обнаружен или настроен через специфические для шины механизмы. Что именно вы на самом деле указываете, если не это?

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

  1. потому что ядро ​​работает на виртуальных адресах, а не на физических
  2. в моих таблицах есть только физические адреса
  3. afaik ioremap возвращает виртуальный адрес, сопоставляющий ваш физический адрес
Другие вопросы по тегам