2011-02-06 1 views
1

В ядре Linux почему не рекомендуется разыгрывать линейные адреса ядра, полученные путем сопоставления физических адресов ввода-вывода с использованием ioremap? Почему эти отображаемые линейные адреса должны быть разыменованы с помощью таких функций, как readl/writel?Выделение адресов ioremap

ответ

2

Для некоторых архитектур требуются специальные инструкции для доступа к портам ввода-вывода, например, для обхода кеша.

+0

Например, черная фаза не использует простое разыменование. http://en.wikipedia.org/wiki/Blackfin http://lxr.linux.no/linux+v2.6.37/arch/blackfin/include/asm/io.h#L29 –

+0

Может использовать 'ioremap' для получить доступ к памяти ввода/вывода PCI? –

+0

@caf: но это означает, что архитектура использует порт IO, а не карту памяти IO. ioremap() используется для отображения IO с отображением памяти. – Bandicoot

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