mfgtool + boundary devices u-boot and kernel boot problem

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

mfgtool + boundary devices u-boot and kernel boot problem

Jump to solution
4,530 Views
kamillulko
Contributor III

Hello,

We need to be able to load u-boot and kernel image to RAM of our SABRE lite board (from Boundary Devices) using USB loader feature of IMX6. We have performed some tests with LTIB provided u-boot (2009.08) and Boundary Devices u-boot (obtained from https://github.com/boundarydevices/u-boot-imx6) by loading it to RAM with mfgtool utility. Here are our results:


- For both 2009.08 and Boundary Devices u-boot versions the u-boot is started correctly and we are able to run u-boot commands.

- In case of 2009.08 u-boot we are able to start Linux kernel with bootm command using either kernel provided with mfgtool or our own custom modified kernel.

- In case of Boundary devices u-boot the boot sequence does not go past "Starting kernel ...". This happens for both mfgtool provided kernel and our own custom one.

We made some further tests by loading exact same u-boot binaries into Flash memory present on SABRE lite and in both cases Linux kernel started properly.

We tried debugging this with memory printouts and so on and we were not able to find reason for this Boundary Devices u-boot + kernel loaded using mfg tool problem. We checked if Machine ID, etc. match in each of these configurations and everything seems ok. Below is printout from boot sequence (it gets stuck on Starting kernel line):

## Current stack ends at 0x4f4fdce0 *  kernel: cmdline image address = 0x10800000

## Booting kernel from Legacy Image at 10800000 ...

   Image Name:   Linux-3.0.35

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    3878800 Bytes = 3.7 MiB

   Load Address: 10008000

   Entry Point:  10008000

   Verifying Checksum ... OK

   kernel data at 0x10800040, len = 0x003b2f90 (3878800)

## No init Ramdisk

   ramdisk start = 0x00000000, ramdisk end = 0x00000000

## No Flattened Device Tree

   Loading Kernel Image ... OK

OK

   kernel loaded at 0x10008000, end = 0x103baf90

using: ATAGS

## Transferring control to Linux (at address 10008000)...

Starting kernel ...


Help is appreciated as we need to be able to boot Linux kernel using our own modified u-boot based on Boundary Devices git U-boot version using mfgtool.

This can be easily tested as this problem does happen with unmodified u-boot straight from Boundary Devices git. Below are contents of our ucl2.xml file (where uImage was either default uImage provided with mfgtool or our own uImage and u-boot is either u-boot from ltib or bounary devices git):

<UCL>

  <CFG>

    <STATE name="BootStrap" dev="MX6Q" vid="15A2" pid="0054"/>

    <STATE name="Updater"   dev="MSC" vid="066F" pid="37FF"/>

  </CFG>

  <LIST name="uboot-ram" desc="Boot with u-boot from RAM">

        <CMD state="BootStrap" type="boot" body="BootStrap" file ="u-boot.imx" >Loading U-boot...</CMD>

         <CMD state="BootStrap" type="load" file="uImage" address="0x10800000"

        loadSection="OTH" setSection="OTH" HasFlashHeader="FALSE" >Loading Kernel.</CMD>

        <CMD state="BootStrap" type="jump" > Jumping to OS image. </CMD>

</LIST>

</UCL>

Bootargs used (minimal just to check if it goes beyond "Starting kernel . . ."): "console=ttymxc1,115200"

Booted using "bootm ${loadaddr}" command, where loadaddr is equal to 0x10800000


So to sum it up: our u-boot binary properly loads and boots kernel when we boot from Serial Flash but when we put exact same u-boot to RAM using mfgtool the boot sequence is stuck on "Starting kernel...". With 2009.08 u-boot kernel boot works properly in any case.

Labels (2)
0 Kudos
1 Solution
1,141 Views
jimmychan
NXP TechSupport
NXP TechSupport

The MFGtool firmware is board specific. You need to build the firmware for your board by using LTIB's and select the "mfg firmware profile". For details, please read the Linux BSP User Guide and the Quick Start Guide in <Mfgtools>/Document.

View solution in original post

0 Kudos
3 Replies
1,141 Views
OtavioSalvador
Senior Contributor II

You might not use MfgTool and use imx_usb_loader in Linux for same.

Personally I don't use MfgTool but imx_usb_loader. Check it at boundarydevices/imx_usb_loader · GitHub

0 Kudos
1,141 Views
kamillulko
Contributor III

Hello Otavio,

Unfortunately, we already tried using imx-usb-loader from Boundary Devices and symptops are exactly the same. If we try to load and run kernel with Boundary Devices u-boot loaded into RAM using any of these tools the boot hangs on "Starting kernel...".

0 Kudos
1,142 Views
jimmychan
NXP TechSupport
NXP TechSupport

The MFGtool firmware is board specific. You need to build the firmware for your board by using LTIB's and select the "mfg firmware profile". For details, please read the Linux BSP User Guide and the Quick Start Guide in <Mfgtools>/Document.

0 Kudos