| .. _nxp_s32_netc-samples: |
| |
| 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: |
| |
| .. code-block:: console |
| |
| [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: |
| |
| .. code-block:: console |
| |
| [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: |
| |
| .. code-block:: console |
| |
| net ping -I<iface> 192.0.2.3 |
| net ping -I<iface> 2001:db8::3 |
| |
| Where `<iface>` is the interface number starting from 1. |