Как убедиться, что предварительно загружаемый BAR MMIO access PCIE не будет оптимизирован в ядре Linux

Я сталкиваюсь с некоторыми проблемами, связанными с предварительно выбираемым PCIE доступом к BAR в ядре Linux на платформе x86_64. Для моего устройства PCIE BAR 2 - возможность предварительной выборки, а BAR5 - без предварительной выборки, и обе они являются IORESOURCE_MEM. Я использовал ioremap, чтобы отобразить оба бара, и использовать writel для доступа к ним.

Странно то, что использование writeel для записи BAR2(prefetchable) иногда будет потеряно, но запись BAR5 будет в порядке. Частота записи в два бара одинакова и очень высока.

Кто-нибудь любезно дать несколько советов? Есть ли что-то особенное в ядре Linux, когда вы пытаетесь отобразить и получить доступ к предварительно выбираемому PCIE BAR? Является ли ioremap лучшим API для отображения предварительно выбираемых PCIE BAR?

0 ответов

Другие вопросы по тегам