AN-XELK-002: Using USB Ethernet adapter instead of native MAC controller

From DAVE Developer's Wiki
Jump to: navigation, search
Info Box
Axel-04.png Applies to Axel Ultra
Axel-02.png Applies to AXEL ESATTA
Axel-lite 02.png Applies to Axel Lite

History

Version Date XELK version Notes
1.0.0 September 2016 2.1.0 First release

Introduction

Axel family system-on-modules (SOM for short) are based on processors that integrate an Ethernet MAC controller (aka as ENET). In some cases, Linux must be prevented from using this controller. An example of such situation is an AMP configuration where native Ethernet MAC controller must be used by FreeRTOS exclusively. This constraint may have a significant drawback: during the development stage native Ethernet interface can not be used to mount Linux root file system over NFS connection. This application note describes a solution to overcome this limitation by using a cheap common USB Ethernet adapter.

Setting up the system

This solution has been tested on a Axel Ultra/AxelEVB+DACU system. The USB Ethernet adapter is the one shown in the following picture. It is built upon a MosChip Semiconductor chip.


Intellinet USB Ethernet adapter


The adapter has been connected to the USB host port of DACU board (reference J33). Please note the the Ethernet cable connected to the native interface (connector J6 of AxelEVB) has not been detached.

About Linux kernel, the default configuration has to be changed in order to remove the support for the ENET controller and to add the drivers required by the USB Ethernet adapter. The following files have to be modified before rebuilding the kernel:

  • imx6q-axelcommon.dtsi
/*&fec {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_enet_axel>;
 phy-mode = "rgmii";
 status = "okay";
};*/

/*enet {
  pinctrl_enet_axel: enetgrp-1 {
   fsl,pins = <
    MX6QDL_PAD_ENET_MDIO__ENET_MDIO       0x1b0b0
    MX6QDL_PAD_ENET_MDC__ENET_MDC         0x1b0b0
    MX6QDL_PAD_RGMII_TXC__RGMII_TXC       0x1b0b0
    MX6QDL_PAD_RGMII_TD0__RGMII_TD0       0x1b0b0
    MX6QDL_PAD_RGMII_TD1__RGMII_TD1       0x1b0b0
    MX6QDL_PAD_RGMII_TD2__RGMII_TD2       0x1b0b0
    MX6QDL_PAD_RGMII_TD3__RGMII_TD3       0x1b0b0
    MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0
    MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK  0x1b0b0
    MX6QDL_PAD_RGMII_RXC__RGMII_RXC       0x1b0b0
    MX6QDL_PAD_RGMII_RD0__RGMII_RD0       0x1b0b0
    MX6QDL_PAD_RGMII_RD1__RGMII_RD1       0x1b0b0
    MX6QDL_PAD_RGMII_RD2__RGMII_RD2       0x1b0b0
    MX6QDL_PAD_RGMII_RD3__RGMII_RD3       0x1b0b0
    MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
    MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28     0xb0b1
    MX6QDL_PAD_SD4_DAT3__GPIO2_IO11        0xb0b1
    MX6QDL_PAD_SD4_DAT2__GPIO2_IO10        0xb0b1
   >;
  };
 };*/
  • imx6qdl.dtsi
/*enet {
  pinctrl_enet_1: enetgrp-1 {
   fsl,pins = <
    MX6QDL_PAD_ENET_MDIO__ENET_MDIO       0x1b0b0
    MX6QDL_PAD_ENET_MDC__ENET_MDC         0x1b0b0
    MX6QDL_PAD_RGMII_TXC__RGMII_TXC       0x1b0b0
    MX6QDL_PAD_RGMII_TD0__RGMII_TD0       0x1b0b0
    MX6QDL_PAD_RGMII_TD1__RGMII_TD1       0x1b0b0
    MX6QDL_PAD_RGMII_TD2__RGMII_TD2       0x1b0b0
    MX6QDL_PAD_RGMII_TD3__RGMII_TD3       0x1b0b0
    MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0
    MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK  0x1b0b0
    MX6QDL_PAD_RGMII_RXC__RGMII_RXC       0x1b0b0
    MX6QDL_PAD_RGMII_RD0__RGMII_RD0       0x1b0b0
    MX6QDL_PAD_RGMII_RD1__RGMII_RD1       0x1b0b0
    MX6QDL_PAD_RGMII_RD2__RGMII_RD2       0x1b0b0
    MX6QDL_PAD_RGMII_RD3__RGMII_RD3       0x1b0b0
    MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
    MX6QDL_PAD_GPIO_16__ENET_REF_CLK      0x4001b0a8
   >;
  };

  pinctrl_enet_2: enetgrp-2 {
   fsl,pins = <
    MX6QDL_PAD_KEY_COL1__ENET_MDIO        0x1b0b0
    MX6QDL_PAD_KEY_COL2__ENET_MDC         0x1b0b0
    MX6QDL_PAD_RGMII_TXC__RGMII_TXC       0x1b0b0
    MX6QDL_PAD_RGMII_TD0__RGMII_TD0       0x1b0b0
    MX6QDL_PAD_RGMII_TD1__RGMII_TD1       0x1b0b0
    MX6QDL_PAD_RGMII_TD2__RGMII_TD2       0x1b0b0
    MX6QDL_PAD_RGMII_TD3__RGMII_TD3       0x1b0b0
    MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0
    MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK  0x1b0b0
    MX6QDL_PAD_RGMII_RXC__RGMII_RXC       0x1b0b0
    MX6QDL_PAD_RGMII_RD0__RGMII_RD0       0x1b0b0
    MX6QDL_PAD_RGMII_RD1__RGMII_RD1       0x1b0b0
    MX6QDL_PAD_RGMII_RD2__RGMII_RD2       0x1b0b0
    MX6QDL_PAD_RGMII_RD3__RGMII_RD3       0x1b0b0
    MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
    MX6QDL_PAD_GPIO_16__ENET_REF_CLK      0x4001b0a8
   >;
  };

  pinctrl_enet_3: enetgrp-3 {
   fsl,pins = <
    MX6QDL_PAD_ENET_MDIO__ENET_MDIO       0x1b0b0
    MX6QDL_PAD_ENET_MDC__ENET_MDC         0x1b0b0
    MX6QDL_PAD_RGMII_TXC__RGMII_TXC       0x1b0b0
    MX6QDL_PAD_RGMII_TD0__RGMII_TD0       0x1b0b0
    MX6QDL_PAD_RGMII_TD1__RGMII_TD1       0x1b0b0
    MX6QDL_PAD_RGMII_TD2__RGMII_TD2       0x1b0b0
    MX6QDL_PAD_RGMII_TD3__RGMII_TD3       0x1b0b0
    MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b0b0
    MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK  0x1b0b0
    MX6QDL_PAD_RGMII_RXC__RGMII_RXC       0x1b0b0
    MX6QDL_PAD_RGMII_RD0__RGMII_RD0       0x1b0b0
    MX6QDL_PAD_RGMII_RD1__RGMII_RD1       0x1b0b0
    MX6QDL_PAD_RGMII_RD2__RGMII_RD2       0x1b0b0
    MX6QDL_PAD_RGMII_RD3__RGMII_RD3       0x1b0b0
    MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b0b0
    MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN     0x1b0b0
   >;
  };
 };*/

 /*esai {
  pinctrl_esai_1: esaigrp-1 {
   fsl,pins = <
    MX6QDL_PAD_ENET_RXD0__ESAI_TX_HF_CLK 0x1b030
    MX6QDL_PAD_ENET_CRS_DV__ESAI_TX_CLK  0x1b030
    MX6QDL_PAD_ENET_RXD1__ESAI_TX_FS     0x1b030
    MX6QDL_PAD_ENET_TX_EN__ESAI_TX3_RX2  0x1b030
    MX6QDL_PAD_ENET_TXD1__ESAI_TX2_RX3   0x1b030
    MX6QDL_PAD_ENET_TXD0__ESAI_TX4_RX1   0x1b030
    MX6QDL_PAD_ENET_MDC__ESAI_TX5_RX0    0x1b030
    MX6QDL_PAD_NANDF_CS2__ESAI_TX0       0x1b030
    MX6QDL_PAD_NANDF_CS3__ESAI_TX1       0x1b030
   >;
  };

  pinctrl_esai_2: esaigrp-2 {
   fsl,pins = <
    MX6QDL_PAD_ENET_CRS_DV__ESAI_TX_CLK 0x1b030
    MX6QDL_PAD_ENET_RXD1__ESAI_TX_FS    0x1b030
    MX6QDL_PAD_ENET_TX_EN__ESAI_TX3_RX2 0x1b030
    MX6QDL_PAD_GPIO_5__ESAI_TX2_RX3     0x1b030
    MX6QDL_PAD_ENET_TXD0__ESAI_TX4_RX1  0x1b030
    MX6QDL_PAD_ENET_MDC__ESAI_TX5_RX0   0x1b030
    MX6QDL_PAD_GPIO_17__ESAI_TX0        0x1b030
    MX6QDL_PAD_NANDF_CS3__ESAI_TX1      0x1b030
    MX6QDL_PAD_ENET_MDIO__ESAI_RX_CLK   0x1b030
    MX6QDL_PAD_GPIO_9__ESAI_RX_FS       0x1b030
   >;
  };
 };*/

/*usbh2 {
  pinctrl_usbh2_1: usbh2grp-1 {
   fsl,pins = <
    MX6QDL_PAD_RGMII_TXC__USB_H2_DATA      0x40013030
    MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x40013030
   >;
  };

  pinctrl_usbh2_2: usbh2grp-2 {
   fsl,pins = <
    MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x40017030
   >;
  };
 };

 usbh3 {
  pinctrl_usbh3_1: usbh3grp-1 {
   fsl,pins = <
    MX6QDL_PAD_RGMII_RX_CTL__USB_H3_DATA 0x40013030
    MX6QDL_PAD_RGMII_RXC__USB_H3_STROBE  0x40013030
   >;
  };

  pinctrl_usbh3_2: usbh3grp-2 {
   fsl,pins = <
    MX6QDL_PAD_RGMII_RXC__USB_H3_STROBE 0x40017030
   >;
  };
 };*/

The following picture shows the kernel configuration options related to USB Ethernet adapters [1]. Most common devices - including MosChip-based products - have been enabled.


Linux kernel configuration options related to USB Ethernet adapters


[1] The configuration has been changed via menuconfig option. To run it, the following packages need to be installed on host machine:

  • libncursesw5-dev
  • libncurses5-dev

Testing the system

The usual net_nfs variable has been used to boot the system. The following dump shows the complete log of bootstrap messages:

U-Boot 2013.04 (Apr 30 2015 - 11:33:19)-xelk-2.1.0

CPU:   Freescale i.MX6Q rev1.2 at 792 MHz
CPU:   Temperature 48 C, limits (-40 C, 125 C), calibration data: 0xc0
Reset cause: POR
Environment: SPI Flash
I2C:   ready
SOM ConfigID not found, using default
SOM ConfigID not found, using default
DRAM:  2 GiB
Now running in RAM - U-Boot at: 8ff3a000
NAND:  512 MiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
SF: Detected S25FL256S with page size 64 KiB, total 32 MiB
In:    serial
Out:   serial
Err:   serial
Power: found PFUZE100 (devid=10, revid=21)
SOM ConfigID not found, using default
WARNING: SOM UniqueID NOT locked. Use 'configid som_uniqueid_lock' to lock it
SOM ConfigID#: ffffffff
SOM UniqueID#: dbc90e69:1a0519d4
CB ConfigID#: 00000001
CB UniqueID#: a900000f:23ec3a2d
Board: MX6Q-AxelLite on XELK
Net:   FEC
Normal Boot
Hit any key to stop autoboot:  0
U-Boot > run net_nfs
FEC Waiting for PHY auto negotiation to complete...... done
Using FEC device
TFTP from server 192.168.2.17; our IP address is 192.168.2.19
Filename 'uImage'.
Load address: 0x20008000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
         ####################
         1.4 MiB/s
done
Bytes transferred = 5757016 (57d858 hex)
Using FEC device
TFTP from server 192.168.2.17; our IP address is 192.168.2.19
Filename 'imx6q-xelk-h.dtb'.
Load address: 0x22000000
Loading: ########
         1.3 MiB/s
done
Bytes transferred = 39521 (9a61 hex)
## Booting kernel from Legacy Image at 20008000 ...
   Image Name:   Linux-3.10.17-xelk-2.1.0-dirty
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    5756952 Bytes = 5.5 MiB
   Load Address: 18008000
   Entry Point:  18008000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 22000000
   Booting using the fdt blob at 0x22000000
   Loading Kernel Image ... OK
OK
Power: using LDO bypass mode!
   Using Device Tree in place at 22000000, end 2200ca60

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 3.10.17-xelk-2.1.0-dirty (dvdk@dvdk) (gcc version 4.8.1 (GCC) ) #5 SMP PREEMPT
Fri Sep 9 09:47:34 CEST 2016
[    0.000000] Machine: Freescale i.MX6 Quad/DualLite (Device Tree), model: AxelUltra Quad on XELK-H
[    0.000000] Change memory bank to 18000000-8fffffff
[    0.000000] cma: CMA: reserved 320 MiB at 6a000000
[    0.000000] PERCPU: Embedded 8 pages/cpu @81d00000 s8896 r8192 d15680 u32768
[    0.000000] Kernel command line: root=/dev/nfs rw nfsroot=192.168.2.17:/home/dvdk/xelk/rfs/axel-qt5,v3,tc
p ip=192.168.2.19:192.168.2.17::255.255.255.0:xelk:eth0:off panic=1 fec_mac=00:50:c2:b9:cf:96 console=ttymxc
2,115200n8 earlyprintk vmalloc=400M mtdparts=gpmi-nand:8M(nand-uboot),1M(nand-env1),1M(nand-env2),1M(nand-dt
b),1M(nand-spare),8M(nand-kernel),-(nand-ubi);spi32766.0:1M(spi-uboot),256k(spi-env1),256k(spi-env2),512k(sp
i-dtb),6M(spi-kernel),-(spi-free) maxcpus=1
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 262144 (order: 8, 1048576 bytes)
[    0.000000] Inode-cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Memory: 1920MB = 1920MB total
[    0.000000] Memory: 1606308k/1606308k available, 359772k reserved, 294912K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xe6800000 - 0xff000000   ( 392 MB)
[    0.000000]     lowmem  : 0x80000000 - 0xe6000000   (1632 MB)
[    0.000000]     pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)
[    0.000000]     modules : 0x7f000000 - 0x7fe00000   (  14 MB)
[    0.000000]       .text : 0x80008000 - 0x80cd87a8   (13122 kB)
[    0.000000]       .init : 0x80cd9000 - 0x80d182c0   ( 253 kB)
[    0.000000]       .data : 0x80d1a000 - 0x80d7e6c0   ( 402 kB)
[    0.000000]        .bss : 0x80d7e6c0 - 0x80de6038   ( 415 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] L310 cache controller enabled
[    0.000000] l2x0: 16 ways, CACHE_ID 0x410000c7, AUX_CTRL 0x32070000, Cache size: 1048576 B
[    0.000000] sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms
[    0.000000] CPU identified as i.MX6Q, silicon rev 1.2
[    0.000000] Console: colour dummy device 80x30
[    0.000642] Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)
[    0.090123] pid_max: default: 32768 minimum: 301
[    0.090311] Mount-cache hash table entries: 512
[    0.097442] CPU: Testing write buffer coherency: ok
[    0.097684] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.097758] Setting up static identity map for 0x806c38e0 - 0x806c3938
[    0.142004] Brought up 1 CPUs
[    0.142017] SMP: Total of 1 processors activated (1581.05 BogoMIPS).
[    0.142024] CPU: All CPU(s) started in SVC mode.
[    0.142586] devtmpfs: initialized
[    0.146718] pinctrl core: initialized pinctrl subsystem
[    0.147014] regulator-dummy: no parameters
[    0.169627] NET: Registered protocol family 16
[    0.178780] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.179556] Use WDOG2 as reset source
[    0.187573] syscon 20c8000.anatop: regmap [mem 0x020c8000-0x020c8fff] registered
[    0.187847] vdd1p1: 800 <--> 1375 mV at 1125 mV
[    0.188163] vdd3p0: 2800 <--> 3150 mV at 3000 mV
[    0.188417] vdd2p5: 2000 <--> 2750 mV at 2425 mV
[    0.188691] cpu: 725 <--> 1450 mV
[    0.188961] vddpu: 725 <--> 1450 mV
[    0.189230] vddsoc: 725 <--> 1450 mV
[    0.190897] syscon 20e0000.iomuxc-gpr: regmap [mem 0x020e0000-0x020e0037] registered
[    0.192778] syscon 21bc000.ocotp-ctrl: regmap [mem 0x021bc000-0x021bffff] registered
[    0.196159] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[    0.196173] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.196997] imx6q-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver
[    0.205813] bio: create slab <bio-0> at 0
[    0.207585] mxs-dma 110000.dma-apbh: initialized
[    0.208231] usb_otg_vbus: 5000 mV
[    0.208453] usb_h1_vbus: 5000 mV
[    0.208614] 3P3V: 3300 mV
[    0.208787] 1P8V: 1800 mV
[    0.209031] vgaarb: loaded
[    0.209660] SCSI subsystem initialized
[    0.210045] usbcore: registered new interface driver usbfs
[    0.210099] usbcore: registered new interface driver hub
[    0.210197] usbcore: registered new device driver usb
[    0.211841] i2c i2c-0: IMX I2C adapter registered
[    0.211932] Linux video capture interface: v2.00
[    0.211976] pps_core: LinuxPPS API ver. 1 registered
[    0.211984] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.212005] PTP clock support registered
[    0.227808] imx-ipuv3 2400000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
[    0.247847] imx-ipuv3 2800000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
[    0.248649] imx6q-pinctrl 20e0000.iomuxc: pin MX6Q_PAD_GPIO_19 already requested by 20e0000.iomuxc; canno
t claim for 21dc000.mipi_csi
[    0.248667] imx6q-pinctrl 20e0000.iomuxc: pin-149 (21dc000.mipi_csi) status -22
[    0.248681] imx6q-pinctrl 20e0000.iomuxc: could not request pin 149 on device 20e0000.iomuxc
[    0.248693] mxc_mipi_csi2 21dc000.mipi_csi: Error applying setting, reverse things back
[    0.248759] mxc_mipi_csi2 21dc000.mipi_csi: i.MX MIPI CSI2 driver probed
[    0.248770] mxc_mipi_csi2 21dc000.mipi_csi: i.MX MIPI CSI2 dphy version is 0x3130302a
[    0.248840] MIPI CSI2 driver module loaded
[    0.248915] Advanced Linux Sound Architecture Driver Initialized.
[    0.249604] Bluetooth: Core ver 2.16
[    0.249649] NET: Registered protocol family 31
[    0.249660] Bluetooth: HCI device and connection manager initialized
[    0.249678] Bluetooth: HCI socket layer initialized
[    0.249694] Bluetooth: L2CAP socket layer initialized
[    0.249722] Bluetooth: SCO socket layer initialized
[    0.249982] cfg80211: Calling CRDA to update world regulatory domain
[    0.250987] Switching to clocksource mxc_timer1
[    0.460329] imx6q-pcie 1ffc000.pcie: phy link never came up
[    0.460487] PCI host bridge to bus 0000:00
[    0.460506] pci_bus 0000:00: root bus resource [io 0x1000-0x10000]
[    0.460518] pci_bus 0000:00: root bus resource [mem 0x01000000-0x01efffff]
[    0.460529] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.460901] PCI: bus0: Fast back to back transfers disabled
[    0.461074] PCI: bus1: Fast back to back transfers enabled
[    0.461160] pci 0000:00:00.0: BAR 0: assigned [mem 0x01000000-0x010fffff]
[    0.461179] pci 0000:00:00.0: BAR 6: assigned [mem 0x01100000-0x0110ffff pref]
[    0.461194] pci 0000:00:00.0: PCI bridge to [bus 01]
[    0.469065] NET: Registered protocol family 2
[    0.469667] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[    0.469926] TCP bind hash table entries: 16384 (order: 5, 131072 bytes)
[    0.470176] TCP: Hash tables configured (established 16384 bind 16384)
[    0.470250] TCP: reno registered
[    0.470267] UDP hash table entries: 1024 (order: 3, 32768 bytes)
[    0.470370] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
[    0.470716] NET: Registered protocol family 1
[    0.470993] RPC: Registered named UNIX socket transport module.
[    0.471003] RPC: Registered udp transport module.
[    0.471010] RPC: Registered tcp transport module.
[    0.471052] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.471604] hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available
[    0.472458] pureg-dummy: no parameters
[    0.473389] imx6_busfreq busfreq.15: DDR medium rate not supported.
[    0.473749] Bus freq driver module loaded
[    0.480170] VFS: Disk quotas dquot_6.5.2
[    0.482652] NFS: Registering the id_resolver key type
[    0.482693] Key type id_resolver registered
[    0.482702] Key type id_legacy registered
[    0.482751] NTFS driver 2.1.30 [Flags: R/W].
[    0.483150] fuse init (API version 7.22)
[    0.483496] msgmni has been set to 3201
[    0.484962] io scheduler noop registered
[    0.484974] io scheduler deadline registered
[    0.485006] io scheduler cfq registered (default)
[    0.485260] imx-weim 21b8000.weim: WEIM driver registered.
[    0.486885] MIPI DSI driver module loaded
[    0.487710] mxc_sdc_fb fb.23: register mxc display driver ldb
[    0.487733] mxc_ldb 20e0000.ldb: change IPU DI1 to IPU DI0 for LDB channel0.
[    0.515199] imx-sdma 20ec000.sdma: no iram assigned, using external mem
[    0.518014] imx-sdma 20ec000.sdma: initialized
[    0.518557] imx-sdma 20ec000.sdma: loaded firmware 1.1
[    0.519683] pfuze100-regulator 0-0008: Full lay: 2, Metal lay: 1
[    0.520268] pfuze100-regulator 0-0008: FAB: 0, FIN: 1
[    0.521690] SW1AB: 300 <--> 1875 mV at 1175 mV
[    0.523550] SW1C: 300 <--> 1875 mV at 1175 mV
[    0.525417] SW2: 800 <--> 3300 mV at 3300 mV
[    0.527270] SW3A: 400 <--> 1975 mV at 1500 mV
[    0.529140] SW3B: 400 <--> 1975 mV at 1500 mV
[    0.532032] SW4: ramp_delay not set
[    0.532047] SW4: 1800 mV
[    0.533325] SWBST: 5000 <--> 5150 mV at 5000 mV
[    0.534623] VSNVS: 1200 <--> 3000 mV at 3000 mV
[    0.535323] VREFDDR: 750 mV
[    0.536017] VGEN1: 800 <--> 1550 mV at 1500 mV
[    0.537330] VGEN2: 800 <--> 1550 mV at 1500 mV
[    0.540322] VGEN3: 2500 mV
[    0.543414] VGEN4: 1800 mV
[    0.546484] VGEN5: 2800 mV
[    0.548976] VGEN6: 3300 mV
[    0.549807] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.550821] Serial: IMX driver
[    0.551206] 21ec000.serial: ttymxc2 at MMIO 0x21ec000 (irq = 60) is a IMX
[    1.422721] console [ttymxc2] enabled
[    1.426685] serial: Freescale lpuart driver
[    1.432179] [drm] Initialized drm 1.1.0 20060810
[    1.437197] [drm] Initialized vivante 1.0.0 20120216 on minor 0
[    1.449416] brd: module loaded
[    1.455879] loop: module loaded
[    1.481256] Wait for CR ACK error!
[    1.485125] sata phy RX_PLL is stable!
[    1.488932] ahci: SSS flag set, parallel bus scan disabled
[    1.494491] ahci ahci: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode
[    1.502286] ahci ahci: flags: ncq sntf stag pm led clo only pmp pio slum part ccc apst
[    1.511564] scsi0 : ahci_platform
[    1.515167] ata1: SATA max UDMA/133 mmio [mem 0x02200000-0x02203fff] port 0x100 irq 71
[    1.526296] nand: ONFI flash detected
[    1.529994] nand: device found, Manufacturer ID: 0x01, Chip ID: 0xdc
[    1.536394] nand: AMD/Spansion S34ML04G1
[    1.540346] nand: 512MiB, SLC, page size: 2048, OOB size: 64
[    1.546226] gpmi-nand 112000.gpmi-nand: mode:4 ,failed in set feature.
[    1.552810] Scanning device for bad blocks
[    1.807221] Bad eraseblock 2281 at 0x000011d20000
[    1.871064] ata1: SATA link down (SStatus 0 SControl 300)
[    2.016245] 7 cmdlinepart partitions found on MTD device gpmi-nand
[    2.022475] Creating 7 MTD partitions on "gpmi-nand":
[    2.027563] 0x000000000000-0x000000800000 : "nand-uboot"
[    2.033770] 0x000000800000-0x000000900000 : "nand-env1"
[    2.039788] 0x000000900000-0x000000a00000 : "nand-env2"
[    2.045807] 0x000000a00000-0x000000b00000 : "nand-dtb"
[    2.051729] 0x000000b00000-0x000000c00000 : "nand-spare"
[    2.057840] 0x000000c00000-0x000001400000 : "nand-kernel"
[    2.064034] 0x000001400000-0x000020000000 : "nand-ubi"
[    2.070294] gpmi-nand 112000.gpmi-nand: driver registered.
[    2.077142] m25p80 spi32766.0: s25fl256s1 (32768 Kbytes)
[    2.082509] 6 cmdlinepart partitions found on MTD device spi32766.0
[    2.088787] Creating 6 MTD partitions on "spi32766.0":
[    2.093971] 0x000000000000-0x000000100000 : "spi-uboot"
[    2.100041] 0x000000100000-0x000000140000 : "spi-env1"
[    2.105998] 0x000000140000-0x000000180000 : "spi-env2"
[    2.111989] 0x000000180000-0x000000200000 : "spi-dtb"
[    2.117878] 0x000000200000-0x000000800000 : "spi-kernel"
[    2.123967] 0x000000800000-0x000002000000 : "spi-free"
[    2.129880] spi_imx 2008000.ecspi: probed
[    2.134774] spi_imx 200c000.ecspi: probed
[    2.139532] CAN device driver interface
[    2.144667] usbcore: registered new interface driver catc
[    2.150133] usbcore: registered new interface driver kaweth
[    2.155781] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB Ethernet driver
[    2.163273] usbcore: registered new interface driver pegasus
[    2.168996] usbcore: registered new interface driver rtl8150
[    2.174738] usbcore: registered new interface driver r8152
[    2.180301] usbcore: registered new interface driver asix
[    2.185811] usbcore: registered new interface driver ax88179_178a
[    2.192003] usbcore: registered new interface driver cdc_ether
[    2.197896] usbcore: registered new interface driver dm9601
[    2.203565] usbcore: registered new interface driver smsc75xx
[    2.209386] usbcore: registered new interface driver smsc95xx
[    2.215210] usbcore: registered new interface driver gl620a
[    2.220853] usbcore: registered new interface driver net1080
[    2.226590] usbcore: registered new interface driver plusb
[    2.232153] usbcore: registered new interface driver cdc_subset
[    2.238132] usbcore: registered new interface driver zaurus
[    2.243782] usbcore: registered new interface driver MOSCHIP usb-ethernet driver
[    2.251292] usbcore: registered new interface driver cdc_ncm
[    2.256981] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.263551] ehci-pci: EHCI PCI platform driver
[    2.268358] usbcore: registered new interface driver usb-storage
[    2.282516] ci_hdrc ci_hdrc.1: doesn't support gadget
[    2.287614] ci_hdrc ci_hdrc.1: EHCI Host Controller
[    2.292558] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
[    2.311059] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
[    2.316573] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    2.323412] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.330665] usb usb1: Product: EHCI Host Controller
[    2.335585] usb usb1: Manufacturer: Linux 3.10.17-xelk-2.1.0-dirty ehci_hcd
[    2.342588] usb usb1: SerialNumber: ci_hdrc.1
[    2.347472] hub 1-0:1.0: USB hub found
[    2.351297] hub 1-0:1.0: 1 port detected
[    2.356035] mousedev: PS/2 mouse device common for all mice
[    2.362511] snvs_rtc 20cc034.snvs-rtc-lp: rtc core: registered 20cc034.snvs-rtc-lp as rtc0
[    2.370903] i2c /dev entries driver
[    2.376228] VGEN4: operation not allowed
[    2.383210] VGEN3: operation not allowed
[    2.481255] ov5640_read_reg:write reg error:reg=300a
[    2.486249] camera ov5640_mipi is not found
[    2.490960] mxc_v4l2_output v4l2_out.26: V4L2 device registered as video16
[    2.498025] mxc_v4l2_output v4l2_out.26: V4L2 device registered as video17
[    2.506192] imx2-wdt 20bc000.wdog: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=0)
[    2.514561] Bluetooth: HCI UART driver ver 2.2
[    2.519036] Bluetooth: HCI H4 protocol initialized
[    2.523881] Bluetooth: HCI BCSP protocol initialized
[    2.528873] Bluetooth: HCILL protocol initialized
[    2.533714] cpuidle: using governor ladder
[    2.537839] cpuidle: using governor menu
[    2.541833] sdhci: Secure Digital Host Controller Interface driver
[    2.548040] sdhci: Copyright(c) Pierre Ossman
[    2.552509] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.558927] mmc0: no vqmmc regulator found
[    2.563082] mmc0: no vmmc regulator found
[    2.611074] mmc0: SDHCI controller on 2190000.usdhc [2190000.usdhc] using ADMA
[    2.671409] usb 1-1: new high-speed USB device number 2 using ci_hdrc
[    2.888827] usb 1-1: New USB device found, idVendor=9710, idProduct=7830
[    2.903661] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.922875] usb 1-1: Product: UA0025C
[    2.936455] usb 1-1: Manufacturer: Moschip Semiconductor
[    2.961074] usb 1-1: SerialNumber: 6e000001
[    2.965708] Galcore version 4.6.9.9754
[    2.992139] mxc_vdoa 21e4000.vdoa: i.MX Video Data Order Adapter(VDOA) driver probed
[    3.000663] mxc_asrc 2034000.asrc: mxc_asrc registered
[    3.006471] mxc_vpu 2040000.vpu: VPU initialized
[    3.015886] caam 2100000.caam: device ID = 0x0a16010000000000 (Era -524)
[    3.022638] caam 2100000.caam: job rings = 2, qi = 0
[    3.028050] caam 2100000.caam: authenc-hmac-md5-cbc-aes-caam
[    3.033875] caam 2100000.caam: authencesn-hmac-md5-cbc-aes-caam
[    3.040036] caam 2100000.caam: authenc-hmac-sha1-cbc-aes-caam
[    3.046028] caam 2100000.caam: authencesn-hmac-sha1-cbc-aes-caam
[    3.052313] caam 2100000.caam: authenc-hmac-sha224-cbc-aes-caam
[    3.058456] caam 2100000.caam: authencesn-hmac-sha224-cbc-aes-caam
[    3.064899] caam 2100000.caam: authenc-hmac-sha256-cbc-aes-caam
[    3.071098] caam 2100000.caam: authencesn-hmac-sha256-cbc-aes-caam
[    3.077450] caam 2100000.caam: authenc-hmac-md5-cbc-des3_ede-caam
[    3.083818] caam 2100000.caam: authencesn-hmac-md5-cbc-des3_ede-caam
[    3.090232] usb 1-1: applying rev.C fixup
[    3.094441] caam 2100000.caam: authenc-hmac-sha1-cbc-des3_ede-caam
[ 3.100780] caam 2100000.caam: authencesn-hmac-sha1-cbc-des3_ede-caam
[ 3.107394] caam 2100000.caam: authenc-hmac-sha224-cbc-des3_ede-caam
[    3.113960] caam 2100000.caam: authencesn-hmac-sha224-cbc-des3_ede-caam
[    3.120636] usb 1-1: applying rev.C fixup
[    3.124833] caam 2100000.caam: authenc-hmac-sha256-cbc-des3_ede-caam
[    3.131385] caam 2100000.caam: authencesn-hmac-sha256-cbc-des3_ede-caam
[    3.138128] caam 2100000.caam: authenc-hmac-md5-cbc-des-caam
[    3.143956] caam 2100000.caam: authencesn-hmac-md5-cbc-des-caam
[    3.150006] caam 2100000.caam: authenc-hmac-sha1-cbc-des-caam
[    3.155926] caam 2100000.caam: authencesn-hmac-sha1-cbc-des-caam
[    3.162202] caam 2100000.caam: authenc-hmac-sha224-cbc-des-caam
[    3.168821] MOSCHIP usb-ethernet driver 1-1:1.0 eth0: register 'MOSCHIP usb-ethernet driver' at usb-ci_hd
rc.1-1, MOSCHIP 7830/7832/7730 usb-NET adapter, 00:d0:10:03:26:0a
[    3.184198] caam 2100000.caam: authencesn-hmac-sha224-cbc-des-caam
[    3.190523] caam 2100000.caam: authenc-hmac-sha256-cbc-des-caam
[    3.196769] caam 2100000.caam: authencesn-hmac-sha256-cbc-des-caam
[    3.203134] caam 2100000.caam: ecb-des-caam
[    3.207454] caam 2100000.caam: ecb-arc4-caam
[    3.211877] caam 2100000.caam: ecb-aes-caam
[    3.216196] caam 2100000.caam: ctr-aes-caam
[    3.220485] caam 2100000.caam: cbc-aes-caam
[    3.224836] caam 2100000.caam: ecb-des3-caam
[    3.229242] caam 2100000.caam: cbc-3des-caam
[    3.233665] caam 2100000.caam: cbc-des-caam
[    3.237884] caam 2100000.caam: fsl,sec-v4.0 algorithms registered in /proc/crypto
[    3.249001] platform 2101000.jr0: registering rng-caam
[    3.255231] platform caam_sm: caam_sm_test: 8-byte key test match OK
[    3.261767] platform caam_sm: caam_sm_test: 16-byte key test match OK
[    3.268346] platform caam_sm: caam_sm_test: 32-byte key test match OK
[    3.275315] platform caam_secvio.28: security violation service handlers armed
[    3.282794] usbcore: registered new interface driver usbhid
[    3.288407] usbhid: USB HID core driver
[    3.295084] TCP: cubic registered
[    3.298879] NET: Registered protocol family 10
[    3.304244] sit: IPv6 over IPv4 tunneling driver
[    3.309440] NET: Registered protocol family 17
[    3.313971] can: controller area network core (rev 20120528 abi 9)
[    3.320243] NET: Registered protocol family 29
[    3.324753] can: raw protocol (rev 20120528)
[    3.329052] can: broadcast manager protocol (rev 20120528 t)
[    3.334763] can: netlink gateway (rev 20130117) max_hops=1
[    3.340518] Bluetooth: RFCOMM TTY layer initialized
[    3.345510] Bluetooth: RFCOMM socket layer initialized
[    3.350679] Bluetooth: RFCOMM ver 1.11
[    3.354475] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    3.359814] Bluetooth: BNEP filters: protocol multicast
[    3.365086] Bluetooth: BNEP socket layer initialized
[    3.370078] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    3.376047] Bluetooth: HIDP socket layer initialized
[    3.381093] 8021q: 802.1Q VLAN Support v1.8
[    3.385545] Key type dns_resolver registered
[    3.390053] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[    3.400549] VGEN6: disabling
[    3.405105] VGEN1: disabling
[    3.409947] input: gpio-keys.22 as /devices/soc0/gpio-keys.22/input/input0
[    3.417325] snvs_rtc 20cc034.snvs-rtc-lp: setting system clock to 2014-11-27 22:54:52 UTC (1417128892)
[    3.436299] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[    4.881117] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[    4.901844] IP-Config: Complete:
[    4.905175]      device=eth0, hwaddr=00:d0:10:03:26:0a, ipaddr=192.168.2.19, mask=255.255.255.0, gw=255.2
55.255.255
[    4.915803]      host=xelk, domain=, nis-domain=(none)
[    4.921022]      bootserver=192.168.2.17, rootserver=192.168.2.17, rootpath=
[    4.928262] ALSA device list:
[    4.931329]   No soundcards found.
[    4.949030] VFS: Mounted root (nfs filesystem) on device 0:11.
[    4.955973] devtmpfs: mounted
[    4.959391] Freeing unused kernel memory: 252K (80cd9000 - 80d18000)
INIT: version 2.88 booting
Starting udev
[    6.439298] udevd[133]: starting version 182
Starting Bootlog daemon: bootlogd: cannot allocate pseudo tty: No such file or directory
bootlogd.
ALSA: Restoring mixer settings...
/usr/sbin/alsactl: load_state:1729: No soundcards found...
Configuring network interfaces... ifup skipped for nfsroot interface eth0
run-parts: /etc/network/if-pre-up.d/nfsroot exited with return code 1
Starting rpcbind daemon...done.
INIT: Entering runlevel: 5
Starting system message bus: dbus.
Starting OpenBSD Secure Shell server: sshd
done.
Starting advanced power management daemon: No APM support in kernel
(failed.)
Starting syslogd/klogd: done
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon
   ...done.
Starting Telephony daemon
Starting Linux NFC daemon
Stopping Bootlog daemon: bootlogd.

Poky (Yocto Project Reference Distro) 1.5.1 axel-lite /dev/ttymxc2

axel-lite login: root
root@axel-lite:~#

As shown, USB Ethernet adapter is first detected by the kernel ...

[    2.671409] usb 1-1: new high-speed USB device number 2 using ci_hdrc
[    2.888827] usb 1-1: New USB device found, idVendor=9710, idProduct=7830
[    2.903661] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.922875] usb 1-1: Product: UA0025C
[    2.936455] usb 1-1: Manufacturer: Moschip Semiconductor
[    2.961074] usb 1-1: SerialNumber: 6e000001

... and then initialized by the driver:

[    3.168821] MOSCHIP usb-ethernet driver 1-1:1.0 eth0: register 'MOSCHIP usb-ethernet driver' at usb-ci_hdrc.1-1, MOSCHIP 7830/7832/7730 usb-NET adapter, 00:d0:10:03:26:0a

It is worth to remember that native Ethernet interface is still available for U-Boot operations. As such, Linux kernel image and device tree blob can be retrieved by target over native Ethernet connection (that's why this cable has not been disconnected). Once Linux kernel gets the control of the processor, it initializes the USB/Ethernet port - that is mapped as eth0 - that is the only one available in the Linux realm.