82557 Command Unit operation !!!

"kaustubh gondkar" <[email protected]> Fri, 23 May 2003 03:24:56 +0530
Newsgroups gmane.linux.drivers.eepro100.devel
Message-ID <[email protected]>
Hi,

   I am trying to understand..how the Command Unit in 82557/559 controller 
works.

Suppose "Diagnose" Action command is to be run... then is the following 
operational flow ok ?

1. Get the Free CFD.
2. Put the operation code "diagnose" (111 binary)  in command field.
3. Set the "S" flag (Suspend  after completion)
4. Remove the Suspend flag of previous CFD, if set. so that CU will not 
suspend itself and will continue with this CFD also.
5. Check the CU status through SCB (i.e. System Control Block in CSR)
6. If CU is in "Idle" state ...run the CU Start command by writing into SCB 
command field and set the SCB general pointer to this CFD.
7. Else if CU is in "suspended" state then run the CU resume command.
8. Wait for the CU to complete the operation for this CFD. This can be done 
by checking the "C" flag (Complete flag) in that CFD status field.
9. So either CU will complete the command or time out will cause to return 
error.

Am I missing anything in this CU operation flow..

I have some doubts here...

1. In step 8, is this only way to check the staus of the operation...can it 
be done by some different way?
2. In step 9, suppose CU doesn't respond, what can be the possible reasons ?

Regards,
                             ..Kaustubh

======================================
Kaustubh B. Gondkar
Graduate Student
Computer Science Department
Arizona State University.
=======================================
We must be the change, we wish to see in the world...

_________________________________________________________________
Go where the action is. Get MTV Citibank card. 
http://server1.msn.co.in/msnleads/citibankcards/mtv.asp It's cool!