Отладчики пишутся с учетом того что всё, за чем можно наблюдать находится в памяти процесса и это можно читать, а тут херась, какой-то из указателей в окне переменных нацелен на MMIO кусок, которую оказывается нельзя трогать даж на чтение. Варианты 1) менять отладчик 2) пропачить сущ. отладчик (я про GDB) 3) при отладке не спускатся туда, где обращение к mmio 3) где-то ошибка в вашем коде, вы думаете что отладчик пишет в BAR, но пишет что-то другое или вообще ошибка в реализации PCI шины и т.п.
p.s. Как-то копался в виндовом usb3 драйвере, содержимое mmio выводил в отдельное окно, с железом ничего не происходило, так как на чтение BAR такая железка никак не реагирует и не должна