2014-02-07 4 views
1

Я использую «ioremap» для сопоставления адреса порта GPIO в техническом описании Ti AM3359. Код работает нормально.Каково значение отображения виртуального адреса на физический адрес?

Проблема:

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

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

3> Является ли физический адрес, возвращенный «ioremap», различным в разных платах с разным объемом ОЗУ?

ответ

1

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

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

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

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

+0

Мы используем адрес, указанный в ли данные в качестве входных данных в ioremap, поэтому он должен быть только виртуальным адресом (фактически адрес, указанный в листе данных, всегда смещается) –

+0

Нет, это означает, что это, по сути, физический адрес. 'ioremap' предоставляет вам виртуальный адрес. Что заставило вас думать, что это не так? – Dolda2000

+0

Ya вы правы, я также проверил это, но дело в том, зачем нам нужен виртуальный адрес для доступа к любому оборудованию? –

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

Спасибо за замечательное объяснение :) –

Смежные вопросы