Описание тега ioremap

`ioremap()` maps bus memory into CPU space for memory mapped I/O in the Linux kernel
0 ответов

Блок чтения с MTD flash с ioremap

Я хотел бы знать ожидаемый результат чтения данных блока из флэш-памяти MTD согласно приведенному ниже коду: #define PHY_ADDR 0x80000000 // certain physical memory location void *dst; dst = ioremap(PHY_ADDR,len); // ioremapping mtd_image->_read(m…
02 фев '16 в 15:38
1 ответ

Драйвер ядра, ioremap необходим в системе без MMU?

Итак, я новичок, когда дело доходит до драйверов ядра и у меня есть вопрос, касающийся функции ioremap. Я пишу драйвер для доступа к некоторым регистрам, определенным в пользовательском VHDL-модуле на SoC с матрицей ARM Cortex-M3 и FPGA. Глядя на пр…
07 дек '13 в 14:46
1 ответ

Сопоставить память резерватора при загрузке с пользовательским пространством с помощью remap_pfn_range

Я пытаюсь отобразить зарезервированную память (30M со смещением 2G) во время загрузки (параметры ядра загрузки mem=2G memmap=30M$2G) в пространство пользователя с использованием remap_pfn_range, ниже приведен код моего драйвера: #include <linux/k…
20 июн '16 в 09:41
2 ответа

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

Я использую "ioremap" для сопоставления адреса порта GPIO в техническом паспорте Ti AM3359 . Код работает нормально. Проблема: 1> Проблема в том, почему нам нужно сопоставить виртуальный адрес с физическим адресом? Это потому, что физический адрес я…
0 ответов

Использование физического адреса в качестве фрагмента данных sk_buff

Можно ли отобразить физический адрес как фрагмент данных в sk_buff? Я работаю на платформе Zynq Ultrascale+ (FPGA + ARM SOC). У меня есть буфер памяти сопоставлен с физическим адресом. Цель состоит в том, чтобы эффективно отправить эти данные по UDP…
16 ноя '18 в 12:23
1 ответ

ARM голый металл с MMU: ошибка записи в не кэшируемую, не буферизированную область отображения

Я процессор ARM Cortex A9 с 2 ядрами. Но я просто использую 1 ядро, а другое просто в напряженном цикле. Я настраиваю таблицу MMU, используя раздел (1 МБ на запись) следующим образом: 0x00000000-0x14ffffff => 0x00000000-0x14ffffff (non-cachable, …
20 ноя '13 в 02:05
1 ответ

Использование writel для записи 4-битного адреса памяти в ioremap

Я новичок в программировании ядра, и теперь пытаюсь записать некоторые значения в 32-битный регистр GPIO в драйвере устройства. Ввод / вывод ioremap()-ед по адресу памяти. Проблема в том, что я не знаю как writel()/writeb()/writew() пишет биты по ад…
02 апр '17 в 05:36
0 ответов

Неожиданные изменения в данных, записанных в адрес физической памяти

Платформа - MIPS, а ядро ​​- Linux 2.6.31. Во-первых, я резервирую 8МЗ ОЗУ из общего объема ОЗУ 64М, поэтому ядро ​​использует только 56МЗЗ. Во-вторых, я использую ioremap() функция для преобразования физического адреса в виртуальный адрес в ядре, а…
21 апр '15 в 08:35
1 ответ

Можете ли вы mmap (пользователь) и ioremap_nocache (кернал) один и тот же физ адрес?

Можете ли вы mmap (пользователь) и ioremap_nocache (кернал) один и тот же физ адрес, что и адрес fpga?
24 июл '14 в 16:30
2 ответа

Почему мы можем напрямую получить доступ только к области 640k-1MB в физических адресах PCI?

http://www.mjmwired.net/kernel/Documentation/IO-mapping.txt 153 - remapping and writing: 154 /* 155 * remap framebuffer PCI memory area at 0xFC000000, 156 * size 1MB, so that we can access it: We can directly 157 * access only the 640k-1MB area, so…
25 дек '12 в 11:42
0 ответов

Почему выделенные области имеют такое большое значение?

У меня есть код, который не вызывает ioremap() для 4М региона. Пытаясь выяснить причину, я обнаружил, что если вы позвоните ioremap он попытается выделить непрерывные адреса с очень большим выравниванием (в зависимости от размера области, которую вы…
31 янв '14 в 09:05
1 ответ

Драйвер LINUX KERNEL зависает / зависает после обработки сопоставленного регистра

Я совершенно новичок в разработке ядра Linux, и у меня возникли некоторые проблемы с новым драйвером LINUX, который я разрабатываю. После того, как я сопоставил регистры NXP PWM, используя ioremap()/ioremap_nocache(), а затем я попытался записать в …
28 сен '18 в 02:30
1 ответ

Что подразумевается под дырами в памяти Linux?

Я сталкивался с термином - дыры в памяти в Linux. Я считаю, что это память, которая перераспределяет ввод / вывод. Правильно ли мое понимание?
13 май '14 в 08:25
0 ответов

Как убедиться, что предварительно загружаемый BAR MMIO access PCIE не будет оптимизирован в ядре Linux

Я сталкиваюсь с некоторыми проблемами, связанными с предварительно выбираемым PCIE доступом к BAR в ядре Linux на платформе x86_64. Для моего устройства PCIE BAR 2 - возможность предварительной выборки, а BAR5 - без предварительной выборки, и обе он…
24 авг '18 в 11:46
0 ответов

Передача DMA по физическому адресу с использованием ioremap

Я использую https://elixir.bootlin.com/linux/v4.9.127/source/drivers/dma/dmatest.c. Выше самой передачи программы передача происходит только из буфера в буфер с помощью kmalloc. Но я хочу использовать для физического адреса, используя ioremap. Я сде…
18 сен '18 в 05:47
1 ответ

Разве второй параметр в ioremap() дает размер в количестве бит для регистра Linux?

Мой микроконтроллер NEC имеет 8-битный регистр контроллера таймера. Нужно ли передавать 8 во втором параметре ioremap? После прочтения спецификации я узнал следующее свойство. Address |Function Register Name |Symbol |R/W Manipulatable Bits |Default …
3 ответа

Использование ioremap для резервирования времени загрузки памяти ядра

Во-первых, я должен признать, что я новичок. так что не иди на меня, плз. Я хочу зарезервировать память во время загрузки, а затем использовать эту память в модуле ядра, чтобы быть уверенным, что этот модуль является единственным, использующим это п…
27 июл '15 в 11:10
1 ответ

Почему я не должен использовать ioremap в системной памяти для ARMv6+?

Мне нужно зарезервировать большой буфер физически непрерывной оперативной памяти из ядра и иметь возможность гарантировать, что буфер всегда будет использовать конкретный, жестко закодированный физический адрес. Этот буфер должен оставаться зарезерв…
30 мар '17 в 20:33
1 ответ

Как IOREMAP последовательный порт на X86 - 0x2f8?

Я пытаюсь написать модуль ядра ioremap - компьютер X86. Этот модуль будет читать значение из последовательного порта. Как найти SERIAL_ADDR, SERIAL_SIZE здесь? Мой драйвер правильно читать значение порта? Есть ли проблемы с моим кодом? SERIAL_ADDR и…
13 май '14 в 07:32
1 ответ

Может читать только 0 из памяти ioremap()

Я разрабатываю простой драйвер для Linux, который будет общаться с устройством через SPI. После того, как я использую request_mem_region и ioremap, все, что я могу прочитать по возвращенному адресу, равно 0, даже после того, как я записал в него зна…
15 июл '13 в 11:18