移植完毕声卡驱动之后本想再接再励,移植网卡驱动,但没想到的是TI维护的内核太健壮,移植网卡驱动跟之前移植按键驱动一样简单,Nand驱动也是如此,于是,本人将Nand和网卡放在同一篇文章中介绍。介绍之前先感慨一下:TI的维护的内核真的非常健壮,DTS真的非常强大。

1. Nand驱动移植

阅读TQ335x的原理图可知,TQ335x的Nand连接到了GPMC上,且与DTS中默认的配置吻合,此处不做不论什么改动,详情例如以下:

  1. nandflash_pins_s0: nandflash_pins_s0 {
  2. pinctrl-single,pins = <
  3. 0x0 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */
  4. 0x4 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */
  5. 0x8 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */
  6. 0xc (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */
  7. 0x10 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */
  8. 0x14 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */
  9. 0x18 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */
  10. 0x1c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */
  11. 0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_wait0.gpmc_wait0 */
  12. 0x74 (PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_wpn.gpio0_30 */
  13. 0x7c (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */
  14. 0x90 (PIN_OUTPUT | MUX_MODE0) /* gpmc_advn_ale.gpmc_advn_ale */
  15. 0x94 (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */
  16. 0x98 (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */
  17. 0x9c (PIN_OUTPUT | MUX_MODE0) /* gpmc_be0n_cle.gpmc_be0n_cle */
  18. >;
  19. };

直接编译内核,并放到开发板上执行。这时我们会发现内核能够识别Nand,可是由于没有开启OMAP的BCH功能会报一处错误。开启该配置项的方法例如以下:

  1. Device Drivers --->
  2. <*> Memory Technology Device (MTD) support --->
  3. <*> NAND Device Support --->
  4. <*> Support hardware based BCH error correction

保存配置并退出menuconfig,然后又一次编译内核并放到开发板上执行,此时会发现内核已经能够正常识别Nand了,完整的启动Log会在文章末尾给出。从这里能够看出,TI的内核维护的真的非常不错,比曾经移植三星芯片时省事非常多。

2. 网卡驱动移植

进行网卡驱动移植的方法与进行Nand驱动移植的方法同样,逻辑上讲,先应该去确认下网卡的引脚连接并在DTS中进行对应的pinmux设置,可是,移植完Nand后查看内核的启动Log可知,网卡已经正常识别了,因此,能够直接运行指令:

  1. udhcpc

来动态获取ip(须要将开发板通过网线连接到路由器并开启路由器的DHCP功能,默认通常是开启的),会发现开发板可以从路由器分配到IP,可是没有分配DNS,这是由于我们仅仅做文件系统时没有进行dhcp的设置。设置方法非常easy,将busybox中的examples/udhcp/simple.script复制到根文件系统的usr/share/udhcpc/文件夹下,并改名为default.script就可以。然后又一次运行:

  1. udhcpc

会发现开发板能够正常获取到IP和DNS,可是仍有一处错误,具体例如以下:

  1. @tq335x #udhcpc
  2. udhcpc (v1.22.1) started
  3. Setting IP address 0.0.0.0 on eth0
  4. [ 11.489311] net eth0: initializing cpsw version 1.12 (0)
  5. [ 11.576237] net eth0: phy found : id is : 0x1cc915
  6. [ 11.581418] libphy: PHY 4a101000.mdio:01 not found
  7. [ 11.586480] net eth0: phy 4a101000.mdio:01 not found on slave 1
  8. Sending discover...
  9. [ 13.576458] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
  10. Sending discover...
  11. Sending select for 192.168.0.103...
  12. Lease of 192.168.0.103 obtained, lease time 86400
  13. Setting IP address 192.168.0.103 on eth0
  14. Deleting routers
  15. route: SIOCDELRT: No such process
  16. Adding router 192.168.0.1
  17. Recreating /etc/resolv.conf
  18. Adding DNS server 10.0.0.1

參考TI官网提供的evm开发板的dts,本文对tq335x.dts做例如以下改动:

  1. &mac {
  2. slaves = <1>;
  3. pinctrl-names = "default", "sleep";
  4. pinctrl-0 = <&cpsw_default>;
  5. pinctrl-1 = <&cpsw_sleep>;
  6. status = "okay";
  7. };

然后删除下面节点:

  1. &cpsw_emac1 {
  2. phy_id = <&davinci_mdio>, <1>;
  3. phy-mode = "rgmii-txid";
  4. };

又一次编译tq335x.dtb:

  1. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- tq335x.dtb

用新的tq335x.dtb启动开发板:

  1. load mmc 0:1 0x88000000 /boot/tq335x.dtb
  2. load mmc 0:1 0x82000000 /boot/zImage
  3. bootz 0x82000000 - 0x88000000

最后,再次使用指令:

  1. udhcpc

进行測试,会发现开发板能够正常获取IP和DNS。假设您的路由器已经连接到了外网,还能够使用ping指令測试与外网的连接,如ping谷歌的DNSserver:

  1. ping 8.8.8.8

至此,就完毕了TQ335x的Nand和网卡驱动移植,并不须要深入的了解其内部的工作原理,有问题能够留言讨论。假设想了解这两个模块的工作原理,强烈推荐韦东山老师的嵌入式教学视频,静下心来看的话,绝对物有所值。该视频还是须要一定的硬件和软件功底的,假设看不懂能够补习下C语言、基本原理图阅读等方面的知识。

3. 启动Log

完整的启动Log例如以下:

  1. Starting kernel ...
  2.  
  3. [ 0.000000] Booting Linux on physical CPU 0x0
  4. [ 0.000000] Linux version 3.17.2 (lilianrong@smarter) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #73 SMP Tue Dec 23 22:06:01 CST 2014
  5. [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
  6. [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
  7. [ 0.000000] Machine model: TI AM335x EVM
  8. [ 0.000000] cma: Reserved 16 MiB at 9e800000
  9. [ 0.000000] Memory policy: Data cache writeback
  10. [ 0.000000] HighMem zone: 1048574 pages exceeds freesize 0
  11. [ 0.000000] CPU: All CPU(s) started in SVC mode.
  12. [ 0.000000] AM335X ES2.1 (sgx neon )
  13. [ 0.000000] PERCPU: Embedded 9 pages/cpu @dfa99000 s14336 r8192 d14336 u36864
  14. [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 129792
  15. [ 0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait
  16. [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
  17. [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
  18. [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
  19. [ 0.000000] Memory: 484108K/523264K available (6082K kernel code, 667K rwdata, 2448K rodata, 410K init, 8214K bss, 39156K reserved, 0K highmem)
  20. [ 0.000000] Virtual kernel memory layout:
  21. [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
  22. [ 0.000000] fixmap : 0xffc00000 - 0xffe00000 (2048 kB)
  23. [ 0.000000] vmalloc : 0xe0800000 - 0xff000000 ( 488 MB)
  24. [ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB)
  25. [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
  26. [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
  27. [ 0.000000] .text : 0xc0008000 - 0xc085cc80 (8532 kB)
  28. [ 0.000000] .init : 0xc085d000 - 0xc08c3800 ( 410 kB)
  29. [ 0.000000] .data : 0xc08c4000 - 0xc096ac10 ( 668 kB)
  30. [ 0.000000] .bss : 0xc096ac10 - 0xc11707a0 (8215 kB)
  31. [ 0.000000] Hierarchical RCU implementation.
  32. [ 0.000000] RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
  33. [ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
  34. [ 0.000000] NR_IRQS:16 nr_irqs:16 16
  35. [ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
  36. [ 0.000000] Total of 128 interrupts on 1 active controller
  37. [ 0.000000] OMAP clockevent source: timer2 at 24000000 Hz
  38. [ 0.000013] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956969942ns
  39. [ 0.000062] OMAP clocksource: timer1 at 24000000 Hz
  40. [ 0.000794] Console: colour dummy device 80x30
  41. [ 0.000846] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
  42. [ 0.000855] ... MAX_LOCKDEP_SUBCLASSES: 8
  43. [ 0.000863] ... MAX_LOCK_DEPTH: 48
  44. [ 0.000870] ... MAX_LOCKDEP_KEYS: 8191
  45. [ 0.000877] ... CLASSHASH_SIZE: 4096
  46. [ 0.000884] ... MAX_LOCKDEP_ENTRIES: 32768
  47. [ 0.000891] ... MAX_LOCKDEP_CHAINS: 65536
  48. [ 0.000898] ... CHAINHASH_SIZE: 32768
  49. [ 0.000906] memory used by lock dependency info: 5167 kB
  50. [ 0.000914] per task-struct memory footprint: 1152 bytes
  51. [ 0.000956] Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736)
  52. [ 0.079052] pid_max: default: 32768 minimum: 301
  53. [ 0.079452] Security Framework initialized
  54. [ 0.079577] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
  55. [ 0.079589] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
  56. [ 0.081767] CPU: Testing write buffer coherency: ok
  57. [ 0.082936] CPU0: thread -1, cpu 0, socket -1, mpidr 0
  58. [ 0.083055] Setting up static identity map for 0x805c3270 - 0x805c32e0
  59. [ 0.086292] Brought up 1 CPUs
  60. [ 0.086313] SMP: Total of 1 processors activated.
  61. [ 0.086323] CPU: All CPU(s) started in SVC mode.
  62. [ 0.088953] devtmpfs: initialized
  63. [ 0.097712] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
  64. [ 0.133428] omap_hwmod: tptc0 using broken dt data from edma
  65. [ 0.133784] omap_hwmod: tptc1 using broken dt data from edma
  66. [ 0.134117] omap_hwmod: tptc2 using broken dt data from edma
  67. [ 0.141998] omap_hwmod: debugss: _wait_target_disable failed
  68. [ 0.199949] pinctrl core: initialized pinctrl subsystem
  69. [ 0.202465] regulator-dummy: no parameters
  70. [ 0.232121] NET: Registered protocol family 16
  71. [ 0.240699] DMA: preallocated 256 KiB pool for atomic coherent allocations
  72. [ 0.242951] cpuidle: using governor ladder
  73. [ 0.242981] cpuidle: using governor menu
  74. [ 0.254980] OMAP GPIO hardware version 0.1
  75. [ 0.270240] omap-gpmc 50000000.gpmc: could not find pctldev for node /pinmux@44e10800/nandflash_pins_s0, deferring probe
  76. [ 0.270283] platform 50000000.gpmc: Driver omap-gpmc requests probe deferral
  77. [ 0.274806] hw-breakpoint: debug architecture 0x4 unsupported.
  78. [ 0.319718] edma-dma-engine edma-dma-engine.0: TI EDMA DMA engine driver
  79. [ 0.321050] vbat: 5000 mV
  80. [ 0.321878] lis3_reg: no parameters
  81. [ 0.325259] SCSI subsystem initialized
  82. [ 0.326052] usbcore: registered new interface driver usbfs
  83. [ 0.326223] usbcore: registered new interface driver hub
  84. [ 0.330168] usbcore: registered new device driver usb
  85. [ 0.330998] omap_i2c 44e0b000.i2c: could not find pctldev for node /pinmux@44e10800/pinmux_i2c0_pins, deferring probe
  86. [ 0.331037] platform 44e0b000.i2c: Driver omap_i2c requests probe deferral
  87. [ 0.331092] omap_i2c 4802a000.i2c: could not find pctldev for node /pinmux@44e10800/pinmux_i2c1_pins, deferring probe
  88. [ 0.331116] platform 4802a000.i2c: Driver omap_i2c requests probe deferral
  89. [ 0.332291] Advanced Linux Sound Architecture Driver Initialized.
  90. [ 0.335642] Switched to clocksource timer1
  91. [ 0.487189] NET: Registered protocol family 2
  92. [ 0.489058] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
  93. [ 0.489243] TCP bind hash table entries: 4096 (order: 5, 147456 bytes)
  94. [ 0.490606] TCP: Hash tables configured (established 4096 bind 4096)
  95. [ 0.490797] TCP: reno registered
  96. [ 0.490823] UDP hash table entries: 256 (order: 2, 20480 bytes)
  97. [ 0.491013] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
  98. [ 0.492039] NET: Registered protocol family 1
  99. [ 0.493915] RPC: Registered named UNIX socket transport module.
  100. [ 0.493936] RPC: Registered udp transport module.
  101. [ 0.493946] RPC: Registered tcp transport module.
  102. [ 0.493955] RPC: Registered tcp NFSv4.1 backchannel transport module.
  103. [ 0.495229] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
  104. [ 0.499735] futex hash table entries: 256 (order: 2, 16384 bytes)
  105. [ 0.504791] VFS: Disk quotas dquot_6.5.2
  106. [ 0.504950] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
  107. [ 0.507753] NFS: Registering the id_resolver key type
  108. [ 0.508115] Key type id_resolver registered
  109. [ 0.508132] Key type id_legacy registered
  110. [ 0.508279] jffs2: version 2.2. (NAND) (SUMMARY) 2001-2006 Red Hat, Inc.
  111. [ 0.508729] msgmni has been set to 977
  112. [ 0.513651] io scheduler noop registered
  113. [ 0.513685] io scheduler deadline registered
  114. [ 0.513753] io scheduler cfq registered (default)
  115. [ 0.516150] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
  116. [ 0.521255] backlight supply power not found, using dummy regulator
  117. [ 0.524492] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
  118. [ 0.530892] omap_uart 44e09000.serial: no wakeirq for uart0
  119. [ 0.531504] 44e09000.serial: ttyO0 at MMIO 0x44e09000 (irq = 88, base_baud = 3000000) is a OMAP UART0
  120. [ 1.232153] console [ttyO0] enabled
  121. [ 1.241558] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
  122. [ 1.249198] [drm] Initialized drm 1.1.0 20060810
  123. [ 1.261409] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
  124. [ 1.268521] [drm] No driver support for vblank timestamp query.
  125. [ 1.331152] Console: switching to colour frame buffer device 100x30
  126. [ 1.342247] tilcdc 4830e000.lcdc: fb0: frame buffer device
  127. [ 1.348135] tilcdc 4830e000.lcdc: registered panic notifier
  128. [ 1.354036] [drm] Initialized tilcdc 1.0.0 20121205 on minor 0
  129. [ 1.389964] brd: module loaded
  130. [ 1.408309] loop: module loaded
  131. [ 1.414443] mtdoops: mtd device (mtddev=name/number) must be supplied
  132. [ 1.425081] usbcore: registered new interface driver asix
  133. [ 1.430985] usbcore: registered new interface driver ax88179_178a
  134. [ 1.437512] usbcore: registered new interface driver cdc_ether
  135. [ 1.443772] usbcore: registered new interface driver smsc95xx
  136. [ 1.449928] usbcore: registered new interface driver net1080
  137. [ 1.455981] usbcore: registered new interface driver cdc_subset
  138. [ 1.462281] usbcore: registered new interface driver zaurus
  139. [ 1.468354] usbcore: registered new interface driver cdc_ncm
  140. [ 1.476438] usbcore: registered new interface driver cdc_wdm
  141. [ 1.482554] usbcore: registered new interface driver usb-storage
  142. [ 1.489102] usbcore: registered new interface driver usbtest
  143. [ 1.497261] mousedev: PS/2 mouse device common for all mice
  144. [ 1.508204] omap_rtc 44e3e000.rtc: rtc core: registered 44e3e000.rtc as rtc0
  145. [ 1.516418] i2c /dev entries driver
  146. [ 1.520156] Driver for 1-wire Dallas network protocol.
  147. [ 1.533123] omap_wdt: OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
  148. [ 1.543243] omap_hsmmc 48060000.mmc: unable to get vmmc regulator -517
  149. [ 1.550707] platform 48060000.mmc: Driver omap_hsmmc requests probe deferral
  150. [ 1.560219] ledtrig-cpu: registered to indicate activity on CPUs
  151. [ 1.567132] usbcore: registered new interface driver usbhid
  152. [ 1.572953] usbhid: USB HID core driver
  153. [ 1.584275] davinci_evm sound: ASoC: CODEC (null) not registered
  154. [ 1.591095] davinci_evm sound: snd_soc_register_card failed (-517)
  155. [ 1.597727] platform sound: Driver davinci_evm requests probe deferral
  156. [ 1.605542] oprofile: using arm/armv7
  157. [ 1.610156] TCP: cubic registered
  158. [ 1.613633] Initializing XFRM netlink socket
  159. [ 1.618345] NET: Registered protocol family 17
  160. [ 1.623080] NET: Registered protocol family 15
  161. [ 1.628155] Key type dns_resolver registered
  162. [ 1.632833] omap_voltage_late_init: Voltage driver support not added
  163. [ 1.639539] sr_dev_init: No voltage domain specified for smartreflex0. Cannot initialize
  164. [ 1.648011] sr_dev_init: No voltage domain specified for smartreflex1. Cannot initialize
  165. [ 1.657602] ThumbEE CPU extension supported.
  166. [ 1.662123] Registering SWP/SWPB emulation handler
  167. [ 1.667204] SmartReflex Class3 initialized
  168. [ 1.679204] omap-gpmc 50000000.gpmc: GPMC revision 6.0
  169. [ 1.686359] nand: device found, Manufacturer ID: 0xec, Chip ID: 0xd3
  170. [ 1.693006] nand: Samsung NAND 1GiB 3,3V 8-bit
  171. [ 1.697702] nand: 1024MiB, SLC, page size: 2048, OOB size: 64
  172. [ 1.703702] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
  173. [ 1.709544] 10 ofpart partitions found on MTD device omap2-nand.0
  174. [ 1.715935] Creating 10 MTD partitions on "omap2-nand.0":
  175. [ 1.721581] 0x000000000000-0x000000020000 : "NAND.SPL"
  176. [ 1.738760] 0x000000020000-0x000000040000 : "NAND.SPL.backup1"
  177. [ 1.750072] 0x000000040000-0x000000060000 : "NAND.SPL.backup2"
  178. [ 1.759540] 0x000000060000-0x000000080000 : "NAND.SPL.backup3"
  179. [ 1.770709] 0x000000080000-0x0000000c0000 : "NAND.u-boot-spl"
  180. [ 1.780999] 0x0000000c0000-0x0000001c0000 : "NAND.u-boot"
  181. [ 1.794193] 0x0000001c0000-0x0000001e0000 : "NAND.u-boot-env"
  182. [ 1.803810] 0x0000001e0000-0x000000200000 : "NAND.u-boot-env.backup1"
  183. [ 1.815705] 0x000000200000-0x000000a00000 : "NAND.kernel"
  184. [ 1.831741] 0x000000a00000-0x000010000000 : "NAND.file-system"
  185. [ 2.128744] tps65910 0-002d: No interrupt support, no core IRQ
  186. [ 2.145804] vrtc: 1800 mV
  187. [ 2.149201] vrtc: supplied by vbat
  188. [ 2.156403] vio: at 1500 mV
  189. [ 2.159674] vio: supplied by vbat
  190. [ 2.166535] vdd_mpu: 912 <--> 1312 mV at 1325 mV
  191. [ 2.171674] vdd_mpu: supplied by vbat
  192. [ 2.178847] vdd_core: 912 <--> 1150 mV at 1137 mV
  193. [ 2.184071] vdd_core: supplied by vbat
  194. [ 2.190808] vdd3: 5000 mV
  195. [ 2.196352] vdig1: at 1800 mV
  196. [ 2.199763] vdig1: supplied by vbat
  197. [ 2.206242] vdig2: at 1800 mV
  198. [ 2.209646] vdig2: supplied by vbat
  199. [ 2.216312] vpll: at 1800 mV
  200. [ 2.219632] vpll: supplied by vbat
  201. [ 2.226021] vdac: at 1800 mV
  202. [ 2.229339] vdac: supplied by vbat
  203. [ 2.235593] vaux1: at 1800 mV
  204. [ 2.238998] vaux1: supplied by vbat
  205. [ 2.245289] vaux2: at 3300 mV
  206. [ 2.248809] vaux2: supplied by vbat
  207. [ 2.255223] vaux33: at 3300 mV
  208. [ 2.258804] vaux33: supplied by vbat
  209. [ 2.265220] vmmc: 1800 <--> 3300 mV at 3300 mV
  210. [ 2.270279] vmmc: supplied by vbat
  211. [ 2.276822] vbb: at 3000 mV
  212. [ 2.280309] vbb: supplied by vbat
  213. [ 2.288030] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
  214. [ 2.301649] omap_i2c 4802a000.i2c: bus 1 rev0.11 at 100 kHz
  215. [ 2.347377] wm8960 0-001a: No platform data supplied
  216. [ 2.424716] mmc0: host does not support reading read-only switch. assuming write-enable.
  217. [ 2.436373] mmc0: new high speed SDHC card at address aaaa
  218. [ 2.444716] mmcblk0: mmc0:aaaa SL16G 14.8 GiB
  219. [ 2.456727] mmcblk0: p1 p2
  220. [ 2.471831] davinci_evm sound: wm8960-hifi <-> 4803c000.mcasp mapping ok
  221. [ 2.555784] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
  222. [ 2.562174] davinci_mdio 4a101000.mdio: detected phy mask ffffffde
  223. [ 2.572385] libphy: 4a101000.mdio: probed
  224. [ 2.576709] davinci_mdio 4a101000.mdio: phy[0]: device 4a101000.mdio:00, driver unknown
  225. [ 2.585071] davinci_mdio 4a101000.mdio: phy[5]: device 4a101000.mdio:05, driver unknown
  226. [ 2.594702] cpsw 4a100000.ethernet: Detected MACID = c4:ed:ba:88:b5:e4
  227. [ 2.606568] input: gpio_keyad@0 as /devices/gpio_keyad@0/input/input0
  228. [ 2.616308] omap_rtc 44e3e000.rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
  229. [ 2.625329] sr_init: No PMIC hook to init smartreflex
  230. [ 2.630961] sr_init: platform driver register failed for SR
  231. [ 2.653937] lis3_reg: disabling
  232. [ 2.657604] ALSA device list:
  233. [ 2.660710] #0: AM335x-EVM
  234. [ 2.779242] kjournald starting. Commit interval 5 seconds
  235. [ 2.787736] EXT3-fs (mmcblk0p2): using internal journal
  236. [ 2.795710] EXT3-fs (mmcblk0p2): recovery complete
  237. [ 2.800726] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
  238. [ 2.808089] VFS: Mounted root (ext3 filesystem) on device 179:2.
  239. [ 2.818461] devtmpfs: mounted
  240. [ 2.822292] Freeing unused kernel memory: 408K (c085d000 - c08c3000)
  241. ----------mount all..........
  242. ----------Starting mdev......
  243.  
  244. Please press Enter to activate this console.
  245. @tq335x #
  246. @tq335x #udhcpc
  247. udhcpc (v1.22.1) started
  248. Setting IP address 0.0.0.0 on eth0
  249. [ 11.489311] net eth0: initializing cpsw version 1.12 (0)
  250. [ 11.576237] net eth0: phy found : id is : 0x1cc915
  251. [ 11.581418] libphy: PHY 4a101000.mdio:01 not found
  252. [ 11.586480] net eth0: phy 4a101000.mdio:01 not found on slave 1
  253. Sending discover...
  254. [ 13.576458] cpsw 4a100000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
  255. Sending discover...
  256. Sending select for 192.168.0.103...
  257. Lease of 192.168.0.103 obtained, lease time 86400
  258. Setting IP address 192.168.0.103 on eth0
  259. Deleting routers
  260. route: SIOCDELRT: No such process
  261. Adding router 192.168.0.1
  262. Recreating /etc/resolv.conf
  263. Adding DNS server 10.0.0.1
  264. @tq335x #ping 8.8.8.8
  265. PING 8.8.8.8 (8.8.8.8): 56 data bytes
  266. 64 bytes from 8.8.8.8: seq=0 ttl=38 time=471.858 ms
  267. 64 bytes from 8.8.8.8: seq=1 ttl=38 time=479.178 ms
  268. 64 bytes from 8.8.8.8: seq=3 ttl=38 time=574.362 ms
  269. 64 bytes from 8.8.8.8: seq=4 ttl=38 time=476.201 ms
  270. ^C
  271. --- 8.8.8.8 ping statistics ---
  272. 5 packets transmitted, 4 packets received, 20% packet loss
  273. round-trip min/avg/max = 471.858/500.399/574.362 ms
  274. @tq335x #

本文作者:girlkoo

本文连接:http://blog.csdn.net/girlkoo/article/details/42110683

AM335x(TQ335x)学习笔记——Nand&amp;&amp;网卡驱动移植的更多相关文章

  1. AM335x(TQ335x)学习笔记——Nand&&网卡驱动移植

    移植完成声卡驱动之后本想再接再励,移植网卡驱动,但没想到的是TI维护的内核太健壮,移植网卡驱动跟之前移植按键驱动一样简单,Nand驱动也是如此,于是,本人将Nand和网卡放在同一篇文章中介绍.介绍之前 ...

  2. AM335x(TQ335x)学习笔记——挂载Ramdisk

    上篇文章中我们已经能够通过u-boot启动内核了,但是没有能够启动成功,从内核的log中可以看出,内核启动失败的原因是没有挂载到root文件系统,本文将使用busybox制作根文件系统并打包成ramd ...

  3. AM335x(TQ335x)学习笔记——触摸屏驱动编写

    前面几篇文章已经通过配置DTS的方式完成了多个驱动的移植,接下来我们解决TQ335x的触摸驱动问题.由于种种原因,TQ335x的触摸屏驱动是以模块方式提供的,且Linux官方内核中也没有带该触摸屏的驱 ...

  4. AM335x(TQ335x)学习笔记——GPIO关键驱动移植

    或按照S5PV210学习秩序.我们首先解决的关键问题.TQ335x有六个用户按钮,每个上.下.剩下.对.Enter和ESC. 我想开始学习S5PV210当同一,写输入子系统驱动器的关键问题要解决,但浏 ...

  5. AM335x(TQ335x)学习笔记——WM8960声卡驱动移植

    经过一段时间的调试,终于调好了TQ335x的声卡驱动.TQ335x采用的Codec是WM8960,本文来总结下WM8960驱动在AM335x平台上的移植方法.Linux声卡驱动架构有OSS和ALSA两 ...

  6. AM335x(TQ335x)学习笔记——GPIO按键驱动移植

    还是按照S5PV210的学习顺序来,我们首先解决按键问题.TQ335x有六个用户按键,分别是上.下.左.右.Enter和ESC.开始我想到的是跟学习S5PV210时一样,编写输入子系统驱动解决按键问题 ...

  7. AM335x(TQ335x)学习笔记——LCD驱动移植

    TI的LCD控制器驱动是非常完善的,共通的地方已经由驱动封装好了,与按键一样,我们可以通过DTS配置完成LCD的显示.下面,我们来讨论下使用DTS方式配置内核完成LCD驱动的思路. (1)初步分析 由 ...

  8. AM335x(TQ335x)学习笔记——u-boot-2014.10移植

    根据最近移植u-boot-2014.10至TQ335x,基于这样的假设am335x evm移植.不是很多地方需要改变. 因为TI的am335x evm开发了使用eeprom船上保存配置信息.它使用不同 ...

  9. AM335x(TQ335x)学习笔记——USB驱动移植

    对于AM335x来讲,TI维护的USB驱动已经非常完善了,本文称之为移植,实际上仅仅是配置内核选项使能USB HOST/OTG功能.废话少说,直接动手开启AM335x的USB驱动配置项. Step1. ...

随机推荐

  1. 38.C语言字符串总结

    1.自己实现三个常用函数 strlen,strcpy,strstr 自己实现strstr函数,如果找到返回首地址,找不到则返回NULL //查找元素,返回首地址 char *mystrstr(cons ...

  2. VisualRoute for Mac OS 体验

    VisualRoute 网络路径结点回溯分析工具,以在世界地图上显示连结的路径的方式,让你知道当无法连上某些IP时的真正问题所在.VisualRoute将traceroute.ping以及Whois等 ...

  3. jq--图片懒加载

    html 1.给图片不给真真意义上的src属性路径,可通过我们自己想要添加时改变它的属性路径即可. 2.要获取浏览器中三种高度. $(window).height();//屏幕高度 $(window) ...

  4. python 数字计算模块 decimal(小数计算)

    from decimal import * a = Decimal('0.1')+Decimal('0.1')+Decimal('0.1')+Decimal('0.3') float(a) >& ...

  5. Spring项目用junit 时出现org.junit.runners.BlockJUnit4ClassRunner cannot be resolved(转)

    spring框架项目用junit做测试时,程序在自动编译时出现下述问题: 程序的问题是项目中找不到org.junit.runners.BlockJUnit4ClassRunner,有两种可能,一是没有 ...

  6. Hibernate5配置与使用具体解释

    转载请注明出处:http://blog.csdn.net/tyhj_sf/article/details/51851163 引言 Hibernate是一个轻量级的持久层开源框架,它是连接java应用程 ...

  7. ORM进阶:Hibernate的优劣对照

    hibernate是一种是轻量级的ORMapping框架.学过EntityFramework的.会感觉挺亲切的. 对于各种层次程序猿对数据库的设计: 小菜程序员这样做:首先考虑数据的存储,对于功能的实 ...

  8. Python - 字典按值(value)排序

    字典安值排序是一个伪命题. 字典本身是不能被排序的, 已经依照关键字(key)排序, 可是列表(list)和元组(tuple)能够排序, 所以字典须要转换列表后排序. 如 import operato ...

  9. 10lession-if-else条件语句

    python的条件选择语句跟其他语言的及其相似,这里就不做详细记录,仅仅是看个例子好了 #!/usr/bin/python "]: print('1 in [1,2,3,"4&qu ...

  10. Java学习笔记七 常用API对象三

    一.泛型:简单说就是对对象类型进行限定的技术 public class GenericDemo { public static void main(String[] args){ /*泛型作为1.5版 ...