[comp.dcom.lans] HELP !!! needed on ethernet driver s/w

paulc@jetsun.weitek.COM (Paul Chai) (05/08/91)

If there are any kind souls out there fluent in ethernet s/w drivers
in particular with the AMD LANCE chip, i need help with the following
questions??? Any help would be highly appreciated!!
Questions:
 1. Is it reasonable/doable to insist memory buffers start on a quadword/word
    address rather than any arbitrary byte address??? The receive/transmit
    descriptor rings are after all on quadword address boundary.
 2. ON ethernet Read/Write DMA transfers, you have the following data
    pattern "....,addr,data,addr,data,.....,addr,data" . Is it safe to assume
    in a contiguous transfer ie. HOLD- continously asserted that all the
    addresses are consecutive eg. 10,12,14,16,...etc??? This would enable
    one to only need to buffer the first address.
 3. What is the appropriate way of draining data to memory during a DMA
    write transfer??? Wait for a Lance interrupt to do it ???

thank you all....

paulc

ching@brahms.amd.com (Mike Ching) (05/11/91)

In article <1991May8.165555.16300@jetsun.weitek.COM> paulc@jetsun.WEITEK.COM (Paul Chai) writes:
>If there are any kind souls out there fluent in ethernet s/w drivers
>in particular with the AMD LANCE chip, i need help with the following
>questions??? Any help would be highly appreciated!!
>Questions:
> 1. Is it reasonable/doable to insist memory buffers start on a quadword/word
>    address rather than any arbitrary byte address??? The receive/transmit
>    descriptor rings are after all on quadword address boundary.
It is undesirable to insist that memory buffers start on quadword addresses
since it would probably require a data copy to comply with the requirement.
Word alignment is less of a problem since headers are an even number of
bytes. The alignment requirement of the descriptor rings is not much
of a restriction since control structures will rarely cause this copying
overhead.
> 2. ON ethernet Read/Write DMA transfers, you have the following data
>    pattern "....,addr,data,addr,data,.....,addr,data" . Is it safe to assume
>    in a contiguous transfer ie. HOLD- continously asserted that all the
>    addresses are consecutive eg. 10,12,14,16,...etc??? This would enable
>    one to only need to buffer the first address.
Most existing DMA controllers including the one in the LANCE do transfers
only to consecutive addresses. However software does not have access to
the transactions on the memory bus so I'm not sure how relevant this is.
> 3. What is the appropriate way of draining data to memory during a DMA
>    write transfer??? Wait for a Lance interrupt to do it ???
I don't understand this question. The LANCE writes the data into memory.
There is no need to drain anything.


Mike Ching
AMD Field Applications