USB Controller

  • In this section, you are going to learn

  • USB Controller

  • Terminology

#

Version

Freebsd

14.1.0

  • Architecture

test:~$ pciconf | grep USB

test:~$ usbconfig
test:~$ usbconfig

Size :

362kb

Source path :

/usr/src/sys/dev/usb/

Bin path :

/usr/obj/usr/src/amd64.amd64/sys/MYTEST/modules/usr/src/sys/modules/usb/usb

Standalone module :

/usr/obj/usr/src/amd64.amd64/sys/modules/usb/usb

List of C files :

NM output :

Size :

71kb

Source path :

/usr/src/sys/dev/usb/

Bin path :

/usr/obj/usr/src/amd64.amd64/sys/MYTEST/modules/usr/src/sys/modules/usb/ohci

Standalone module :

/usr/obj/usr/src/amd64.amd64/sys/modules/usb/ohci

List of C files :

  • ohci.c

  • ohci_pci.c

NM Output :

Size :

106kb

Source path :

/usr/src/sys/dev/usb/

Bin path :

/usr/obj/usr/src/amd64.amd64/sys/MYTEST/modules/usr/src/sys/modules/usb/xhci

Standalone module :

/usr/obj/usr/src/amd64.amd64/sys/modules/usb/xhci

List of C files :

  • xhci.c

  • xhci_pci.c

NM output :

Size :

73kb

Source path :

/usr/src/sys/dev/usb/

Bin path :

/usr/obj/usr/src/amd64.amd64/sys/MYTEST/modules/usr/src/sys/modules/usb/uhci

Standalone module :

/usr/obj/usr/src/amd64.amd64/sys/modules/usb/uhci

List of C files :

  • uhci.c

  • uhci_pci.c

NM output :

Size :

92kb

Source path :

/usr/src/sys/dev/usb/

Bin path :

/usr/obj/usr/src/amd64.amd64/sys/MYTEST/modules/usr/src/sys/modules/usb/ehci

Standalone module :

/usr/obj/usr/src/amd64.amd64/sys/modules/usb/ehci

List of C files :

  • ehci.c

  • ehci_pci.c

NM output :

Size :

79kb

Source path :

/usr/src/sys/dev/usb/

Bin path :

/usr/obj/usr/src/amd64.amd64/sys/MYTEST/modules/usr/src/sys/modules/usb/umass

Standalone module :

/usr/obj/usr/src/amd64.amd64/sys/modules/usb/umass

List of C files :

  • genoffset.c

  • umass.c

NM output :

test:~$
  • Source path : /usr/src/sys/dev/usb/ –> add the source code changes in this directory

  • Compile path : /usr/src/sys/modules/usb

  • Binary file: /usr/obj/usr/src/amd64.amd64/sys/modules/usb/

test:~$ cd /usr/src/sys/modules/usb

test:~$ make
  • Run the make install command , it will copy the compiled module into /boot/modules directory

test:~$ cd  /usr/src/sys/modules/usb

test:~$ make install

test:~$ kldload usb.ko
test:~$ kldload ohci.ko
test:~$ kldload ehci.ko
test:~$ kldload xhci.ko
test:~$ kldload ukbd.ko
test:~$ kldload umass.ko
  • Check the loaded modules

test:~$ kldstat
Id Refs Address                Size Name
 1   29 0xffffffff80200000  1f6c698 kernel
 2    1 0xffffffff8216d000     7850 cryptodev.ko
 3    1 0xffffffff82176000   772c70 zfs.ko
 4    1 0xffffffff83218000     3220 intpm.ko
 5    1 0xffffffff8321c000     2178 smbus.ko
 6    1 0xffffffff8321f000     3360 uhid.ko
 7    1 0xffffffff83223000     3360 wmt.ko
 8    1 0xffffffff8323d000     2578 usb.ko
 9    1 0xffffffff83241000     3567 ohci.ko
 10   1 0xffffffff8324f000     3441 ehci.ko
 11   1 0xffffffff83252000     3418 xhci.ko
 12   1 0xffffffff8325c000     2467 ukbd.ko
 13   1 0xffffffff83260000     3218 umass.ko
test:~$
test:~$
test:~$
test:~$
test:~$
test:~$
test:~$
test:~$
  • FAQs