Transmit Ethernet Packet

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Transmit Ethernet Packet

Jump to solution
1,097 Views
stevenstarnes
Contributor III

Hello,

   I am trying to figure out how to transmit a single byte of data to my PHY on a custom T2080 board. I can communicate with the PHY via MDIO and read it's identifier and set it's LEDs. Now I want to set the PHY to loop back mode (I know how to do this) so that when I transmit data via the RGMII TX interface it will just loop back into the  RGMII RX interface. However, I can't seem to find any info on where to write my data to so that I can transmit via the RGMII interface. This is bare metal by the way so I can't use any Linux API's to do the heavy lifting, but I am not trying to implement a full TCP/IP stack either.

Thank you for your help!

Labels (1)
Tags (1)
1 Solution
941 Views
bpe
NXP Employee
NXP Employee

There is no way to send a single byte of data over RGMII, the software
does not have direct access to it's transmit FIFO. What DPAA exchanges
with software, is essentially frames. Basically, all three DPAA components,
Bman, Qman and Fman have to be initialized to exchange network frames over an
external interface, regardless of it's type (this does not apply to MDIO,
but this is a PHY management interface). If you want to do a bare board,
simple network exchange test, the best solution is probably
FMan Independent mode, see T2080DPAARM, Section 5.13.15. This is still
a multi-step process, but much simpler, compared to the full DPAA
bring up sequence. u-Boot Fman driver uses this mode, btw:

http://git.freescale.com/git/cgit.cgi/ppc/sdk/u-boot.git/tree/drivers/net/fm/fm.c
http://git.freescale.com/git/cgit.cgi/ppc/sdk/u-boot.git/tree/drivers/net/fm/eth.c
http://git.freescale.com/git/cgit.cgi/ppc/sdk/u-boot.git/tree/drivers/net/fm/memac.c


Have a great day,
Platon

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

2 Replies
942 Views
bpe
NXP Employee
NXP Employee

There is no way to send a single byte of data over RGMII, the software
does not have direct access to it's transmit FIFO. What DPAA exchanges
with software, is essentially frames. Basically, all three DPAA components,
Bman, Qman and Fman have to be initialized to exchange network frames over an
external interface, regardless of it's type (this does not apply to MDIO,
but this is a PHY management interface). If you want to do a bare board,
simple network exchange test, the best solution is probably
FMan Independent mode, see T2080DPAARM, Section 5.13.15. This is still
a multi-step process, but much simpler, compared to the full DPAA
bring up sequence. u-Boot Fman driver uses this mode, btw:

http://git.freescale.com/git/cgit.cgi/ppc/sdk/u-boot.git/tree/drivers/net/fm/fm.c
http://git.freescale.com/git/cgit.cgi/ppc/sdk/u-boot.git/tree/drivers/net/fm/eth.c
http://git.freescale.com/git/cgit.cgi/ppc/sdk/u-boot.git/tree/drivers/net/fm/memac.c


Have a great day,
Platon

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

941 Views
stevenstarnes
Contributor III

Thank you for the response bpe! This appears to be my best option. I have began reading the section mentioned to see how to initialize the FMAN for independent mode. The steps I found (on page 1244) are:

  1. Initialize FMAN DMA Block (Steps on page 846)
  2. Initialize FMAN memory (not sure where to find this?)
  3. Initialize BMI Block (Steps on page 756)
  4. Initialize FPM (Steps on page 830)

I have also seen mentioned in other topics FMAN microcode and have found the source code in U-boot for uploading this to the FMAN, is this necessary? Is there any other information I might have missed?

Thank you!

0 Kudos