Apalis i.MX8 Ethernet question?

Hello,

I am using a Apalis I.MX8QM module with Apalid motherboard V1.1A

I am putting in place an Ethernet driver in bare-metal on Cortex M4 Core 0
based on NXP SDK.
I am able to make this driver work in transmission and reception with a module version V1.0B
Model: Toradex Apalis iMX8 QuadMax 4GB Wi-Fi / BT IT V1.0B, Serial# 06540929

BuildInfo:

  • SCFW 494c97f3, SECO-FW d7523fe8, IMX-MKIMAGE dd023400, ATF a-20190
  • U-Boot 2018.03-toradex_imx_v2018.03_4.14.78_1.0.0_ga-bringup+gc0ff506c39

I am loading the bare metal SW with U_boot via TFTP
and thus relying on some initializations done by U-boot.

When i run the same SW on module version V1.1B with another U-boot version see below,
packet reception is working but packet transmission is not working

Model: Toradex Apalis iMX8 QuadMax 4GB Wi-Fi / BT IT V1.1B, Serial# 06738476
BuildInfo:

  • SCFW b929edfe, SECO-FW e8100a5b, IMX-MKIMAGE 6745ccdc, ATF b0a00f2
  • U-Boot 2018.03-00015-g548a7dcc24

What are the hardware differences and eventual U-boot implementation differences with regards to Ethernet Controller FEC0 and associated
Micrel KSZ9031RNX PHY between the 2 i.MX8 module revisions v1.0B and V1.1B ?

Note I was able to retrieve from your git server U-boot source code
from branch U-Boot 2018.03-toradex_imx_v2018.03_4.14.78_1.0.0_ga-bringup
installed on V1.0B module
but i did not manage to find U-boot source code corresponding
to the one installed on V1.1B module (U-Boot 2018.03-00015-g548a7dcc24)

Best Regards
Erwan

Greetings,

Could you also share what version of our software you’re running? You can get this by booting into Linux and checking the output of cat /etc/issue. This should help us figure out precisely what U-Boot branch is being used.

Best Regards,
Jeremias

Hello,
here is cat /etc/issue after booting Linux with APALIS i.MX8 module V1.1B

cat /etc/issue

Toradex Easy Installer 2.4 \n \l

Best Regards,
Erwan

Oh wait have you not actually flashed a full Linux image yet using Toradex Easy Installer? This would explain why you couldn’t find certain U-Boot branches/versions in our repository. The U-Boot that is packaged with Toradex Easy Installer isn’t as closely tracked as our full blown Linux images.

Could you please try flashing one of our full Linux images and retrying your tests. On our latest 5.0 BSP I believe we’re up to U-Boot 2020.04 now so your results may differ greatly, then what you’ve noticed on these older U-Boots.

Best Regards,
Jeremias

Hi @ecoz,

That is the Toradex Easy Installer, it’s our utility for installing an Operating System in the module.

  • Do you plan to use Torizon or a Yocto-based image?
  • And if so, which version do you plan to use?
  • Can you confirm which “APALIS motherboaed V1.1A” are you using? Is it an Ixora or Apalis Evaluation Board?

So, if I understood you right:

  • Are you trying to use the Ethernet network at the Cortex-M4 core in the Apalis iMX8QM?
  • This is working in the Apalis iMX8QM V1.0B
  • This is not working in the Apalis iXM8QM V1.1B?

Best regards,
André Curvello

Hello

For the moment I want to use the Cortex M4 with a standalone application leveraging U-boot only to load SW images through UDP over Ethernet and start M4 core(s).
Later on I may use as well a Linux running on Cortex A cores, I do not know yet which version.

I am using Apalis evaluation board V1.1A.

Are you trying to use the Ethernet network at the Cortex-M4 core in the Apalis iMX8QM?
This is working in the Apalis iMX8QM V1.0B
This is not working in the Apalis iXM8QM V1.1B?

This is a completely correct statement.

Best Regards
Erwan

Hi @ecoz,

Which O.S. are you using in the M4 core?

Best regards,
André Curvello

Hi @ecoz,

I’ve checked with the Hardware team, and we had a change on the Gigabit Ethernet PHY between the Apalis iMX8QM V1.0B to V1.1B:
“Gigabit Ethernet PHY has been changed from KSZ9031RNXIC to KSZ9131RNXI”

See here:

PCN: https://docs.toradex.com/108422-pcn-apalis-imx8qm-4gb-wb-it-v1.0b.pdf

Probably that shall be taken in consideration, depending on the network stack being used by your O.S./Firmware in the M4.

Best regards,
André Curvello

Hello André,

I am using on Cortex M4
ASTERIOS RTK (Real Time Kernel) from Krono-Safe.
see www.krono-safe.com for details.

Best Regards
Erwan

Hello Andre, Jeremias,

Thank you for the pointer to the document describing HW changes between APALIS module iMX8QM V1.0B to V1.1B.

I took into consideration the fact that Gigabit Ethernet PHY has been changed from KSZ9031RNXIC to KSZ9131RNXI.

However, I still have transmission issue with my ethernet driver (reception is working well though)

I am trying to find out U-boot source code supporting well APALIS module iMX8QM version 1.1B,
could indictate me which branch of //git.toradex.com/u-boot-toradex.git git reposotory is supporting APALIS module iMX8QM version 1.1B ?
I am wondering if the below change described in PCN document :
Change #2: I/O rail switch for external RGMII
is requiring some software changes (low levl init suing SCFW i.MX8 APis with regards to clock, power or pinmux).

Best Regards,
Erwan

Hi @ecoz,

You can build a “master” release of the U-Boot in order to verify that.

Please follow the steps mentioned here Build U-Boot and Linux Kernel from Source Code for Apalis iMX8.

But checking here, I saw that we did a commit on February 27th adding support for the KSZ9131:

commit 327c8399f8121bc4e8c1afa0e29ffd03bd6cafeb
Author: Philippe Schenker <philippe.schenker@toradex.com>
Date:   Thu Feb 27 16:31:46 2020 +0100

    drivers: net: phy: micrel_ksz90x1.c: Add basic support for KSZ9131
    
    This adds basic support for the new Micrel KSZ9131 phy.

The branch I’m using is toradex_imx_v2020.04_5.4.24_2.1.0.

Please let me know if that helped.

Best regards,
André Curvello

Hello Andre,
it helped thank you i manage to make work my FEC Ethrnet driver on module V1.1B
by reviewing U-boot head of branch toradex_imx_v2020.04_5.4.24_2.1.0.
Thank you and best regards,
Erwan

Hi @ecoz,

I’m glad to see that it’s now working.

Best regards,
André Curvello