Hello,
Here's the situation :
- I have a product using the AM3874BCYE80 (rev 2.1)
- We boot on an SD card
- This project exist since 3 years now and we made at least 5 runs of prototypes and production board without having this problem. However, on our last production, 18 out of 20 boards are'nt booting as expected ending with the following log :
U-Boot 2010.06 (Sep 10 2013 - 08:49:25)
TI8148-GP rev 2.1
ARM clk: 600MHz
DDR clk: 333MHz
RAM Configuration:
Bank #0: 80000000 1 GiB
Bank #1: c0000000 1 GiB
Using default environment
The 2nd stage U-Boot will now be auto-loaded
Please do not interrupt the countdown till TI8148_EVM prompt if 2nd stage is already flashed
Hit any key to stop autoboot: 0
mmc1 is available
reading u-boot.bin
192804 bytes read
## Starting application at 0x80800000 ...
U-Boot 2010.06 (Sep 10 2013 - 08:49:47)
TI8148-GP rev 2.1
ARM clk: 600MHz
DDR clk: 333MHz
I2C: ready
RAM Configuration:
Bank #0: 80000000 1 GiB
Bank #1: c0000000 1 GiB
NAND: NAND: Unable to find NAND settings in GPMC Configuration - quitting
0 MiB
*** Warning - bad CRC or NAND, using default environment
Net: <ethaddr> not set. Reading from E-fuse
Detected MACID:0:17:eb:2a:a7:f6
cpsw
Hit any key to stop autoboot: 0
mmc1 is available
reading boot.scr
215 bytes read
Running bootscript from MMC/SD to set the ENV...
## Executing script at 80900000
reading uImage1
1885300 bytes read
## Booting kernel from Legacy Image at 81000000 ...
Image Name: Linux-2.6.37
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1885236 Bytes = 1.8 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Linux version 2.6.37 (root@arozenbe-OptiPlex-780) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #1 Thu Jun 20 15:14:22 EDT 2013
CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: ti8148evm
bootconsole [earlycon0] enabled
reserved size = 0 at 0
Memory policy: ECC disabled, Data cache writeback
OMAP chip is TI8148 2.0
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512
Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p2 rw mem=128M earlyprintk panic=3
PID hash table entries: 512 (order: -1, 2048 bytes)
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 128MB = 128MB total
Memory: 125860k/125860k available, 5212k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xffc00000 - 0xffe00000 ( 2 MB)
vmalloc : 0xc8800000 - 0xf8000000 ( 760 MB)
lowmem : 0xc0000000 - 0xc8000000 ( 128 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.init : 0xc0008000 - 0xc0035000 ( 180 kB)
.text : 0xc0035000 - 0xc038a000 (3412 kB)
.data : 0xc038a000 - 0xc03bf840 ( 215 kB)
SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:375
IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
Total of 128 interrupts on 1 active controller
GPMC revision 6.0
Trying to install interrupt handler for IRQ368
Trying to install interrupt handler for IRQ369
Trying to install interrupt handler for IRQ370
Trying to install interrupt handler for IRQ371
Trying to install interrupt handler for IRQ372
Trying to install interrupt handler for IRQ373
Trying to install interrupt handler for IRQ374
Trying to install type control for IRQ375
Trying to set irq flags for IRQ375
BUG: timer 1 requested
OMAP clockevent source: GPTIMER1 at 20000000 Hz
BUG: timer 4 requested
Console: colour dummy device 80x30
Calibrating delay loop... 598.01 BogoMIPS (lpj=2990080)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
devtmpfs: initialized
omap_voltage_early_init: voltage driver support not added
regulator: core version 0.5
regulator: dummy:
NET: Registered protocol family 16
OMAP GPIO hardware version 0.1
OMAP GPIO hardware version 0.1
OMAP GPIO hardware version 0.1
OMAP GPIO hardware version 0.1
omap_mux_init: Add partition: #1: core, flags: 4
registered ti814x_vpss device
registered TI814x Fan device
registered TI814x Fan device
Registered ti81xx_fb device
bio: create slab <bio-0> at 0
SCSI subsystem initialized
omap_i2c omap_i2c.1: bus 1 rev4.0 at 100 kHz
omap_i2c omap_i2c.2: bus 2 rev4.0 at 100 kHz
omap_i2c omap_i2c.4: bus 4 rev4.0 at 100 kHz
Switching to clocksource gp timer
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
NetWinder Floating Point Emulator V0.97 (double precision)
PMU: registered new PMU device of type 0
omap-iommu omap-iommu.0: ducati registered
omap-iommu omap-iommu.1: sys registered
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 245
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
omap_uart.0: ttyO0 at MMIO 0x48020000 (irq = 72) is a OMAP UART0
console [ttyO0] enabled, bootconsole disabled
console [ttyO0] enabled, bootconsole disabled
omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
brd: module loaded
loop: module loaded
at24 1-0050: 256 byte 24c02 EEPROM (writable)
ahci ahci.0: forcing PORTS_IMPL to 0x1
ahci ahci.0: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode
ahci ahci.0: flags: ncq sntf pm led clo only pmp pio slum part ccc apst
scsi0 : ahci_platform
ata1: SATA max UDMA/133 mmio [mem 0x4a140000-0x4a150fff] port 0x100 irq 16
omap2-nand driver initializing
davinci_mdio davinci_mdio.0: davinci mdio revision 1.6
davinci_mdio davinci_mdio.0: no live phy, scanning all
davinci_mdio: probe of davinci_mdio.0 failed with error -5
mice: PS/2 mouse device common for all mice
i2c /dev entries driver
OMAP Watchdog Timer Rev 0x00: initial timeout 60 sec
NET: Registered protocol family 26
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (1966 buckets, 7864 max)
ctnetlink v0.93: registering with nfnetlink.
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP cubic registered
NET: Registered protocol family 17
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
omap_voltage_late_init: Voltage driver support not added
Detected MACID=0:0:0:0:0:0
mmc0: new high speed SD card at address b368
mmcblk0: mmc0:b368 AF SD 1.86 GiB
mmcblk0: retrying using single block read
mmcblk0: error -84 transferring data, sector 0, nr 8, card status 0x900
end_request: I/O error, dev mmcblk0, sector 0
mmcblk0: error -84 transferring data, sector 1, nr 7, card status 0x900
end_request: I/O error, dev mmcblk0, sector 1
mmcblk0: error -84 transferring data, sector 2, nr 6, card status 0x900
end_request: I/O error, dev mmcblk0, sector 2
mmcblk0: error -84 transferring data, sector 3, nr 5, card status 0x900
end_request: I/O error, dev mmcblk0, sector 3
mmcblk0: error -84 transferring data, sector 4, nr 4, card status 0x900
end_request: I/O error, dev mmcblk0, sector 4
mmcblk0: error -84 transferring data, sector 5, nr 3, card status 0x900
end_request: I/O error, dev mmcblk0, sector 5
mmcblk0: error -84 transferring data, sector 6, nr 2, card status 0x900
end_request: I/O error, dev mmcblk0, sector 6
mmcblk0: error -84 transferring data, sector 7, nr 1, card status 0x900
end_request: I/O error, dev mmcblk0, sector 7
Buffer I/O error on device mmcblk0, logical block 0
mmcblk0: retrying using single block read
mmcblk0: error -84 transferring data, sector 0, nr 8, card status 0x900
end_request: I/O error, dev mmcblk0, sector 0
mmcblk0: error -84 transferring data, sector 1, nr 7, card status 0x900
end_request: I/O error, dev mmcblk0, sector 1
ata1: SATA link down (SStatus 0 SControl 300)
mmcblk0: error -84 transferring data, sector 2, nr 6, card status 0x900
end_request: I/O error, dev mmcblk0, sector 2
mmcblk0: error -84 transferring data, sector 3, nr 5, card status 0x900
end_request: I/O error, dev mmcblk0, sector 3
mmcblk0: error -84 transferring data, sector 4, nr 4, card status 0x900
end_request: I/O error, dev mmcblk0, sector 4
mmcblk0: error -84 transferring data, sector 5, nr 3, card status 0x900
end_request: I/O error, dev mmcblk0, sector 5
mmcblk0: error -84 transferring data, sector 6, nr 2, card status 0x900
end_request: I/O error, dev mmcblk0, sector 6
mmcblk0: error -84 transferring data, sector 7, nr 1, card status 0x900
end_request: I/O error, dev mmcblk0, sector 7
Buffer I/O error on device mmcblk0, logical block 0
mmcblk0: unable to read partition table
VFS: Cannot open root device "mmcblk0p2" or unknown-block(179,2)
Please append a correct "root=" boot option; here are the available partitions:
b300 1954816 mmcblk0 driver: mmcblk
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)
Backtrace:
[<c0043b2c>] (dump_backtrace+0x0/0x110) from [<c02ab670>] (dump_stack+0x18/0x1c)
r7:c7811000 r6:00000000 r5:c00296cc r4:c03bff10
[<c02ab658>] (dump_stack+0x0/0x1c) from [<c02ab6d4>] (panic+0x60/0x184)
[<c02ab674>] (panic+0x0/0x184) from [<c0009210>] (mount_block_root+0x264/0x2b4)
r3:00000000 r2:00000000 r1:c7823f60 r0:c033796c
[<c0008fac>] (mount_block_root+0x0/0x2b4) from [<c00092b4>] (mount_root+0x54/0x68)
[<c0009260>] (mount_root+0x0/0x68) from [<c0009438>] (prepare_namespace+0x170/0x1d4)
r5:c00296cc r4:c03bf8a4
[<c00092c8>] (prepare_namespace+0x0/0x1d4) from [<c0008784>] (kernel_init+0x114/0x154)
r5:c0008670 r4:c03bf840
[<c0008670>] (kernel_init+0x0/0x154) from [<c0067874>] (do_exit+0x0/0x5e4)
r5:c0008670 r4:00000000
Rebooting in 3 seconds..
I inspected the electrical side and everything seems ok... I also tried using the original SDK U-boot.bin, uImage and filesystem ending with the same problem.
I also tried booting another card using that same SD card and it works fine. I was also unable in booting the problematic boards with SD card's from other manufacturer and working well on other cards.
The problem always point toward the board but as the MLO and U-boot are loaded correctly from the SD card, I have hard time understandind what's happening here and why the boot to linux cannot complete...
Is anybody can tell me what "mmcblk0: error -84 transferring data" is...?
We did'nt change a thing on the board nor the code since the last production so what can have turned bad...?
Any clue where to look at will be appreciated...?
Regards!
Sebastien