Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пт ноя 24, 2017 8:33 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 10 сообщений ] 
Автор Сообщение
 Заголовок сообщения: Mapping memory
СообщениеДобавлено: Вс дек 01, 2013 12:51 am 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1232
Hi,

I'm trying to work with some PCI device that needs a piece of address space where it can map it's own memory to, so I can access it.
But how do I do such a thing in KolibriOS ? I have used 'map_io_mem' before, when the device tells you the address, but now the device is asking me for the virtual address..

Any help appreciated.

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Последний раз редактировалось hidnplayr Вт дек 03, 2013 8:19 pm, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: Mapping memory
СообщениеДобавлено: Вс дек 01, 2013 12:56 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
http://wiki.kolibrios.org/wiki/SysFn62/ ... 0.BA.D0.B0

to let users access MMIO, the kernel shoul be compiled with mmio_pci_addr = b:d.f
(http://websvn.kolibrios.org/filedetails ... Fpci32.inc)
or you need to map MMIO in your driver?


Вернуться к началу
 Заголовок сообщения: Re: Mapping memory
СообщениеДобавлено: Вс дек 01, 2013 1:48 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1232
art_zh писал(а):
http://wiki.kolibrios.org/wiki/SysFn62/ru#.D0.BF.D0.BE.D0.B4.D1.84.D1.83.D0.BD.D0.BA.D1.86.D0.B8.D1.8F_12_-_.D0.BF.D0.BE.D0.BB.D1.83.D1.87.D0.B8.D1.82.D1.8C_.D0.BB.D0.B8.D0.BD.D0.B5.D0.B9.D0.BD.D1.8B.D0.B9_.D0.B0.D0.B4.D1.80.D0.B5.D1.81_MMIO-.D0.B1.D0.BB.D0.BE.D0.BA.D0.B0

to let users access MMIO, the kernel shoul be compiled with mmio_pci_addr = b:d.f
(http://websvn.kolibrios.org/filedetails ... Fpci32.inc)
or you need to map MMIO in your driver?


All I need is one virtual physical address (range) that is available for 4096 bytes (If I understand it correctly).

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Последний раз редактировалось hidnplayr Вс дек 01, 2013 10:42 pm, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: Mapping memory
СообщениеДобавлено: Вс дек 01, 2013 3:44 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 974
KernelAlloc ?


Вернуться к началу
 Заголовок сообщения: Re: Mapping memory
СообщениеДобавлено: Вс дек 01, 2013 3:45 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1232
Asper писал(а):
KernelAlloc ?


I dont need memory from RAM.

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Вернуться к началу
 Заголовок сообщения: Re: Mapping memory
СообщениеДобавлено: Вс дек 01, 2013 10:32 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1232
I just need to find a physical address that is still free.
For example, 0x7f000000 worked on my test machine. But there is no guarantee that it will work on others...

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Вернуться к началу
 Заголовок сообщения: Re: Mapping memory
СообщениеДобавлено: Вс дек 01, 2013 10:35 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
hidnplayr
You just need to wait for the forum to come Serge - he will most likely answer your question about the memory manager.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: Mapping memory
СообщениеДобавлено: Вт дек 03, 2013 1:57 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
hidnplayr
the only way to detect the MMIO physical range is to read the device's base address registers (BARs) located in its configspace.
use bus/pci/pci32.inc functions (also available in userspace via fn62)


Вернуться к началу
 Заголовок сообщения: Re: Mapping memory
СообщениеДобавлено: Вт дек 03, 2013 11:59 am 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1232
art_zh писал(а):
hidnplayr
the only way to detect the MMIO physical range is to read the device's base address registers (BARs) located in its configspace.
use bus/pci/pci32.inc functions (also available in userspace via fn62)


For regular PCI devices this has been filled in by the BIOS yes, but not for PCI-pc card bridges.

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Вернуться к началу
 Заголовок сообщения: Re: Mapping memory
СообщениеДобавлено: Ср дек 04, 2013 1:30 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
Then your driver needs to do the work BIOS does.
I tryed this for PCIe hotplug, but stepped back - it takes tons of clever tricks with MRRs, northbridge apertures and IRQ allocations.
Plug-and-restart is much simpler.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 10 сообщений ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB