Адресное пространство для устройства PCI назначается очень рано при загрузке (на ПК это обычно делается в B IOS еще до загрузки ОС). Есть некоторые устройства, которые позволяют изменять размер BAR, но способ сделать это будет очень специфичным для устройства. Скорее всего, вам нужно будет сделать что-то физически с устройством (установить перемычку) или записать в какое-либо энергонезависимое хранилище (NVRAM или что-то еще) на устройстве, потому что эта настройка должна будет пережить сброс или цикл питания.
Если ваше устройство действительно поддерживает изменение размера полосы, в таблице данных должно быть объяснено, как его настроить. Как сказано в @ prl , для большинства устройств его нельзя изменить.
Со стороны хоста существует протокол, используемый комплексом PCI root во время перечисления устройств для обнаружения сколько места «требуется» устройству, а затем сообщить устройству, какой диапазон адресов ему был назначен (и, следовательно, должен отвечать). Но, как упоминалось выше, обычно это делается очень рано при загрузке, потому что для этого требуется координация: вам достаточно просто записать в регистры конфигурации устройства, чтобы сообщить ему, что у него больше адресного пространства, но контроллер памяти и root сложный должны быть знайте и это, иначе фактические ссылки на память никогда не дойдут до устройства (и система, скорее всего, тоже будет работать со сбоями). И вы не можете просто добровольно расширить это адресное окно, потому что, вероятно, есть какое-то другое устройство, которому уже была назначена память чуть выше и ниже вашего устройства.