Coressent Korea - Freescale i.MX6 RTEMS/Qt SDK Release Information.

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Sep 26 13:55:43 UTC 2017


Hello JunBeom Kin,

I work currently on a BSP for the i.MX7D:

https://devel.rtems.org/ticket/3090

I try to port the Ethernet interface driver from FreeBSD (libbsd) for 
i.MX6 to an i.MX7D. The driver works in the loop back mode RCR[LOOP] == 
1. I can also transmit frames. The problem is on the receiver side in 
normal mode (RCR[LOOP] == 0). The legacy descriptor ring is set up 
properly:

_address|________0________4________8________C
801FFB80| 80000000 9FE54010 80000000 9FE54810
801FFB90| 80000000 9FE53010 80000000 9FE58810
801FFBA0| 80000000 9FE57010 80000000 9FE57810
[....]
801FFD60| 80000000 9FE72010 80000000 9FE72810
801FFD70| 80000000 9FE71010 A0000000 9FE76810

Once I start the receive DMA with RDAR <- (1 << 24) and send one ARP 
request to the target (frame length < 0x600), I get this:

_address|________0________4________8________C
801FFB80| 00800600 9FE54010 80000000 9FE54810
801FFB90| 80000000 9FE53010 80000000 9FE58810
801FFBA0| 80000000 9FE57010 80000000 9FE57810

Only the first 16 bytes of the frame show up in the buffer:

_address|_0__1__2__3__4__5__6__7_
9FE54010|>FF FF FF FF FF FF 68 05
9FE54018| CA 3C 5A 26 08 06 00 01
9FE54020| 00 00 00 00 00 00 00 00
9FE54028| 00 00 00 00 00 00 00 00
9FE54030| 00 00 00 00 00 00 00 00
9FE54038| 00 00 00 00 00 00 00 00
9FE54040| 00 00 00 00 00 00 00 00
9FE54048| 00 00 00 00 00 00 00 00
9FE54050| 00 00 00 00 00 00 00 00
9FE54058| 00 00 00 00 00 00 00 00
9FE54060| 00 00 00 00 00 00 00 00
9FE54068| 00 00 00 00 00 00 00 00
9FE54070| 00 00 00 00 00 00 00 00
9FE54078| 00 00 00 00 00 00 00 00
9FE54080| 00 00 00 00 00 00 00 00
9FE54088| 00 00 00 00 00 00 00 00
9FE54090| 00 00 00 00 00 00 00 00
9FE54098| 00 00 00 00 00 00 00 00
9FE540A0| 00 00 00 00 00 00 00 00
9FE540A8| 00 00 00 00 00 00 00 00
9FE540B0| 00 00 00 00 00 00 00 00
9FE540B8| 00 00 00 00 00 00 00 00
9FE540C0| 00 00 00 00 00 00 00 00
9FE540C8| 00 00 00 00 00 00 00 00
9FE540D0| 00 00 00 00 00 00 00 00

The BC flag (broadcast) is set correctly in the BD status. However, the 
length is set to 0x600 (this is MRBR), the L flag is not set and the 
receive seems to be stopped. I see this behaviour on two different 
boards. U-Boot and Linux works with Ethernet without problems. Did you 
experience a similar problem? Do you have a network interface driver for 
the i.MX6SX which is compatible to the i.MX7D according to the Linux FDT 
(compatible = "fsl,imx7d-fec", "fsl,imx6sx-fec")?

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.



More information about the users mailing list