jnippula opened a new pull request, #21476:
URL: https://github.com/apache/nuttx/pull/21476

   ## Summary
   
   This pull request adds support for the NETC (Network Ethernet Controller) 
architecture on the i.MXRT118x family, introducing a new Ethernet driver and 
configuration options for the RT1180-EVK board. The changes include new Kconfig 
options, build system integration, and comprehensive documentation updates for 
enabling and configuring the NETC Ethernet interfaces and their PHYs. Also new 
PHY device driver support added to avoid hardcoding list of supported PHY 
models in network controller code.
   
   **PHY device drivers:**
   - phy_ops_s struct defined for calling phyinit and phyreset actions from 
network driver
   - Realtek RTL8201F and RTL8211F PHY drivers implemented
   
   **NETC Ethernet support for i.MXRT118x:**
   - Added NETC architecture driver and build integration:
      - support for enabling SYS_PLL1 derived clock sources
      - Introduced a new NETDEV lower-half Ethernet driver (`imxrt_netc.c`, 
`imxrt_netc_port.c`, `imxrt_netc_switch.c`) for RT118x, supporting both 
direct-PHY (ENETC0) and switch-attached (ENETC1) interfaces.
      - Updated `chip.h` to define NETC controller and port counts for 
i.MXRT118x.
   
   - Kconfig and build system enhancements:
      - Added `IMXRT_HAVE_NETC` and a new "NETC Ethernet ports" menu with 
options to enable ENETC0 and ENETC1 switch ports 0–3, as well as settings for 
descriptor counts and PHY initialization. ENET is now disabled for i.MXRT118x 
in favor of NETC.
   
   **Board and documentation updates:**
   - RT1180-EVK board integration:
      - Updated the board documentation to describe NETC Ethernet support, 
including which ports are enabled by default, PHY models, configuration 
requirements, and hardware integration notes.
      - The `nsh` configuration now enables NETC Ethernet on ETH1 
(ENETC1/PORT1) with static IPv4 and `ping` command.
   - Usage and configuration guidance:
      - Provided detailed instructions in the platform documentation for 
enabling and configuring NETC, including PHY driver selection, board-level 
integration, DMA requirements, and validation steps.
   
   These changes collectively enable robust, configurable Ethernet support on 
the i.MXRT1180-EVK using the new NETC architecture.
   
   ## Impact
   
   Affects rt1180-evk board only.
   
   ## Testing
   
   *Host PC: Kubuntu 26.04*
   *NuttX device: mimxrt1180-evk board*
   
   **NETC verified by 10 minutes TCPBlaster run 
(`nuttx-apps/examples/tcpblaster`):**
   - TCPBlaster enabled with `CONFIG_EXAMPLES_TCPBLASTER=y`
   - ENETC1 / PORT0 used.
   
   Host:
   ```
   $ ./tcpserver
   Binding to IPv4 Address: 00000000
   server: Accepting connections on port 5471
   server: Connection accepted -- receiving
   
   ...
   
   [2026-11-04 14:56:55.000] 38008: Received 50 buffers:    69.3 KB (buffer 
averagesize:   1.4 KB) in   0.01 seconds ( 5864.2 KB/second)
   [2026-11-04 14:56:55.000] 38009: Received 50 buffers:    65.3 KB (buffer 
averagesize:   1.3 KB) in   0.01 seconds ( 5744.7 KB/second)
   [2026-11-04 14:56:55.000] 38010: Received 50 buffers:    66.7 KB (buffer 
averagesize:   1.3 KB) in   0.01 seconds ( 5466.8 KB/second)
   [2026-11-04 14:56:55.000] 38011: Received 50 buffers:    69.3 KB (buffer 
averagesize:   1.4 KB) in   0.01 seconds ( 5897.9 KB/second)
   [2026-11-04 14:56:55.000] 38012: Received 50 buffers:    61.4 KB (buffer 
averagesize:   1.2 KB) in   0.01 seconds ( 6072.6 KB/second)
   [2026-11-04 14:56:55.000] 38013: Received 50 buffers:    65.3 KB (buffer 
averagesize:   1.3 KB) in   0.01 seconds ( 5205.9 KB/second)
   [2026-11-04 14:56:55.000] 38014: Received 50 buffers:    68.0 KB (buffer 
averagesize:   1.4 KB) in   0.01 seconds ( 5531.2 KB/second)
   [2026-11-04 14:56:55.000] 38015: Received 50 buffers:    66.6 KB (buffer 
averagesize:   1.3 KB) in   0.01 seconds ( 6426.2 KB/second)
   [2026-11-04 14:56:55.000] 38016: Received 50 buffers:    65.4 KB (buffer 
averagesize:   1.3 KB) in   0.01 seconds ( 5369.9 KB/second)
   [2026-11-04 14:56:55.000] 38017: Received 50 buffers:    66.7 KB (buffer 
averagesize:   1.3 KB) in   0.01 seconds ( 5894.5 KB/second)
   [2026-11-04 14:56:55.000] 38018: Received 50 buffers:    65.3 KB (buffer 
averagesize:   1.3 KB) in   0.01 seconds ( 5734.6 KB/second)
   [2026-11-04 14:56:55.000] 38019: Received 50 buffers:    62.7 KB (buffer 
averagesize:   1.3 KB) in   0.01 seconds ( 5407.9 KB/second)
   [2026-11-04 14:56:55.000] 38020: Received 50 buffers:    64.0 KB (buffer 
averagesize:   1.3 KB) in   0.01 seconds ( 5604.4 KB/second)
   [2026-11-04 14:56:55.000] 38021: Received 50 buffers:    77.3 KB (buffer 
averagesize:   1.5 KB) in   0.01 seconds ( 5718.9 KB/second)
   [2026-11-04 14:56:55.000] 38022: Received 50 buffers:    70.7 KB (buffer 
averagesize:   1.4 KB) in   0.01 seconds ( 5287.5 KB/second)
   [2026-11-04 14:56:55.000] 38023: Received 50 buffers:    70.6 KB (buffer 
averagesize:   1.4 KB) in   0.01 seconds ( 5858.8 KB/second)
   [2026-11-04 14:56:55.000] 38024: Received 50 buffers:    74.7 KB (buffer 
averagesize:   1.5 KB) in   0.01 seconds ( 6212.5 KB/second)
   [2026-11-04 14:56:55.000] 38025: Received 50 buffers:    69.3 KB (buffer 
averagesize:   1.4 KB) in   0.01 seconds ( 5472.9 KB/second)
   [2026-11-04 14:56:55.000] 38026: Received 50 buffers:    81.4 KB (buffer 
averagesize:   1.6 KB) in   0.01 seconds ( 5820.8 KB/second)
   [2026-11-04 14:56:55.000] 38027: Received 50 buffers:    65.3 KB (buffer 
averagesize:   1.3 KB) in   0.01 seconds ( 5991.7 KB/second)
   [2026-11-04 14:56:55.000] 38028: Received 50 buffers:    65.3 KB (buffer 
averagesize:   1.3 KB) in   0.01 seconds ( 5392.3 KB/second)
   [2026-11-04 14:56:55.000] 38029: Received 50 buffers:    68.0 KB (buffer 
averagesize:   1.4 KB) in   0.01 seconds ( 6092.4 KB/second)
   [2026-11-04 14:56:55.000] 38030: Received 50 buffers:    72.0 KB (buffer 
averagesize:   1.4 KB) in   0.01 seconds ( 5827.9 KB/second)
   [2026-11-04 14:56:55.000] 38031: Received 50 buffers:    61.4 KB (buffer 
averagesize:   1.2 KB) in   0.01 seconds ( 5123.6 KB/second)
   [2026-11-04 14:56:55.000] 38032: Received 50 buffers:    70.6 KB (buffer 
averagesize:   1.4 KB) in   0.01 seconds ( 5933.1 KB/second)
   [2026-11-04 14:56:55.000] 38033: Received 50 buffers:    80.0 KB (buffer 
averagesize:   1.6 KB) in   0.01 seconds ( 5565.5 KB/second)
   [2026-11-04 14:56:55.000] 38034: Received 50 buffers:    69.4 KB (buffer 
averagesize:   1.4 KB) in   0.01 seconds ( 6178.4 KB/second)
   [2026-11-04 14:56:55.000] 38035: Received 50 buffers:    68.0 KB (buffer 
averagesize:   1.4 KB) in   0.01 seconds ( 6056.0 KB/second)
   [2026-11-04 14:56:55.000] 38036: Received 50 buffers:    65.3 KB (buffer 
averagesize:   1.3 KB) in   0.01 seconds ( 5326.4 KB/second)
   [2026-11-04 14:56:55.000] 38037: Received 50 buffers:    68.0 KB (buffer 
averagesize:   1.4 KB) in   0.01 seconds ( 6282.0 KB/second)
   [2026-11-04 14:56:55.000] 38038: Received 50 buffers:    66.7 KB (buffer 
averagesize:   1.3 KB) in   0.01 seconds ( 6122.3 KB/second)
   [2026-11-04 14:56:55.000] 38039: Received 50 buffers:    73.3 KB (buffer 
averagesize:   1.5 KB) in   0.01 seconds ( 5269.1 KB/second)
   [2026-11-04 14:56:55.000] 38040: Received 50 buffers:    70.7 KB (buffer 
averagesize:   1.4 KB) in   0.01 seconds ( 6537.7 KB/second)
   [2026-11-04 14:56:55.000] 38041: Received 50 buffers:    65.3 KB (buffer 
averagesize:   1.3 KB) in   0.01 seconds ( 5677.8 KB/second)
   ```
   
   NuttX device:
   ```
   nsh> tcpclient 10.0.0.1
   Connecting to IPv4 Address: 0100000a
   client: Connected
   [2018-09-01 00:00:40.000] 0: Sent 50 4096-byte buffers:   200.0KB (avg   4.0 
KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:00:40.000] 1: Sent 50 4096-byte buffers:   200.0KB (avg   4.0 
KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:00:40.000] 2: Sent 50 4096-byte buffers:   200.0KB (avg   4.0 
KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:00:40.000] 3: Sent 50 4096-byte buffers:   200.0KB (avg   4.0 
KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:00:40.000] 4: Sent 50 4096-byte buffers:   200.0KB (avg   4.0 
KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:00:40.000] 5: Sent 50 4096-byte buffers:   200.0KB (avg   4.0 
KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:00:40.000] 6: Sent 50 4096-byte buffers:   200.0KB (avg   4.0 
KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:00:40.000] 7: Sent 50 4096-byte buffers:   200.0KB (avg   4.0 
KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:00:40.000] 8: Sent 50 4096-byte buffers:   200.0KB (avg   4.0 
KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:00:40.000] 9: Sent 50 4096-byte buffers:   200.0KB (avg   4.0 
KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:00:40.000] 10: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:00:40.000] 11: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:00:40.000] 12: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:00:40.000] 13: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:00:40.000] 14: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:00:40.000] 15: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:00:40.000] 16: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:00:40.000] 17: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:00:40.000] 18: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:00:40.000] 19: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:00:40.000] 20: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:00:40.000] 21: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:00:40.000] 22: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:00:40.000] 23: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:00:40.000] 24: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:00:41.000] 25: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:00:41.000] 26: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   
   ...
   
   [2018-09-01 00:10:10.000] 12949: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:10:10.000] 12950: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:10:10.000] 12951: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:10:10.000] 12952: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:10:10.000] 12953: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:10:10.000] 12954: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:10:10.000] 12955: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:10:10.000] 12956: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:10:10.000] 12957: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:10:10.000] 12958: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:10:11.000] 12959: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:10:11.000] 12960: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:10:11.000] 12961: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:10:11.000] 12962: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:10:11.000] 12963: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:10:11.000] 12964: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:10:11.000] 12965: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:10:11.000] 12966: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:10:11.000] 12967: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:10:11.000] 12968: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:10:11.000] 12969: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:10:11.000] 12970: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:10:11.000] 12971: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:10:11.000] 12972: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:10:11.000] 12973: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:10:11.000] 12974: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   [2018-09-01 00:10:11.000] 12975: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.04 seconds ( 5000.0 KB/second)
   [2018-09-01 00:10:11.000] 12976: Sent 50 4096-byte buffers:   200.0KB (avg   
4.0 KB) in   0.03 seconds ( 6666.7 KB/second)
   ```
   
   **OSTest log:**
   
[rt1180_ostest.log](https://github.com/user-attachments/files/34410209/rt1180_ostest.log)
   
   **Documentation:**
   - Documentation successfully built with `make html`
   - Doc changed verified with browser
    


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to