Intel®︎ Cyclone®︎ V SoC: No network interface is recognized

Hello everyone,

I have zepyhr running on the Cyclone V according to the following instructions: https://docs.nordicsemi.com/bundle/ncs-2.5.2/page/zephyr/boards/arm/cyclonev_socdk/doc/index.html 
Next I wanted to establish a simple network communication. I use the already written Example of a DHCP client under the directory .../zephyrproject/zephyr/samples/net/dhcpv4_client but the following error message appears:

[00:00:00.207,000] <err> net_if: There is no network interface to work with!
*** Booting Zephyr OS build v4.0.0-3095-gd9eed167d06b ***
Run dhcpv4 client
[00:00:00.380,000] <wrn> net_if: No default interface found!
uart:~$ device list
devices:
- intc@fffed000 (READY)
  DT node labels: intc
- gpio@ff70a000 (READY)
  DT node labels: gpio2
- gpio@ff709000 (READY)
  DT node labels: gpio1
- gpio@ff708000 (READY)
  DT node labels: gpio0
- serial1@ffc03000 (READY)
  DT node labels: uart1
- serial0@ffc02000 (READY)
  DT node labels: uart0
- sysmgr@ffd08000 (READY)
  DT node labels: sysmgr

Normally, the Ethernet device should also be recognized (gmac0/gmac1) ...

I know that this example was not written explicitly for my hardware. I found the folder “Boards” in the project directory, which had a .conf file and an .overlay file, so I created two files cyclonev.conf & cyclonev.overlay. In the following I show my prj.conf and cyclonev.conf & cyclonev.overlay files:


prj.conf:

#No changes have been made
CONFIG_NETWORKING=y
CONFIG_NET_IPV6=n
CONFIG_NET_IPV4=y
CONFIG_NET_ARP=y
CONFIG_NET_UDP=y
CONFIG_NET_DHCPV4=y
CONFIG_NET_DHCPV4_OPTION_CALLBACKS=y
CONFIG_DNS_RESOLVER=y

CONFIG_TEST_RANDOM_GENERATOR=y

CONFIG_INIT_STACKS=y

CONFIG_NET_MGMT=y
CONFIG_NET_MGMT_EVENT=y

CONFIG_NET_LOG=y
CONFIG_LOG=y

CONFIG_SLIP_STATISTICS=n
CONFIG_NET_SHELL=y

cyclonev.conf:

CONFIG_ETH_CYCLONEV=y
CONFIG_NET_L2_ETHERNET=y
CONFIG_NET_MGMT=y
CONFIG_NET_DHCPV4=y
CONFIG_NET_TCP=y
CONFIG_NET_LOG=y
CONFIG_NET_IPV4=y

cyclonev.overlay:

&gmac1 {
    status = "okay";
    local-mac-address = [e6 88 2d 82 1f d4];
};
&gmac0 {
    status = "disabled"; 
};

I'll show you an excerpt from my zepyhr.dts file:

gmac0: ethernet@ff700000 {
		compatible = "snps,ethernet-cyclonev";
		reg = < 0xff700000 0x2000 >;
		interrupts = < 0x0 0x73 0x4 0xa0 >;
		emac-index = < 0x0 >;
		status = "disabled";
	};
gmac1: ethernet@ff702000 {
	compatible = "snps,ethernet-cyclonev";
	reg = < 0xff702000 0x2000 >;
	interrupts = < 0x0 0x78 0x4 0xa0 >;
	emac-index = < 0x1 >;
	status = "okay";
	local-mac-address = [ E6 88 2D 82 1F D4 ];
};


I have tried a lot of other things. For example I tried to enable gmac1 and disable gmac0 or disable both but without success. I had seen the approach with the own .conf and the .overlay file several times (e.g. for a STM32). So I think my approach is correct, but no network interface is recognized (Ethernent). I hope that someone sees my mistake and can help me. I would be very grateful for that. Finally, I'll insert a small screenshot from the documentation showing which Ethernet interface I'm using:






  • Hi, 

    Our support is based on the nRF devices. Please seek help on the Zephyr Discord for other devices. 

    Regards,
    Amanda H.

  • Another Input: in ...\zephyrproject\zephyr\drivers\ethernet\eth_cyclonev.c there is the following content:
    ```
    Driver specifically designed for Cyclone V SoC DevKit use only.*
    based on Intel SOC FPGA HWLIB Repo
    github.com/.../intel-socfpga-hwlib
    ```
    And in the git-repo there is the folling Table:


    Therefore i got errors, that the "properties" phy-mode isn't define, so have to do the following:
    --> in ...\zephyrproject\zephyr\dts\bindings\ethernet\snps,ethernet-cyclonev.yaml
    --> i had to add the property phy-mode myself
    --> so what is the message that the devoloper of this code wanna say me? I dont need an overlay-file? or i dont need to mention phy-mode and mdio? But it doesn't work eithter...

    Maybe zephyr doesen't support Internet/Ethernet Connecetion with this board. The necessary files are there, but not all of them i think. For Example, the following files exist:
    **--> ...\zephyrproject\zephyr\drivers\ethernet\eth_cyclonev.c
    --> ...\zephyrproject\zephyr\drivers\ethernet\eth_cyclonev_priv.h
    --> ...\zephyrproject\zephyr\drivers\ethernet\phy_cyclonev.c
    --> ...\zephyrproject\zephyr\drivers\ethernet\Kconfig.cyclonev**
    For me that a very good sign, that it has to be possible, but as you have mentioned, we need MDIO, but if i try to implement your suggest, then i get a lot of warinings and errors and one of them is very interesting:

    **CMake Warning at C:/Users/kir/zephyrproject/zephyr/CMakeLists.txt:1002 (message):
    No SOURCES given to Zephyr library: drivers__mdio**

    If i look in the following directory: C:\Users\kir\zephyrproject\zephyr\drivers\mdio
    --> then there are a lot of files for example for esp32, stm32, ... but i cant find something for cyclonev....

    What i should do? Is this a sign that i do not need to mention mdio in the overlay-file? I am a little bit lost

  • Hi, 

    Those sources are not maintained by NordicSemi. Please seek help on the Zephyr Discord or pull request here https://github.com/zephyrproject-rtos/zephyr/pulls.  

Related