У меня есть драйвер устройства Linux, который взаимодействует с устройством, которое теоретически может выполнять DMA с использованием 64-битных адресов. Я хотел бы проверить, действительно ли это работает.
Есть ли простой способ заставить компьютер Linux не использовать память ниже физического адреса 4G? Это нормально, если образ ядра находится в нехватке памяти; Я просто хочу иметь возможность вызвать ситуацию, когда я знаю все свои динамически распределенные буферы, и любые выделенные для меня ядра или пользовательские буферы не адресуемы в 32 битах. Это немного грубой силы, но она будет более всеобъемлющей, чем все, что я могу придумать.
Это должно помочь мне поймать (1) оборудование, которое не было правильно сконфигурировано или загружено с полным адресом (или просто повреждено), а также (2) случайное и ненужное использование буферов отказов (потому что отказов некуда к).
уточнение : я использую x86_64, поэтому меня не волнует большинство старых проблем с 32-битной адресацией. Я просто хочу проверить, что драйвер может правильно взаимодействовать с множеством буферов, используя 64-битные физические адреса.