Hello,
Using some recent Hynix eMMC devices (H26M54001DQR) on our Freescale i.MX6Q boards and using MFGTool2 download fail!
U-Boot 2009.08 (Apr 25 2013 - 03:48:11)
CPU: Freescale i.MX6 family TO1.2 at 792 MHz
Thermal sensor with ratio = 181
Temperature: 36 C, calibration data 0x57d50269
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 : 264000000Hz
emi_slow clock: 132000000Hz
ddr clock : 528000000Hz
usdhc1 clock : 198000000Hz
usdhc2 clock : 198000000Hz
usdhc3 clock : 198000000Hz
usdhc4 clock : 198000000Hz
nfc clock : 24000000Hz
Board: i.MX6Q-SABRESD: unknown-board Board: 0x63012 [WDOG ]
Boot Device: MMC
I2C: ready
DRAM: 1 GB
MMC: FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3
Using default environment
In: serial
Out: serial
Err: serial
i2c: I2C1 SDA is low, start i2c recovery...
I2C1 Recovery success
Net: got MAC address from IIM: 00:00:00:00:00:00
FEC0 [PRIME]
Hit any key to stop autoboot: 0
## Booting kernel from Legacy Image at 10800000 ...
Image Name: Linux-3.0.35-2508-g54750ff
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3161728 Bytes = 3 MB
Load Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 10c00000 ...
Image Name: uboot initramfs rootfs
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 4545835 Bytes = 4.3 MB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
Linux version 3.0.35-2508-g54750ff (r65388@shlinux3) (gcc version 4.6.2 20110630 (prerelease) (Freescale MAD -- Linaro 2011.07 -- Built at 2011/08/10 09:20) ) #1 SMP PREEMPT Thu Apr 25 03:42:37 CST 2013
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
Memory policy: ECC disabled, Data cache writealloc
CPU identified as i.MX6Q, silicon rev 1.2
PERCPU: Embedded 7 pages/cpu @8c008000 s5184 r8192 d15296 u32768
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 260096
Kernel command line: console=ttymxc0,115200 rdinit=/linuxrc enable_wait_mode=off
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 1024MB = 1024MB total
Memory: 1028692k/1028692k available, 19884k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xf4600000 - 0xffe00000 ( 184 MB)
vmalloc : 0xc0800000 - 0xf2000000 ( 792 MB)
lowmem : 0x80000000 - 0xc0000000 (1024 MB)
pkmap : 0x7fe00000 - 0x80000000 ( 2 MB)
modules : 0x7f000000 - 0x7fe00000 ( 14 MB)
.init : 0x80008000 - 0x8003a000 ( 200 kB)
.text : 0x8003a000 - 0x805aca0c (5579 kB)
.data : 0x805ae000 - 0x805fc700 ( 314 kB)
.bss : 0x805fc724 - 0x80627674 ( 172 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
Preemptible hierarchical RCU implementation.
NR_IRQS:624
MXC GPIO hardware
sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms
arm_max_freq=1GHz
MXC_Early serial console at MMIO 0x2020000 (options '115200')
bootconsole [ttymxc0] enabled
Console: colour dummy device 80x30
Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available
CPU1: Booted secondary processor
CPU2: Booted secondary processor
CPU3: Booted secondary processor
Brought up 4 CPUs
SMP: Total of 4 processors activated (6324.22 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
No AHCI save PWR: PDDQ 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 0x410000c7, AUX_CTRL 0x02070000, Cache size: 1048576 B
bio: create slab <bio-0> at 0
mxs-dma mxs-dma-apbh: initialized
print_constraints: SPKVDD: 4200 mV
print_constraints: vmmc: 3300 mV
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
mc_pfuze 1-0008: recv failed!:-5,80
mc_pfuze: probe of 1-0008 failed with error -1
imx-ipuv3 imx-ipuv3.0: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
imx-ipuv3 imx-ipuv3.1: IPU DMFC NORMAL mode: 1(0~1), 5B(4,5), 5F(6,7)
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 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
Clockevents: could not switch to one-shot mode:
Clockevents: could not switch to one-shot mode:
Clockevents: could not switch to one-shot mode:
Clockevents: could not switch to one-shot mode: dummy_timer is not functional.
dummy_timer is not functional.
dummy_timer is not functional.
Could not switch to high resolution mode on CPU 2
Could not switch to high resolution mode on CPU 0
Could not switch to high resolution mode on CPU 1
NET: Registered protocol family 2
IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
TCP bind hash table entries: 65536 (order: 7, 786432 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
TCP reno registered
UDP hash table entries: 512 (order: 2, 16384 bytes)
UDP-Lite hash table entries: 512 (order: 2, 16384 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.
Unpacking initramfs...
dummy_timer is not functional.
Could not switch to high resolution mode on CPU 3
Freeing initrd memory: 4436K
PMU: registered new PMU device of type 0
Static Power Management for Freescale i.MX6
wait mode is disabled for i.MX6
cpaddr = c0880000 suspend_iram_base=c091c000
PM driver module loaded
IMX usb wakeup probe
cpu regulator mode:ldo_enable
i.MXC CPU frequency driver
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 2017
cryptodev: driver loaded.
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
mxc_sdc_fb mxc_sdc_fb.0: register mxc display driver ldb
_regulator_get: get() with no identifier
imx-ipuv3 imx-ipuv3.1: IPU DMFC DP HIGH RESOLUTION: 1(0,1), 5B(2~5), 5F(6,7)
Console: switching to colour frame buffer device 128x48
mxc_sdc_fb mxc_sdc_fb.1: register mxc display driver ldb
mxc_sdc_fb mxc_sdc_fb.2: register mxc display driver lcd
mxc_sdc_fb mxc_sdc_fb.3: register mxc display driver ldb
mxc_sdc_fb mxc_sdc_fb.3: ipu1-di0 already in use
mxc_sdc_fb: probe of mxc_sdc_fb.3 failed with error -16
imx-sdma imx-sdma: loaded firmware 1.1
imx-sdma imx-sdma: initialized
Serial: IMX driver
imx-uart.2: ttymxc2 at MMIO 0x21ec000 (irq = 60) is a IMX
imx-uart.0: ttymxc0 at MMIO 0x2020000 (irq = 58) is a IMX
console [ttymxc0] enabled, bootconsole disabled
console [ttymxc0] enabled, bootconsole disabled
loop: module loaded
m25p80 spi0.0: unrecognized JEDEC id ffffff
GPMI NAND driver registered. (IMX)
vcan: Virtual CAN interface driver
FEC Ethernet Driver
fec_enet_mii_bus: probed
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
ARC USBOTG Device Controller driver (1 August 2005)
add wake up source irq 75
g_file_storage gadget: controller 'fsl-usb2-udc' not recognized
check_parameters:UTP settings are in place now, overriding defaults
g_file_storage gadget: No serial-number string provided!
g_file_storage gadget: File-backed Storage Gadget, version: 1 September 2010
g_file_storage gadget: Number of LUNs=1
fsl-usb2-udc: bind to driver g_file_storage
mousedev: PS/2 mouse device common for all mice
egalax_ts 1-0004: egalax_ts: failed to read firmware version
egalax_ts: probe of 1-0004 failed with error -5
egalax_ts 2-0004: egalax_ts: failed to read firmware version
egalax_ts: probe of 2-0004 failed with error -5
snvs_rtc snvs_rtc.0: rtc core: registered snvs_rtc as rtc0
i2c /dev entries driver
Linux video capture interface: v2.00
mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video16
mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video17
mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video18
mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video19
mxc_v4l2_output mxc_v4l2_output.0: V4L2 device registered as video20
imx2-wdt imx2-wdt.0: IMX2+ Watchdog Timer enabled. timeout=60s (nowayout=1)
Bluetooth: Virtual HCI driver ver 1.3
Bluetooth: Generic Bluetooth USB driver ver 0.6
usbcore: registered new interface driver btusb
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
mmc0: SDHCI controller on platform [sdhci-esdhc-imx.3] using DMA
mmc1: SDHCI controller on platform [sdhci-esdhc-imx.1] using DMA
mmc2: SDHCI controller on platform [sdhci-esdhc-imx.2] using DMA
mxc_vdoa mxc_vdoa: i.MX Video Data Order Adapter(VDOA) driver probed
VPU initialized
mxc_asrc registered
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
Cirrus Logic CS42888 ALSA SoC Codec Driver
i2c-core: driver [cs42888] using legacy suspend method
i2c-core: driver [cs42888] using legacy resume method
imx-hdmi-soc-dai imx-hdmi-soc-dai.0: Failed: Load HDMI-video first.
imx_3stack asoc driver
ALSA device list:
No soundcards found.
TCP cubic registered
NET: Registered protocol family 17
can: controller area network core (rev 20090105 abi 8)
NET: Registered protocol family 29
can: raw protocol (rev 20090105)
can: broadcast manager protocol (rev 20090105 t)
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP filters: protocol multicast
Bluetooth: HIDP (Human Interface Emulation) ver 1.2
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
Bus freq driver module loaded
Bus freq driver Enabled
mxc_dvfs_core_probe
DVFS driver module loaded
regulator_init_complete: SPKVDD: incomplete constraints, leaving on
snvs_rtc snvs_rtc.0: setting system clock to 1970-01-01 00:00:00 UTC (0)
Freeing init memory: 200K
Starting UTP
ln: /etc/mtab: File exists
disable turn off display
Starting the hotplug events dispatcher udevd
udevd (1979): /proc/1979/oom_adj is deprecated, please use /proc/1979/oom_score_adj instead.
Synthesizing initial hotplug events
g_file_storage gadget: high speed config #1
uuc 0.4 [built Apr 25 2013 00:52:55]
UTP: Waiting for device to appear
UTP: file/device node /dev/utp already exists
cpu_id is 0
UTP: received command '$ dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1536 count=16'
UTP: executing "dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1536 count=16"
16+0 records in
16+0 records out
8192 bytes (8.0KB) copied, 0.000292 seconds, 26.8MB/s
UTP: sending Success to kernel for command $ dd if=/dev/zero of=/dev/mmcblk0 bs=512 seek=1536 count=16.
utp_poll: pass returned.
UTP: received command '$ echo 1 > /sys/devices/platform/sdhci-esdhc-imx.3/mmc_host/mmc0/mmc0:0001/boot_config'
UTP: executing "echo 1 > /sys/devices/platform/sdhci-esdhc-imx.3/mmc_host/mmc0/mmc0:0001/boot_config"
sh: can't create /sys/devices/platform/sdhci-esdhc-imx.3/mmc_host/mmc0/mmc0:0001/boot_config: nonexistent directory
UTP: sending Non-success to kernel for command $ echo 1 > /sys/devices/platform/sdhci-esdhc-imx.3/mmc_host/mmc0/mmc0:0001/boot_config.
utp_poll: exit with status 256
Any idea about this issue?
Or any hint how to further debug this?
Best regards
Hi Peter,
Your MMC interface is not muxed correctly. If it is, you would see something a mmcblkXboot0, mmcblkXboot1 as part of your boot log. Where X represent which MMC interface your eMMC device is attached to. If you are familiar with the iomux table, please check it against your hardware design. There are 3 available MMC interface that is registered according to your boot log, mmc0, mmc1, and mmc2. Check the iomux table to make sure all the pins are appropriately muxed. I had to fix it on my custom board to make it work. You need to change iomux on the EVK distribution of the Linux kernel. After this fix, you will need to build a MFG version of your Linux kernel. There are a series of steps required to get it to work. Please search for my post regarding eMMC on this forum - I think I've posted the MUX pins for it.
Tom
From the log, your device fails to execute the command "echo 1 > /sys/devices/platform/sdhci-esdhc-imx.3/mmc_host/mmc0/mmc0:0001/boot_config". This command enable the eMMC boot partition can be accessed.
Please try to find out if the correct path of "boot_config" and update the ucl2.xml.