This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

C6678 SRIO Enumeration

Hey Guys,

I've been trying to figure out the SRIO enumeration procedure on the 6678's. I see that the SP_GEN_CTL register has a Host/Agent bit, but I'm not clear on what effect it has. Is it simply a configuration bit, or will it cause the device to perform enumeration on initialization? If enumeration is not done automatically with this bit set, how can I go about generating the necessary maintenance packets to perform it manually?

Thanks,

Chris

 

  • Just bumping this thread in the hopes that someone has an answer.

    Thanks,

    Chris

  • Chris,

     

    It is simply a configuration bit which can be read by an external device during the enumeration process.  It will not cause/perform enumeration of a SRIO system.  The maintenance packets will need to be issued by software via the LSU functional blocks.  DIOLib is not supported for C66x, but you can take a look at it to see basic system enumeration and configuration of a switch.  It is located here: http://processors.wiki.ti.com/index.php/DIO_Library   look at the BRU module.  Alternatively, there are third party software solutions for system bringup and enumeration like: http://www.fetcorp.com

    Regards,

    Travis

     

     

  • Hi

    Know its a old post

    but as years passed by curious to know whether currently SRIO Enumeration is possible in  6678 or not?

    Planning to design a board with multiple 6678 chips  along with a SRIO switch

    How to do SRIO enumeration in this case ?

  • Sure it is possible.  By default if you are using SRIO boot mode for example, the 6678 will come up in promiscuous mode, i.e. is will except any incoming packet DESTID.  So you can send a maintenance packet to change the RIO_BASE_ID at any point.  Then you could subsequently turn off the promiscuous mode if you like.  The enumeration with the switch is possible, you will simply need to decide on a algorithm for stepping through each port on the switch and enumerating one device at a time.  If you know which deviceIDs you want to assign to each of the C6678s hanging off the switch ports, you can simply program the switch LUT with those IDs and have the system host use those IDs to route packets to the individual 6678s.

    Regards,

    Travis