Re: Драйвер сетевой карты

Denis Kirjanov kirjanov at gmail.com
Wed Sep 22 06:27:09 EDT 2010


2010/9/22 Dmitry Podgorny <pasis.ua at gmail.com>:
> Init. block используется, чтобы сконфигурировать регистры. Те
> же самые данные, что находятся в init. block, можно вбить вручную в
> регистры (в [1 стр.3] есть список всех этих регистров).
>
> Форматы init. block отличаются для 16бит и 32бит режимов, чтобы
> определить режим в котором работает карточка, можно воспользоваться
> процедурой из [2 pcnet_check_mode()]. Физический адрес записывается в
> два 16-битные регистры в CSR1 и CSR2, и затем блок читается
> контроллером из памяти и устанавливает свои регистры в соответствующие
> значения. Думаю, чтение init. block происходит при сбросе, но нужно это
> еще вычитать.
>
> DMA-дескрипторы - это дескрипторы приема и передачи для колец? (т.е.
> то что описано в [1 стр.5-6]). И какие конкретно вопросы о DMA нужно
> обсудить? Мне, например, не совсем понятно, что делает функция
> pci_map_single().
Да, они самые. pc_map_single служит для асинхронного DMA. После
вызова этой ф-ии DMA-буфер принадлежит полность устройству ввода-вывода.
CPU не должен использовать эту память, пока буфер принадлежит устройству.
Для записи данных в устройство буфер должен содержать какие-нибудь
данные, после этого
вызывается pci_map_.
При чтении мы должны получить от устройства прерывание что оно
закончило с буфером. После этого
можно вызывать pci_unmap_

> [1] PCnet Family Software Design Considerations
> [2] pcnet.c из первых писем рассылки
>
> В Tue, 21 Sep 2010 23:12:17 +0400
> Denis Kirjanov <kirjanov at gmail.com> пишет:
>
>> Доброго времени!
>>
>> Я бегло просмотрел докуметацию, и хотел бы обсудить вопрос о DMA.
>> О Initialization block, о формате DMA-дескрипторов etc
>> Если у кого-нибудь есть целостная картина как это работает, то
>> дамп мыслей можно сюда.
>>
>> PS: постараюсь разобраться с этим в ближайшее время.
>>
>> Thanks
>
> _______________________________________________
> Kernel-russian mailing list
> Kernel-russian at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernel-russian
>



-- 
Regards,
Denis


More information about the Kernel-russian mailing list