Using boundary imx usb loader for MFG flashing

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

Using boundary imx usb loader for MFG flashing

7,286 Views
steinar96
Contributor I

Greetings, i'm attempting to set up the boundary devices IMX usb loader as a manufacturing tool for flashing the environment on a custom board. When executing "sudo ./imx_usb u-boot.imx u-boot.imx" Uboot starts normally and all is well.


But i'm currently having large troubles with the mx6_usb_work.conf file. The only entry after the 2 setup lines that will successfully start uboot (with plug either specified or not) is

../uboot/u-boot.imx:dcd, jump header       

Everything else results in nothing after performing a jump.


I'm attempting to implement the guidelines from the Adeneo_Whitepaper_imx_usb_loader.pdf whiepaper. According to the whitepaper the following sequence of operations should work. It should load the u-boot to be flashed into 0x1200000, load another u-boot for flashing purposes to the proper address and run, which then writes the u-boot at 0x12000000 to mmc/sd card/sata etc.....

../uboot/u-boot.imx:dcd     #Init SDRAM so we can write stuff to it

../uboot/u-boot.imx:load 0x12000000   #load target u-boot into memory

../uboot/u-boot-flasher.imx:plug, load 0x177ff400, jump header   #load flasher uboot and execute, plug prevents dcd reinitialization.

Some points to considder

-Executing ../uboot/u-boot.imx:dcd will allow me to write the files to the RAM, without it it fails which is expected

-Placing dcd anywhere after the initial one will result in failed perform_dcd in subsequent attempts, i expect plug should be placed to prevent dcd re-initialization.

-Placing the first line ../uboot/u-boot.imx:dcd at all seems to allow me to write arbitrarily to SDRAM but results in a failure to boot anything.

-This was attempted with u-boot.imx and u-boot-flasher.imx being actually the same binary so it's not a issue of u-boot-flasher.imx not working.

Has anyone achieved this ?

Labels (1)
Tags (2)
6 Replies

1,539 Views
YixingKong
Senior Contributor IV

Steinar

This discussion is closed since no activity. If you still need help, please feel free to reply with an update to this discussion, or create another discussion.

Thanks,

Yixing

0 Kudos

1,539 Views
YixingKong
Senior Contributor IV

Steinar

Had your issue got resolved? If yes, we are going to close the discussion in 3 days. If you still need help, please feel free to reply with an update to this discussion.

Thanks,

Yixing

0 Kudos

1,539 Views
colonelcabbage
Contributor I

Did you find a solution to this? I'm having exactly the same problem

- Steven

0 Kudos

1,539 Views
colonelcabbage
Contributor I

In case anyone is interested, I worked around this by manually cat'ing together u-boot.bin with the other images I wished to load before mkimage creates u-boot.imx. This ensures that the correct image size is written. imx_usb then is tricked into downloading the whole lot before jumping the ROM code onto the IVT.

Couldn't for the life of me decipher the scripting language or command line syntax to get imx_usb to do anything smarter than a single load, dcd and jump. As far as I could see there was no documentation for this.

0 Kudos

1,539 Views
upalmer
Contributor I

I have been working with imx_usb to be able to download a u-boot + an initramfs linux kernel to RAM in our iMX6 based board

This board in this case may be totally unprogrammed.

Me too initially was unable to get anything to boot if I wanted to download a 2:nd file.

However, now I got it working if I use a modified mx6_usb_work.conf file:

Here is my .conf file (mx6_usb_work.conf):

flir_imx6_board 
#hid/bulk,[old_header,]max packet size, {ram start, ram size}(repeat valid ram areas)
hid,1024,0x10000000,1G,0x00907000,0x31000
# Note; only dcd as first step (setup ram)

u-boot-neco-preloadedrecovery.imx:dcd

# u-boot-neco.imx:dcd,plug,jump header

# Then load a kernel with initramfs (self contained linux) at known address

recovery:load 0x10a00000

# Now, we load a u-boot that expects preloaded software at known adress

# Note, to make this boot, the clear_dcd field seems necessary

u-boot-neco-preloadedrecovery.imx:clear_dcd,load,plug,jump header

With "clear_dcd" in the last line, everything works,

downloaded u-boot (that contains an environment to bootm 0x10a00000) boots

and starts my downloaded linux ("recovery") that boots as intended.

(I run imx_usb in the folder with files

imx_usb,  mx6_usb_work.conf,  recovery, imx_usb.conf , u-boot-neco-preloadedrecovery.imx

as:

sudo ./imx_usb -c ./

)

Maybe usage of a "u-boot.bin" as last line would also do?

As I understand it, the difference between u-boot build artifacts .imx and .bin is that .bin does not contain a dcd table

Regards,

Ulf P

1,539 Views
flx
Contributor I

6 months that I want to do that... unsuccessfully.

Thank you!

0 Kudos