Невозможно прочитать / записать mmaped адрес, который возвращается шиной libpci в Linux x86_64 - PullRequest
0 голосов
/ 01 марта 2012

У меня есть устройство, которое я могу получить по физическому адресу конфигурации (все старшие 32 бита равны 0), присвоив шине PCI / устройству / номеру функции функции libpci pci_get_dev и затем вызвав pci_read_block.
Затем я открываю /dev/mem и сопоставьте этот физический адрес с виртуальным адресом, чтобы мое приложение могло выполнить настройку путем чтения / записи этого виртуального адреса (64 бита).
Проблема заключается в том, что результат чтения всегда равен 0x0, а запись не имеет никакого эффекта.Но с помощью GDB я могу напечатать содержимое в виртуальном адресе и записать в него значение.
Эта же программа без проблем работает в 32-битном Linux.

...