# Bring up

Source: [https://docs.qualcomm.com/doc/80-70015-26/topic/bring_up.html](https://docs.qualcomm.com/doc/80-70015-26/topic/bring_up.html)

### About this task

Note: To bring up hardware configurations other than the
                configuration provided by Qualcomm, see [Bring up alternate hardware enablement](https://docs.qualcomm.com/doc/80-70015-26/topic/bring_up.html#attach_other_ethernet_phy_components).

Figure : Ethernet bringup workflow
                
                <?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" width="6.0191in" height="1.09346in" viewbox="0 0 433.375 78.7291" xml:space="preserve" color-interpolation-filters="sRGB" class="st7"><style>.svg-1 .st1 { fill: #ffffff; stroke: none; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st2 { fill: #3253dc; stroke: #3253dc; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.75 }
.svg-1 .st3 { fill: #ffffff; font-family: Arial; font-size: 1.00001em }
.svg-1 .st4 { font-size: 1em }
.svg-1 .st5 { marker-end: url("#mrkr4-12"); stroke: #000000; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1 }
.svg-1 .st6 { fill: #000000; fill-opacity: 1; stroke: #000000; stroke-opacity: 1; stroke-width: 0.28409090909091 }
.svg-1 .st7 { 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-12" class="st6" 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="433.375" height="78.7291" class="st1"></rect>	</g></g><g>	<title>Page-1</title>	<g id="shape4-3" transform="translate(18.375,-18.4792)">		<title>Sheet.4</title>		<desc>Assign MAC address</desc>		<rect x="0" y="36.8542" width="92.25" height="41.875" class="st2"></rect>		<text x="13.12" y="54.19" class="st3">Assign MAC <tspan x="24.78" dy="1.2em" class="st4">address</tspan></text>		</g>	<g id="shape7-7" transform="translate(111.094,-39.6042)">		<title>Sheet.7</title>		<path d="M0 78.73 L52.12 78.73" class="st5"></path>	</g>	<g id="shape20-13" transform="translate(322.75,-18.375)">		<title>Sheet.20</title>		<desc>Configure MTU size</desc>		<rect x="0" y="36.8542" width="92.25" height="41.875" class="st2"></rect>		<text x="5.45" y="54.19" class="st3">Configure MTU <tspan x="35.45" dy="1.2em" class="st4">size</tspan></text>		</g>	<g id="shape1000-17" transform="translate(170.25,-18.4167)">		<title>Sheet.1000</title>		<desc>Assign IP address</desc>		<rect x="0" y="36.8542" width="92.25" height="41.875" class="st2"></rect>		<text x="20.78" y="54.19" class="st3">Assign IP <tspan x="24.78" dy="1.2em" class="st4">address</tspan></text>		</g>	<g id="shape1001-21" transform="translate(263.25,-39.5417)">		<title>Sheet.1001</title>		<path d="M0 78.73 L52.33 78.73" class="st5"></path>	</g></g>
</svg>

The QPS615 MAC driver and kernel configuration are enabled by default in the source
                code.

To bring up Ethernet functionality, do the following:

### Procedure

1. RB3 Gen 2 development kit comes with a [preconfigured MAC
                        address](https://docs.qualcomm.com/doc/80-70015-26/topic/get_started.html#configure_and_store_mac_address). Skip this step if you choose to use the same MAC
                    address.
                
Alternatively, to modify the preconfigured MAC address on the device, perform
                        the following steps:

    1. Bring down the interface:
                        
ifconfig <Interface_name> downCopy to clipboard

For example:

            ifconfig enP1p5s0f0 downCopy to clipboard
    2. Assign the MAC address:
                        
ifconfig <Interface_name> hw ether <MAC Address>Copy to clipboard

For example:

            ifconfig enP15sof0 hw ether XX:XX:XX:YY:YY:YYCopy to clipboard
    3. Bring up the interface:
                        
ifconfig <Interface_name> <ip address> upCopy to clipboard

For example:

            ifconfig enP1p5s0f0 169.254.227.235 upCopy to clipboard

A sample output is as follows:

        ifconfig
        enP1p5s0f0 Link encap:Ethernet  HWaddr XX:XX:XX:YY:YY:YY
               inet addr:169.254.227.235  Bcast:169.254.255.255  Mask:255.255.0.0
               inet6 addr: fe80::533c:8ed6:557:3860/64 Scope:Link
               UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
               RX packets:19 errors:0 dropped:0 overruns:0 frame:0
               TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
               collisions:0 txqueuelen:1000
               RX bytes:3416 (3.3 KiB)  TX bytes:5559 (5.4 KiB)
               Interrupt:249Copy 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-70015-26/topic/get_started.html#configure_and_store_mac_address).
2. When the device is connected to a public network, the DHCP server connected to
                    the network assigns the IP address automatically. No specific configuration is
                    required.
                
Alternatively, to assign a static IP address, run the following command:

        ifconfig <Interface_name> <ip address>Copy to clipboard

For example:

        ifconfig enP1p5s0f0 169.254.227.235Copy to clipboard

A sample output is as follows:

        ifconfig
        enP1p5s0f0 Link encap:Ethernet  HWaddr XX:XX:XX:YY:YY:YY
                  inet addr:169.254.227.235  Bcast:169.254.255.255  Mask:255.255.0.0
                  inet6 addr: fe80::533c:8ed6:557:3860/64 Scope:Link
                  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                  RX packets:19 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:1000
                  RX bytes:3416 (3.3 KiB)  TX bytes:5559 (5.4 KiB)
                  Interrupt:249
        Copy to clipboard

Note: This IP address is valid only for the current boot
                        cycle. On rebooting the device, the IP address is not retained.
3. To configure the MTU size for the data packets over the Ethernet interface, run
                    the following command:
                
ifconfig <Interface_name> mtu <mtu_size> upCopy to clipboard

For example:

        ifconfig enP1p5s0f0 mtu 1500 upCopy to clipboard

A sample output is as follows:

        ifconfig
        enP1p5s0f0 Link encap:Ethernet  HWaddr XX:XX:XX:YY:YY:YY
                  inet addr:169.254.227.235  Bcast:169.254.255.255  Mask:255.255.0.0
                  inet6 addr: fe80::533c:8ed6:557:3860/64 Scope:Link
                  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
                  RX packets:19 errors:0 dropped:0 overruns:0 frame:0
                  TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
                  collisions:0 txqueuelen:1000
                  RX bytes:3416 (3.3 KiB)  TX bytes:5559 (5.4 KiB)
                  Interrupt:249
        Copy to clipboard

## Bring up alternate hardware enablement

Source: [https://docs.qualcomm.com/doc/80-70015-26/topic/bring_up.html](https://docs.qualcomm.com/doc/80-70015-26/topic/bring_up.html)

You can attach MAC/PHY components other than the hardware configuration provided by
        Qualcomm and bring them up.

Note: You must obtain the MAC/PHY driver and firmware from the
            respective vendor. Qualcomm is not responsible for these configuration changes.

To replace QPS615 with other PCIe based MAC/PHY, see [PCIe software support for QPS615 switch](https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-8/pcie.html#sub$pcie-software-support-feature-for-qps615).

### Retain QPS615 PCIe and replace QEP8121/AQR113C

Source: [https://docs.qualcomm.com/doc/80-70015-26/topic/bring_up.html](https://docs.qualcomm.com/doc/80-70015-26/topic/bring_up.html)

### About this task

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

### Procedure

1. Based on the attached PHY recommendations, update all the parameters in the
                        arch/arm64/boot/dts/qcom/qcs6490-addons-rb3gen2.dtsi
                    file.
2. Compile the software.
                
A sample code for QEP PHY is as follows:

        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;};

        qps615_eth1,qps615_eth1@pcie1_rp {				reg = <0x100 0x0 0x0 0x0 0x0>;				pinctrl-names = "default";				pinctrl-0 = <&napa_intn_wol_sig>;				qcom,phy-rst-gpio = <1>;				interrupts-extended = <&tlmm 101 IRQ_TYPE_EDGE_FALLING>;				interrupt-names = "wol_irq";				phy-supply = <&qep_vreg>;				qcom,phy-rst-delay-us = <20000>;				#address-cells = <1>;				#size-cells = <1>;
        Copy to clipboard

After flashing the modified software, the QPS615 driver scans the physical
                        devices connected to it and matches the device tree information in the
                            qcs6490-addons-rb3gen2.dtsi file.

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

## AQR PHY enablement

Source: [https://docs.qualcomm.com/doc/80-70015-26/topic/bring_up.html](https://docs.qualcomm.com/doc/80-70015-26/topic/bring_up.html)

Though AQR PHY for 10 GbE is optional, it is validated on reference RB3 Gen 2
        development kit. You must flash the PHY firmware to the hardware only once; however, you
        must load and install the PHY driver on every new build.

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 flash burn tool is recommended for flashing Marvell AQR113
                PHY.
- Contact Marvell Technology, Inc. to obtain the AQR PHY firmware.

### Install AQR PHY driver

Source: [https://docs.qualcomm.com/doc/80-70015-26/topic/bring_up.html](https://docs.qualcomm.com/doc/80-70015-26/topic/bring_up.html)

### About this task

To load and install the PHY driver, do the following:

### Procedure

1. Download the PHY driver source code from [Aquantia GitHub](https://github.com/Aquantia/linux-aqr-phy/tree/aqr_mainline/drivers/net/phy/aquantia).
2. Replace the default upstream driver with the driver downloaded from GitHub in
                    the drivers/net/phy/aquantia directory.
3. To compile Aquantia PHY as kernel module, set
                        `CONFIG_AQUANTIA_PHY=m` in the
                        arch/arm64/configs/qcom\_defconfig file.
4. Verify whether the following object is available in the
                        drivers/net/phy/Makefile file:
                
obj-$(CONFIG_AQUANTIA_PHY)	+= aquantia/Copy to clipboard

Add the object if not available, for example:

        obj-$(CONFIG_AT803X_PHY)	+= at803x.o
        obj-$(CONFIG_AX88796B_PHY)	+= ax88796b.o
        obj-$(CONFIG_AQUANTIA_PHY)	+= aquantia/
        obj-$(CONFIG_AT803X_PHY)	+= at803x.o
        obj-$(CONFIG_AX88796B_PHY)	+= ax88796b.oCopy to clipboard
5. Verify whether the following path for source code is available in the
                        drivers/net/phy/Kconfig file:
                
source "drivers/net/phy/aquantia/Kconfig"Copy to clipboard

Add the path if not available, for example:

        config ADIN1100_PHY
        tristate "Analog Devices Industrial Ethernet T1L PHYs"
        help
        Adds support for the Analog Devices Industrial T1L Ethernet PHYs.
        Currently supports the:
        - ADIN1100 - Robust,Industrial, Low Power 10BASE-T1L Ethernet PHY
        
        source "drivers/net/phy/aquantia/Kconfig"
        
        config AX88796B_PHY
        tristate "Asix PHYs"
        help
        Currently supports the Asix Electronics PHY found in the X-Surf 100
        AX88796B package.Copy to clipboard
6. Verify whether the following code is available in the
                        drivers/net/phy/aquantia/Kconfig file:
                
# SPDX-License-Identifier: GPL-2.0-only
        config AQUANTIA_PHY
        tristate "Aquantia PHYs"
        select CRC_ITU_T
        help
        Currently supports the Aquantia AQ1202, AQ2104, AQR105, AQR405Copy to clipboard
7. Compile the kernel.
                
The aquantia.ko kernel object is generated.

### Detect the PHY

Source: [https://docs.qualcomm.com/doc/80-70015-26/topic/bring_up.html](https://docs.qualcomm.com/doc/80-70015-26/topic/bring_up.html)

### About this task

To detect the PHY, do the following:

### Procedure

1. Update the AQR PHY parameters in the
                        arch/arm64/boot/dts/qcom/qcs6490-addons-rb3gen2.dtsi
                    file.
2. Compile the software.
                
A sample code for AQR PHY is as follows:

        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;};
        
        qps615_eth0,qps615_eth0@pcie1_rp {				reg = <0x0 0x0 0x0 0x0 0x0>;				pinctrl-names = "default";				pinctrl-0 = <&aqr_intn_wol_sig>;				qcom,phy-rst-gpio = <0>;				interrupts-extended = <&tlmm 141 IRQ_TYPE_EDGE_FALLING>;				interrupt-names = "wol_irq";				phy-supply = <&aqr_vreg>;				qcom,phy-rst-delay-us = <221000>;				#address-cells = <1>;				#size-cells = <1>;			};Copy to clipboard

Last Published: Oct 14, 2024

[Previous Topic
Tools](https://docs.qualcomm.com/bundle/publicresource/80-70015-26/topics/tools.md) [Next Topic
Configure](https://docs.qualcomm.com/bundle/publicresource/80-70015-26/topics/configure.md)