Difference between revisions of "DESK-MX6UL-L/Peripherals/USB Host"

From DAVE Developer's Wiki
Jump to: navigation, search
(Created page with "{{subst:Peripheral | nome-som=AXEL ULite | nome-peripheral = USB Host}}")
 
m (U0007 moved page DESK-MX6UL-L/Pheripherals/USB Host to DESK-MX6UL-L/Peripherals/USB Host without leaving a redirect)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<section begin=History/>
+
<section begin="History" />
 
{| style="border-collapse:collapse; "
 
{| style="border-collapse:collapse; "
!colspan="4" style="width:100%; text-align:left"; border-bottom:solid 2px #ededed"|History
+
! colspan="4" style="width:100%; text-align:left" ; border-bottom:solid 2px #ededed" |History
 
|-  
 
|-  
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Version
+
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white" |Issue Date
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Issue Date
+
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white" |Notes
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
 
 
|-
 
|-
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|X.Y.Z
+
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |{{oldid|14248|2021/07/20}}
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|Month Year
+
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |First DESK release
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|TBD
 
 
|-
 
|-
 +
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |{{oldid|16317|2022/03/16}}
 +
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |DESK-MX6UL-L 3.0.0 release
 
|-
 
|-
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|[TBD_link X.Y.Z]
+
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000" |2023/05/04
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|Month Year
+
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000" |DESK-MX6UL-L 4.0.0 release
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|TBD
 
|-
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|...
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|...
 
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|...
 
 
|-
 
|-
 
|}
 
|}
<section end=History/>
+
<section end="History" />
<section begin=Body/>
+
<section begin="Body" />
  
 
==Peripheral USB Host ==
 
==Peripheral USB Host ==
  
''TBD: sostituire tutti i dump con le informazioni sull'uso della periferica''
+
The USB Host port requires to configure the USB VBUS regulator and the gpio used for enabling the 5V USB power switch.
  
 
=== Device tree configuration ===
 
=== Device tree configuration ===
 
Here below an example of device tree configuration used on standard DAVE's kit for the AXEL ULite SOM:
 
Here below an example of device tree configuration used on standard DAVE's kit for the AXEL ULite SOM:
  
From <code>''carrier.dts''</code>:
+
From <code>imx6ul-axelulite-cb003a.dts</code>:
  
 
<pre>
 
<pre>
&can1 {
+
        reg_usb_otg1_vbus: regulator@2 {
    pinctrl-names = "default";
+
                compatible = "regulator-fixed";
    pinctrl-0 = <&pinctrl_flexcan1_axel>;
+
                reg = <2>;
    status = "okay";
+
                pinctrl-names = "default";
 +
                pinctrl-0 = <&pinctrl_usb_otg1>;
 +
                regulator-name = "usb_otg1_vbus";
 +
                regulator-min-microvolt = <5000000>;
 +
                regulator-max-microvolt = <5000000>;
 +
                gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>;
 +
                enable-active-high;
 +
        };
 +
...
 +
...
 +
&usbotg1 {
 +
        vbus-supply = <&reg_usb_otg1_vbus>;
 +
        disable-over-current;
 +
        dr_mode = "host";
 +
        status = "okay";
 
};
 
};
</pre>
 
 
From <code>''carrier-common.dtsi''</code>:
 
 
<pre>
 
    can1 {
 
        pinctrl_flexcan1_axel: flexcan1axelgrp-1 {
 
            fsl,pins = <
 
                MX6QDL_PAD_GPIO_7__FLEXCAN1_TX 0x80000000
 
                MX6QDL_PAD_GPIO_8__FLEXCAN1_RX 0x80000000
 
            >;
 
        };
 
    };
 
</pre>
 
 
===Accessing the peripheral===
 
====Linux messages at boot time====
 
 
<pre class="workstation-terminal">
 
 
...
 
...
 
...
 
...
[    1.807495] flexcan 2090000.flexcan: 2090000.flexcan supply xceiver not found, using dummy regulator
+
&iomuxc {
[    1.817366] flexcan 2090000.flexcan: device registered (reg_base=c0a30000, irq=31)
+
        pinctrl-0 = <&pinctrl_hog_gpios>;
 +
        imx6ul-axelulite {
 
...
 
...
 
...
 
...
[    3.952659] can: controller area network core (rev 20170425 abi 9)
+
                pinctrl_usb_otg1: usbotg1grp {
[    3.963413] can: raw protocol (rev 20170425)
+
                        fsl,pins = <
[    3.967717] can: broadcast manager protocol (rev 20170425 t)
+
                                MX6UL_PAD_UART1_CTS_B__GPIO1_IO18      0x10b0          /* HOST PWR */
[    3.973397] can: netlink gateway (rev 20170425) max_hops=1
+
                                MX6UL_PAD_GPIO1_IO03__GPIO1_IO03        0x10b0          /* HOST OC */
 +
                        >;
 +
                };
 +
};
 
</pre>
 
</pre>
  
====Enable the interface and check status====
 
<pre class="workstation-terminal">
 
root@imx6qxelk:~# ip link set can0 type can bitrate 500000
 
root@imx6qxelk:~# ifconfig can0 up
 
root@imx6qxelk:~# ifconfig can0
 
can0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
 
          UP RUNNING NOARP  MTU:16  Metric:1
 
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
 
          collisions:0 txqueuelen:10
 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
 
          Interrupt:31
 
  
root@imx6qxelk:~#
+
===Accessing the peripheral===
</pre>
+
====Linux messages at boot time====
 
+
When a USB peripheral is inserted, in the following example a memory mass storage device, the kernel recognizes the device (i.e. xlass, vendor id, product id, etc.)
==== Usage with [https://github.com/linux-can/can-utils can-utils] ====
 
 
 
''TBD: reference verso eventuali informazioni sul web''
 
  
 
<pre class="workstation-terminal">
 
<pre class="workstation-terminal">
root@imx6qxelk:~# ip link set can0 type can bitrate 500000 triple-sampling on
+
[  199.668004] usb 1-1: new high-speed USB device number 2 using ci_hdrc
root@imx6qxelk:~# ifconfig can0 up
+
[  199.876433] usb 1-1: New USB device found, idVendor=13fe, idProduct=6700, bcdDevice= 1.10
root@imx6qxelk:~# cansend can0 128#1122334455667788
+
[  199.876545] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
root@imx6qxelk:~# candump can0
+
[  199.876604] usb 1-1: Product: USB DISK 3.0
  can0 128  [811 22 33 44 55 66 77 88
+
[ 199.876647] usb 1-1: Manufacturer: Wilk
root@imx6qxelk:~#
+
[ 199.876690] usb 1-1: SerialNumber: 07012533C2BE5935
 +
[  199.897372] usb-storage 1-1:1.0: USB Mass Storage device detected
 +
[  199.918075] scsi host0: usb-storage 1-1:1.0
 +
[ 200.961571] scsi 0:0:0:0: Direct-Access    Wilk    USB DISK 3.0    PMAP PQ: 0 ANSI: 6
 +
[  200.976402] sd 0:0:0:0: [sda] 60628992 512-byte logical blocks: (31.0 GB/28.9 GiB)
 +
[  200.977682] sd 0:0:0:0: [sda] Write Protect is off
 +
[  200.977729] sd 0:0:0:0: [sda] Mode Sense: 45 00 00 00
 +
[  200.989604] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
 +
[  201.200618]  sda: sda1 sda2
 +
[  201.214974] sd 0:0:0:0: [sda] Attached SCSI removable disk
 
</pre>
 
</pre>
 
 
=== Additional information ===
 
=== Additional information ===
Each CAN port appears like a networking interface in the form <code>canX</code> where <b><i>X</i></b> is the port number.
+
If the root file system configuration does not automatically mount the partition, it is possible to mount the device using the following command:
 
 
Information about programming the CAN socket interface is given in the kernel tree under ''Documentation/networking/can.txt''
 
<section end=Body/>
 
  
 +
<pre class="workstation-terminal">
 +
root@desk-mx6ul-axelulite:~# mkdir -p /mnt/usbApr
 +
root@desk-mx6ul-axelulite:~# mount /dev/sda1 /mnt/usb/
 +
root@desk-mx6ul-axelulite:~# ls -la /mnt/usb/
 +
total 24
 +
drwxr-xr-x 3 root root    4096 Apr 1 14:16 .
 +
drwxr-xr-x 4 root root    4096 Apr 3 18:15 ..
 +
drwx------ 2 root root  16384 Apr 3 14:16 lost+found
 +
-rwxr-xr-x 1 root root 6881192 Apr 3 14:16 uImage
 +
</pre>
 
----
 
----
  
 
[[Category:AXEL ULite]]
 
[[Category:AXEL ULite]]

Latest revision as of 18:02, 11 January 2024

History
Issue Date Notes

2021/07/20

First DESK release

2022/03/16

DESK-MX6UL-L 3.0.0 release
2023/05/04 DESK-MX6UL-L 4.0.0 release


Peripheral USB Host[edit | edit source]

The USB Host port requires to configure the USB VBUS regulator and the gpio used for enabling the 5V USB power switch.

Device tree configuration[edit | edit source]

Here below an example of device tree configuration used on standard DAVE's kit for the AXEL ULite SOM:

From imx6ul-axelulite-cb003a.dts:

        reg_usb_otg1_vbus: regulator@2 {
                compatible = "regulator-fixed";
                reg = <2>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_usb_otg1>;
                regulator-name = "usb_otg1_vbus";
                regulator-min-microvolt = <5000000>;
                regulator-max-microvolt = <5000000>;
                gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>;
                enable-active-high;
        };
...
...
&usbotg1 {
        vbus-supply = <&reg_usb_otg1_vbus>;
        disable-over-current;
        dr_mode = "host";
        status = "okay";
};
...
...
&iomuxc {
        pinctrl-0 = <&pinctrl_hog_gpios>;
        imx6ul-axelulite {
...
...
                pinctrl_usb_otg1: usbotg1grp {
                        fsl,pins = <
                                MX6UL_PAD_UART1_CTS_B__GPIO1_IO18       0x10b0          /* HOST PWR */
                                MX6UL_PAD_GPIO1_IO03__GPIO1_IO03        0x10b0          /* HOST OC */
                        >;
                };
};


Accessing the peripheral[edit | edit source]

Linux messages at boot time[edit | edit source]

When a USB peripheral is inserted, in the following example a memory mass storage device, the kernel recognizes the device (i.e. xlass, vendor id, product id, etc.)

[  199.668004] usb 1-1: new high-speed USB device number 2 using ci_hdrc
[  199.876433] usb 1-1: New USB device found, idVendor=13fe, idProduct=6700, bcdDevice= 1.10
[  199.876545] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  199.876604] usb 1-1: Product: USB DISK 3.0
[  199.876647] usb 1-1: Manufacturer: Wilk
[  199.876690] usb 1-1: SerialNumber: 07012533C2BE5935
[  199.897372] usb-storage 1-1:1.0: USB Mass Storage device detected
[  199.918075] scsi host0: usb-storage 1-1:1.0
[  200.961571] scsi 0:0:0:0: Direct-Access     Wilk     USB DISK 3.0     PMAP PQ: 0 ANSI: 6
[  200.976402] sd 0:0:0:0: [sda] 60628992 512-byte logical blocks: (31.0 GB/28.9 GiB)
[  200.977682] sd 0:0:0:0: [sda] Write Protect is off
[  200.977729] sd 0:0:0:0: [sda] Mode Sense: 45 00 00 00
[  200.989604] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[  201.200618]  sda: sda1 sda2
[  201.214974] sd 0:0:0:0: [sda] Attached SCSI removable disk

Additional information[edit | edit source]

If the root file system configuration does not automatically mount the partition, it is possible to mount the device using the following command:

root@desk-mx6ul-axelulite:~# mkdir -p /mnt/usbApr
root@desk-mx6ul-axelulite:~# mount /dev/sda1 /mnt/usb/
root@desk-mx6ul-axelulite:~# ls -la /mnt/usb/
total 24
drwxr-xr-x 3 root root    4096 Apr 1 14:16 .
drwxr-xr-x 4 root root    4096 Apr 3 18:15 ..
drwx------ 2 root root   16384 Apr 3 14:16 lost+found
-rwxr-xr-x 1 root root 6881192 Apr 3 14:16 uImage