Hello Everyone,
I am a newbie to i.MX world. We have developed a customized board for our product in our company similar to IMX6ULEVK. IC used is a little different it is mcimx6g3cvm05ab. We dont have SD card support on our board but instead eMMC Flash. My questions are:
1. How should I build uboot to boot from eMMC, do I have to change configuration in uboot code to burn fuses, if so how? Any example please.
2. Do we have any uboot binaries or .imx file that I can use directly, as our board is same as IMX6ULEVK.( we dont support sd card on our board and we dont have anything for dip switches, I somehow have to burn fuses as well. so uboot binary with fuses burnt for booting through eMMC).
Thanks & Regards,
Asma
Hi, Asma A
One can follow the below steps to build U-boot for eMMC(refer section 5.5 of Linux User's Guide).
Please make sure that your UART (debug) cable is working properly. If UART cable is proper then you should get the flash logs while flashing through MFGTool because you are able to flash minimal uboot, kernel and rootfs in your board.
And if you are still not able to get the logs then you should verify your DDR initializations/changes.
Regards,
Radhika Somaiya
I did these for imx8mmevk but it didn't work. There were not any other imx-boot files in <tmp>/deploy/images/imx8mmevk directory expcet for imx-boot-imx8mmevk-sd.bin and imx-boot-imx8mmevk-sd.bin-flash_evk .
Hello,
No you don't need to, but you can do use it (u-boot) to burn eFuses, please take a look to this:
Also please take a look to the reference manual chapter 5 "Fusemap" & 8 "System Boot"
Hope this helps,
Best regards,
Aldo.
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------
On our board, I am not able to download uboot through mfgtool. it loads uboot, kernel, rootfs , go to Jump OS Image and then gives No device connected and stops there. I get the notification from windows that USB device is corrupted. And because of that I think it is not able to find eMMC.
Note: I have updated DDR changes according to our board. So I am just not getting how can it find my eMMC. We are using UART1 as debug and I am not getting any output there as well.
Mfgtool log:
ModuleID[2] LevelID[10]: ExecuteCommand--Boot[WndIndex:0], File is C:\Users\asmaa\Desktop\Original_QT850\Profiles\nexus\OS Firmware\mfg\u-boot.imx
ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is C:\Users\asmaa\Desktop\Original_QT850\Profiles\nexus\OS Firmware\mfg\zImage, address is 0x80800000
ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0
ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is C:\Users\asmaa\Desktop\Original_QT850\Profiles\nexus\OS Firmware\mfg\rootfs.cpio.gz.u-boot, address is 0x83800000
ModuleID[2] LevelID[10]: PortMgrDlg(0)--Command Load excute successfully, retry count: 0
ModuleID[2] LevelID[10]: ExecuteCommand--Load[WndIndex:0], File is C:\Users\asmaa\Desktop\Original_QT850\Profiles\nexus\OS Firmware\mfg\zImage.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[069F6838] 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)
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - DEVICE_REMOVAL_EVT(\\?\USB#VID_15A2&PID_007D#5&182cd075&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&182cd075&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&182CD075&0&2, _deviceInstanceID: USB\VID_15A2&PID_007D\5&182CD075&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:2-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[069F6838]
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - DEVICE_ARRIVAL_EVT(\\?\USB#VID_0000&PID_0002#5&182cd075&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_0000&PID_0002#5&182cd075&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed})
ModuleID[2] LevelID[10]: DeviceManager::DevChangeWnd::OnDeviceChange() - DEVICE_REMOVAL_EVT(\\?\USB#VID_0000&PID_0002#5&182cd075&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_0000&PID_0002#5&182cd075&0&2#{a5dcbf10-6530-11d2-901f-00c04fb951ed})
ModuleID[2] LevelID[10]: CCmdOpreation[0] thread is Closed
ModuleID[2] LevelID[10]: CCmdOpreation[0] thread is Closed.
So I have 3 questions now:
Thanks,
Asma
Hi Asma,
I think you should verify two things:
1. DDR calibration and stress test.
2. The iomux for debug console is correct or not.
Regards,
Azmat