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

Dmitry Podgorny pasis.ua at gmail.com
Tue Sep 21 18:16:36 EDT 2010


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().

[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



More information about the Kernel-russian mailing list