# Ethernet architecture

The following figure shows the architecture and its components involved in communicating data over Ethernet on the reference kits.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by Microsoft Visio, SVG Export ethernet-arch.svg Page-1 -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events" width="6.24306in" height="8.97139in" viewbox="0 0 449.5 645.94" xml:space="preserve" color-interpolation-filters="sRGB" class="st20" aria-label="Figure : Ethernet architecture on reference kits"><style>.svg-1 .st1 { fill: #ffffff; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st2 { fill: #fafafa; stroke: #d2d7e1; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st3 { fill: #040a40; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st4 { fill: #ffffff; font-family: Arial; font-size: 1.00001em }
.svg-1 .st5 { fill: #007884; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st6 { fill: #2a2aea; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st7 { fill: #d2d7e1; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st8 { fill: #000000; font-family: Arial; font-size: 1.00001em }
.svg-1 .st9 { stroke: #000000; stroke-dasharray: 2.25, 2.25; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st10 { marker-end: url("#mrkr4-39"); marker-start: url("#mrkr4-37"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st11 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.28409090909091 }
.svg-1 .st12 { fill: #ffffff; stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st13 { fill: #000000 }
.svg-1 .st14 { stroke: #000000; stroke-dasharray: 0, 4.5; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5 }
.svg-1 .st15 { fill: none; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st16 { fill: #000000; font-family: Arial; font-size: 1.00001em; font-weight: bold }
.svg-1 .st17 { font-size: 1em }
.svg-1 .st18 { fill: #ffffff; font-family: Arial; font-size: 0.833336em }
.svg-1 .st19 { fill: #000000; font-family: Arial; font-size: 0.833336em }
.svg-1 .st20 { fill: none; fill-rule: evenodd; font-size: 12px; overflow: visible; stroke-linecap: square; stroke-miterlimit: 3 }</style>
<defs id="Markers">	<g id="lend4">		<path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"></path>	</g>	<marker id="mrkr4-37" class="st11" refx="6.68" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend4" transform="scale(3.52) "></use>	</marker>	<marker id="mrkr4-39" class="st11" refx="-7.04" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend4" transform="scale(-3.52,-3.52) "></use>	</marker></defs><g>	<title>VBackground-1</title>	<g id="shape1000-1">		<title>Solid.1000</title>		<rect x="0" y="0" width="449.5" height="645.94" class="st1"></rect>	</g></g><g>	<title>Page-1</title>	<g id="shape8-3" transform="translate(19.375,-349.69)">		<title>Sheet.8</title>		<rect x="0" y="368.19" width="411.25" height="277.75" rx="4.5" ry="4.5" class="st2"></rect>	</g>	<g id="shape13-5" transform="translate(18.5,-133.69)">		<title>Sheet.13</title>		<rect x="0" y="482.66" width="412.5" height="163.279" rx="4.5" ry="4.5" class="st2"></rect>	</g>	<g id="shape1-7" transform="translate(139.419,-591.69)">		<title>Sheet.1</title>		<desc>Applications</desc>		<rect x="0" y="618.94" width="165.6" height="27" rx="4.5" ry="4.5" class="st3"></rect>		<text x="50.45" y="636.04" class="st4">Applications</text>		</g>	<g id="shape2-10" transform="translate(83.5625,-483.69)">		<title>Sheet.2</title>		<desc>Linux kernel network stack</desc>		<rect x="0" y="600.94" width="277.313" height="45" rx="4.5" ry="4.5" class="st5"></rect>		<text x="67.96" y="627.04" class="st4">Linux kernel network stack</text>		</g>	<g id="shape3-13" transform="translate(139.138,-426.19)">		<title>Sheet.3</title>		<desc>Ethernet/switch driver</desc>		<rect x="0" y="618.94" width="165.6" height="27" rx="4.5" ry="4.5" class="st6"></rect>		<text x="25.11" y="636.04" class="st4">Ethernet/switch driver</text>		</g>	<g id="shape4-16" transform="translate(139.137,-366.69)">		<title>Sheet.4</title>		<desc>PHY driver 1, 2,...n</desc>		<rect x="0" y="618.94" width="165.6" height="27" rx="4.5" ry="4.5" class="st6"></rect>		<text x="32.11" y="636.04" class="st4">PHY driver 1, 2,...n</text>		</g>	<g id="shape5-19" transform="translate(138.613,-257.145)">		<title>Sheet.5</title>		<desc>Ethernet/switch hardware</desc>		<rect x="0" y="618.94" width="165.6" height="27" rx="4.5" ry="4.5" class="st7"></rect>		<text x="15.1" y="636.04" class="st8">Ethernet/switch hardware</text>		</g>	<g id="shape6-22" transform="translate(138.537,-205.69)">		<title>Sheet.6</title>		<desc>PHY hardware 1, 2,...n</desc>		<rect x="0" y="618.94" width="165.6" height="27" rx="4.5" ry="4.5" class="st7"></rect>		<text x="22.1" y="636.04" class="st8">PHY hardware 1, 2,...n</text>		</g>	<g id="shape7-25" transform="translate(139.137,-151.271)">		<title>Sheet.7</title>		<desc>RJ45/IX 1, 2,…n</desc>		<rect x="0" y="618.94" width="165.6" height="27" rx="4.5" ry="4.5" class="st7"></rect>		<text x="38.78" y="636.04" class="st8">RJ45/IX 1, 2,…n</text>		</g>	<g id="shape9-28" transform="translate(19.375,-560.94)">		<title>Sheet.9</title>		<path d="M0 645.94 L409.45 645.94" class="st9"></path>	</g>	<g id="shape10-31" transform="translate(868.377,54.5) rotate(90)">		<title>Sheet.10</title>		<path d="M6.68 645.94 L7.04 645.94 L55.33 645.94" class="st10"></path>	</g>	<g id="shape11-40" transform="translate(867.811,171.756) rotate(90.8211)">		<title>Sheet.11</title>		<path d="M6.68 645.94 L7.04 645.94 L23.24 645.94" class="st10"></path>	</g>	<g id="shape12-47" transform="translate(867.877,219.75) rotate(90)">		<title>Sheet.12</title>		<path d="M6.68 645.94 L7.04 645.94 L25.31 645.94" class="st10"></path>	</g>	<g id="shape14-54" transform="translate(867.315,296.25) rotate(90)">		<title>Sheet.14</title>		<path d="M6.68 645.94 L7.04 645.94 L44.71 645.94" class="st10"></path>	</g>	<g id="shape15-61" transform="translate(867.315,388.795) rotate(90)">		<title>Sheet.15</title>		<path d="M6.68 645.94 L7.04 645.94 L17.41 645.94" class="st10"></path>	</g>	<g id="shape16-68" transform="translate(867.315,440.25) rotate(90)">		<title>Sheet.16</title>		<path d="M6.68 645.94 L7.04 645.94 L19.96 645.94" class="st10"></path>	</g>	<g id="group17-75" transform="translate(154.937,-54.6898)">		<title>Laptop</title>		<g id="shape18-76" transform="translate(0,-4.57335)">			<title>Sheet.18</title>			<path d="M0 645.94 L49 645.94 L49 640.76 L44.8 633.61 L3.95 633.61 L0 640.76 L0 645.94 ZM44.94 632.44 L44.94 609.82						 C44.94 607.54 43.1 605.69 40.84 605.69 L8.05 605.69 C5.78 605.69 3.95 607.54 3.95 609.82 L3.95 632.44						 L44.94 632.44 Z" class="st12"></path>		</g>		<g id="shape19-78" transform="translate(4.82109,-10.3337)">			<title>Sheet.19</title>			<path d="M1.98 642.37 L0 645.94 L39.27 645.94 L37.29 642.37 L1.98 642.37 Z" class="st13"></path>		</g>		<g id="shape20-81" transform="translate(7.90035,-22.378)">			<title>Sheet.20</title>			<rect x="0" y="627.364" width="33.1998" height="18.5757" class="st12"></rect>		</g>	</g>	<g id="group21-83" transform="translate(238.812,-54.6898)">		<title>Laptop.21</title>		<g id="shape22-84" transform="translate(0,-4.57335)">			<title>Sheet.22</title>			<path d="M0 645.94 L49 645.94 L49 640.76 L44.8 633.61 L3.95 633.61 L0 640.76 L0 645.94 ZM44.94 632.44 L44.94 609.82						 C44.94 607.54 43.1 605.69 40.84 605.69 L8.05 605.69 C5.78 605.69 3.95 607.54 3.95 609.82 L3.95 632.44						 L44.94 632.44 Z" class="st12"></path>		</g>		<g id="shape23-86" transform="translate(4.82109,-10.3337)">			<title>Sheet.23</title>			<path d="M1.98 642.37 L0 645.94 L39.27 645.94 L37.29 642.37 L1.98 642.37 Z" class="st13"></path>		</g>		<g id="shape24-89" transform="translate(7.90035,-22.378)">			<title>Sheet.24</title>			<rect x="0" y="627.364" width="33.1998" height="18.5757" class="st12"></rect>		</g>	</g>	<g id="shape25-91" transform="translate(826.815,494.815) rotate(90)">		<title>Sheet.25</title>		<path d="M6.68 645.94 L7.04 645.94 L43.95 645.94" class="st10"></path>	</g>	<g id="shape26-98" transform="translate(907.481,494.44) rotate(90)">		<title>Sheet.26</title>		<path d="M6.68 645.94 L7.04 645.94 L44.33 645.94" class="st10"></path>	</g>	<g id="shape27-105" transform="translate(210.5,-87.4395)">		<title>Sheet.27</title>		<path d="M0 645.94 L22.5 645.94" class="st14"></path>	</g>	<g id="shape28-108" transform="translate(19.875,-567.94)">		<title>Sheet.28</title>		<desc>User space</desc>		<rect x="0" y="632.44" width="85.5" height="13.5" class="st15"></rect>		<text x="4" y="642.79" class="st16">User space</text>		</g>	<g id="shape29-111" transform="translate(19.375,-538.69)">		<title>Sheet.29</title>		<desc>Kernel space</desc>		<rect x="0" y="632.44" width="85.5" height="13.5" class="st15"></rect>		<text x="4" y="642.79" class="st16">Kernel space</text>		</g>	<g id="shape30-114" transform="translate(356.375,-606.19)">		<title>Sheet.30</title>		<desc>APSS</desc>		<rect x="0" y="632.44" width="72" height="13.5" class="st15"></rect>		<text x="19.66" y="642.79" class="st16">APSS</text>		</g>	<g id="shape32-117" transform="translate(19.75,-270)">		<title>Sheet.32</title>		<desc>Ethernet hardware</desc>		<rect x="0" y="632.44" width="105.188" height="13.5" class="st15"></rect>		<text x="4" y="635.59" class="st16">Ethernet <tspan x="4" dy="1.2em" class="st17">hardware</tspan></text>		</g>	<g id="shape1002-121" transform="translate(92.25,-18.375)">		<title>Sheet.1002</title>		<desc>Developer specific</desc>		<rect x="0" y="624.34" width="108" height="21.6" rx="4.5" ry="4.5" class="st3"></rect>		<text x="13.15" y="638.14" class="st18">Developer specific</text>		</g>	<g id="shape1003-124" transform="translate(204.875,-18.375)">		<title>Sheet.1003</title>		<desc>Open-source</desc>		<rect x="0" y="624.34" width="72" height="21.6" rx="4.5" ry="4.5" class="st5"></rect>		<text x="7.1" y="638.14" class="st18">Open-source</text>		</g>	<g id="shape1004-127" transform="translate(281.75,-18.375)">		<title>Sheet.1004</title>		<desc>Software</desc>		<rect x="0" y="624.34" width="72" height="21.6" rx="4.5" ry="4.5" class="st6"></rect>		<text x="16.27" y="638.14" class="st18">Software</text>		</g>	<g id="shape1005-130" transform="translate(358.725,-18.625)">		<title>Sheet.1005</title>		<desc>Hardware</desc>		<rect x="0" y="624.34" width="72" height="21.6" rx="4.5" ry="4.5" class="st7"></rect>		<text x="14.33" y="638.14" class="st19">Hardware</text>		</g>	<g id="shape1006-133" transform="translate(168.667,-318.025)">		<title>Sheet.1006</title>		<desc>PCIe/USB connect</desc>		<rect x="0" y="632.44" width="112.5" height="13.5" class="st1"></rect>		<text x="6.22" y="642.79" class="st8">PCIe/USB connect</text>		</g></g>
</svg>

Ethernet architecture on reference kits

Tab QCS6490
Tab QCS9075
Tab QCS8275

The following table describes the components of Ethernet architecture.

| Component | Description |
| --- | --- |
| Application processor subsystem (APSS) | Runs on a Linux-based operating system. |
| Ethernet driver | <ul class="simple"><br><li><p>A software driver in the Linux kernel.</p></li><br><li><p>Provides data connectivity over a wired Ethernet interface.</p></li><br></ul> |
| PHY driver | <ul class="simple"><br><li><p>A low-level driver dedicated to manage the Ethernet physical layer.</p></li><br><li><p>Implements a software statemachine required to handle the lifecycle of PHY, from initialization to link establishment.</p></li><br><li><p>Interacts with an underlying management data input/output (MDIO) to access the PHY register and perform operations such as detecting alive and/or linked PHYs.</p></li><br></ul> |
| Ethernet hardware (RB3 Gen 2 Development Kit) | <ul class="simple"><br><li><p>Both QEP and AQR PHYs are validated on <a href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-251/rb3_hardware_overview.html#mainboard-and-interposer-connectors" rel="noopener noreferrer" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-251/rb3_hardware_overview.html#mainboard-and-interposer-connectors')">RB3 Gen 2 Development Kit</a>.</p></li><br><li><p>QEP PHY for 2.5 GbE is available by default on SGMII interface. It is enabled and verified on a 1 x QEP8121 IX connector.</p></li><br><li><p>USB2ETH interface with 1 GbE is available by default and verified on RJ45 connector.</p></li><br><li><p>AQR PHY for 10 GbE is optional and may not be available on the development kit. If available, it is verified on a 1 x AQR113C IX connector.</p></li><br></ul><br><br>Note<br><br><br>The sample outputs shown in [Tools for Ethernet operations](https://docs.qualcomm.com/doc/80-70018-26/topic/tools-for-ethernet-operations.html#tools-for-ethernet-operations) are based on the verification of QEP8121 PHY, USB2ETH, and AQR113C PHY.<br><br><ul class="simple"><br><li><p>To bring up hardware configurations other than the configuration provided by Qualcomm, see <a href="https://docs.qualcomm.com/doc/80-70018-26/topic/bring_up-ethernet.html#bring-up-alternate-hardware-enablement"><span class="std std-ref">Bring up alternate hardware enablement</span></a>.</p></li><br><li><p>For information on how to configure RJ45 based USB2ETH, see <a href="https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-254/how_to.html#configure-ethernet-with-rj45-port" rel="noopener noreferrer" target="_blank" class="xref cursorpointer" onclick="Window.BookmapComponent.navigateExternalFile('https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-254/how_to.html#configure-ethernet-with-rj45-port')">Configure Ethernet with RJ45</a></p></li><br></ul> |

The following table describes the components of Ethernet architecture.

| Component | Description |
| --- | --- |
| Application processor subsystem (APSS) | Runs on a Linux-based operating system. |
| Ethernet driver | <ul class="simple"><br><li><p>A software driver in the Linux kernel.</p></li><br><li><p>Provides data connectivity over a wired Ethernet interface.</p></li><br></ul> |
| PHY driver | <ul class="simple"><br><li><p>A low-level driver dedicated to manage the Ethernet physical layer.</p></li><br><li><p>Implements a software statemachine required to handle the lifecycle of PHY, from initialization to link establishment.</p></li><br><li><p>Interacts with an underlying management data input/output (MDIO) to access the PHY register and perform operations such as detecting alive and/or linked PHYs.</p></li><br></ul> |
| Ethernet hardware (IQ-9075 EVK) | 1 x QEP8121 PHY for 10/100/1000 Mbps is validated on [IQ-9075 EVK](https://docs.qualcomm.com/bundle/resource/topics/80-73418-123/overview.html#evk-ports-and-interfaces) and enabled by RJ45 connector.<br><br><br>Note<br><br><br>2.5 GbE is not enabled on IQ-9075 EVK. |

The following table describes the components of Ethernet architecture.

| Component | Description |
| --- | --- |
| Application processor subsystem (APSS) | Runs on a Linux-based operating system. |
| Ethernet driver | <ul class="simple"><br><li><p>A software driver in the Linux kernel.</p></li><br><li><p>Provides data connectivity over a wired Ethernet interface.</p></li><br></ul> |
| PHY driver | <ul class="simple"><br><li><p>A low-level driver dedicated to manage the Ethernet physical layer.</p></li><br><li><p>Implements a software statemachine required to handle the lifecycle of PHY, from initialization to link establishment.</p></li><br><li><p>Interacts with an underlying management data input/output (MDIO) to access the PHY register and perform operations such as detecting alive and/or linked PHYs.</p></li><br></ul> |
| Ethernet hardware (IQ-8 Beta EVK) | 1 x AQR115 PHY for 10/100/1000 Mbps and 2.5 GbE is validated on IQ-8 Beta EVK and enabled by RJ45 connector. |

Last Published: Apr 10, 2025

[Previous Topic
Ethernet features](https://docs.qualcomm.com/bundle/publicresource/80-70018-26/topics/ethernet-features.md) [Next Topic
Tools for Ethernet operations](https://docs.qualcomm.com/bundle/publicresource/80-70018-26/topics/tools-for-ethernet-operations.md)