FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
5990 Discussions

9.1 Avalon OpenCores 10/100 Ethernet MAC with DM9000A

Honored Contributor II


I am Little Confused to Use 9.1 Avalon OpenCores 10/100 Ethernet MAC with DM9000A.As i am new to altera fpga not know how to interace Opencore 10/100 Ethernet Mac with Dm9000A.Can Any body write me the eth_ocm_phy_profile_struct for dm9000A giving me the information of 


/* PHY structure for PHY detection */ 

typedef struct eth_ocm_phy_profile_struct{ 


/* PHY name - (whatever you want to call it) */ 

char name[80]; 


/* PHY OUI (Organizationally Unique Identififier)  

* This is the concatenation of bits [15:0] of register 2 and bits [15:10] 

* of register 3. (i.e. oui = {reg2[15:0],reg3[15:10]})*/ 

alt_u32 oui; 


/* PHY model number (Bits[9:4] of register 3)*/ 

alt_u8 model_number; 


/* PHY revision number (Bits 3:0] of register 3*/ 

alt_u8 revision_number; 


/* Location (register index) of PHY Specific Status Register  

* (which register will tell us duplex status)*/ 

alt_u8 status_reg_location; 


/* Location of Duplex Status bit in PHY Specific Status Register */ 

alt_u8 duplex_bit_location; 


/* Function pointer to execute additional initialization. This function  

* will be called before attempting to discover duplex status. */ 

alt_32 (*phy_cfg)(eth_ocm_dev *dev); 


/** Function pointer to read the duplex status from the PHY.  

* Set this function pointer to your own function if the PHY's duplex 

* status cannot be determined using the PHY specific status register 

* and bit locations listed above. This function should return 1 if 

* the PHY is in Full Duplex mode or 0 if Half Duplex. 


alt_u32 (*duplex_status_read)(eth_ocm_dev *dev); 


} eth_ocm_phy_profile; 



i am attaching the manual of Dm9000a an opencore 10/100 . 






Muhammad Junaid Sarwar
0 Kudos
4 Replies
Honored Contributor II

AFAIK the DM9000A chip is an integrated MAC and PHY without access to the MII interface, so you can't use it with either the TSE or Opencore MACs. 

You'd rather need an operating system with a network driver directly able to handle the DM9000A.
Honored Contributor II

Well thanks for your reply 

in data sheet there is a MII interface 

look at the attached manual
Honored Contributor II

What Daixiwen meant is that DM9000A is a MAC itself, so there no point in using either TSE or Opercores MAC. 

Yes, DM9000 has a MII interface, but this is only used to communicate between the two components (MAC + PHY) inside the chip. MII signals can possibly be exposed outside for connecting an external PHY. 

If you want to use DM9000 you must connect it directly to your processor. I don't know if a specific DM9000 Nios II driver is available from Altera. If not, you can try using the LAN91C111 driver: you'll probably need make some changes but the two devices are similar, if I remember correctly. 


Honored Contributor II

thanks for your kind info.