Skip to content

Latest commit

 

History

History

netc

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

NXP S32 NETC Sample Application

Overview

The sample application shows how to configure NXP S32 Network Controller (NETC) for the different use-cases:

  1. Zephyr application controls the Physical Station Interface (PSI) and the Ethernet PHY through EMDIO.
  2. Zephyr application controls the PSI, Virtual SI 1, and the Ethernet PHY through EMDIO.

The sample enables the net-shell and mdio-shell (only available when Zephyr controls PSI) to allow users visualize the networking settings. Telnet shell and backend is also enabled.

The source code for this sample application can be found at: :zephyr_file:`samples/boards/nxp_s32/netc`.

Requirements

To run this sample is needed to set-up a host machine running GNU/Linux or Windows with a network adapter connected to the target board ETH0 port through an Ethernet cable.

Building and Running

To build and run the sample application for use-case 1:

.. zephyr-app-commands::
   :zephyr-app: samples/boards/nxp_s32/netc
   :board: s32z270dc2_rtu0_r52
   :goals: build flash

Once started, you should see the network interface details, for example:

[00:00:00.051,000] <inf> phy_mii: PHY (7) ID 1CC916

[00:00:00.052,000] <inf> nxp_s32_eth_psi: SI0 MAC: 00:00:00:01:02:00
[00:00:00.058,000] <inf> shell_telnet: Telnet shell backend initialized
[00:00:00.058,000] <inf> nxp_s32_netc_sample: Starting sample
[00:00:00.058,000] <inf> nxp_s32_netc_sample: Waiting for iface 1 to come up
[00:00:07.595,000] <inf> phy_mii: PHY (7) Link speed 1000 Mb, full duplex

[00:00:07.595,000] <inf> nxp_s32_netc_sample: Configuring iface 1 (0x318008f0)
[00:00:07.595,000] <inf> nxp_s32_netc_sample: IPv6 address: 2001:db8::1
[00:00:07.595,000] <inf> nxp_s32_netc_sample: IPv4 address: 192.0.2.1

To build and run the sample application for use-case 2:

.. zephyr-app-commands::
   :zephyr-app: samples/boards/nxp_s32/netc
   :board: s32z270dc2_rtu0_r52
   :goals: build flash
   :gen-args: -DDTC_OVERLAY_FILE="./vsi-and-psi.overlay"

Once started, you should see the network interfaces details, for example:

[00:00:00.051,000] <inf> phy_mii: PHY (7) ID 1CC916

[00:00:00.052,000] <inf> nxp_s32_eth_psi: SI0 MAC: 00:00:00:01:02:00
[00:00:00.052,000] <inf> nxp_s32_eth_vsi: SI1 MAC: 00:00:00:01:02:11
[00:00:00.058,000] <inf> shell_telnet: Telnet shell backend initialized
[00:00:00.058,000] <inf> nxp_s32_netc_sample: Starting sample
[00:00:00.058,000] <inf> nxp_s32_netc_sample: Waiting for iface 1 to come up
[00:00:07.595,000] <inf> phy_mii: PHY (7) Link speed 1000 Mb, full duplex

[00:00:07.595,000] <inf> nxp_s32_netc_sample: Configuring iface 1 (0x3182f31c)
[00:00:07.595,000] <inf> nxp_s32_netc_sample: IPv6 address: 2001:db8::1
[00:00:07.595,000] <inf> nxp_s32_netc_sample: IPv4 address: 192.0.2.1
[00:00:07.595,000] <inf> nxp_s32_netc_sample: Configuring iface 2 (0x3182f328)
[00:00:07.595,000] <inf> nxp_s32_netc_sample: IPv6 address: 2001:db8::2
[00:00:07.595,000] <inf> nxp_s32_netc_sample: IPv4 address: 192.0.2.2

Setting up Host

To be able to reach the board from the host, it's needed to configure the host network interface IP's and default routes. This guide assumes the host IPv4 and IPv6 addresses are 192.0.2.3 and 2001:db8::3, respectively. For example, using a network interface named enp1s0 in a GNU/Linux host or Ethernet in a Windows host, this can be done with the following commands:

.. tabs::

   .. group-tab:: Linux

      .. code-block:: console

         ip -4 addr add 192.0.2.3/24 dev enp1s0
         ip -6 addr add 2001:db8::3/128 dev enp1s0
         route -A inet6 add default dev enp1s0

   .. group-tab:: Windows

      .. code-block:: console

         netsh interface ipv4 set address "Ethernet" static 192.0.2.3 255.255.255.0
         netsh interface ipv6 add address "Ethernet" 2001:db8::3/128
         netsh interface ipv6 add route ::/0 "Ethernet" ::

Note

The above commands must be run as priviledged user.

If everything is configured correctly, you will be able to successfully execute the following commands from the Zephyr shell:

net ping -I<iface> 192.0.2.3
net ping -I<iface> 2001:db8::3

Where <iface> is the interface number starting from 1.