FIXME Change to USB howto ====== USB interface ====== ''i.MX6UL'' contains two USB controllers with the following features. ^ Feature ^ USB controller 0 ^ USB controller 1 ^ | High-Speed/Full-Speed/Low-Speed OTG core | + | + | | HS/FS/LS UTMI compliant interface | + | + | | High Speed, Full Speed and Low Speed operation in Host mode | + | + | | High Speed, and Full Speed operation in Peripheral mode | + | + | | Hardware support for OTG signaling, session request protocol, and host negotiation protocol | + | + | | Up to 8 bidirectional endpoints | + | + | | Support charger detection | + | - | | Low-power mode with local and remote wake-up capability | + | + | | Serial PHY interfaces configurable for bidirectional/unidirectional and differential/\\ single ended | + | + | | Embedded DMA controller | + | + | ===== USB interface ===== {{ :litesom:devicetree:liteboard_usb.png }} [[litesom:liteboard|Liteboard]] is using external [[http://www.microchip.com/wwwproducts/en/LAN8720A|LAN8720A]] 10BASE-T/100BASE-TX transceiver connected with [[:liteSOM]] via RMII™ interface. Following signals are required to connect [[:liteSOM ]] with [[http://www.microchip.com/wwwproducts/en/LAN8720A|LAN8720A]] via RMII™: * ''ETH_TXD0/1'' - transit data, * ''ETH_TXEN'' - transmit strobe, * ''ETH_RXD0/1'' - receive data, * ''ETH_RXERR'' - receive error (optional), * ''ETH_CSR_DV'' - carrier sense, * ''ETH_REFCLK'' - reference clock. In addition [[http://www.microchip.com/wwwproducts/en/LAN8720A|LAN8720A]] and [[:liteSOM]] are connected via SMI signals: * ''ETH_MDIO'' - SMI data input/output, * ''ETH_MDC'' - SMI clock. ===== Device Tree configuration ===== fec1: ethernet@02188000 { compatible = "fsl,imx6ul-fec", "fsl,imx6q-fec"; reg = <0x02188000 0x4000>; interrupts = , ; clocks = <&clks IMX6UL_CLK_ENET>, <&clks IMX6UL_CLK_ENET_AHB>, <&clks IMX6UL_CLK_ENET_PTP>, <&clks IMX6UL_CLK_ENET_REF>, <&clks IMX6UL_CLK_ENET_REF>; clock-names = "ipg", "ahb", "ptp", "enet_clk_ref", "enet_out"; fsl,num-tx-queues=<1>; fsl,num-rx-queues=<1>; status = "disabled"; }; Basic configuration for ''i.MX6UL Fast Ethernet Controller'' is defined in [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/imx6ul.dtsi|imx6ul.dtsi]] file. Documentation for this //device-tree// node you can find in [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/net/fsl-fec.txt|fsl-fec.txt]] file. &fec1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet1>; phy-mode = "rmii"; phy-handle = <ðphy0>; status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; ethphy0: ethernet-phy@0 { reg = <0>; }; }; }; &iomuxc { pinctrl_enet1: enet1grp { fsl,pins = < MX6UL_PAD_GPIO1_IO07__ENET1_MDC 0x1b0b0 MX6UL_PAD_GPIO1_IO06__ENET1_MDIO 0x1b0b0 MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0 MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0 MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0 MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0 MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0 MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0 MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0 MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031 >; }; }; ''PHY'' configuration for [[litesom::liteboard|the liteboard]] is defined in [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/imx6ul-liteboard.dts|imx6ul-liteboard.dts]] file. To enable ''i.MX6UL Fast Ethernet Controller'' please build kernel with enabled ''CONFIG_FEC'' option. -> Device Drivers -> Network device support -> Ethernet driver support -> Freescale device -> FEC ethernet controller (of ColdFire and some i.MX CPUs) ===== Network configuration ===== Default [[litesom:buildroot|Buildroot]] configuration for [[litesom:liteboard|the liteboard]] is using DHCP to configure internet connection. This behavior can be changed via ''BR2_SYSTEM_DHCP'' configuration item. **Location** -> System configuration -> Network interface to configure through DHCP **Help** Enter here the name of the network interface (E.G. eth0) to automatically configure through DHCP at bootup. If left empty, no automatic DHCP requests will take place. For more complicated network setups use an overlay to overwrite /etc/network/interfaces or add a networkd configuration file. If you want to modify ''/etc/network/interfaces'' file please read [[https://wiki.debian.org/NetworkConfiguration|Network Configuration]] howto from [[https://wiki.debian.org|Debian Wiki]]. ==== Network status ==== Current network status you can verify by ''ifconfig eth0'' command # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 9E:EE:5F:94:B8:D3 inet addr:10.42.0.133 Bcast:10.42.0.255 Mask:255.255.255.0 inet6 addr: fe80::9cee:5fff:fe94:b8d3/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:38 errors:0 dropped:0 overruns:0 frame:0 TX packets:15 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:5906 (5.7 KiB) TX bytes:1654 (1.6 KiB) or ''ip address show eth0'' # ip address show eth0 2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 9e:ee:5f:94:b8:d3 brd ff:ff:ff:ff:ff:ff inet 10.42.0.133/24 brd 10.42.0.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::9cee:5fff:fe94:b8d3/64 scope link valid_lft forever preferred_lft forever