How to just program u-boot into RAM

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

How to just program u-boot into RAM

2,453 Views
asmaa
Contributor V

Hello Everyone,

I am using mcimx6g3 chip which comes under IMX6UL. I want to know how can I just program u-boot into RAM. I dont have SD-Card connection, no eMMC, no Flash anything.

I have setup yocto and bitbake following user guides. And I have got many binaries generated in tmp/deploy/images.

Which uboot binary I can use to put into RAM and boot.

so summarizing my requirements:

1. How can I program only u-boot into RAM ?

2. which binary is used to put into RAM( .imx, .bin etc)?

Thanks,

Asma

Labels (1)
0 Kudos
8 Replies

1,883 Views
igorpadykov
NXP Employee
NXP Employee

Hi Asma

unfortunately such use case is not supported in nxp bsps, in general

one can try to use usb_loader utility developed by boundary devices:

https://community.nxp.com/docs/DOC-94117 

GitHub - boundarydevices/imx_usb_loader: USB & UART loader for i.MX5/6/7/8 series 

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

0 Kudos

1,883 Views
asmaa
Contributor V

Ok, I will try that tool.

I have 2 questions from this.

1. In this documenthttps://community.nxp.com/docs/DOC-332776 , it is mentioned only to download uboot and then go to uboot command line to burn fuses. So my question is where does this uboot is downloaded  and run from?

2. Suppose I have custom board which supports serial downloader, but I dont have gpio's to configure it to boot from eMMC like imx6ul eval kit. So when I download Image(uboot+kernel) for the first time through MFGTOOL, will it go to eMMC or not? or I will have to configure through hardware or software to boot it from eMMC?.

Dont ask me to read about System Boot, I have already read about boot modes and Pin configuration and fuse burning. Right now I am not able to boot from my custom board. It supports serial download mode and does not have pins like imx6ul evaluation kit to set it to eMMC.

regards,

asma           

0 Kudos

1,883 Views
igorpadykov
NXP Employee
NXP Employee

in general MFG Tool also can be used, uboot images in MFG2 Tool folder are images

with offset - written for programming on external boot devices. For USB
load one needs the same images, but without offset.

For example for i.MX6Q Sabre SD (for i.MX6UL steps will be similar):

below modified ucl2.xml (also one can create new Profile, check with MFG2 Tool documentation).
u-boot-mx6q-sabresd_nopad.bin is Uboot image  without offset (0x400).

Changed "SabreSD-SD" profile:

<LIST name="SabreSD-SD" desc="USB SDP">
    <CMD state="BootStrap" type="boot" body="BootStrap" file ="u-boot-mx6q-sabresd_nopad.bin" >Loading image</CMD>
    <CMD state="BootStrap" type="jump" > Jumping to image. </CMD>
    <CMD state="Updater" type="push" body="$ echo Load Complete!">Done</CMD>
</LIST>

Best regards
igor

0 Kudos

1,883 Views
asmaa
Contributor V

igorpadykov OK. So how can I remove the offset in my imx6ul uboot code?

0 Kudos

1,883 Views
igorpadykov
NXP Employee
NXP Employee

On windows platform one can try  "dd" utility
http://www.chrysocome.net/dd

dd.exe if=u-boot-mx6q-sabresd.bin of=u-boot-mx6q-sabresd_nopad.bin  bs=1024 skip=1

Best regards
igor

0 Kudos

1,883 Views
asmaa
Contributor V

 igorpadykov

Are you saying this dd command will directly download into my RAM memory? 

I am not able to do it. It is not detecting on my board.

Regards,

Asma

0 Kudos

1,883 Views
igorpadykov
NXP Employee
NXP Employee

dd command only remove offset, it does not "download" anything.

Best regards
igor

0 Kudos

1,883 Views
asmaa
Contributor V

I tried as you said it is giving me error.

<!-- Load U-Boot only -->
<LIST name="uboot" desc="Load U-Boot">

<CMD state=BootStrap type=boot body="BootStrap" file ="mfg/u-boot.bin">Load U-Boot</CMD>
<CMD state=BootStrap type=jump>Jump to OS image</CMD>
<CMD state=Updater type=push body="$ echo Update Complete!">Done</CMD>

</LIST>

DLL version: 2.7.0
Tuesday, June 11, 2019 15:42:10 Start new logging
ModuleID[2] LevelID[10]: CMyExceptionHandler thread is running
ModuleID[2] LevelID[1]: new MxHidDeviceClass
ModuleID[2] LevelID[10]: new MxHidDevice[001FF388]
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]: ExecuteCommand--Boot[WndIndex:0], File is C:\Users\asmaa\Desktop\Original_QT850\Profiles\nexus\OS Firmware\mfg\u-boot.bin
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]: CCmdOpreation[0] thread is Closed
ModuleID[2] LevelID[10]: CCmdOpreation[0] thread is Closed
ModuleID[2] LevelID[10]: DeviceManager::OnMsgDeviceEvent() - EVENT_KILL
ModuleID[2] LevelID[10]: CMyExceptionHandler::OnMsgExceptionEvent() - KillExceptionHandlerThread
ModuleID[2] LevelID[10]: Exception Handler thread is closed
ModuleID[2] LevelID[1]: delete MxHidDeviceClass
ModuleID[2] LevelID[10]: delete MxHidDevice[001FF388]
ModuleID[2] LevelID[10]: Device Manager thread is closed

0 Kudos