1. 程式人生 > >AM335x(TQ335x)學習筆記——USB驅動移植

AM335x(TQ335x)學習筆記——USB驅動移植

對於AM335x來講,TI維護的USB驅動已經非常完善了,本文稱之為移植,實際上僅僅是配置核心選項使能USB HOST/OTG功能。廢話少說,直接動手開啟AM335x的USB驅動配置項。

Step1. 配置核心支援USB

預設的配置項沒有配置USB相關的選項,但是DTS已經配置好了,我們不需要對DTS作任何修改,詳細的核心配置項如下:

  1. Device Drivers --->

  2. [*] USB support --->

  3. [*] OTG support

  4. <*> EHCI HCD (USB 2.0) support

  5. [*] Improved Transaction Translator scheduling (NEW)

  6. <*> EHCI support for OMAP3 and later chips (NEW)

  7. <*> OHCI HCD (USB 1.1) support

  8. <*> OHCI support for OMAP3 and later chips (NEW)

  9. <*> Inventra Highspeed Dual Role Controller (TI, ADI, ...)

  10. MUSB Mode Selection (Dual Role mode) --->

  11. <*> Platform Glue Layer (TI DSPS platforms) --->

  12. MUSB DMA mode (Disable DMA (always use PIO)) --->

Step2. 編譯核心

編譯核心的指令如下:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8

Step3.測試

用新編譯好的核心啟動開發板,可以看到如下Log:

  1. Starting kernel ...

  2. [    0.000000] Booting Linux on physical CPU 0x0

  3. [    0.000000] Linux version 3.17.2 ([email protected]

    ) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #96 SMP Fri Dec 26 22:28:21 CST 2014

  4. [    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d

  5. [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache

  6. [    0.000000] Machine model: TI AM335x EVM

  7. [    0.000000] cma: Reserved 16 MiB at 9e800000

  8. [    0.000000] Memory policy: Data cache writeback

  9. [    0.000000]   HighMem zone: 1048574 pages exceeds freesize 0

  10. [    0.000000] CPU: All CPU(s) started in SVC mode.

  11. [    0.000000] AM335X ES2.1 (sgx neon )

  12. [    0.000000] PERCPU: Embedded 9 pages/cpu @dfa99000 s14336 r8192 d14336 u36864

  13. [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 129792

  14. [    0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait

  15. [    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)

  16. [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)

  17. [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)

  18. [    0.000000] Memory: 483980K/523264K available (6184K kernel code, 668K rwdata, 2468K rodata, 410K init, 8215K bss, 39284K reserved, 0K highmem)

  19. [    0.000000] Virtual kernel memory layout:

  20. [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)

  21. [    0.000000]     fixmap  : 0xffc00000 - 0xffe00000   (2048 kB)

  22. [    0.000000]     vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)

  23. [    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)

  24. [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)

  25. [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)

  26. [    0.000000]       .text : 0xc0008000 - 0xc087b564   (8654 kB)

  27. [    0.000000]       .init : 0xc087c000 - 0xc08e2800   ( 410 kB)

  28. [    0.000000]       .data : 0xc08e4000 - 0xc098b330   ( 669 kB)

  29. [    0.000000]        .bss : 0xc098b330 - 0xc1190f60   (8216 kB)

  30. [    0.000000] Hierarchical RCU implementation.

  31. [    0.000000]  RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.

  32. [    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1

  33. [    0.000000] NR_IRQS:16 nr_irqs:16 16

  34. [    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts

  35. [    0.000000] Total of 128 interrupts on 1 active controller

  36. [    0.000000] OMAP clockevent source: timer2 at 24000000 Hz

  37. [    0.000014] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956969942ns

  38. [    0.000064] OMAP clocksource: timer1 at 24000000 Hz

  39. [    0.000795] Console: colour dummy device 80x30

  40. [    0.000845] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar

  41. [    0.000853] ... MAX_LOCKDEP_SUBCLASSES:  8

  42. [    0.000861] ... MAX_LOCK_DEPTH:          48

  43. [    0.000869] ... MAX_LOCKDEP_KEYS:        8191

  44. [    0.000876] ... CLASSHASH_SIZE:          4096

  45. [    0.000884] ... MAX_LOCKDEP_ENTRIES:     32768

  46. [    0.000890] ... MAX_LOCKDEP_CHAINS:      65536

  47. [    0.000898] ... CHAINHASH_SIZE:          32768

  48. [    0.000905]  memory used by lock dependency info: 5167 kB

  49. [    0.000913]  per task-struct memory footprint: 1152 bytes

  50. [    0.000956] Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736)

  51. [    0.079037] pid_max: default: 32768 minimum: 301

  52. [    0.079443] Security Framework initialized

  53. [    0.079567] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)

  54. [    0.079580] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)

  55. [    0.081764] CPU: Testing write buffer coherency: ok

  56. [    0.082949] CPU0: thread -1, cpu 0, socket -1, mpidr 0

  57. [    0.083077] Setting up static identity map for 0x805dbb70 - 0x805dbbe0

  58. [    0.086307] Brought up 1 CPUs

  59. [    0.086326] SMP: Total of 1 processors activated.

  60. [    0.086336] CPU: All CPU(s) started in SVC mode.

  61. [    0.088948] devtmpfs: initialized

  62. [    0.097822] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3

  63. [    0.133146] omap_hwmod: tptc0 using broken dt data from edma

  64. [    0.133495] omap_hwmod: tptc1 using broken dt data from edma

  65. [    0.133823] omap_hwmod: tptc2 using broken dt data from edma

  66. [    0.141643] omap_hwmod: debugss: _wait_target_disable failed

  67. [    0.199665] pinctrl core: initialized pinctrl subsystem

  68. [    0.202194] regulator-dummy: no parameters

  69. [    0.232293] NET: Registered protocol family 16

  70. [    0.240857] DMA: preallocated 256 KiB pool for atomic coherent allocations

  71. [    0.243121] cpuidle: using governor ladder

  72. [    0.243149] cpuidle: using governor menu

  73. [    0.255109] OMAP GPIO hardware version 0.1

  74. [    0.270370] omap-gpmc 50000000.gpmc: could not find pctldev for node /[email protected]/nandflash_pins_s0, deferring probe

  75. [    0.270413] platform 50000000.gpmc: Driver omap-gpmc requests probe deferral

  76. [    0.274914] hw-breakpoint: debug architecture 0x4 unsupported.

  77. [    0.320324] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver

  78. [    0.321686] vbat: 5000 mV 

  79. [    0.322450] lis3_reg: no parameters

  80. [    0.325863] SCSI subsystem initialized

  81. [    0.326622] usbcore: registered new interface driver usbfs

  82. [    0.326782] usbcore: registered new interface driver hub

  83. [    0.330704] usbcore: registered new device driver usb

  84. [    0.331558] omap_i2c 44e0b000.i2c: could not find pctldev for node /[email protected]/pinmux_i2c0_pins, deferring probe

  85. [    0.331597] platform 44e0b000.i2c: Driver omap_i2c requests probe deferral

  86. [    0.331654] omap_i2c 4802a000.i2c: could not find pctldev for node /[email protected]/pinmux_i2c1_pins, deferring probe

  87. [    0.331677] platform 4802a000.i2c: Driver omap_i2c requests probe deferral

  88. [    0.332863] Advanced Linux Sound Architecture Driver Initialized.

  89. [    0.336272] Switched to clocksource timer1

  90. [    0.489380] NET: Registered protocol family 2

  91. [    0.491239] TCP established hash table entries: 4096 (order: 2, 16384 bytes)

  92. [    0.491422] TCP bind hash table entries: 4096 (order: 5, 147456 bytes)

  93. [    0.492785] TCP: Hash tables configured (established 4096 bind 4096)

  94. [    0.492955] TCP: reno registered

  95. [    0.492981] UDP hash table entries: 256 (order: 2, 20480 bytes)

  96. [    0.493170] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)

  97. [    0.494207] NET: Registered protocol family 1

  98. [    0.496281] RPC: Registered named UNIX socket transport module.

  99. [    0.496304] RPC: Registered udp transport module.

  100. [    0.496314] RPC: Registered tcp transport module.

  101. [    0.496323] RPC: Registered tcp NFSv4.1 backchannel transport module.

  102. [    0.498147] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available

  103. [    0.502301] futex hash table entries: 256 (order: 2, 16384 bytes)

  104. [    0.507875] VFS: Disk quotas dquot_6.5.2

  105. [    0.508024] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)

  106. [    0.510137] NFS: Registering the id_resolver key type

  107. [    0.510482] Key type id_resolver registered

  108. [    0.510497] Key type id_legacy registered

  109. [    0.510654] jffs2: version 2.2. (NAND) (SUMMARY)  漏 2001-2006 Red Hat, Inc.

  110. [    0.511074] msgmni has been set to 977

  111. [    0.516250] io scheduler noop registered

  112. [    0.516287] io scheduler deadline registered

  113. [    0.516358] io scheduler cfq registered (default)

  114. [    0.518591] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568

  115. [    0.523698] backlight supply power not found, using dummy regulator

  116. [    0.527040] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled

  117. [    0.533191] omap_uart 44e09000.serial: no wakeirq for uart0

  118. [    0.533803] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 88, base_baud = 3000000) is a OMAP UART0

  119. [    1.234091] console [ttyO0] enabled

  120. [    1.243201] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20

  121. [    1.250887] [drm] Initialized drm 1.1.0 20060810

  122. [    1.264563] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).

  123. [    1.271671] [drm] No driver support for vblank timestamp query.

  124. [    1.331494] Console: switching to colour frame buffer device 100x30

  125. [    1.342552] tilcdc 4830e000.lcdc: fb0:  frame buffer device

  126. [    1.348442] tilcdc 4830e000.lcdc: registered panic notifier

  127. [    1.354341] [drm] Initialized tilcdc 1.0.0 20121205 on minor 0

  128. [    1.390556] brd: module loaded

  129. [    1.408704] loop: module loaded

  130. [    1.414966] mtdoops: mtd device (mtddev=name/number) must be supplied

  131. [    1.425658] usbcore: registered new interface driver asix

  132. [    1.431555] usbcore: registered new interface driver ax88179_178a

  133. [    1.438078] usbcore: registered new interface driver cdc_ether

  134. [    1.444343] usbcore: registered new interface driver smsc95xx

  135. [    1.450493] usbcore: registered new interface driver net1080

  136. [    1.456543] usbcore: registered new interface driver cdc_subset

  137. [    1.462850] usbcore: registered new interface driver zaurus

  138. [    1.468911] usbcore: registered new interface driver cdc_ncm

  139. [    1.475931] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

  140. [    1.482939] ehci-omap: OMAP-EHCI Host Controller driver

  141. [    1.488833] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver

  142. [    1.495347] ohci-omap3: OHCI OMAP3 driver

  143. [    1.500021] usbcore: registered new interface driver cdc_wdm

  144. [    1.506178] usbcore: registered new interface driver usb-storage

  145. [    1.512631] usbcore: registered new interface driver usbtest

  146. [    1.521522] 47401300.usb-phy supply vcc not found, using dummy regulator

  147. [    1.533165] musb-hdrc musb-hdrc.0.auto: MUSB HDRC host driver

  148. [    1.543455] musb-hdrc musb-hdrc.0.auto: new USB bus registered, assigned bus number 1

  149. [    1.562104] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002

  150. [    1.569359] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1

  151. [    1.576955] usb usb1: Product: MUSB HDRC host driver

  152. [    1.582140] usb usb1: Manufacturer: Linux 3.17.2 musb-hcd

  153. [    1.587820] usb usb1: SerialNumber: musb-hdrc.0.auto

  154. [    1.599603] hub 1-0:1.0: USB hub found

  155. [    1.605078] hub 1-0:1.0: 1 port detected

  156. [    1.622178] 47401b00.usb-phy supply vcc not found, using dummy regulator

  157. [    1.632793] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver

  158. [    1.640700] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 2

  159. [    1.651379] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002

  160. [    1.658617] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1

  161. [    1.666213] usb usb2: Product: MUSB HDRC host driver

  162. [    1.671397] usb usb2: Manufacturer: Linux 3.17.2 musb-hcd

  163. [    1.677083] usb usb2: SerialNumber: musb-hdrc.1.auto

  164. [    1.686595] hub 2-0:1.0: USB hub found

  165. [    1.690986] hub 2-0:1.0: 1 port detected

  166. [    1.701609] mousedev: PS/2 mouse device common for all mice

  167. [    1.711782] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0

  168. [    1.720055] i2c /dev entries driver

  169. [    1.723788] Driver for 1-wire Dallas network protocol.

  170. [    1.736318] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec

  171. [    1.755078] omap_hsmmc 48060000.mmc: unable to get vmmc regulator -517

  172. [    1.762557] platform 48060000.mmc: Driver omap_hsmmc requests probe deferral

  173. [    1.772215] ledtrig-cpu: registered to indicate activity on CPUs

  174. [    1.779192] usbcore: registered new interface driver usbhid

  175. [    1.785014] usbhid: USB HID core driver

  176. [    1.795167] davinci_evm sound: ASoC: CODEC (null) not registered

  177. [    1.801977] davinci_evm sound: snd_soc_register_card failed (-517)

  178. [    1.808594] platform sound: Driver davinci_evm requests probe deferral

  179. [    1.816440] oprofile: using arm/armv7

  180. [    1.821115] TCP: cubic registered

  181. [    1.824592] Initializing XFRM netlink socket

  182. [    1.829340] NET: Registered protocol family 17

  183. [    1.834075] NET: Registered protocol family 15

  184. [    1.839198] Key type dns_resolver registered

  185. [    1.843920] omap_voltage_late_init: Voltage driver support not added

  186. [    1.850660] sr_dev_init: No voltage domain specified for smartreflex0. Cannot initialize

  187. [    1.859152] sr_dev_init: No voltage domain specified for smartreflex1. Cannot initialize

  188. [    1.868786] ThumbEE CPU extension supported.

  189. [    1.873392] Registering SWP/SWPB emulation handler

  190. [    1.878502] SmartReflex Class3 initialized

  191. [    1.891065] omap-gpmc 50000000.gpmc: GPMC revision 6.0

  192. [    1.898216] nand: device found, Manufacturer ID: 0xec, Chip ID: 0xd3

  193. [    1.904865] nand: Samsung NAND 1GiB 3,3V 8-bit

  194. [    1.909588] nand: 1024MiB, SLC, page size: 2048, OOB size: 64

  195. [    1.915591] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme

  196. [    1.921433] 10 ofpart partitions found on MTD device omap2-nand.0

  197. [    1.927825] Creating 10 MTD partitions on "omap2-nand.0":

  198. [    1.933473] 0x000000000000-0x000000020000 : "NAND.SPL"

  199. [    1.947581] 0x000000020000-0x000000040000 : "NAND.SPL.backup1"

  200. [    1.958288] 0x000000040000-0x000000060000 : "NAND.SPL.backup2"

  201. [    1.967696] 0x000000060000-0x000000080000 : "NAND.SPL.backup3"

  202. [    1.978978] 0x000000080000-0x0000000c0000 : "NAND.u-boot-spl"

  203. [    1.989074] 0x0000000c0000-0x0000001c0000 : "NAND.u-boot"

  204. [    2.000439] 0x0000001c0000-0x0000001e0000 : "NAND.u-boot-env"

  205. [    2.010926] 0x0000001e0000-0x000000200000 : "NAND.u-boot-env.backup1"

  206. [    2.022841] 0x000000200000-0x000000a00000 : "NAND.kernel"

  207. [    2.038984] 0x000000a00000-0x000010000000 : "NAND.file-system"

  208. [    2.332279] tps65910 0-002d: No interrupt support, no core IRQ

  209. [    2.349898] vrtc: 1800 mV 

  210. [    2.353264] vrtc: supplied by vbat

  211. [    2.360422] vio: at 1500 mV 

  212. [    2.363696] vio: supplied by vbat

  213. [    2.370657] vdd_mpu: 912 <--> 1312 mV at 1325 mV 

  214. [    2.375794] vdd_mpu: supplied by vbat

  215. [    2.384999] vdd_core: 912 <--> 1150 mV at 1137 mV 

  216. [    2.390404] vdd_core: supplied by vbat

  217. [    2.397288] vdd3: 5000 mV 

  218. [    2.402667] vdig1: at 1800 mV 

  219. [    2.406225] vdig1: supplied by vbat

  220. [    2.412538] vdig2: at 1800 mV 

  221. [    2.415945] vdig2: supplied by vbat

  222. [    2.422351] vpll: at 1800 mV 

  223. [    2.425662] vpll: supplied by vbat

  224. [    2.432822] vdac: at 1800 mV 

  225. [    2.436335] vdac: supplied by vbat

  226. [    2.443361] vaux1: at 1800 mV 

  227. [    2.446899] vaux1: supplied by vbat

  228. [    2.453342] vaux2: at 3300 mV 

  229. [    2.456846] vaux2: supplied by vbat

  230. [    2.463190] vaux33: at 3300 mV 

  231. [    2.466775] vaux33: supplied by vbat

  232. [    2.473172] vmmc: 1800 <--> 3300 mV at 3300 mV 

  233. [    2.478237] vmmc: supplied by vbat

  234. [    2.484283] vbb: at 3000 mV 

  235. [    2.487872] vbb: supplied by vbat

  236. [    2.495458] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz

  237. [    2.503173] usb 2-1: new high-speed USB device number 2 using musb-hdrc

  238. [    2.517638] omap_i2c 4802a000.i2c: bus 1 rev0.11 at 100 kHz

  239. [    2.568304] wm8960 0-001a: No platform data supplied

  240. [    2.644805] mmc0: host does not support reading read-only switch. assuming write-enable.

  241. [    2.654108] usb 2-1: New USB device found, idVendor=1a40, idProduct=0101

  242. [    2.661182] usb 2-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0

  243. [    2.668663] usb 2-1: Product: USB 2.0 Hub

  244. [    2.675544] hub 2-1:1.0: USB hub found

  245. [    2.681178] hub 2-1:1.0: 4 ports detected

  246. [    2.690227] mmc0: new high speed SDHC card at address aaaa

  247. [    2.699372] mmcblk0: mmc0:aaaa SL16G 14.8 GiB 

  248. [    2.710574]  mmcblk0: p1 p2

  249. [    2.723345] davinci_evm sound: wm8960-hifi <-> 4803c000.mcasp mapping ok

  250. [    2.806163] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6

  251. [    2.812552] davinci_mdio 4a101000.mdio: detected phy mask ffffffde

  252. [    2.825370] libphy: 4a101000.mdio: probed

  253. [    2.829704] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver unknown

  254. [    2.838093] davinci_mdio 4a101000.mdio: phy[5]: device 4a101000.mdio:05, driver unknown

  255. [    2.847649] cpsw 4a100000.ethernet: Detected MACID = c4:ed:ba:88:b5:e4

  256. [    2.859600] input: [email protected] as /devices/[email protected]/input/input0

  257. [    2.869505] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)

  258. [    2.878657] sr_init: No PMIC hook to init smartreflex

  259. [    2.884274] sr_init: platform driver register failed for SR

  260. [    2.907467] lis3_reg: disabling

  261. [    2.910975] ALSA device list:

  262. [    2.914075]   #0: AM335x-EVM

  263. [    3.008783] kjournald starting.  Commit interval 5 seconds

  264. [    3.017395] EXT3-fs (mmcblk0p2): using internal journal

  265. [    3.025475] EXT3-fs (mmcblk0p2): recovery complete

  266. [    3.030554] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode

  267. [    3.037888] VFS: Mounted root (ext3 filesystem) on device 179:2.

  268. [    3.047778] devtmpfs: mounted

  269. [    3.051614] Freeing unused kernel memory: 408K (c087c000 - c08e2000)

  270. ----------mount all..........

  271. ----------Starting mdev......

  272. Please press Enter to activate this console. 

  273. @tq335x #[   11.296192] usb 2-1.2: new high-speed USB device number 3 using musb-hdrc

  274. [   11.419745] usb 2-1.2: device v0951 p1665 is not supported

  275. [   11.425483] usb 2-1.2: New USB device found, idVendor=0951, idProduct=1665

  276. [   11.432693] usb 2-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3

  277. [   11.440342] usb 2-1.2: Product: DataTraveler 2.0

  278. [   11.445163] usb 2-1.2: Manufacturer: Kingston

  279. [   11.449729] usb 2-1.2: SerialNumber: 50E549C20268FE41491C17E1

  280. [   11.458198] usb-storage 2-1.2:1.0: USB Mass Storage device detected

  281. [   11.476650] scsi host0: usb-storage 2-1.2:1.0

  282. [   12.768968] scsi 0:0:0:0: Direct-Access     Kingston DataTraveler 2.0 1.00 PQ: 0 ANSI: 4

  283. [   12.785085] sd 0:0:0:0: [sda] 30233588 512-byte logical blocks: (15.4 GB/14.4 GiB)

  284. [   12.806457] sd 0:0:0:0: [sda] Write Protect is off

  285. [   12.817312] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA

  286. [   12.840718]  sda: sda4

  287. [   12.850713] sd 0:0:0:0: [sda] Attached SCSI removable disk

  288. [   13.265222] usb 2-1.2: USB disconnect, device number 3

末尾是拔插U盤的效果。

Step4. 配置其它USB裝置驅動

如果需要配置其它USB裝置驅動可以繼續在menuconfig配置列表中進行配置,這裡就不一一介紹了。

注:

不知道是我的開發板硬體問題還是其它問題,我自己移植的Linux-3.17.2只有中間的一個USB埠可用,另外兩個USB埠沒有任何作用。使用官方提供的核心映象也存在這樣的問題,下週一跟天嵌售後確認下此問題。如果看到本文的朋友手頭上也有TQ3358開發板,請幫忙測試下,多謝。





本文作者:girlkoo

相關推薦

AM335x(TQ335x)學習筆記——USB驅動移植

對於AM335x來講,TI維護的USB驅動已經非常完善了,本文稱之為移植,實際上僅僅是配置核心選項使能USB HOST/OTG功能。廢話少說,直接動手開啟AM335x的USB驅動配置項。 Step1. 配置核心支援USB 預設的配置項沒有配置USB相關的選項,但是DTS已

AM335x(TQ335x)學習筆記——LCD驅動移植

TI的LCD控制器驅動是非常完善的,共通的地方已經由驅動封裝好了,與按鍵一樣,我們可以通過DTS配置完成LCD的顯示。下面,我們來討論下使用DTS方式配置核心完成LCD驅動的思路。 (1)初步分析 由於TQ335x使用的晶片是AM335x,故仍然可以參考am335x-evm

AM335x(TQ335x)學習筆記——觸控式螢幕驅動編寫

前面幾篇文章已經通過配置DTS的方式完成了多個驅動的移植,接下來我們解決TQ335x的觸控驅動問題。由於種種原因,TQ335x的觸控式螢幕驅動是以模組方式提供的,且Linux官方核心中也沒有帶該觸控式螢幕的驅動原始碼,單純的配置DTS是無法完成TQ335x的觸控驅動移植工作

AM335x(TQ335x)學習筆記——WM8960音效卡驅動移植

經過一段時間的除錯,終於調好了TQ335x的音效卡驅動。TQ335x採用的Codec是WM8960,本文來總結下WM8960驅動在AM335x平臺上的移植方法。Linux音效卡驅動架構有OSS和ALSA兩種架構,目前最常用的架構是ALSA,本文也使用ALSA架構對WM

AM335x(TQ335x)學習筆記——GPIO按鍵驅動移植

還是按照S5PV210的學習順序來,我們首先解決按鍵問題。TQ335x有六個使用者按鍵,分別是上、下、左、右、Enter和ESC。開始我想到的是跟學習S5PV210時一樣,編寫輸入子系統驅動解決按鍵問題,但是瀏覽driver/input/keyboard目錄時意外的發現了g

AM335x(TQ335x)學習筆記——u-boot-2014.10移植

最近移植了下u-boot-2014.10到TQ335x,如果基於am335x evm進行移植,需要修改的地方並不多。 由於TI的am335x evm開發使用了一個eeprom儲存了板載配置資訊,用來區分不同板子的型號的,而TQ335x沒有這個eeprom,因此,需要修改ee

STM32F407+STemwin學習筆記之STemwin移植

byte 裸機 測試程序 AC class create temp png check 原文鏈接:http://www.cnblogs.com/NickQ/p/8748011.html 環境:keil5.20 STM32F407ZGT6 LCD(320*240) S

ARM學習筆記驅動程式篇七----字元裝置驅動

1.11 字元裝置驅動模型 在任何一種驅動模型中,裝置都會用核心中的一種結構來描述。字元裝置在核心中使用struct cdev來描述。 struct cdev{ struct kobject kobj; struct module *owner; const stru

STM32學習筆記-FSMC驅動LCD

文章目錄 一、FSMC原理 1.為什麼可以用FSMC驅動LCD? 2.定址問題 3.時序模式 二、程式碼部分 一、FSMC原理 大容量,且引腳數在 100 腳以上的 STM32F103 晶片都帶有 FS

MongoDB學習筆記~官方驅動巢狀陣列物件的更新

回到目錄 對於陣列物件mongodb本身是支援的,不過對於陣列的更新,mongodb的Csharp驅動目前只支援一級,即你的物件裡包含陣列,而陣列又包括陣列,這表示兩層,這在更新子陣列時,Csharp驅動是不支援的,今天要說的就是如何讓它支援子陣列的更新,下面是我給出的資料結構 在Mongodb的Cs

MongoDB學習筆記~官方驅動的原生Curd操作

回到目錄 MongoDB的官方C#驅動,讓我們使用起來也很方便,但對於Linq開發人員來說,可能有些不瞭解,所以,我還是將官方驅動進行了二次封裝,而對於一個比較個性化的mongo操作,使用我封裝的也很難實現,所以,還是需要大家直接使用官方驅動的原生寫法的,下面進行一個介紹。 Insert操作 mo

[RK3399][Android7.1] 學習筆記 DRM驅動程式開發(介紹)

平臺 核心版本 安卓版本 rk Linux4.4 Android7.1 1. 簡介 DRM 全稱是 Direct Rendering Mana

I.MX6Q(TQIMX6Q/TQE9)學習筆記——U-Boot移植

其實Freescale的BSP移植文件已經將u-boot的移植步驟講述的非常詳細了,但為了以後方便查閱,還是按照自己的理解記錄在這裡。 獲取原始碼 根據前一篇文章搭建好LTIB環境後就可以非常方便的匯出u-boot原始碼了。切換到ltib目錄,並執行如下指令: ./l

S5PV210(TQ210)學習筆記——觸控式螢幕驅動編寫

電阻式觸控式螢幕的驅動比較簡單,可以採用輸入子系統驅動框架來編寫,而電容式觸控式螢幕的驅動程式相對比較複雜,因為電容觸控一般採用I2C引腳才控制,我在自己編寫電容觸控驅動的時候鬱悶了好幾天,當然,並不是因為I2C電容觸控驅動繁瑣,主要是天嵌TQ210的觸控式螢幕驅動程式是以模組方式提供的,並不開發原始

LwIP學習筆記——STM32 ENC28J60移植與入門

0.前言    去年(2013年)的整理了LwIP相關程式碼,並在STM32上“裸奔”成功。一直沒有時間深入整理,在這裡借博文整理總結。LwIP的移植過程細節很多,博文也不可能一一詳解個別部分只能點到為止。    【本文要點】    【1】不帶作業系統的LwIP移植,LwIP

Zynq-Linux移植學習筆記之31-使用者自定義I2C驅動

1、背景介紹 板子上通過ZYNQ的I2C-0控制器連線了三片DBF晶片和一片Ti的226測功耗晶片,示意圖如下: 如上圖所示,三塊DBF晶片的I2C地址分別為2,4,8,Ti 226晶片的I2C地址為0x40.現在需要ZYNQ通過I2C匯流排讀寫這四塊晶片的暫存器數值

Zynq-Linux移植學習筆記之14-RapidIO驅動開發

在對zynq進行linux驅動開發時,除了需要針對zynq內ARM自帶的控制器適配驅動外,還需要對zynq PL部分的IP核進行驅動開發。對於ARM來說,zynq PL部分的IP核就是一段地址空間,這段地址空間包含了該IP的一系列暫存器,ARM操作該IP核的暫存器也就是

Zynq-Linux移植學習筆記之13-i2c驅動配置

1、 背景介紹 板子上通過I2C匯流排與zynq相連的是三片1848 如上圖所示,zynq通過I2C匯流排與3片CPS-1848交換晶片相連,3片1848晶片的I2C地址分別為2,4,8. 目前zynq上linux I2C驅動採用的是i2c-cadence(driver

驅動】第6課、USB驅動學習筆記

主   機:VMWare--Ubuntu-16.04.2-x64-100ask 開發板:Mini2440--256M NandFlash,   2M NorFlash,   64M SDRAM,   LCD-TD35;    bootlorder:u-boot1.16,        K

Zynq-Linux移植學習筆記之16-Zynq下linux XADC驅動

1、  簡介 XADC是zynq晶片內部進行溫度和電壓檢測的模組,通過(Xilinx Wiki - xadc.html)這篇wiki可以知道,XADC控制器有兩種表現形式,一種是位於PS內部,即文件中提到的the PS-XADC interface for the PS s