Hi All ,
I am working with P1011E for the first time and was able to get eMMC chip working at u-boot usinf "mmcinfo" command at u-boot prompt I can see the eMMC configuration as shown below.
GPP-P1> mmcinfo
Device: FSL_SDHC
Manufacturer ID: fe
OEM: 14e
Name: MMC04
Tran Speed: 52000000
Rd Block Len: 512
MMC version 4.0
High Capacity: Yes
Capacity: 3.6 GiB
Bus Width: 4-bit
GPP-P1>
My problem is when load linux over nfs it start complaining about following things . It actually hangs there and never goes to linux prompt. this is a first time board bring up. Below log we can easily identify that it detect the chip but failed for some reason and I was unable to identify the problem after week's of effort can any please suggest me the possible cause for this. Is there specific device tree for p1011E ?? Currently I am using device tree ported from p1020 . Please inbox your suggestion.
TCP cubic registered
Initializing XFRM netlink socket
mmcblk0: mmc0:0001 MMC04G 3.60 GiB
mmcblk0boot0: mmc0:0001 MMC04G partition 1 16.0 MiB
mmcblk0boot1: mmc0:0001 MMC04G partition 2 16.0 MiB
NET: Registered protocol family 10
mmcblk0: unknown partition table
ip6_tables: (C) 2000-2006 Netfilter Core Team
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
NET: Registered protocol family 15
Bridge firewalling registered
Ebtables v2.0 registered
802.1Q VLAN Support v1.8
Registering the dns_resolver key type
rtc-x1205 0-006f: setting system clock to 2016-01-08 04:31:00 UTC (1452227460)
ADDRCONF(NETDEV_UP): eth0: link is not ready
PHY: mdio@ffe24000:01 - Link is Up - 1000/Full
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
IP-Config: Complete:
device=eth0, addr=10.10.30.10, mask=255.255.255.0, gw=10.10.30.1,
host=unirangpp-210, domain=, nis-domain=(none),
bootserver=10.10.10.12, rootserver=10.10.10.12, rootpath=
mmc0: Timeout waiting for hardware interrupt.
mmcblk0boot1: error -110 sending stop command, original cmd response 0x900, card status 0x400900
mmcblk0boot1: error -110 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x0
mmcblk0boot1: retrying using single block read
mmcblk0boot1: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0boot1, sector 0
mmcblk0boot1: error -84 transferring data, sector 1, nr 7, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0boot1, sector 1
mmcblk0boot1: error -84 transferring data, sector 2, nr 6, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0boot1, sector 2
mmcblk0boot1: error -84 transferring data, sector 3, nr 5, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0boot1, sector 3
mmcblk0boot1: error -84 transferring data, sector 4, nr 4, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0boot1, sector 4
mmcblk0boot1: error -84 transferring data, sector 5, nr 3, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0boot1, sector 5
mmcblk0boot1: error -84 transferring data, sector 6, nr 2, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0boot1, sector 6
mmcblk0boot1: error -84 transferring data, sector 7, nr 1, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0boot1, sector 7
Buffer I/O error on device mmcblk0boot1, logical block 0
Thanks in Advance!!
Dhruval
Solved! Go to Solution.
Disable CMD23 support , with p1020 family even if CMD23 is supported by host controller it doesn't work well and lead to erroneous state with old emmc host driver . Thanks everyone for help .
Disable CMD23 support , with p1020 family even if CMD23 is supported by host controller it doesn't work well and lead to erroneous state with old emmc host driver . Thanks everyone for help .
This seems to be a hardware-level problem. Try another card, if all
cards fail, check the interface signals integrity and timing.
Have a great day,
Platon
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Look at the following logs and register dump
sdhci_add_host: ret = request_irq() = 0 ----------------------------------------------------------
sdhci_init: sdhci_reset() done ----------------------------------------------------------
sdhci: =========== REGISTER DUMP (mmc0)===========
sdhci: Sys addr: 0x00000000 | Version: 0x00001201
sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000001
sdhci: Argument: 0x00000000 | Trn mode: 0x00000000
sdhci: Present: 0xff8d00f8 | Host ctl: 0x00000020
sdhci: Power: 0x00000000 | Blk gap: 0x00000000
sdhci: Wake-up: 0x00000000 | Clock: 0x00008008
sdhci: Timeout: 0x00000000 | Int stat: 0x00000000
sdhci: Int enab: 0x007f0003 | Sig enab: 0x007f0003
sdhci: AC12 err: 0x00000000 | Slot int: 0x00001201
sdhci: Caps: 0x05f30000 | Caps_1: 0x10101010
sdhci: Cmd: 0x00000000 | Max curr: 0x00000000
sdhci: Host ctl2: 0x00000000
sdhci: ===========================================
sdhci_init: sdhci_reset() done ----------------------------------------------------------
mmc0: SDHCI controller on ffe2e000.sdhc [ffe2e000.sdhc] using DMA
sdhci_add_host: host added ----------------------------------------------------------
talitos ffe30000.crypto: hwrng
talitos ffe30000.crypto: fsl,sec3.1 algorithms registered in /proc/crypto
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
Initializing PAM driver...
usb 1-1: new high speed USB device number 2 using fsl-ehci
sdhci_init: sdhci_reset() done ----------------------------------------------------------
usb 1-1: New USB device found, idVendor=0424, idProduct=2514
usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected
GACT probability NOT on
netem: version 1.3
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (16117 buckets, 64468 max)
ctnetlink v0.93: registering with nfnetlink.
IPv4 over IPv4 tunneling driver
mmc0: new high speed MMC card at address 0001
GRE over IPv4 demultiplexor driver
GRE over IPv4 tunneling driver
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP cubic registered
Initializing XFRM netlink socket
mmcblk0: mmc0:0001 MMC04G 3.60 GiB
mmcblk0boot0: mmc0:0001 MMC04G partition 1 16.0 MiB
mmcblk0boot1: mmc0:0001 MMC04G partition 2 16.0 MiB
NET: Registered protocol family 10
mmcblk0: unknown partition table
ip6_tables: (C) 2000-2006 Netfilter Core Team
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
NET: Registered protocol family 15
Bridge firewalling registered
Ebtables v2.0 registered
802.1Q VLAN Support v1.8
Registering the dns_resolver key type
rtc-x1205 0-006f: setting system clock to 2016-01-12 05:00:00 UTC (1452574800)
ADDRCONF(NETDEV_UP): eth0: link is not ready
PHY: mdio@ffe24000:01 - Link is Up - 1000/Full
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
IP-Config: Complete:
device=eth0, addr=10.10.30.10, mask=255.255.255.0, gw=10.10.30.1,
host=unirangpp-210, domain=, nis-domain=(none),
bootserver=10.10.10.12, rootserver=10.10.10.12, rootpath=
mmc0: Timeout waiting for hardware interrupt.
sdhci: =========== REGISTER DUMP (mmc0)===========
sdhci: Sys addr: 0x2f4d0000 | Version: 0x00001201
sdhci: Blk size: 0x00000200 | Blk cnt: 0x00000008
sdhci: Argument: 0x00000000 | Trn mode: 0x00000033
sdhci: Present: 0xff8d020a | Host ctl: 0x00000022
sdhci: Power: 0x00000000 | Blk gap: 0x00000000
sdhci: Wake-up: 0x00000000 | Clock: 0x0000011f
sdhci: Timeout: 0x0000000e | Int stat: 0x00000000
sdhci: Int enab: 0x007f000b | Sig enab: 0x007f000b
sdhci: AC12 err: 0x00000000 | Slot int: 0x00001201
sdhci: Caps: 0x05f30000 | Caps_1: 0x10101010
sdhci: Cmd: 0x0000123a | Max curr: 0x00000000
sdhci: Host ctl2: 0x00000000
sdhci: ===========================================
sdhci_timeout_timer: going into mmiowb() -----------
In both cases Present state indicates bit 28 as 1 which is reserved and should be 0 at reset accroding to referance manual ? Am I correct here ?
I tried the first method as you have mentioned and it didn't solve the problem. I have P2020 board where I have a eMMC working perfectly ok. Is there any fundamental difference between "eSDHC" module in P1011 and P2020. If so can you suggest me what ?? I have gone through both data- sheet and reference module but I could not see any difference in "eSDHC" module.