导致这个问题的原因是SD卡读rootfs 的时候出现问题,加延时或者多读几次就好了,emmc 也存在同样的问题。
[ 0.000000] On node 0 totalpages: 244992
[ 0.000000] free_area_init_node: node 0, pgdat c0690700, node_mem_map ef6b0000
[ 0.000000] Normal zone: 1728 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 180224 pages, LIFO batch:31
[ 0.000000] HighMem zone: 64768 pages, LIFO batch:15
[ 0.000000] DRA722 ES1.0
[ 0.000000] PERCPU: Embedded 11 pages/cpu @ef64e000 s14848 r8192 d22016 u45056
[ 0.000000] pcpu-alloc: s14848 r8192 d22016 u45056 alloc=11*4096
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 243264
[ 0.000000] Kernel command line: console=ttyO0,115200n8 elevator=noop root=/dev/mmcblk0p2 rw rootwait earlyprintk fixrtc omapdrm.num_crtc=2 consoleblank=0 cma=64M rootfstype=ext4 snd.slots_reserved=1,1 loglevel=8 clk_ignore_unused init=/home/root/init-demo.sh
[ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Memory: 471232K/979968K available (5175K kernel code, 232K rwdata, 984K rodata, 304K init, 256K bss, 295744K reserved, 212992K cma-reserved, 193536K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xf0800000 - 0xff800000 ( 240 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xf0000000 ( 768 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc060bf5c (6160 kB)
[ 0.000000] .init : 0xc060c000 - 0xc0658000 ( 304 kB)
[ 0.000000] .data : 0xc0658000 - 0xc0692078 ( 233 kB)
[ 0.000000] .bss : 0xc0694000 - 0xc06d43f4 ( 257 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] x09Build-time adjustment of leaf fanout to 32.
[ 0.000000] x09RCU restricting CPUs from NR_CPUS=2 to nr_cpu_ids=1.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=1
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] ti_dt_clocks_register: failed to lookup clock node gmac_gmii_ref_clk_div
[ 0.000000] OMAP clockevent source: timer1 at 32786 Hz
[ 0.000000] Architected cp15 timer(s) running at 6.14MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x16af5adb9, max_idle_ns: 440795202250 ns
[ 0.000005] sched_clock: 56 bits at 6MHz, resolution 162ns, wraps every 4398046511023ns
[ 0.008313] Switching to timer-based delay loop, resolution 162ns
[ 0.014963] clocksource: 32k_counter: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 58327039986419 ns
[ 0.025228] OMAP clocksource: 32k_counter at 32768 Hz
[ 0.030952] Console: colour dummy device 80x30
[ 0.035610] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
[ 0.042407] This ensures that you still see kernel messages. Please
[ 0.048928] update your kernel commandline.
[ 0.053321] Calibrating delay loop (skipped), value calculated using timer frequency.. 12.29 BogoMIPS (lpj=61475)
[ 0.063964] pid_max: default: 32768 minimum: 301
[ 0.068876] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.075766] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.083630] Initializing cgroup subsys io
[ 0.087863] Initializing cgroup subsys memory
[ 0.092433] Initializing cgroup subsys devices
[ 0.097085] Initializing cgroup subsys freezer
[ 0.101748] Initializing cgroup subsys perf_event
[ 0.106665] Initializing cgroup subsys pids
[ 0.111066] CPU: Testing write buffer coherency: ok
[ 0.116368] /cpus/cpu@0 missing clock-frequency property
[ 0.121914] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.127836] Setting up static identity map for 0x80008340 - 0x800083a0
[ 0.178055] Brought up 1 CPUs
[ 0.181188] SMP: Total of 1 processors activated (12.29 BogoMIPS).
[ 0.187619] CPU: All CPU(s) started in HYP mode.
[ 0.192456] CPU: Virtualization extensions available.
[ 0.198698] devtmpfs: initialized
[ 0.232672] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
[ 0.241428] omap_hwmod: l3_main_2 using broken dt data from ocp
[ 0.259544] omap_hwmod: dcan1: _wait_target_disable failed
[ 0.338847] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.349056] futex hash table entries: 256 (order: 2, 16384 bytes)
[ 0.363346] pinctrl core: initialized pinctrl subsystem
[ 0.369618] NET: Registered protocol family 16
[ 0.375215] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.412431] cpuidle: using governor ladder
[ 0.442453] cpuidle: using governor menu
[ 0.453616] platform 43300000.edma: Cannot lookup hwmod 'tpcc'
[ 0.459971] platform 43400000.tptc: Cannot lookup hwmod 'tptc0'
[ 0.466427] platform 43500000.tptc: Cannot lookup hwmod 'tptc1'
[ 0.473707] OMAP GPIO hardware version 0.1
[ 0.484528] irq: no irq domain found for /ocp/l4@4a000000/scm@2000/pinmux@1400 !
[ 0.507831] platform 58000000.dss: Cannot lookup hwmod 'dss_core'
[ 0.518786] platform 58001000.dispc: Cannot lookup hwmod 'dss_dispc'
[ 0.525666] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.533969] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.540531] omap4_sram_init:Unable to allocate sram needed to handle errata I688
[ 0.548209] omap4_sram_init:Unable to get sram pool needed to handle errata I688
[ 0.556060] OMAP DMA hardware revision 0.0
[ 0.636564] omap-dma-engine 4a056000.dma-controller: OMAP DMA engine driver (LinkedList1/2/3 supported)
[ 0.646830] edma3-tptc 43400000.tptc: _od_fail_runtime_resume: FIXME: missing hwmod/omap_dev info
[ 0.656076] edma3-tptc 43500000.tptc: _od_fail_runtime_resume: FIXME: missing hwmod/omap_dev info
[ 0.665504] edma 43300000.edma: _od_fail_runtime_resume: FIXME: missing hwmod/omap_dev info
[ 0.674172] edma 43300000.edma: pm_runtime_get_sync() failed
[ 0.683820] omap-iommu 40d01000.mmu: 40d01000.mmu registered
[ 0.689867] omap-iommu 40d02000.mmu: 40d02000.mmu registered
[ 0.695926] omap-iommu 58882000.mmu: 58882000.mmu registered
[ 0.701946] omap-iommu 55082000.mmu: 55082000.mmu registered
[ 0.710547] palmas 0-0058: Irq flag is 0x00000000
[ 0.729472] palmas 0-0058: Muxing GPIO 51, PWM 0, LED 2
[ 0.788842] omap_i2c 48070000.i2c: bus 0 rev0.12 at 400 kHz
[ 0.794832] media: Linux media interface: v0.10
[ 0.799624] Linux video capture interface: v2.00
[ 0.804485] EDAC MC: Ver: 3.0.0
[ 0.810150] omap-mailbox 48840000.mailbox: omap mailbox rev 0x400
[ 0.816673] omap-mailbox 48842000.mailbox: omap mailbox rev 0x400
[ 0.823951] clocksource: Switched to clocksource arch_sys_counter
[ 0.840016] NET: Registered protocol family 2
[ 0.845105] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.852485] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[ 0.859322] TCP: Hash tables configured (established 8192 bind 8192)
[ 0.865990] UDP hash table entries: 512 (order: 2, 16384 bytes)
[ 0.872180] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[ 0.878932] NET: Registered protocol family 1
[ 0.884513] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
[ 0.911522] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.917643] ntfs: driver 2.1.32 [Flags: R/O].
[ 0.923455] bounce: pool size: 64 pages
[ 0.927685] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[ 0.935411] io scheduler noop registered (default)
[ 0.940415] io scheduler deadline registered
[ 0.944971] io scheduler cfq registered
[ 0.952806] pinctrl-single 4a003400.pinmux: 282 pins at pa fc003400 size 1128
[ 0.960370] pinctrl-single 4a002e8c.pinmux: 1 pins at pa fc002e8c size 4
[ 1.024075] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[ 1.033528] omap8250 4806a000.serial: Can't verify DMA configuration (-19)
[ 1.041194] 4806a000.serial: ttyS0 at MMIO 0x4806a000 (irq = 301, base_baud = 3000000) is a 8250
[ 1.050421] console [ttyS0] enabled
[ 1.050421] console [ttyS0] enabled
[ 1.057624] bootconsole [earlycon0] disabled
[ 1.057624] bootconsole [earlycon0] disabled
[ 1.066860] omap8250 48020000.serial: Can't verify DMA configuration (-19)
[ 1.074246] 48020000.serial: ttyS2 at MMIO 0x48020000 (irq = 302, base_baud = 3000000) is a 8250
[ 1.084193] [drm] Initialized drm 1.1.0 20060810
[ 1.089806] vsys_3v3: supplied by evm_12v0
[ 1.093933] ldo5: supplied by vsys_3v3
[ 1.098180] omapdss_dss 58000000.dss: _od_fail_runtime_resume: FIXME: missing hwmod/omap_dev info
[ 1.107141] ------------[ cut here ]------------
[ 1.111778] WARNING: CPU: 0 PID: 1 at drivers/gpu/drm/omapdrm/dss/dss.c:868 0xc02faa7c()
[ 1.119915] Modules linked in:
[ 1.122990] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.4.84+ #12
[ 1.129107] Hardware name: Generic DRA72X (Flattened Device Tree)
[ 1.135222] Backtrace:
[ 1.137684] Function entered at [<c0013a7c>] from [<c0013c68>]
[ 1.143539] r7:c02faa7c r6:60000013 r5:00000000 r4:c06741d0
[ 1.149252] Function entered at [<c0013c50>] from [<c0235ec8>]
[ 1.155107] Function entered at [<c0235e3c>] from [<c00377b4>]
[ 1.160962] r7:c02faa7c r6:00000364 r5:00000009 r4:00000000
[ 1.166673] Function entered at [<c003772c>] from [<c0037888>]
[ 1.172527] r8:ef6a4594 r7:ef21fe00 r6:ef21fe10 r5:00000000 r4:ffffffed
[ 1.179293] Function entered at [<c0037864>] from [<c02faa7c>]
[ 1.185146] Function entered at [<c02faa38>] from [<c02fae64>]
[ 1.191000] r5:00000000 r4:c06c8978
[ 1.194602] Function entered at [<c02faad8>] from [<c03294a8>]
[ 1.200456] r9:c060c578 r8:ee90d180 r7:ee90d0d0 r6:ee90d100 r5:00000001 r4:ee90d0d8
[ 1.208269] Function entered at [<c03293d4>] from [<c03296c0>]
[ 1.214121] r9:c060c578 r8:00000000 r7:ee90d180 r6:c067f9e8 r5:00000000 r4:ee90d100
[ 1.221933] Function entered at [<c0329628>] from [<c02fec44>]
[ 1.227786] r7:fffffdfb r6:c067e560 r5:ef230210 r4:c06cb834
[ 1.233495] Function entered at [<c02fec2c>] from [<c032fd0c>]
[ 1.239350] Function entered at [<c032fcb8>] from [<c032e294>]
[ 1.245203] r7:c067e560 r6:00000000 r5:ef230210 r4:c06cb834
[ 1.250912] Function entered at [<c032e090>] from [<c032e41c>]
[ 1.256766] r9:c060c578 r8:00000065 r7:00000000 r6:ef230244 r5:c067e560 r4:ef230210
[ 1.264576] Function entered at [<c032e388>] from [<c032c51c>]
[ 1.270429] r7:00000000 r6:c032e388 r5:c067e560 r4:00000000
[ 1.276137] Function entered at [<c032c4ac>] from [<c032db80>]
[ 1.281990] r6:c067fcf8 r5:ee900f00 r4:c067e560
[ 1.286646] Function entered at [<c032db5c>] from [<c032d7bc>]
[ 1.292500] Function entered at [<c032d614>] from [<c032ebbc>]
[ 1.298353] r7:c0646834 r6:c064ac90 r5:00000000 r4:c067e560
[ 1.304061] Function entered at [<c032eb3c>] from [<c032fc34>]
[ 1.309914] r5:00000000 r4:c067fcf8
[ 1.313515] Function entered at [<c032fbec>] from [<c062ef00>]
[ 1.319368] r5:00000000 r4:00000001
[ 1.322969] Function entered at [<c062eee4>] from [<c062ee70>]
[ 1.328822] Function entered at [<c062ee2c>] from [<c0009900>]
[ 1.334676] r7:c0646834 r6:c0651f50 r5:c0609fe0 r4:c062ee2c
[ 1.340385] Function entered at [<c00097f4>] from [<c060cf18>]
[ 1.346239] r10:00000007 r9:c060c578 r8:00000065 r7:c0646834 r6:c0651f50 r5:c0609fe0
[ 1.354135] r4:c0694000
[ 1.356681] Function entered at [<c060cd44>] from [<c050f840>]
[ 1.362534] r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c050f828
[ 1.370432] r4:c0694000
[ 1.372979] Function entered at [<c050f828>] from [<c000fc98>]
[ 1.378832] r5:c050f828 r4:00000000
[ 1.382462] ---[ end trace c38fdc312be35fe5 ]---
[ 1.387148] omapdss_dss 58000000.dss: master bind failed: -19
[ 1.395422] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.402066] [drm] No driver support for vblank timestamp query.
[ 1.408235] [drm] Initialized vdrm 1.0.0 20110917 on minor 0
[ 1.414325] vmemexp device MAJOR num = 247
[ 1.418450] vmemexp class registered
[ 1.422150] /dev/vmemexp device registered
[ 1.426305] ioctl DBUFIOC_EXPORT_VIRTMEM = -1072899120
[ 1.432818] i2c /dev entries driver
[ 1.440856] omap_hsmmc 4809c000.mmc: Got CD GPIO
[ 1.446000] evm_3v3: supplied by vsys_3v3
[ 1.450095] evm_3v3_sd: supplied by evm_3v3
[ 1.454402] ldo1: supplied by vsys_3v3
[ 1.504392] omap_hsmmc 480b4000.mmc: no pinctrl state for sdr25 mode
[ 1.510777] omap_hsmmc 480b4000.mmc: no pinctrl state for sdr12 mode
[ 1.523956] omap_hsmmc 480b4000.mmc: no pinctrl state for hs200_1_8v mode
[ 1.564576] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.571578] omap-rproc 55020000.ipu: assigned reserved memory node ipu2_cma@95800000
[ 1.594001] remoteproc0: 55020000.ipu is available
[ 1.598899] remoteproc0: Note: remoteproc is still under development and considered experimental.
[ 1.623950] remoteproc0: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
[ 1.644041] remoteproc0: Direct firmware load for dra7-ipu2-fw.xem4 failed with error -2
[ 1.652253] remoteproc0: Falling back to user helper
[ 1.657525] omap-rproc 40800000.dsp: assigned reserved memory node dsp1_cma@99000000
[ 1.674016] remoteproc1: 40800000.dsp is available
[ 1.678914] remoteproc1: Note: remoteproc is still under development and considered experimental.
[ 1.703958] remoteproc1: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
[ 1.724019] remoteproc1: Direct firmware load for dra7-dsp1-fw.xe66 failed with error -2
[ 1.732230] remoteproc1: Falling back to user helper
[ 1.738443] NET: Registered protocol family 10
[ 1.764247] sit: IPv6 over IPv4 tunneling driver
[ 1.769433] NET: Registered protocol family 17
[ 1.773905] NET: Registered protocol family 41
[ 1.794135] omap_voltage_late_init: Voltage driver support not added
[ 1.801147] Power Management for TI OMAP4+ devices.
[ 1.824127] Registering SWP/SWPB emulation handler
[ 1.829797] dmm 4e000000.dmm: workaround for errata i878 in use
[ 1.841937] dmm 4e000000.dmm: initialized all PAT entries
[ 1.868496] hctosys: unable to open rtc device (rtc0)
[ 1.874021] aic_dvdd: disabling
[ 1.877179] vmmcwl_fixed: disabling
[ 1.880850] ldo4: disabling
[ 1.883924] clk: Not disabling unused clocks
[ 1.888901] omap8250 4806a000.serial: failed to request DMA
[ 1.894668] Waiting for root device /dev/mmcblk0p2...
[ 1.927153] mmc0: error -110 whilst initialising SD card
[ 2.017297] mmc1: MAN_BKOPS_EN bit is not set
[ 2.025123] mmc1: new DDR MMC card at address 0001
[ 2.040407] mmcblk0: mmc1:0001 DG4016 14.7 GiB
[ 2.055231] mmcblk0boot0: mmc1:0001 DG4016 partition 1 4.00 MiB
[ 2.071424] mmcblk0boot1: mmc1:0001 DG4016 partition 2 4.00 MiB
[ 2.114075] VFS: Cannot open root device "mmcblk0p2" or unknown-block(179,2): error -6
[ 2.122028] Please append a correct "root=" boot option; here are the available partitions:
[ 2.130687] b300 15388672 mmcblk0 driver: mmcblk
[ 2.136072] b320 4096 mmcblk0boot1 (driver?)
[ 2.141416] b310 4096 mmcblk0boot0 (driver?)
[ 2.153959] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)
[ 2.162440] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)
Resolved!
Subject: [PATCH] solved SD error -110 and Unable to mount root fs on
unknown-block(179,2)
---
drivers/mmc/core/mmc.c | 8 +++++++-
init/do_mounts.c | 17 +++++++++++++++--
init/main.c | 2 +-
3 files changed, 23 insertions(+), 4 deletions(-)
diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index 79a0c26..78226e9 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -2048,10 +2048,16 @@ int mmc_attach_mmc(struct mmc_host *host)
/*
* Detect and init the card.
*/
+ pr_err("before mmc_init_card
");
+ int i_temp;
+ for( i_temp = 0; i_temp< 5; i_temp++){
err = mmc_init_card(host, rocr, NULL);
+ pr_err("%s: error %d whilst initialising MMC card
",
+ mmc_hostname(host), err);
+ }
if (err)
goto err;
-
+ pr_err("after mmc_init_card
");
mmc_release_host(host);
err = mmc_add_card(host->card);
if (err)
diff --git a/init/do_mounts.c b/init/do_mounts.c
index eb171b5..e2e54e8 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -389,11 +389,22 @@ void __init mount_block_root(char *name, int flags)
#else
const char *b = name;
#endif
-
+ int i_temp;
+ printk("-----root wait --fredy added
");
+
get_fs_names(fs_names);
+
retry:
for (p = fs_names; *p; p += strlen(p)+1) {
- int err = do_mount_root(name, p, flags, root_mount_data);
+ for( i_temp =0;i_temp< 10000; i_temp++ ){
+ ; ; ;
+ }
+ int err;
+ for( i_temp =0;i_temp< 30; i_temp++ ){
+ err = do_mount_root(name, p, flags, root_mount_data);
+ printk(" error %d
", err);
+
+
switch (err) {
case 0:
goto out;
@@ -401,6 +412,8 @@ retry:
case -EINVAL:
continue;
}
+ }
+
/*
* Allow the user to distinguish between failed sys_open
* and bad superblock on root device.
diff --git a/init/main.c b/init/main.c
index f21d610..57c219d 100644
--- a/init/main.c
+++ b/init/main.c
@@ -504,7 +504,7 @@ static void __init mm_init(void)
mm_init_dur = read_fast_counter() - mm_init_dur;
}
-volatile int done=1;
+volatile int done=0;
asmlinkage __visible void __init start_kernel(void)
{
--
2.7.4