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
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)
igorpadykov can you continue with this case?
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
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!
-----------------------------------------------------------------------------------------------------------------------
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.
CONFIG_MX6UL_EVK_EMMC_REWORK needs to enable whole 8bit data pin of eMMC.
iMX6UL-EVK does not use PFUZE100.
~igor