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