# Bring up Ethernet

The following figure shows the workflow to bring up 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 bringup-workflow.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" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="8.01042in" height="1.38542in" viewbox="0 0 576.75 99.75" xml:space="preserve" color-interpolation-filters="sRGB" class="st8" aria-label="Figure : Ethernet bringup workflow"><v:documentproperties v:langid="1033" v:viewmarkup="false">	<v:userdefs>		<v:ud v:nameu="msvNoAutoConnect" v:val="VT0(1):26"></v:ud>	</v:userdefs></v:documentproperties>
<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: 0.75 }
.svg-1 .st3 { fill: #6280cc; stroke: #6280cc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st4 { fill: #ffffff; font-family: Roboto; font-size: 1.00001em }
.svg-1 .st5 { fill: #6280cc; stroke: #6280cc; stroke-width: 0.75 }
.svg-1 .st6 { marker-end: url("#1-mrkr4-19"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st7 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.28409090909091 }
.svg-1 .st8 { 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="1-mrkr4-19" class="st7" v:arrowtype="4" v:arrowsize="2" v:setback="7.04" refx="-7.04" orient="auto" markerunits="strokeWidth" overflow="visible">		<use xlink:href="#lend4" transform="scale(-3.52,-3.52) "></use>	</marker></defs><g v:mid="20" v:index="1" v:groupcontext="backgroundPage">	<v:userdefs>		<v:ud v:nameu="msvVisioCreated" v:prompt="" v:val="VT0(0):26"></v:ud>	</v:userdefs>	<title>VBackground-1</title>	<v:pageproperties width="8.01042" height="1.38542" v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape1000-1" v:mid="1000" v:groupcontext="shape">		<title>Solid.1000</title>		<v:userdefs>			<v:ud v:nameu="Background" v:val="VT0(0):26"></v:ud>			<v:ud v:nameu="visVersion" v:val="VT0(15):26"></v:ud>			<v:ud v:nameu="msvShapeCategories" v:prompt="" v:val="VT4(DoNotContain)"></v:ud>			<v:ud v:nameu="msvVisioCreated" v:prompt="" v:val="VT0(0):26"></v:ud>		</v:userdefs>		<rect x="0" y="0" width="576.75" height="99.75" class="st1"></rect>	</g></g><g v:mid="0" v:index="2" v:groupcontext="foregroundPage">	<title>Page-1</title>	<v:pageproperties v:drawingscale="1" v:pagescale="1" v:drawingunits="19" v:shadowoffsetx="9" v:shadowoffsety="-9"></v:pageproperties>	<g id="shape1034-3" v:mid="1034" v:groupcontext="shape" transform="translate(18.375,-18.375)">		<title>Sheet.1034</title>		<rect x="0" y="36.75" width="540" height="63" rx="4.5" ry="4.5" class="st2"></rect>	</g>	<g id="shape4-5" v:mid="4" v:groupcontext="shape" transform="translate(28.5,-27.8437)">		<title>Sheet.4</title>		<desc>Assign MAC address</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="72" cy="78.15" width="144" height="43.2"></v:textrect>		<rect x="0" y="56.55" width="144" height="43.2" rx="4.5" ry="4.5" class="st3"></rect>		<text x="16.31" y="81.75" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Assign MAC address</text>		</g>	<g id="shape20-8" v:mid="20" v:groupcontext="shape" transform="translate(404.625,-27.8437)">		<title>Sheet.20</title>		<desc>Configure MTU size</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="72" cy="78.15" width="144" height="43.2"></v:textrect>		<rect x="0" y="56.55" width="144" height="43.2" rx="4.5" ry="4.5" class="st3"></rect>		<text x="19.56" y="81.75" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Configure MTU size</text>		</g>	<g id="shape1000-11" v:mid="1000" v:groupcontext="shape" transform="translate(216.375,-27.8437)">		<title>Sheet.1000</title>		<desc>Assign IP address</desc>		<v:textblock v:margins="rect(4,4,4,4)"></v:textblock>		<v:textrect cx="72" cy="78.15" width="144" height="43.2"></v:textrect>		<rect x="0" y="56.55" width="144" height="43.2" rx="4.5" ry="4.5" class="st5"></rect>		<text x="23.95" y="81.75" class="st4" v:langid="1033"><v:paragraph v:horizalign="1"></v:paragraph><v:tablist></v:tablist>Assign IP address</text>		</g>	<g id="shape1032-14" v:mid="1032" v:groupcontext="shape" transform="translate(172.975,-49.9187)">		<title>Sheet.1032</title>		<path d="M0 99.75 L36.16 99.75" class="st6"></path>	</g>	<g id="shape1033-20" v:mid="1033" v:groupcontext="shape" transform="translate(361.125,-49.6687)">		<title>Sheet.1033</title>		<path d="M0 99.75 L36.16 99.75" class="st6"></path>	</g></g>
</svg>

**Ethernet bringup workflow**

Tab QCS6490
Tab IQ-9075
Tab IQ-9075 with Mezzanine
Tab IQ-8275
Tab IQ-8275 with Mezzanine
Tab IQ-615

- *class* tabincludedirective

    - Note

- Flash the corresponding [CDT](https://docs.qualcomm.com/doc/80-80022-300/topic/release_specific_information.html) on the device to ensure that the correct configuration is used for Ethernet bringup.
- The QPS615 MAC driver and kernel configuration are enabled by default in the source code.
- To bring up hardware configurations other than the configuration provided by Qualcomm, see [Bring up alternate hardware enablement](https://docs.qualcomm.com/doc/80-80022-26/topic/bring_up-ethernet.html#bringup-alt-hw-qcs6490).

To bring up Ethernet functionality on RB3 Gen 2 Development Kit, do the following:

> 
> 
> 1. The RB3 Gen 2 Development Kit comes with a [preconfigured MAC address](https://docs.qualcomm.com/doc/80-80022-26/topic/config-ethernet-features.html#verify-preconfig-mac-qcs6490). Skip this step if you choose to use the same MAC address.
> 
> 
> 
> > 
> > 
> > Alternatively, to change the preconfigured MAC address on the device, perform the following steps:
> > 
> >     1. Bring down the interface.
> > 
> > 
> > 
> > > 
> > > 
> > > ip link set <Interface_name> down
> > >             Copy to clipboard
> > > 
> > > 
> > > For example:
> > > 
> > > 
> > > ip link set enP1p5s0f0 down
> > >             Copy to clipboard
> >     2. Assign the MAC address.
> > 
> > 
> > 
> > > 
> > > 
> > > ip link set dev <Interface_name> address <MAC>
> > >             Copy to clipboard
> > > 
> > > 
> > > For example:
> > > 
> > > 
> > > ip link set dev enP15s0f0 address XX:XX:XX:YY:YY:YY
> > >             Copy to clipboard
> >     3. Bring up the interface.
> > 
> > 
> > 
> > > 
> > > 
> > > ip addr add <ip>/<prefix> dev <Interface_name>
> > >             ip link set dev <Interface_name> up
> > >             Copy to clipboard
> > > 
> > > 
> > > For example:
> > > 
> > > 
> > > ip addr add 169.254.227.235/16 dev enP1p5s0f0
> > >             ip link set dev enP1p5s0f0 up
> > >             Copy to clipboard
> > > 
> > > 
> > > Sample output:
> > > 
> > > 
> > > ip -s addr show dev enP1p5s0f1
> > >             enP1p5s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
> > >                 link/ether 62:99:60:23:4d:52 brd ff:ff:ff:ff:ff:ff
> > >                 RX:  bytes packets errors dropped  missed   mcast
> > >                     105971     313      0       2       0       0
> > >                 TX:  bytes packets errors dropped carrier collsns
> > >                     145434     762      0       2       0       0
> > >             Copy to clipboard
> > > 
> > > 
> > > Note
> > > 
> > > 
> > > This MAC address is valid only for the current boot cycle. On rebooting the device, the MAC address is updated with the address from persistent storage as described in [Verify preconfigured MAC address](https://docs.qualcomm.com/doc/80-80022-26/topic/config-ethernet-features.html#verify-preconfig-mac-qcs6490).
> 2. When the device is connected to a public network, the DHCP server connected to the network assigns an IP address automatically. If a dynamic IP address isn’t assigned to the device but Ethernet connectivity is required, configure a static IP address manually within the same subnet of the client.
> 
> 
> 
> > 
> > 
> > ip addr add <ip>/<prefix> dev <Interface_name>
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip addr add 169.254.227.235/16 dev enP1p5s0f0
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > ip -s addr show dev enP1p5s0f1
> >         enP1p5s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
> >             link/ether 62:99:60:23:4d:52 brd ff:ff:ff:ff:ff:ff
> >             RX:  bytes packets errors dropped  missed   mcast
> >                 105971     313      0       2       0       0
> >             TX:  bytes packets errors dropped carrier collsns
> >                 145434     762      0       2       0       0
> >         Copy to clipboard
> > 
> > 
> > Note
> > 
> > 
> > This IP address is valid only for the current boot cycle. On rebooting the device, the IP address isn’t retained.
> 3. Configure the MTU size for the data packets over the Ethernet interface.
> 
> 
> 
> > 
> > 
> > ip link set dev <Interface_name> down
> >         
> >         ip link set dev <Interface_name> mtu <mtu_size>
> >         
> >         ip link set dev <Interface_name> up
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip link set dev enP1p5s0f0 down
> >         
> >         ip link set dev enP1p5s0f0 mtu 1500
> >         
> >         ip link set dev enP1p5s0f0 up
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > ip -s addr show dev enP1p5s0f1
> >         enP1p5s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
> >             link/ether 62:99:60:23:4d:52 brd ff:ff:ff:ff:ff:ff
> >             RX:  bytes packets errors dropped  missed   mcast
> >                 105971     313      0       2       0       0
> >             TX:  bytes packets errors dropped carrier collsns
> >                 145434     762      0       2       0       0
> >         Copy to clipboard

## Bring up alternate hardware enablement

You can attach MAC/PHY components other than the hardware configuration provided by Qualcomm and bring them up. To replace QPS615 with other PCIe based MAC/PHY, see [PCIe software support for QPS615 switch](https://docs.qualcomm.com/doc/80-80022-8/topic/pcie.html#sub$pcie-software-support-feature-for-qps615).

Note

You must obtain the MAC/PHY driver and firmware from the respective vendor. Qualcomm isn’t responsible for these configuration changes.

### Retain QPS615 PCIe and replace QEP8121/AQR113C

To retain QPS615 PCIe and replace QEP8121/AQR113C with other PHY
components, do the following:

1. Based on the attached PHY recommendations, update all the parameters in the `arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-staging.dtso` file.
2. Compile the software.

    Sample code for QEP PHY:

qep_vreg: qep_vreg {
              compatible = "regulator-fixed";
              regulator-name = "qep_vreg";
              gpio = <&pm7325_gpios 8 0>;
              regulator-min-microvolt = <1800000>;
              regulator-max-microvolt = <1800000>;
              enable-active-high;
           };
        
        pci@0,1 {
              interrupts-extended = <&tlmm 101 IRQ_TYPE_EDGE_FALLING>;
              interrupt-names = "wol_irq";
              phy-supply = <&qep_vreg>;
              pinctrl-names = "default";
              pinctrl-0 = <&napa_intn_wol_sig>;
              phy-reset-gpios = <&qps615 1 GPIO_ACTIVE_LOW>;
              reset-deassert-us = <20000>;
           };
        Copy to clipboard

    After flashing the modified software, the QPS615 driver scans the physical devices connected to it and matches the device tree information.

Note

A PHY may fail to load due to mismatch between the configuration in the `.dtso` file and actual recommendations for the PHY. In such cases, you must update the configuration in the `.dtso` file accordingly.

## AQR PHY enablement

Though AQR PHY for 10 GbE is optional, it’s validated on reference RB3 Gen 2 Development Kit. When bringing up Ethernet with AQR PHY for the first time, flash the PHY firmware to the hardware once. The AQR PHY is then detected and the PHY driver is enabled by default.

Qualcomm verified the following AQR PHY firmware on RB3 Gen 2 Development Kit:

- Marvell firmware: `AQR-G4_v5.6.1-QR_Marvell_NoSwap_XFI_ID44874_VER1836.cld`
- Marvell proprietary flashburn tool is recommended for flashing Marvell AQR113 PHY.
- Contact Marvell Technology, Inc. to obtain the AQR PHY firmware.

### Detect the PHY

To detect the PHY, do the following:

1. Update the AQR PHY parameters in the `arch/arm64/boot/dts/qcom/qcs6490-rb3gen2-staging.dtso` file.
2. Compile the software.

    Sample code for AQR PHY:

aqr_vreg: aqr_vreg {
                 compatible = "regulator-fixed";
                 regulator-name = "aqr_vreg";
                 gpio = <&pm7250b_gpios 4 0>;
                 regulator-min-microvolt = <1800000>;
                 regulator-max-microvolt = <1800000>;
                 enable-active-high;
              };
        
        pci@0,0 {
                 interrupts-extended = <&tlmm 141 IRQ_TYPE_EDGE_FALLING>;
                 interrupt-names = "wol_irq";
                 phy-supply = <&aqr_vreg>;
                 pinctrl-names = "default";
                 pinctrl-0 = <&aqr_intn_wol_sig>;
                 phy-reset-gpios = <&qps615 0 GPIO_ACTIVE_LOW>;
                 reset-deassert-us = <221000>;
        
                 gpio-controller;
                 #gpio-cells = <2>;
              };
        Copy to clipboard

- *class* tabincludedirective

    - Note

Flash the corresponding [CDT](https://docs.qualcomm.com/doc/80-80022-300/topic/release_specific_information.html) on the device to ensure that the correct configuration is used for Ethernet bringup.

To bring up Ethernet functionality on IQ-9075 EVK, do the following:

> 
> 
> 1. The IQ-9075 EVK comes with a MAC address. Skip this step if you choose to use the same MAC address.
> 
> 
> 
> > 
> > 
> > Alternatively, you can change the MAC address on the device.
> > 
> > 
> > ip link set dev <Interface_name> address <MAC Address>
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip link set dev eth0 address XX:XX:XX:YY:YY:YY
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > eth0:   <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
> >                 link/ether XX:XX:XX:YY:YY:YY brd ff:ff:ff:ff:ff:ff
> >                 inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0
> >                 valid_lft forever preferred_lft forever
> >                 inet6 fe80::1234:abcd:5678:9abc/64 scope link
> >                 valid_lft forever preferred_lft forever
> >         Copy to clipboard
> > 
> > 
> > Note
> > 
> > 
> > This MAC address is valid only for the current boot cycle. On rebooting the device, the MAC address is updated with the address from persistent storage.
> 2. When the device is connected to a public network, the DHCP server connected to the network assigns an IP address automatically. If a dynamic IP address isn’t assigned to the device but Ethernet connectivity is required, configure a static IP address manually within the same subnet of the client.
> 
> 
> 
> > 
> > 
> > ip addr add <ip>/<prefix> dev <Interface_name>
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip addr add 192.168.1.1/24 dev eth0
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > eth0:   <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
> >                 link/ether XX:XX:XX:YY:YY:YY brd ff:ff:ff:ff:ff:ff
> >                 inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0
> >                 valid_lft forever preferred_lft forever
> >                 inet6 fe80::1234:abcd:5678:9abc/64 scope link
> >                 valid_lft forever preferred_lft forever
> >         Copy to clipboard

> 
> 
> 3. Configure the MTU size for the data packets over the Ethernet interface.
> 
> 
> 
> > 
> > 
> > ip link set dev <Interface_name> down
> >         
> >         ip link set dev <Interface_name> mtu <mtu_size>
> >         
> >         ip link set dev <Interface_name> up
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip link set dev eth0 down
> >         
> >         ip link set dev eth0 mtu 1500
> >         
> >         ip link set dev eth0 up
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > eth0:   <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
> >                 link/ether XX:XX:XX:YY:YY:YY brd ff:ff:ff:ff:ff:ff
> >                 inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0
> >                 valid_lft forever preferred_lft forever
> >                 inet6 fe80::1234:abcd:5678:9abc/64 scope link
> >                 valid_lft forever preferred_lft forever
> >         Copy to clipboard

- *class* tabincludedirective

    - Note

Flash the corresponding [CDT](https://docs.qualcomm.com/doc/80-80022-300/topic/release_specific_information.html) on the device to ensure that the correct configuration is used for Ethernet bringup.

To bring up Ethernet functionality on IQ-9075 EVK with Mezzanine card, do the following:

> 
> 
> 1. The IQ-9075 EVK with Mezzanine comes with a MAC address. Skip this step if you choose to use the same MAC address.
> 
> 
> 
> > 
> > 
> > Alternatively, you can change the MAC address on the device.
> > 
> > 
> > ip link set dev <Interface_name> address <MAC Address>
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip link set enp5s0f1 down
> >         ip link set dev enp5s0f1 address ec:21:e5:11:4f:eb
> >         ip link set enp5s0f1 up
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > enp5s0f1:   <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
> >                     link/ether ec:21:e5:11:4f:eb brd ff:ff:ff:ff:ff:ff permaddr ec:21:e5:11:4f:ea
> >                     altname enxec21e5114fea
> >                     inet 192.168.1.1/24 scope global enp5s0f1
> >                     valid_lft forever preferred_lft forever
> >         Copy to clipboard
> > 
> > 
> > Note
> > 
> > 
> > This MAC address is valid only for the current boot cycle. On rebooting the device, the MAC address is updated with the address from persistent storage.
> 2. When the device is connected to a public network, the DHCP server connected to the network assigns an IP address automatically. If a dynamic IP address isn’t assigned to the device but Ethernet connectivity is required, configure a static IP address manually within the same subnet of the client.
> 
> 
> 
> > 
> > 
> > ip addr add <ip>/<prefix> dev <Interface_name>
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip addr add 192.168.1.1/24 dev enp5s0f1
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > enp5s0f1:   <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
> >                     link/ether ec:21:e5:11:4f:eb brd ff:ff:ff:ff:ff:ff permaddr ec:21:e5:11:4f:ea
> >                     altname enxec21e5114fea
> >                     inet 192.168.1.1/24 scope global enp5s0f1
> >                     valid_lft forever preferred_lft forever
> >         Copy to clipboard

> 
> 
> 3. Configure the MTU size for the data packets over the Ethernet interface.
> 
> 
> 
> > 
> > 
> > ip link set dev <Interface_name> down
> >         
> >         ip link set dev <Interface_name> mtu <mtu_size>
> >         
> >         ip link set dev <Interface_name> up
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip link set dev enp5s0f1 down
> >         
> >         ip link set dev enp5s0f1 mtu 1500
> >         
> >         ip link set dev enp5s0f1 up
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > enp5s0f1:   <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
> >                     link/ether ec:21:e5:11:4f:eb brd ff:ff:ff:ff:ff:ff permaddr ec:21:e5:11:4f:ea
> >                     altname enxec21e5114fea
> >                     inet 192.168.1.1/24 scope global enp5s0f1
> >                     valid_lft forever preferred_lft forever
> >         Copy to clipboard

## Bring up alternate hardware enablement

You can attach MAC/PHY components other than the hardware configuration provided by Qualcomm and bring them up. To replace QPS615 with other PCIe based MAC/PHY, see [PCIe software support for QPS615 switch](https://docs.qualcomm.com/doc/80-80022-8/topic/pcie.html#sub$pcie-software-support-feature-for-qps615).

Note

You must obtain the MAC/PHY driver and firmware from the respective vendor. Qualcomm isn’t responsible for these configuration changes.

### Retain QPS615 PCIe and replace QEP8121/AQR113C

To retain QPS615 PCIe and replace QEP8121/AQR113C with other PHY components, do the following:

1. Based on the attached PHY recommendations, update all the parameters in the `arch/arm64/boot/dts/qcom/lemans-evk-staging.dtso` file.
2. Compile the software.

> 
> 
> Sample code for QEP PHY:
> 
> 
> napa_intn_wol_sig: napa-intn-wol-sig {
>                 pins = "gpio57";
>                 function = "gpio";
>                 input-enable;
>                 bias-disable;
>             };
>         
>         pci@0,1 {
>                 interrupts-extended = <&tlmm 57 IRQ_TYPE_EDGE_FALLING>;
>                 interrupt-names = "wol_irq";
>                 nvmem-cells = <&mac_addr3>;
>                 nvmem-cell-names = "mac-address";
>                 pinctrl-names = "default";
>                 pinctrl-0 = <&napa_intn_wol_sig>;
>                 phy-reset-gpios = <&tlmm 77 GPIO_ACTIVE_HIGH>;
>                 reset-deassert-us = <20000>;
>             };
>         Copy to clipboard
> 
> 
> After flashing the modified software, the QPS615 driver scans the physical devices connected to it and matches the device tree information.
> 
> 
> Note
> 
> 
> A PHY may fail to load due to mismatch between the configuration in the `.dtso` file and actual recommendations for the PHY. In such cases, you must update the configuration in the `.dtso` file accordingly.

## AQR PHY enablement

Though AQR PHY for 10 GbE is optional, it’s validated on reference IQ-9075 EVK with Mezzanine card. When bringing up Ethernet with AQR PHY for the first time, flash the PHY firmware to the hardware once. The AQR PHY is then detected and the PHY driver is enabled by default.

Qualcomm verified the following AQR PHY firmware on IQ-9075 EVK with Mezzanine card:

- Marvell firmware: `AQR-G4_v5.6.1-QR_Marvell_NoSwap_XFI_ID44874_VER1836.cld`
- Marvell proprietary flashburn tool is recommended for flashing Marvell AQR113 PHY.
- Contact Marvell Technology, Inc. to obtain the AQR PHY firmware.

### Detect the PHY

To detect the PHY, do the following:

1. Update the AQR PHY parameters in the `arch/arm64/boot/dts/qcom/lemans-evk-staging.dtso` file.
2. Compile the software.

> 
> 
> Sample code for AQR PHY:
> 
> 
> aqr_intn_wol_sig: aqr-intn-wol-sig {
>                         pins = "gpio56";
>                         function = "gpio";
>                         input-enable;
>                         bias-disable;
>                 };
>         
>         pci@0,0 {
>                         interrupts-extended = <&tlmm 56 IRQ_TYPE_EDGE_FALLING>;
>                         interrupt-names = "wol_irq";
>                         nvmem-cells = <&mac_addr2>;
>                         nvmem-cell-names = "mac-address";
>                         pinctrl-names = "default";
>                         pinctrl-0 = <&aqr_intn_wol_sig>;
>                         phy-reset-gpios = <&tlmm 76 GPIO_ACTIVE_HIGH>;
>                         reset-deassert-us = <221000>;
>                 };
>         Copy to clipboard

## Enable QPS615 Ethernet ports using DTS overlay

Before you begin, ensure the QLI 2.0 RC3 build is flashed successfully onto the target device.

To enable QPS615 Ethernet ports, which internally rely on a Device tree source (DTS) overlay, do the following:

1. Boot the target device.
2. Write the overlay selection value.

> 
> 
> echo -n "staging" > /var/data
>         Copy to clipboard
3. Program the DTS overlay variable using `efivar`.

> 
> 
> efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays \
>         -w -f /var/data
>         Copy to clipboard
4. Verify whether the write operation is successful.

> 
> 
> efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -p
>         Copy to clipboard
5. Flush filesystem buffers.

> 
> 
> sync
>         Copy to clipboard
6. Reboot the device.

> 
> 
> reboot
>         Copy to clipboard

After the next boot cycle, the QPS615 Ethernet ports should be functional and available for use.

- *class* tabincludedirective

    - Note

Flash the corresponding [CDT](https://docs.qualcomm.com/doc/80-80022-300/topic/release_specific_information.html) on the device to ensure that the correct configuration is used for Ethernet bringup.

To bring up Ethernet functionality on IQ-8275 EVK, do the following:

> 
> 
> 1. The IQ-8275 EVK comes with a MAC address. Skip this step if you choose to use the same MAC address.
> 
> 
> 
> > 
> > 
> > Alternatively, you can change the MAC address on the device.
> > 
> > 
> > ip link set dev <Interface_name> address <MAC>
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip link set dev end0 address XX:XX:XX:YY:YY:YY
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > end0:   <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
> >                 link/ether XX:XX:XX:YY:YY:YY brd ff:ff:ff:ff:ff:ff
> >                 inet 192.168.1.1/24 brd 192.168.1.255 scope global end0
> >                 valid_lft forever preferred_lft forever
> >                 inet6 fe80::1234:abcd:5678:9abc/64 scope link
> >                 valid_lft forever preferred_lft forever
> >         Copy to clipboard
> > 
> > 
> > Note
> > 
> > 
> > This MAC address is valid only for the current boot cycle. On rebooting the device, the MAC address is updated with the address from persistent storage.
> 2. When the device is connected to a public network, the DHCP server connected to the network assigns an IP address automatically. If a dynamic IP address isn’t assigned to the device but Ethernet connectivity is required, configure a static IP address manually within the same subnet of the client.
> 
> 
> 
> > 
> > 
> > ip addr add <ip>/<prefix> dev <Interface_name>
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip addr add 192.168.1.1/24 dev end0
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > end0:   <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
> >                 link/ether XX:XX:XX:YY:YY:YY brd ff:ff:ff:ff:ff:ff
> >                 inet 192.168.1.1/24 brd 192.168.1.255 scope global end0
> >                 valid_lft forever preferred_lft forever
> >                 inet6 fe80::1234:abcd:5678:9abc/64 scope link
> >                 valid_lft forever preferred_lft forever
> >         Copy to clipboard

> 
> 
> 3. Configure the MTU size for the data packets over the Ethernet interface.
> 
> 
> 
> > 
> > 
> > ip link set dev <Interface_name> down
> >         
> >         ip link set dev <Interface_name> mtu <mtu_size>
> >         
> >         ip link set dev <Interface_name> up
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip link set dev end0 down
> >         
> >         ip link set dev end0 mtu 1500
> >         
> >         ip link set dev end0 up
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > end0:   <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
> >                 link/ether XX:XX:XX:YY:YY:YY brd ff:ff:ff:ff:ff:ff
> >                 inet 192.168.1.1/24 brd 192.168.1.255 scope global end0
> >                 valid_lft forever preferred_lft forever
> >                 inet6 fe80::1234:abcd:5678:9abc/64 scope link
> >                 valid_lft forever preferred_lft forever
> >         Copy to clipboard

- *class* tabincludedirective

    - Note

Flash the corresponding [CDT](https://docs.qualcomm.com/doc/80-80022-300/topic/release_specific_information.html) on the device to ensure that the correct configuration is used for Ethernet bringup.

To bring up Ethernet functionality on IQ-8275 EVK with Mezzanine card, do the following:

> 
> 
> 1. The IQ-8275 EVK with Mezzanine comes with a MAC address. Skip this step if you choose to use the same MAC address.
> 
> 
> 
> > 
> > 
> > Alternatively, you can change the MAC address on the device.
> > 
> > 
> > ip link set dev <Interface_name> address <MAC Address>
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip link set enp5s0f1 down
> >         ip link set dev enp5s0f1 address 5c:0a:11:22:33:45
> >         ip link set enp5s0f1 up
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > enp5s0f1:   <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
> >                     link/ether 5c:0a:11:22:33:45 brd ff:ff:ff:ff:ff:ff permaddr 5c:0a:11:22:33:44
> >                     altname enx5c0a11223344
> >                     inet 192.168.1.1/24 scope global enp5s0f1
> >                     valid_lft forever preferred_lft forever
> >                     inet6 fe80::a45c:bca3:bb00:7f43/64 scope link noprefixroute
> >                     valid_lft forever preferred_lft forever
> >         Copy to clipboard
> > 
> > 
> > Note
> > 
> > 
> > This MAC address is valid only for the current boot cycle. On rebooting the device, the MAC address is updated with the address from persistent storage.
> 2. When the device is connected to a public network, the DHCP server connected to the network assigns an IP address automatically. If a dynamic IP address isn’t assigned to the device but Ethernet connectivity is required, configure a static IP address manually within the same subnet of the client.
> 
> 
> 
> > 
> > 
> > ip addr add <ip>/<prefix> dev <Interface_name>
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip addr add 192.168.1.1/24 dev enp5s0f1
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > enp5s0f1:   <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
> >                     link/ether 5c:0a:11:22:33:45 brd ff:ff:ff:ff:ff:ff permaddr 5c:0a:11:22:33:44
> >                     altname enx5c0a11223344
> >                     inet 192.168.1.1/24 scope global enp5s0f1
> >                     valid_lft forever preferred_lft forever
> >                     inet6 fe80::a45c:bca3:bb00:7f43/64 scope link noprefixroute
> >                     valid_lft forever preferred_lft forever
> >         Copy to clipboard

> 
> 
> 3. Configure the MTU size for the data packets over the Ethernet interface.
> 
> 
> 
> > 
> > 
> > ip link set dev <Interface_name> down
> >         
> >         ip link set dev <Interface_name> mtu <mtu_size>
> >         
> >         ip link set dev <Interface_name> up
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip link set dev enp5s0f1 down
> >         
> >         ip link set dev enp5s0f1 mtu 1500
> >         
> >         ip link set dev enp5s0f1 up
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > enp5s0f1:   <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
> >                     link/ether 5c:0a:11:22:33:45 brd ff:ff:ff:ff:ff:ff permaddr 5c:0a:11:22:33:44
> >                     altname enx5c0a11223344
> >                     inet 192.168.1.1/24 scope global enp5s0f1
> >                     valid_lft forever preferred_lft forever
> >                     inet6 fe80::a45c:bca3:bb00:7f43/64 scope link noprefixroute
> >                     valid_lft forever preferred_lft forever
> >         Copy to clipboard

## Bring up alternate hardware enablement

You can attach MAC/PHY components other than the hardware configuration provided by Qualcomm and bring them up. To replace QPS615 with other PCIe based MAC/PHY, see [PCIe software support for QPS615 switch](https://docs.qualcomm.com/doc/80-80022-8/topic/pcie.html#sub$pcie-software-support-feature-for-qps615).

Note

You must obtain the MAC/PHY driver and firmware from the respective vendor. Qualcomm isn’t responsible for these configuration changes.

### Retain QPS615 PCIe and replace QEP8121/AQR113C

To retain QPS615 PCIe and replace QEP8121/AQR113C with other PHY components, do the following:

1. Based on the attached PHY recommendations, update all the parameters in the `arch/arm64/boot/dts/qcom/monaco-evk-staging.dtso` file.
2. Compile the software.

> 
> 
> Sample code for QEP PHY:
> 
> 
> napa_intn_wol_sig: napa-intn-wol-sig {
>                 pins = "gpio39";
>                 function = "gpio";
>                 input-enable;
>                 bias-disable;
>             };
>         
>         pci@0,1 {
>                 interrupts-extended = <&tlmm 39 IRQ_TYPE_EDGE_FALLING>;
>                 interrupt-names = "wol_irq";
>                 nvmem-cells = <&mac_addr2>;
>                 nvmem-cell-names = "mac-address";
>                 pinctrl-names = "default";
>                 pinctrl-0 = <&napa_intn_wol_sig>;
>                 phy-reset-gpios = <&expander5 0 GPIO_ACTIVE_HIGH>;
>                 reset-deassert-us = <20000>;
>             };
>         Copy to clipboard
> 
> 
> After flashing the modified software, the QPS615 driver scans the physical devices connected to it and matches the device tree information.
> 
> 
> Note
> 
> 
> A PHY may fail to load due to mismatch between the configuration in the `.dtso` file and actual recommendations for the PHY. In such cases, you must update the configuration in the `.dtso` file accordingly.

## AQR PHY enablement

Though AQR PHY for 10 GbE is optional, it’s validated on reference IQ-8275 EVK with Mezzanine card. When bringing up Ethernet with AQR PHY for the first time, flash the PHY firmware to the hardware once. The AQR PHY is then detected and the PHY driver is enabled by default.

Qualcomm verified the following AQR PHY firmware on IQ-8275 EVK with Mezzanine card:

- Marvell firmware: `AQR-G4_v5.6.1-QR_Marvell_NoSwap_XFI_ID44874_VER1836.cld`
- Marvell proprietary flashburn tool is recommended for flashing Marvell AQR113 PHY.
- Contact Marvell Technology, Inc. to obtain the AQR PHY firmware.

### Detect the PHY

To detect the PHY, do the following:

1. Update the AQR PHY parameters in the `arch/arm64/boot/dts/qcom/monaco-evk-staging.dtso` file.
2. Compile the software.

> 
> 
> Sample code for AQR PHY:
> 
> 
> aqr_intn_wol_sig: aqr-intn-wol-sig {
>                 pins = "gpio40";
>                 function = "gpio";
>                 input-enable;
>                 bias-disable;
>             };
>         
>         pci@0,0 {
>                 interrupts-extended = <&tlmm 40 IRQ_TYPE_EDGE_FALLING>;
>                 interrupt-names = "wol_irq";
>                 nvmem-cells = <&mac_addr1>;
>                 nvmem-cell-names = "mac-address";
>                 pinctrl-names = "default";
>                 pinctrl-0 = <&aqr_intn_wol_sig>;
>                 phy-reset-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
>                 reset-deassert-us = <221000>;
>             };
>         Copy to clipboard

## Enable QPS615 Ethernet ports using DTS overlay

Before you begin, ensure the QLI 2.0 RC3 build is flashed successfully onto the target device.

To enable QPS615 Ethernet ports, which internally rely on a Device tree source (DTS) overlay, do the following:

1. Boot the target device.
2. Write the overlay selection value.

> 
> 
> echo -n "staging" > /var/data
>         Copy to clipboard
3. Program the DTS overlay variable using `efivar`.

> 
> 
> efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays \
>         -w -f /var/data
>         Copy to clipboard
4. Verify whether the write operation is successful.

> 
> 
> efivar -n 882f8c2b-9646-435f-8de5-f208ff80c1bd-VendorDtbOverlays -p
>         Copy to clipboard
5. Flush filesystem buffers.

> 
> 
> sync
>         Copy to clipboard
6. Reboot the device.

> 
> 
> reboot
>         Copy to clipboard

After the next boot cycle, the QPS615 Ethernet ports should be functional and available for use.

- *class* tabincludedirective

    - Note

Flash the corresponding [CDT](https://docs.qualcomm.com/doc/80-80022-300/topic/release_specific_information.html) on the device to ensure that the correct configuration is used for Ethernet bringup.

To bring up Ethernet functionality on IQ-615 EVK, do the following:

> 
> 
> 1. The IQ-615 EVK comes with a MAC address. Skip this step if you choose to use the same MAC address.
> 
> 
> 
> > 
> > 
> > Alternatively, you can change the MAC address on the device.
> > 
> > 
> > ip link set dev <Interface_name> address <MAC>
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip link set dev eth0 address XX:XX:XX:YY:YY:YY
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > eth0:   <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
> >                 link/ether XX:XX:XX:YY:YY:YY brd ff:ff:ff:ff:ff:ff
> >                 inet 169.254.210.12/16 brd 169.254.255.255 scope global eth0
> >                 valid_lft forever preferred_lft forever
> >                 inet6 fe80::44e6:e3ff:fe29:1c58/64 scope link
> >                 valid_lft forever preferred_lft forever
> >                 inet6 fe80::ff5a:f25c:91c:4c1d/64 scope link
> >                 valid_lft forever preferred_lft forever
> >         Copy to clipboard
> > 
> > 
> > Note
> > 
> > 
> > This MAC address is valid only for the current boot cycle. On rebooting the device, the MAC address is updated with a random address.
> 2. When the device is connected to a public network, the DHCP server connected to the network assigns an IP address automatically. If a dynamic IP address isn’t assigned to the device but Ethernet connectivity is required, configure a static IP address manually within the same subnet of the client.
> 
> 
> 
> > 
> > 
> > ip addr add <ip>/<prefix> dev <Interface_name>
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip addr add 169.254.210.12/16 dev eth0
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > eth0:   <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
> >                 link/ether XX:XX:XX:YY:YY:YY brd ff:ff:ff:ff:ff:ff
> >                 inet 169.254.210.12/16 brd 169.254.255.255 scope global eth0
> >                 valid_lft forever preferred_lft forever
> >                 inet6 fe80::44e6:e3ff:fe29:1c58/64 scope link
> >                 valid_lft forever preferred_lft forever
> >                 inet6 fe80::ff5a:f25c:91c:4c1d/64 scope link
> >                 valid_lft forever preferred_lft forever
> >         Copy to clipboard

> 
> 
> 3. Configure the MTU size for the data packets over the Ethernet interface.
> 
> 
> 
> > 
> > 
> > ip link set dev <Interface_name> down
> >         
> >         ip link set dev <Interface_name> mtu <mtu_size>
> >         
> >         ip link set dev <Interface_name> up
> >         Copy to clipboard
> > 
> > 
> > For example:
> > 
> > 
> > ip link set dev eth0 down
> >         
> >         ip link set dev eth0 mtu 1500
> >         
> >         ip link set dev eth0 up
> >         Copy to clipboard
> > 
> > 
> > Sample output:
> > 
> > 
> > eth0:   <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
> >                 link/ether XX:XX:XX:YY:YY:YY brd ff:ff:ff:ff:ff:ff
> >                 inet 169.254.210.12/16 brd 169.254.255.255 scope global eth0
> >                 valid_lft forever preferred_lft forever
> >                 inet6 fe80::44e6:e3ff:fe29:1c58/64 scope link
> >                 valid_lft forever preferred_lft forever
> >                 inet6 fe80::ff5a:f25c:91c:4c1d/64 scope link
> >                 valid_lft forever preferred_lft forever
> >         Copy to clipboard

## Next steps

> 
> 
> - [Perform Ethernet operations](https://docs.qualcomm.com/doc/80-80022-26/topic/perform-ethernet-operations.html#perform-ethernet-operations)
> - [Configure Ethernet features](https://docs.qualcomm.com/doc/80-80022-26/topic/config-ethernet-features.html#config-ethernet-features)
> - [Troubleshoot Ethernet issues](https://docs.qualcomm.com/doc/80-80022-26/topic/troubleshoot-ethernet-issues.html#troubleshoot-ethernet-issues)

Last Published: May 24, 2026

[Previous Topic
Ethernet architecture](https://docs.qualcomm.com/bundle/publicresource/80-80022-26/topics/ethernet-arch.md) [Next Topic
Perform Ethernet operations](https://docs.qualcomm.com/bundle/publicresource/80-80022-26/topics/perform-ethernet-operations.md)