Programming eMMC on iMX6UL

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Programming eMMC on iMX6UL

3,570 Views
sajiddalvi
Contributor II

I replaced the SDcard on my iMX6UL-EVK with an eMMC.

When I try to use mfgtool2 I am getting the following error on my console

U-Boot 2015.04-imx_v2015.04_4.1.15_1.0.0_ga+gd7d7c43 (Apr 01 2016 - 10:03:58)

CPU:   Freescale i.MX6UL rev1.0 at 396 MHz

CPU:   Temperature 41 C

Reset cause: POR

Board: MX6UL 14X14 DDR3 ARM2

I2C:   ready

DRAM:  1 GiB

force_idle_bus: sda=0 scl=0 sda.gp=0x3 scl.gp=0x2

Can't find PMIC:PFUZE100

initcall sequence bff92ee8 failed at call 87803298 (err=-1)

### ERROR ### Please RESET the board ###

Attached is the cfg.ini file I am using.

Also attached is the log file.

Presumably  I am not picking up the right device tree, but I wasn't able to figure out how to do it.

I was also not sure how to rebuild u-boot with emmc for the imx6ulevk.

cfg.ini

[profiles]

chip = Linux

[platform]

board = SabreSD

[LIST]

name = eMMC

[variable]

board = sabresd

mmc = 1

sxuboot=sabresd

sxdtb=sdb

7duboot=sabresd

7ddtb=sdb

6uluboot=14x14ddr3arm2

6uldtb=14x14-ddr3-arm2

ldo=

plus=

initramfs=fsl-image-mfgtool-initramfs-imx_mfgtools.cpio.gz.u-boot

seek = 1

sxnor=qspi2

7dnor=qspi1

6ulnor=qspi1

nor_part=0

MfgTool.log

DLL version: 2.6.2

Friday, June 17, 2016 14:33:56   Start new logging

ModuleID[2] LevelID[10]: CMyExceptionHandler thread is running

ModuleID[2] LevelID[1]: new MxHidDeviceClass

ModuleID[2] LevelID[10]: new MxHidDevice[00F405F0]

ModuleID[2] LevelID[1]: new MxHidDeviceClass

ModuleID[2] LevelID[10]: new MxHidDevice[00F40B80]

ModuleID[2] LevelID[1]: new MxHidDeviceClass

ModuleID[2] LevelID[10]: new MxHidDevice[00FEDE30]

ModuleID[2] LevelID[1]: new MxHidDeviceClass

ModuleID[2] LevelID[10]: new MxHidDevice[00FEE300]

ModuleID[2] LevelID[1]: new MxHidDeviceClass

ModuleID[2] LevelID[10]: new MxHidDevice[00FEE7D0]

ModuleID[2] LevelID[1]: new MxHidDeviceClass

ModuleID[2] LevelID[10]: new MxHidDevice[00FEAE20]

ModuleID[2] LevelID[10]: Device Manager thread is running

ModuleID[2] LevelID[1]: Can't set m_hStopEvent before it initialized or it already stop

ModuleID[2] LevelID[10]: CmdOperation[0] device chagned and reset to state 0

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: ExecuteCommand--Boot[WndIndex:0], File is \\Mac\Home\Downloads\L4.1.15_1.1.0_ga-mfg-tools\mfgtools\Profiles\Linux\OS Firmware\firmware\u-boot-imx6ul14x14ddr3arm2_emmc.imx

ModuleID[2] LevelID[1]: MxHidDevice::Write() Error writing to device 0x1f.

ModuleID[2] LevelID[1]: Failed to initialize memory!

ModuleID[2] LevelID[1]: PortMgrDlg(0)--MxHidDevice--Command Boot excute failed

ModuleID[2] LevelID[10]: CmdOperation[0], current command executed failed, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - DEVICE_REMOVAL_EVT(\\?\USB#VID_15A2&PID_007D#5&19f4c0d2&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed})

ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - end

ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_REMOVAL_EVT(\\?\USB#VID_15A2&PID_007D#5&19f4c0d2&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed})

ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_Current, _devices.size: 1

ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_Current, devInstPathToFind: USB\VID_15A2&PID_007D\5&19F4C0D2&0&2, _deviceInstanceID: USB\VID_15A2&PID_007D\5&19F4C0D2&0&2

ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_Current, Find the device

ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_REMOVAL_EVT,[MxHidDeviceClass] vid_15a2&pid_007d, Hub:3-Port:2

ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_REMOVAL_EVT, Notify

ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, Volume Arrive/Remove or Device Arrive/Remove

ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, m_p_usb_port is not NULL, so only refresh

ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, Volume/Device Remove

ModuleID[2] LevelID[1]: CmdOpreation[0]--set m_hDeviceRemoveEvent.

ModuleID[2] LevelID[10]: CmdOpreation[0]--WaitforEvents device remove1

ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent()-DEVICE_REMOVAL_EVT, hDevCanDeleteEvent has been set

ModuleID[2] LevelID[10]: delete MxHidDevice[00FEAE20]

ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - DEVICE_ARRIVAL_EVT(\\?\USB#VID_15A2&PID_007D#5&19f4c0d2&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed})

ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - end

ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_ARRIVAL_EVT(\\?\USB#VID_15A2&PID_007D#5&19f4c0d2&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed})

ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_Current, _devices.size: 0

ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--index: 0

ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--devPath: \\?\hid#vid_203a&pid_fffc&mi_00#7&37099d97&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}

ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--index: 1

ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--devPath: \\?\hid#vid_203a&pid_fffc&mi_01#7&2de99099&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}

ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--index: 2

ModuleID[2] LevelID[1]: DeviceClass::FindDeviceByUsbPath() - DeviceListType_New--devPath: \\?\hid#vid_15a2&pid_007d#6&2b1540c8&0&0000#{4d1e55b2-f16f-11cf-88cb-001111000030}

ModuleID[2] LevelID[10]: new MxHidDevice[00FEAE20]

ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_New, devInstPathToFind: USB\VID_15A2&PID_007D\5&19F4C0D2&0&2, _deviceInstanceID: USB\VID_15A2&PID_007D\5&19F4C0D2&0&2

ModuleID[2] LevelID[10]: DeviceClass::FindDeviceByUsbPath--DeviceListType_New, Find the device, Port: 2

ModuleID[2] LevelID[10]: DeviceClass::AddUsbDevice() successful USB#VID_15A2&PID_007D#5&19F4C0D2&0&2#{A5DCBF10-6530-11D2-901F-00C04FB951ED} add to current list, retrycount: 0

ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_ARRIVAL_EVT,[MxHidDeviceClass] vid_15a2&pid_007d, Hub:3-Port:2

ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - DEVICE_ARRIVAL_EVT, Notify

ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, Volume Arrive/Remove or Device Arrive/Remove

ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, m_p_usb_port is not NULL, so only refresh

ModuleID[2] LevelID[10]: CmdOpreation[0]--OnDeviceChangeNotify, Volume/Device Arrive

ModuleID[2] LevelID[1]: CmdOpreation[0]--set m_hDeviceArriveEvent.

ModuleID[2] LevelID[10]: CmdOpreation[0]--WaitforEvents device arrive1

ModuleID[2] LevelID[10]: CmdOperation[0] device chagned and reset to state 0

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: ExecuteCommand--Boot[WndIndex:0], File is \\Mac\Home\Downloads\L4.1.15_1.1.0_ga-mfg-tools\mfgtools\Profiles\Linux\OS Firmware\firmware\u-boot-imx6ul14x14ddr3arm2_emmc.imx

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is \\Mac\Home\Downloads\L4.1.15_1.1.0_ga-mfg-tools\mfgtools\Profiles\Linux\OS Firmware\firmware\zImage, address is 0x80800000

ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is \\Mac\Home\Downloads\L4.1.15_1.1.0_ga-mfg-tools\mfgtools\Profiles\Linux\OS Firmware\firmware\fsl-image-mfgtool-initramfs-imx_mfgtools.cpio.gz.u-boot, address is 0x83800000

ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: CmdOperation[0], skip current command, so SetEvent(hDevCanDeleteEvent)

ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is \\Mac\Home\Downloads\L4.1.15_1.1.0_ga-mfg-tools\mfgtools\Profiles\Linux\OS Firmware\firmware\zImage-imx6ul-14x14-ddr3-arm2-emmc.dtb, address is 0x83000000

ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0

ModuleID[2] LevelID[10]: ExecuteCommand--Jump[WndIndex:0]

ModuleID[2] LevelID[10]: *********MxHidDevice[00FEAE20] Jump to Ramkernel successfully!**********

ModuleID[2] LevelID[10]: CmdOperation[0], current state command has been finished and the last command is successful, so SetEvent(hDevCanDeleteEvent)

Labels (2)
Tags (1)
0 Kudos
6 Replies

1,407 Views
karina_valencia
NXP Apps Support
NXP Apps Support

igorpadykov​ can you continue with this case?

0 Kudos

1,407 Views
sajiddalvi
Contributor II

I made the u-boot change you recommended and used the zImage and .dtb from the yocto deploy dir that I have working with the imxul6evk with SD card.

Now it seems uboot flashes the kernel correctly (I see the expected drivers to be loaded),

but then the console gets get stuck here :

UTP : Waiting for device to appear.

Looking through the forum it seems that this may be because of the wrong initramfs.

I am using the default one that mfgtool picks up :

fsl-image-mfgtool-initramfs-imx_mfgtools.cpio.gz.u-boot

0 Kudos

1,407 Views
igorpadykov
NXP Employee
NXP Employee

suggest to rebuild mfg tools firmware using attached Yocto Guide

sect.6.2 Manufacturing Tool, MFGTool.

0 Kudos

1,407 Views
igorpadykov
NXP Employee
NXP Employee

Hi sajid

one can try to add:in uboot

..include/configs/mx6ul_14x14_evk.h

#define CONFIG_MX6UL_EVK_EMMC_REWORK

and attached ucl2.xml

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,407 Views
sajiddalvi
Contributor II

Still not clear about how to build uboot for emmc.

I made the change to the include file you recommended in

fsl-release-bsp/build/tmp/work/imx6ulevk-poky-linux-gnueabi/u-boot-imx/2015.04-r0/git/include/configs/mx6ul_14x14_evk.h

/* MMC Configs */

#define CONFIG_MX6UL_EVK_EMMC_REWORK //sajid

#define CONFIG_FSL_USDHC

I then rebuilt uboot with the following commands :

bitbake -f -c compile u-boot-imx

bitbake  u-boot-imx


I then checked fsl-release-bsp/build/tmp/work/imx6ulevk-poky-linux-gnueabi/u-boot-imx/2015.04-r0/image/boot
I see u-boot-sd-2015.04-r0.imx being created.

Question 1 : I don't see the -emmc- in the file name and based on the ucl2.xml provided it seems that this is what should be expected for an emmc device. Will the -sd- file still work on an emmc device?

Question 2 : Looking at the usage of CONFIG_MX6UL_EVK_EMMC_REWORK there seems to be some change to the SDIO interface. What is this change?

Question 3 : Also i don't understand how this addresses the error I am seeing : Can't find PMIC:PFUZE100. Will the ucl2.xml you provided pick up the appropriate device tree changes to fix this problem?

Appreciate your support.

0 Kudos

1,407 Views
igorpadykov
NXP Employee
NXP Employee

CONFIG_MX6UL_EVK_EMMC_REWORK needs to enable whole 8bit data pin of eMMC.

iMX6UL-EVK does not use PFUZE100.

~igor

0 Kudos