2014-01-24 7 views
1

Я разработал драйвер устройства linux для карты PCI-e fpga, и он работает. Теперь давайте предположим, что я хотел бы установить две (равные) карты pci-e на том же ПК. как это работает? Я попытался подключить драйвер, я ожидал обратного вызова «двойного зондирования», но это не так. Итак, как я могу справиться с этой ситуацией? по второму номеру? может кто-нибудь мне помочь?несколько устройств, один драйвер

ps pci card - плата разработки fpga, поэтому они на самом деле являются «той же» картой, может быть, мне нужно что-то отличить в hw?

+0

Как водитель распознает карту? Если существует возможность одновременного присутствия нескольких одинаковых карт, драйвер должен убедиться, что он уже инициализирован и пропустил любые уже разрешенные карты. Он может регистрироваться, чтобы получить несколько IRQ (например) и сопоставить несколько областей памяти для доступа. Самое легкое для ISR - сканировать все разрешенные регистры, чтобы узнать, что делать. – wallyk

+0

Карты различаются слотом. Вызов вызова .probe вашего PCI-драйвера должен вызываться дважды. –

ответ

0

Ситуация будет отличаться в случае, если ваш драйвер встроен вместо загружаемого модуля ядра. Попытайтесь скомпилировать его как встроенный драйвер и убедитесь, что ваши карты включены. Таким образом, обе ваши карты будут перечислены, а затем проверены одним и тем же водителем.

Тот факт, что вы вставляете драйвер, в этом случае он полагается на сам код и способ, которым вы написали свой драйвер. Если вы можете поделиться драйвером, я был бы вам полезен.