LINUX.ORG.RU

Подскажите простейший способ для заданного непрерывного блока физической рамы иметь блочный интерфейс?

 , ,


0

3

Я хочу с конкретным участком физической памяти (например от физического адреса 0xXXXX XXXX до физического адреса 0xYYYY YYYY) из линуксового юзерспейса работать как с рам-диском. Насколько я понял существующие драйвера рам дисков умеют только виртуальную память.

ядро 3.4

★★★★★

Последнее исправление: cvv (всего исправлений: 1)
Ответ на: комментарий от anonymous

насколько я знаю рамдиски то они позволяют иметь дело только с виртуальной памятью. в каком месте я неправ?

cvv ★★★★★
() автор топика
Последнее исправление: cvv (всего исправлений: 1)
Ответ на: комментарий от cvv

Определи, что для тебя «физическая рама».

DDR3 вставленная в соответствующие слоты с физическими адресами от 0xXXXX XXXX до 0xYYYY YYYY

Тогда способа нет. Не только простейшего - вообще никакого.

Хотя... способ таки есть. Но «простым» его не назовешь, да и, судя по всему, тебе это не нужно.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Тогда способа нет. Не только простейшего - вообще никакого.

написать свой драйвер?

cvv ★★★★★
() автор топика
Ответ на: комментарий от cvv

Нет. Вклиниться в процесс инициализации ядра (это возможно и делалось не раз, но там-то перед разработчики точно знали, что и зачем они делают).

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Плохо. Будем думать

cvv ★★★★★
() автор топика
Ответ на: комментарий от PolarFox

чтото типа IPC в системе где одно ядро процессора ранит Linux а второе - альтернативную ось без виртуализации на тойже раме.

cvv ★★★★★
() автор топика
Ответ на: комментарий от cvv

Если нужный участок может находиться в верхних адресах, можно попробовать скормить ядру параметр mem равный числу памяти, которую займёт линукс. В более сложных случаях, похоже, придётся писать свой модуль. Ищи драйвера устройств на memory mapped io.

PolarFox ★★★★★
()
Ответ на: комментарий от cvv

IPC в системе где одно ядро процессора ранит Linux а второе - альтернативную ось без виртуализации на тойже раме.

И вы для этого хотели блочное устройство поверх физических адресов? Ахаха.

Из того, что есть в ядре, можно посмотреть на rpmsg.

tailgunner ★★★★★
()
Ответ на: комментарий от cvv

ну в даном случае rpmsg немного не то.

В данном случае «немного не то» - это блочное устройство (а понты о «DDR3 вставленная в соответствующие слоты» - это «много не то»). Для общения и с соседним ядром, и с сопроцессором на плате расширения хватит стандартных API вроде virt_to_phys, phys_to_bus, dma_*, и будет это общение по сути передачей сообщений. Его можно набыдлить вручную (я так делал, когда не было rpmsg) или воспользоваться существующим.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)

Я тут нашел что можно использовать драйвера mtd_phram или mtd_slram прикрытые mtdblock

интересно кто и что думает о такой комбинации?

cvv ★★★★★
() автор топика

Вобщем если не изобретать велосипед то нужно пользовать уже существующие в ядре mtd-устройства. Или поискать в гугле готовый велосипед который сразу дает блочный девайс.

cvv ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.