天嵌 ARM开发社区

 找回密码
 注册
查看: 5416|回复: 3

I.MX6Q学习笔记——新版BSP之kernel移植

[复制链接]
freewing 发表于 2015-5-22 09:28:01 | 显示全部楼层 |阅读模式
  本文由博主girlkoo编写,关于E9与TQIMX6Q开发平台kernel移植的文章。
  前篇文章已经在tqimx6q上成功跑起了新版BSP的uboot,本文来配置下新版BSP的kernel,使kernel能在tqimx6q上正常启动。

  准备工作
  每次移植kernel的时候都会做的工作就是找到与当前开发板接近的config,其实uboot移植的时候也是一样的。由于tqimx6q的芯片是imx6q的,所以,还是以mx6q_sabresd为例。另外,自己动手移植BSP时应该充分使用官方文档,本人以为,以下文档是非常有用的:
  (1) i.MX 6 BSP Porting Guide: 该文档详细的记载了BSP移植的流程。
  (2) i.MX 6 SABRE-SD Linux User's Guide: 该文档详细的记载了各种启动介质的制作方法。
  在第二份文章中搜索defconfig,就可以找到imx6q使用的config文件是:imx_v7_defconfig,如果直接在arch/arm/configs目录下grep搜索MX6Q的话,可以搜到三个文件,其实也是可以确认使用哪个配置文件比较合适的。

  内核移植
  确定好了配置文件,接下看就开始内核移植。本文的目前不是移植好所有的驱动,而是先让内核能够在tqimx6q开发板上跑起来,接下来再去慢慢各个击破驱动。
  Step1. 定制DTS
  1. cp imx6q-sabresd.dts imx6q-tqimx6q.dts  
  2. cp imx6qdl-sabresd.dtsi tqimx6q.dtsi  
复制代码


  Step2. 修改include文件
  用自己熟悉的文本编辑器打开文件mx6q-tqimx6q.dts,然后将imx6qdl-sabresd.dtsi改为tqimx6q.dtsi。
  Step3. 定制pinctrl
  移植uboot的时候就知道,sabresd开发板的系统uart端子与tqimx6q的是不一致的,而且SD3的端子与tqimx6q的uart端子冲突,因此配置这几个端子的pinctrl即可。其实,我认为freescale维护这个版本的DTB结构不是太好,imx6qdl.dtsi应该是imx6qdl共通的配置,不应该将uart这些pinctrl添加在这里,如果添加在这里的话应该将各种配置情况都罗列出来。本文没有尝试改变这种结构,在现有结构的基础上,尽可能少的修改了DTS文件,具体步骤如下:
  打开imx6qdl.dtsi,然后做如下修改:

  (1) 打开imx6qdl.dtsi,添加tqimx6q的uart pinctrl配置。
  1. uart1 {  
  2.         ...  
  3.         pinctrl_uart1_2: uart1grp-2 {  
  4.                 fsl,pins = <  
  5.                         MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1  
  6.                         MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1  
  7.                 >;  
  8.         };  
  9. };  
复制代码


  实际上就是在原有uart pinctrl配置的基础上又添加了另外一种配置方式。

  (2) 打开tqimx6q.dtsi,将uart1的pinctrl指定为pinctrl_uart1_2。
  • &uart1 {  
  •         pinctrl-names = "default";  
  •         pinctrl-0 = <&pinctrl_uart1_2>;  
  •         status = "okay";  
  • };  
  (3) 板载SD卡配置修改
  1. &usdhc2 {  
  2.         pinctrl-names = "default";  
  3.         pinctrl-0 = <&pinctrl_usdhc2_2>;  
  4.         cd-gpios = <&gpio1 4 0>;  
  5.         wp-gpios = <&gpio1 2 0>;  
  6.         no-1-8-v;  
  7.         keep-power-in-suspend;  
  8.         enable-sdio-wakeup;  
  9.         status = "okay";  
  10. };  
复制代码


  重新指定了pinctrl、cd(card detect)和wp(write protection)端子。
  (4) 板载SD WIFI接口赞改

  由于tqimx6q的SD3用户SDIO WIFI,且SD3_DAT7和SD3_DAT6端子用作uart,故需要修改其pinctrl,不至于与uart冲突。我们将SD3的pinctrl暂作如下修改:
  1. &usdhc3 {  
  2.         pinctrl-names = "default";  
  3.         pinctrl-0 = <&pinctrl_usdhc3_2>;  
  4.         cd-gpios = <&gpio2 0 0>;  
  5.         wp-gpios = <&gpio2 1 0>;  
  6.         no-1-8-v;  
  7.         keep-power-in-suspend;  
  8.         enable-sdio-wakeup;  
  9.         status = "okay";  
  10. };  
复制代码


  Step4. 设置环境变量
  1. export ARCH=arm  
  2. export CROSS_COMPILE=arm-linux-gnueabi-
复制代码


  Step5. 配置内核
  1. make imx_v7_defconfig  
复制代码


  由于官方默认方式是使用传统的ATAGS方式传递内核参数的,但为了提高开发效率,本文还是使用了新的DTB方式传递内核参数。为此,需要配置内核,关闭老式ATAGS方式内核参数传递的支持:
  1. make menuconfig  
复制代码


  然后将如下配置项取消:
  1. Boot options  --->  
  2.    Support for the traditional ATAGS boot data passing (NEW)  
复制代码


  Step6. 编译内核及DTB

  修改并保存内核配置项之后就可以尝试编译内核了:
  1. make uImage LOADADDR=0x12000000  
复制代码


  内核编译时间比较长,需耐心等待。内核编译完成后编译DTB:
  1. make imx6q-tqimx6q.dtb  
复制代码



  烧写镜像
  内核编译完成后可以得到内核镜像zImage和DTB文件tqimx6q.dtb,接下来我们将这两个文件烧写到SD卡并尝试启动开发板。

  (1) 烧写内核镜像
  1. sudo dd if=uImage of=/dev/sdb bs=512 seek=2048 conv=fsync
复制代码


  (2) 烧写DTB文件
  1. sudo dd if=tqimx6q.dtb of=/dev/sdb bs=512 seek=20480 conv=fsync  
复制代码


通过以上指令,将zImage烧写到SD卡偏移1M的位置上,讲tqimx6q.dtb烧写到了SD卡偏移10M的位置上。

启动内核
将SD卡插到开发板后给开发板上电,按任意键打断uboot启动,并按如下内容配置uboot环境变量。
  1. setenv bootargs 'noinitrd console=ttymxc0,115200 root=/dev/mmcblk0p1 rw init=/linuxrc'  
  2. setenv bootcmd 'mmc dev 0; mmc read 0x11ffffc0 0x800 0x3000; mmc read 0x18000000 0x5000 0x800; bootm 0x11ffffc0 - 0x18000000'  
  3. saveenv  
复制代码


  然后重启开发板即成功启动内核。

  效果展示

  内核启动Log如下:
  1. U-Boot 2013.04-04987-g98fdbdc-dirty (May 03 2015 - 11:46:24)  
  2.   
  3. CPU:   Freescale i.MX6Q rev1.2 at 792 MHz  
  4. CPU:   Temperature 39 C, calibration data: 0x54e4bb69  
  5. Reset cause: POR  
  6. Board: MX6Q/SDL-SabreSD  
  7. I2C:   ready  
  8. DRAM:  1 GiB  
  9. MMC:   FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2  
  10. No panel detected: default to Hannstar-XGA  
  11. Display: Hannstar-XGA (1024x768)  
  12. In:    serial  
  13. Out:   serial  
  14. Err:   serial  
  15. mmc0 is current device  
  16. Net:   Phy not found  
  17. PHY reset timed out  
  18. FEC [PRIME]  
  19. Warning: failed to set MAC address  
  20.   
  21. Normal Boot  
  22. Hit any key to stop autoboot:  0   
  23. mmc0 is current device  
  24.   
  25. MMC read: dev # 0, block # 2048, count 12288 ... 12288 blocks read: OK  
  26.   
  27. MMC read: dev # 0, block # 20480, count 2048 ... 2048 blocks read: OK  
  28. ## Booting kernel from Legacy Image at 11ffffc0 ...  
  29.    Image Name:   Linux-3.10.17-80739-g33597e3-dir  
  30.    Image Type:   ARM Linux Kernel Image (uncompressed)  
  31.    Data Size:    5289224 Bytes = 5 MiB  
  32.    Load Address: 12000000  
  33.    Entry Point:  12000000  
  34.    Verifying Checksum ... OK  
  35. ## Flattened Device Tree blob at 18000000  
  36.    Booting using the fdt blob at 0x18000000  
  37.    XIP Kernel Image ... OK  
  38. OK  
  39. Read SW1AB error!  
  40.    Using Device Tree in place at 18000000, end 1800e8e7  
  41.   
  42. Starting kernel ...  
  43.   
  44. Booting Linux on physical CPU 0x0  
  45. Linux version 3.10.17-80739-g33597e3-dirty (lilianrong@lenovo) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1) ) #1 SMP PREEMPT Sun May 3 11:31:37 CST 2015  
  46. CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d  
  47. CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache  
  48. Machine: Freescale i.MX6 Quad/DualLite (Device Tree), model: Freescale i.MX6 Quad SABRE Smart Device Board  
  49. cma: CMA: reserved 320 MiB at 3c000000  
  50. Memory policy: ECC disabled, Data cache writealloc  
  51. PERCPU: Embedded 8 pages/cpu @814fd000 s8896 r8192 d15680 u32768  
  52. Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 260096  
  53. Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk1p1 rootwait rw  
  54. PID hash table entries: 4096 (order: 2, 16384 bytes)  
  55. Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)  
  56. Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)  
  57. Memory: 1024MB = 1024MB total  
  58. Memory: 697768k/697768k available, 350808k reserved, 0K highmem  
  59. Virtual kernel memory layout:  
  60.     vector  : 0xffff0000 - 0xffff1000   (   4 kB)  
  61.     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)  
  62.     vmalloc : 0xc0800000 - 0xff000000   (1000 MB)  
  63.     lowmem  : 0x80000000 - 0xc0000000   (1024 MB)  
  64.     pkmap   : 0x7fe00000 - 0x80000000   (   2 MB)  
  65.     modules : 0x7f000000 - 0x7fe00000   (  14 MB)  
  66.       .text : 0x80008000 - 0x80be704c   (12157 kB)  
  67.       .init : 0x80be8000 - 0x80c2a2c0   ( 265 kB)  
  68.       .data : 0x80c2c000 - 0x80c7c260   ( 321 kB)  
  69.        .bss : 0x80c7c260 - 0x80ce5434   ( 421 kB)  
  70. SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1  
  71. Preemptible hierarchical RCU implementation.  
  72. NR_IRQS:16 nr_irqs:16 16  
  73. L310 cache controller enabled  
  74. l2x0: 16 ways, CACHE_ID 0x410000c7, AUX_CTRL 0x32070000, Cache size: 1048576 B  
  75. sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms  
  76. CPU identified as i.MX6Q, silicon rev 1.2  
  77. Console: colour dummy device 80x30  
  78. Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)  
  79. pid_max: default: 32768 minimum: 301  
  80. Mount-cache hash table entries: 512  
  81. CPU: Testing write buffer coherency: ok  
  82. CPU0: thread -1, cpu 0, socket 0, mpidr 80000000  
  83. Setting up static identity map for 0x80610608 - 0x80610660  
  84. CPU1: Booted secondary processor  
  85. CPU1: thread -1, cpu 1, socket 0, mpidr 80000001  
  86. CPU2: Booted secondary processor  
  87. CPU2: thread -1, cpu 2, socket 0, mpidr 80000002  
  88. CPU3: Booted secondary processor  
  89. CPU3: thread -1, cpu 3, socket 0, mpidr 80000003  
  90. Brought up 4 CPUs  
  91. SMP: Total of 4 processors activated (6324.22 BogoMIPS).  
  92. CPU: All CPU(s) started in SVC mode.  
  93. devtmpfs: initialized  
  94. pinctrl core: initialized pinctrl subsystem  
  95. regulator-dummy: no parameters  
  96. NET: Registered protocol family 16  
  97. DMA: preallocated 256 KiB pool for atomic coherent allocations  
  98. Use WDOG2 as reset source  
  99. syscon 20c8000.anatop: regmap [mem 0x020c8000-0x020c8fff] registered  
  100. vdd1p1: 800 <--> 1375 mV at 1125 mV   
  101. vdd3p0: 2800 <--> 3150 mV at 3000 mV   
  102. vdd2p5: 2000 <--> 2750 mV at 2425 mV   
  103. cpu: 725 <--> 1450 mV at 1150 mV   
  104. vddpu: 725 <--> 1450 mV   
  105. vddsoc: 725 <--> 1450 mV at 1200 mV   
  106. syscon 20e0000.iomuxc-gpr: regmap [mem 0x020e0000-0x020e0037] registered  
  107. syscon 21bc000.ocotp-ctrl: regmap [mem 0x021bc000-0x021bffff] registered  
  108. hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.  
  109. hw-breakpoint: maximum watchpoint size is 4 bytes.  
  110. imx6q-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver  
  111. bio: create slab <bio-0> at 0  
  112. mxs-dma 110000.dma-apbh: initialized  
  113. usb_otg_vbus: 5000 mV   
  114. usb_h1_vbus: 5000 mV   
  115. wm8962-supply: no parameters  
  116. mipi_dsi_pwr_on: no parameters  
  117. sensor-supply: 3300 mV   
  118. i2c-core: driver [max17135] using legacy suspend method  
  119. i2c-core: driver [max17135] using legacy resume method  
  120. SCSI subsystem initialized  
  121. usbcore: registered new interface driver usbfs  
  122. usbcore: registered new interface driver hub  
  123. usbcore: registered new device driver usb  
  124. i2c i2c-0: IMX I2C adapter registered  
  125. i2c i2c-1: IMX I2C adapter registered  
  126. i2c i2c-2: IMX I2C adapter registered  
  127. Linux video capture interface: v2.00  
  128. pps_core: LinuxPPS API ver. 1 registered  
  129. pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>  
  130. PTP clock support registered  
  131. imx-ipuv3 2400000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)  
  132. imx-ipuv3 2800000.ipu: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)  
  133. mxc_mipi_csi2 21dc000.mipi_csi: i.MX MIPI CSI2 driver probed  
  134. mxc_mipi_csi2 21dc000.mipi_csi: i.MX MIPI CSI2 dphy version is 0x3130302a  
  135. MIPI CSI2 driver module loaded  
  136. Advanced Linux Sound Architecture Driver Initialized.  
  137. cfg80211: Calling CRDA to update world regulatory domain  
  138. Switching to clocksource mxc_timer1  
  139. NET: Registered protocol family 2  
  140. TCP established hash table entries: 8192 (order: 4, 65536 bytes)  
  141. TCP bind hash table entries: 8192 (order: 4, 65536 bytes)  
  142. TCP: Hash tables configured (established 8192 bind 8192)  
  143. TCP: reno registered  
  144. UDP hash table entries: 512 (order: 2, 16384 bytes)  
  145. UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)  
  146. NET: Registered protocol family 1  
  147. RPC: Registered named UNIX socket transport module.  
  148. RPC: Registered udp transport module.  
  149. RPC: Registered tcp transport module.  
  150. RPC: Registered tcp NFSv4.1 backchannel transport module.  
  151. hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available  
  152. pureg-dummy: no parameters  
  153. imx6_busfreq busfreq.15: DDR medium rate not supported.  
  154. Bus freq driver module loaded  
  155. VFS: Disk quotas dquot_6.5.2  
  156. Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)  
  157. NFS: Registering the id_resolver key type  
  158. Key type id_resolver registered  
  159. Key type id_legacy registered  
  160. jffs2: version 2.2. (NAND) 漏 2001-2006 Red Hat, Inc.  
  161. fuse init (API version 7.22)  
  162. msgmni has been set to 2002  
  163. io scheduler noop registered  
  164. io scheduler deadline registered  
  165. io scheduler cfq registered (default)  
  166. imx-weim 21b8000.weim: WEIM driver registered.  
  167. mxc_mipi_dsi 21e0000.mipi: i.MX MIPI DSI driver probed  
  168. MIPI DSI driver module loaded  
  169. mxc_sdc_fb fb.30: register mxc display driver ldb  
  170. imx-ipuv3 2800000.ipu: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)  
  171. Console: switching to colour frame buffer device 128x48  
  172. mxc_sdc_fb fb.31: register mxc display driver hdmi  
  173. mxc_hdmi 20e0000.hdmi_video: Detected HDMI controller 0x13:0xa:0xa0:0xc1  
  174. fbcvt: 1920x1080@60: CVT Name - 2.073M9  
  175. mxc_sdc_fb fb.32: register mxc display driver lcd  
  176. mxc_sdc_fb fb.32: ipu0-di0 already in use  
  177. mxc_sdc_fb: probe of fb.32 failed with error -16  
  178. mxc_sdc_fb fb.33: register mxc display driver ldb  
  179. imx-sdma 20ec000.sdma: no iram assigned, using external mem  
  180. imx-sdma 20ec000.sdma: loaded firmware 1.1  
  181. imx-sdma 20ec000.sdma: initialized  
  182. pfuze100-regulator 1-0008: unrecognized pfuze chip ID!  
  183. pfuze100-regulator: probe of 1-0008 failed with error -5  
  184. Serial: IMX driver  
  185. 2020000.serial: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX  
  186. console [ttymxc0] enabled  
  187. serial: Freescale lpuart driver  
  188. [drm] Initialized drm 1.1.0 20060810  
  189. [drm] Initialized vivante 1.0.0 20120216 on minor 0  
  190. brd: module loaded  
  191. loop: module loaded  
  192. Wait for CR ACK error!  
  193. sata phy RX_PLL is stable!  
  194. ahci: SSS flag set, parallel bus scan disabled  
  195. ahci ahci: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode  
  196. ahci ahci: flags: ncq sntf stag pm led clo only pmp pio slum part ccc apst   
  197. scsi0 : ahci_platform  
  198. ata1: SATA max UDMA/133 mmio [mem 0x02200000-0x02203fff] port 0x100 irq 71  
  199. m25p80 spi32766.0: found mr25h256, expected m25p32  
  200. m25p80 spi32766.0: mr25h256 (32 Kbytes)  
  201. spi_imx 2008000.ecspi: probed  
  202. CAN device driver interface  
  203. fec 2188000.ethernet (unregistered net_device): Invalid MAC address: 00:00:00:00:00:00  
  204. fec 2188000.ethernet (unregistered net_device): Using random MAC address: 1a:54:2d:73:ce:bf  
  205. libphy: fec_enet_mii_bus: probed  
  206. fec 2188000.ethernet eth0: registered PHC device 0  
  207. ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver  
  208. usbcore: registered new interface driver usb-storage  
  209. ci_hdrc ci_hdrc.1: doesn't support gadget  
  210. ci_hdrc ci_hdrc.1: EHCI Host Controller  
  211. ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1  
  212. ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00  
  213. hub 1-0:1.0: USB hub found  
  214. hub 1-0:1.0: 1 port detected  
  215. mousedev: PS/2 mouse device common for all mice  
  216. elan-touch 2-0010: elan - Read Hello Packet Failed  
  217. elan-touch: probe of 2-0010 failed with error -22  
  218. egalax_ts 1-0004: Failed to read firmware version  
  219. egalax_ts: probe of 1-0004 failed with error -5  
  220. egalax_ts 2-0004: Failed to read firmware version  
  221. egalax_ts: probe of 2-0004 failed with error -5  
  222. input: max11801_ts as /devices/soc0/soc.1/2100000.aips-bus/21a4000.i2c/i2c-1/1-0048/input/input0  
  223. i2c-core: driver [isl29023] using legacy suspend method  
  224. i2c-core: driver [isl29023] using legacy resume method  
  225. snvs_rtc 20cc034.snvs-rtc-lp: rtc core: registered 20cc034.snvs-rtc-lp as rtc0  
  226. i2c /dev entries driver  
  227. mxc_v4l2_output v4l2_out.38: V4L2 device registered as video16  
  228. mxc_v4l2_output v4l2_out.38: V4L2 device registered as video17  
  229. mxc_v4l2_output v4l2_out.38: V4L2 device registered as video18  
  230. mxc_v4l2_output v4l2_out.38: V4L2 device registered as video19  
  231. mxc_v4l2_output v4l2_out.38: V4L2 device registered as video20  
  232. ata1: SATA link down (SStatus 0 SControl 300)  
  233. max11801_ts 1-0048: FIFO_RD_AUX_MSB read fails  
  234. max11801_ts 1-0048: FIFO_RD_AUX_MSB read fails  
  235. max11801_ts 1-0048: FIFO_RD_AUX_MSB read fails  
  236. max11801_ts 1-0048: FIFO_RD_AUX_MSB read fails  
  237. max11801_ts 1-0048: FIFO_RD_AUX_MSB read fails  
  238. max11801_ts 1-0048: FIFO_RD_AUX_MSB read fails  
  239. max11801_ts 1-0048: FIFO_RD_AUX_MSB read fails  
  240. max11801_ts 1-0048: FIFO_RD_AUX_MSB read fails  
  241. max11801_ts 1-0048: FIFO_RD_AUX_MSB read fails  
  242. max11801_ts 1-0048: FIFO_RD_AUX_MSB read fails  
  243. max11801_ts 1-0048: FIFO_RD_AUX_MSB read fails  
  244. max11801_ts 1-0048: FIFO_RD_AUX_MSB read fails  
  245. usb 1-1: new high-speed USB device number 2 using ci_hdrc  
  246. mag3110 2-000e: check mag3110 chip ID  
  247. mag3110 2-000e: read chip ID 0xfffffffb is not equal to 0xc4!  
  248. mag3110: probe of 2-000e failed with error -22  
  249. i2c-core: driver [mag3110] using legacy suspend method  
  250. i2c-core: driver [mag3110] using legacy resume method  
  251. mma8451 0-001c: read chip ID 0x1 is not equal to 0x1a or 0x2a!  
  252. mma8451: probe of 0-001c failed with error -22  
  253. imx2-wdt 20bc000.wdog: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=0)  
  254. cpuidle: using governor ladder  
  255. cpuidle: using governor menu  
  256. sdhci: Secure Digital Host Controller Interface driver  
  257. sdhci: Copyright(c) Pierre Ossman  
  258. sdhci-pltfm: SDHCI platform and OF driver helper  
  259. mmc0: no vqmmc regulator found  
  260. mmc0: no vmmc regulator found  
  261. mmc0: SDHCI controller on 2194000.usdhc [2194000.usdhc] using ADMA  
  262. mmc1: no vqmmc regulator found  
  263. mmc1: no vmmc regulator found  
  264. hub 1-1:1.0: USB hub found  
  265. hub 1-1:1.0: 4 ports detected  
  266. mmc1: SDHCI controller on 2198000.usdhc [2198000.usdhc] using ADMA  
  267. mmc2: no vqmmc regulator found  
  268. mmc2: no vmmc regulator found  
  269. mmc0: new high speed SDHC card at address e624  
  270. mmcblk0: mmc0:e624 SS08G 7.40 GiB   
  271. mmcblk0: unknown partition table  
  272. mmc2: SDHCI controller on 219c000.usdhc [219c000.usdhc] using ADMA  
  273. mmc2: BKOPS_EN bit is not set  
  274. mmc2: new high speed DDR MMC card at address 0001  
  275. mmcblk1: mmc2:0001 008G92 7.28 GiB   
  276. mmcblk1boot0: mmc2:0001 008G92 partition 1 4.00 MiB  
  277. mmcblk1boot1: mmc2:0001 008G92 partition 2 4.00 MiB  
  278. mmcblk1rpmb: mmc2:0001 008G92 partition 3 512 KiB  
  279. mmcblk1: p1 p2 p3 < p5 p6 p7 > p4  
  280. mmcblk1boot1: unknown partition table  
  281. mmcblk1boot0: unknown partition table  
  282. Galcore version 4.6.9.9754  
复制代码


  总结

  通过以上修改,内核已经可以在开发板上成功启动了。从Log上可以清楚的看到,kernel已经识别到了SD卡,但是不识别分区,后面的文章将讲述如何挂载根文件系统。如有错误,请帮忙指出;有疑问可以留言讨论。







e_donkey 发表于 2018-12-12 16:28:56 | 显示全部楼层
没人回帖??现在e9v1版本   天嵌移植好的最新内核是哪个版本?
toxggo 发表于 2019-4-8 21:22:59 | 显示全部楼层
围观大佬围观大佬围观大佬围观大佬围观大佬围观大佬
hbyiwen 发表于 2019-5-11 11:16:44 | 显示全部楼层
群主,请教一下,如果从linux kernel官网上下载的内核源码,要移植到IMX6怎么做?谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-20 02:18 , Processed in 1.031250 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表