最近在调试SD的时候,在板子开机之后两个SD卡座都是能正常读取的,但后来忘了把SD卡取下来,之后再开机,发现居然跑到半路就死机了,而且只有TF1有这现象,TF2插卡开机正常。

在TF1插入SD卡启动时的log:

U-Boot 2009.08-00705-g064ce51-dirty ( 7?.25 2015 - 14:45:07)
CPU: Freescale i.MX6 family TO1.2 at 792 MHz
Thermal sensor with ratio = 172
Temperature:   40 C, calibration data 0x54149e7d
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock     : 66000000Hz
ipg per clock : 66000000Hz
uart clock    : 80000000Hz
cspi clock    : 60000000Hz
ahb clock     : 132000000Hz
axi clock   : 198000000Hz
emi_slow clock: 99000000Hz
ddr clock     : 396000000Hz
usdhc1 clock  : 198000000Hz
usdhc2 clock  : 198000000Hz
usdhc3 clock  : 198000000Hz
usdhc4 clock  : 198000000Hz
nfc clock     : 24000000Hz
Board: i.MX6DL/Solo-SABRESD: unknown-board Board: 0x61012 [POR ]
Boot Device: MMC
I2C:   ready
DRAM:   1 GB
MMC:   FSL_ESDHC: 0,FSL_ESDHC: 1,FSL_ESDHC: 2,FSL_ESDHC: 3
*** Warning - bad CRC or MMC, using default environment
Error: no valid bmp image at 30000000
mxcfb: Error initializing panel.
In:    serial
Out:   serial
Err:   serial
U-Boot 2009.08-00705-g064ce51-dirty ( 7?.25 2015 - 14:45:07)
CPU: Freescale i.MX6 family TO1.2 at 792 MHz
Thermal sensor with ratio = 172
Temperature:   42 C, calibration data 0x54149e7d
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock     : 66000000Hz
ipg per clock : 66000000Hz
uart clock    : 80000000Hz
cspi clock    : 60000000Hz
ahb clock     : 132000000Hz
axi clock   : 198000000Hz
emi_slow clock: 99000000Hz
ddr clock     : 396000000Hz
usdhc1 clock  : 198000000Hz
usdhc2 clock  : 198000000Hz
usdhc3 clock  : 198000000Hz
usdhc4 clock  : 198000000Hz
nfc clock     : 24000000Hz
Board: i.MX6DL/Solo-SABRESD: unknown-board Board: 0x61012 [POR ]
Boot Device: MMC
I2C:   ready
DRAM:   1 GB
MMC:   FSL_ESDHC: 0,FSL_ESDHC: 1,FSL_ESDHC: 2,FSL_ESDHC: 3
*** Warning - bad CRC or MMC, using default environment
Error: no valid bmp image at 30000000
mxcfb: Error initializing panel.
In:    serial
Out:   serial
Err:   serial
## Unable to use MMC-MEDIA:1 for fatCard did not respond to voltage select!
MMC2 card init failed!
## normal startup!
i2c: I2C1 SDA is low, start i2c recovery...
I2C1 Recovery success
Recovery key pressed
Recovery command file founded!
recovery on bootdev: 7
setup env for recovery..
Net:   got MAC address from IIM: 00:00:00:00:00:00
FEC0 [PRIME]
Hit any key to stop autoboot:  0
kernel   @ 10808000 (4843080)
ramdisk  @ 11800000 (1050917)
kernel cmdline:
use boot.img command line:
console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off video=mxcfb2:off fbmem=10M fb0base=0x27b00000 vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale androidboot.serialno=1b0e31d4e302a50e
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Initializing cgroup subsys cpu
Linux version 3.0.35-06497-gcc45965 (robin@robin-virtual-machine) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #1 SMP PREEMPT Sat May 16 17:57:16 CST 2015
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: Freescale i.MX 6Quad/DualLite/Solo Sabre-SD Board
Ignoring unrecognised tag 0x54410008
Memory policy: ECC disabled, Data cache writealloc
CPU identified as i.MX6DL/SOLO, silicon rev 1.2
PERCPU: Embedded 7 pages/cpu @c133e000 s6528 r8192 d13952 u32768
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 208128
Kernel command line: console=ttymxc0,115200 init=/init video=mxcfb0:dev=ldb,bpp=32 video=mxcfb1:off video=mxcfb2:off fbmem=10M fb0base=0x27b00000 vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=freescale androidboot.serialno=1b0e31d4e302a50e
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 379MB 378MB 64MB = 821MB total
Memory: 819512k/819512k available, 229064k reserved, 441344K highmem
Virtual kernel memory layout:
vector  : 0xffff0000 - 0xffff1000   (   4 kB)
fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
DMA     : 0xfbe00000 - 0xffe00000   (  64 MB)
vmalloc : 0xd9800000 - 0xf2000000   ( 392 MB)
lowmem  : 0xc0000000 - 0xd9000000   ( 400 MB)
pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
modules : 0xbf000000 - 0xbfe00000   (  14 MB)
.init : 0xc0008000 - 0xc0047000   ( 252 kB)
.text : 0xc0047000 - 0xc0910584   (8998 kB)
.data : 0xc0912000 - 0xc09ac470   ( 618 kB)
.bss : 0xc09ac494 - 0xc0b34fbc   (1571 kB)
Preemptible hierarchical RCU implementation.
NR_IRQS:624
MXC GPIO hardware
sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms
Set periph_clk's parent to pll2_pfd_400M!
arm_max_freq=800MHz
MXC_Early serial console at MMIO 0x2020000 (options '115200')
bootconsole [ttymxc0] enabled
Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)
pid_max: default: 32768 minimum: 301
Security Framework initialized
SELinux:  Initializing.
Mount-cache hash table entries: 512
Initializing cgroup subsys debug
Initializing cgroup subsys cpuacct
Initializing cgroup subsys freezer
CPU: Testing write buffer coherency: ok
hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available
CPU1: Booted secondary processor
Brought up 2 CPUs
SMP: Total of 2 processors activated (3162.11 BogoMIPS).
print_constraints: dummy:
NET: Registered protocol family 16
print_constraints: vddpu: 725 <--> 1300 mV at 700 mV fast normal
print_constraints: vddcore: 725 <--> 1300 mV at 1150 mV fast normal
print_constraints: vddsoc: 725 <--> 1300 mV at 1200 mV fast normal
print_constraints: vdd2p5: 2000 <--> 2775 mV at 2400 mV fast normal
print_constraints: vdd1p1: 800 <--> 1400 mV at 1100 mV fast normal
print_constraints: vdd3p0: 2625 <--> 3400 mV at 3000 mV fast normal
ram_console: got buffer at 3ff00000, size 100000
ram_console: uncorrectable error in header
ram_console: no valid data in buffer (sig = 0x00000000)
console [ram-1] enabled
hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
hw-breakpoint: 1 breakpoint(s) reserved for watchpoint single-step.
hw-breakpoint: maximum watchpoint size is 4 bytes.
L310 cache controller enabled
l2x0: 16 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x32050000, Cache size: 524288 B
bio: create slab at 0
mxs-dma mxs-dma-apbh: initialized
print_constraints: SPKVDD: 4200 mV
print_constraints: vmmc: 3300 mV
vgaarb: loaded
SCSI subsystem initialized
spi_imx imx6q-ecspi.0: probed
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Freescale USB OTG Driver loaded, $Revision: 1.55 $
mc_pfuze 1-0008: recv failed!:-5,0
mc_pfuze: probe of 1-0008 failed with error -1
mxc_mipi_csi2 mxc_mipi_csi2: i.MX MIPI CSI2 driver probed
mxc_mipi_csi2 mxc_mipi_csi2: i.MX MIPI CSI2 dphy version is 0x3130302a
MIPI CSI2 driver module loaded
Advanced Linux Sound Architecture Driver Version 1.0.24.
Bluetooth: Core ver 2.16
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO socket layer initialized
max17135_regulator_init abort: EPDC not enabled
max17135 2-0048: PMIC MAX17135 for eInk display
i2c-core: driver [max17135] using legacy suspend method
i2c-core: driver [max17135] using legacy resume method
Switching to clocksource mxc_timer1
NET: Registered protocol family 2
IP route cache hash table entries: 16384 (order: 4, 65536 bytes)
TCP established hash table entries: 65536 (order: 7, 524288 bytes)
TCP bind hash table entries: 65536 (order: 7, 786432 bytes)
TCP: Hash tables configured (established 65536 bind 65536)
TCP reno registered
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
PCI: CLS 0 bytes, default 32
Unpacking initramfs...
Freeing initrd memory: 1024K
PMU: registered new PMU device of type 0
Static Power Management for Freescale i.MX6
wait mode is enabled for i.MX6
cpaddr = d9820000 suspend_iram_base=d98b4000
PM driver module loaded
iMX6 PCIe PCIe RC mode imx_pcie_pltfm_probe entering.
每次都一样,跑到这就死了..........
后来拿正常启动的log做比较,发现不插SD和插SD卡启动的内核居然还不是同一个,两个内核的编译日期都不同:
不插SD卡的启动log

Starting kernel ...
Uncompressing Linux... done, booting the kernel.
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.0.35-06504-g68784b2-dirty (robin@robin-virtual-machine) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #29 SMP PREEMPT Mon Jul 27 09:48:34 CST 2015
[    0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache

插入SD卡的启动log
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Initializing cgroup subsys cpu
Linux version 3.0.35-06497-gcc45965 (robin@robin-virtual-machine) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #1 SMP PREEMPT Sat May 16 17:57:16 CST 2015
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache

后来在《Android User's Guide》中发现uboot参数需要设置

比较两种启动方式的uboot参数,启动果然不一样,把插入SD启动的uboot中的参数bootcmd改为
U-Boot > setenv fastboot_dev mmc3 [eMMC as fastboot deivce]

U-Boot > setenv bootcmd booti mmc3      [Load the boot.img from eMMC]

U-Boot > saveenv

U-Boot > run bootcmd

发现也能正常启动了

但关机后又不能启动了,所以还得重新编译下uboot,把  #define CONFIG_ANDROID_RECOVERY 屏蔽掉重新编译就Ok了

IMX6DL 在Android4.4.2版本插入SD卡不能开机相关推荐

  1. 插入SD卡,复制粘贴不了,原来是这个原因造成的

    插入SD卡,复制粘贴不了,原来是这个原因造成的

  2. 13-mac中插入SD卡无法格式化,无法删除文件,只读

    MAC笔记本电脑出入SD卡的时候,无法删除里面的内容,右键没有删除的选项,在terminal中运行命令rm -rf ./* 出错说是read only file system 尝试了很多种方法,运行了 ...

  3. android 双sd卡,华为Mate7如何实现双卡双待同时插入SD卡 华为Mate7双卡双待使用教程...

    手机内部空间一直都是寸土寸金的,所以很多手机都不支持TF卡就是这个原因.但是华为发布的华为Mate7确实支持双卡双待的同时支持SD,虽然会占用一个卡槽.下面就一起来看看如何实现一个卡槽双待的吧,希望可 ...

  4. 联想拯救者y7000p加内存条_联想 拯救者Y7000P 如何插入SD卡?

    电脑能力主要看处理器和显卡. 办公用途,平面设计类吃处理器的能力. 游戏,3d设计类吃显卡能力. 不管那种需求,内存容量都是需要有合理的选择(类如看机器是否支持扩展). 不管台式本子都一样. 本子的能 ...

  5. tiny4412 uboot 2020.10版本移植(四)——uboot修改支持sd卡、eMMC引导内核及其他一些杂项设置

    本文在<tiny4412 uboot 2020.10版本移植(三)--uboot初步启动> 的基础上继续向tiny4412 uboot 2020.10版添加功能. 主要有三块内容:1. D ...

  6. 读卡器(8年前的)插上SD卡提示未插入修复教程,仅适用于放置较久的读卡器。

    前提:SD能够正常使用 1.插入SD卡的读卡器,在电脑中弹出如下提示: 2.此时排除了SD损坏的原因,直接对读卡器下手了,拆解图如下,构造还是比较简单的. 3.由于放置时间较长可能是电路板上发生了氧化 ...

  7. Android 监听SD卡插入与拔出

    Android 监听SD卡插入与拔出 简单记录一下Android 如何监听SD卡插入与拔出,注意事项: 继承广播: public class SdStatusReceiver extends Broa ...

  8. 【树莓派】树莓派SD卡系统镜像系统备份方法

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 先感谢漂移菌的技术支持,耐心.细致的帮我解决了一个困扰我很久的问题--树莓派系统备份问 ...

  9. mac os android sd卡,关于 Mac 上的 SD 和 SDXC 卡插槽

    什么是 SD? SD 是指那些符合非易失性存储卡 SD 标准的设备.请访问 SD 协会网站,以了解详细信息. SD 卡插槽对可插入的存储卡的大小有没有限制? 有.存储卡的 SD 卡规格为 32 毫米 ...

最新文章

  1. PHP预防XSS攻击,ajax跨域攻击的方法
  2. Thymeleaf 3 – Thymeleaf 3和Spring MVC快速入门
  3. leetcode 134. 加油站 思考分析
  4. java能调用python吗_如何使用运行时在Java中调用python程序 - java
  5. Citrix Receiver for Mobile Phone
  6. 25岁做什么,可在5年后受益匪浅?
  7. 判断页面环境是否在小程序的webview中
  8. C++视频和讲义下载地址
  9. 经典病毒:熊猫烧香函数全分析
  10. 微信小程序视频直播开发实现流程
  11. 自己动手——实现台达PLC远程监控数据采集
  12. 实体机黑苹果安装教程
  13. 【3】令人头疼—在安装pyenchant外部包时产生的意外事件
  14. iter()——迭代器
  15. Java设计一个测桃花模块_20145209刘一阳《JAVA程序设计》第一周课堂测试
  16. iOS模拟器iOS Simulator详细图文使用教程
  17. 面试官:消息队列 MQ/ JMS/ Kafka 有什么区别?
  18. MyBatis引起的SQL语法错误
  19. 网站搜索引擎优化指南
  20. 如何检测是否安装了.NET 2.0和.NET 3.0 [ZT]

热门文章

  1. Mysql索引的本质深入浅出(一)
  2. 新春思考:如何用区块链与投证保护“一杯严选”「见茶卸甲」级好茶
  3. super_status_bar与status_bar的关系
  4. Neo4j 新手入门指南
  5. Android 多国家语言适配
  6. 促双碳|智慧能源管理解决方案
  7. 安防工程商选择千兆POE交换机的注意事项
  8. 建筑垃圾运输车辆监管系统,渣土车管理实施方案,
  9. 数据清洗中异常值(离群值)的判别和处理方法
  10. 【IoT】加密与安全:哈希 Hash 算法用途与原理解析