Mfg Tool U-Boot support

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

Mfg Tool U-Boot support

6,119 Views
kvb
Contributor III

Hello,

I'm working on a custom board based around the i.MX6SL processor and I'm looking into using the Freescale Manufacturing Tool to provision new boards for manufacturing.  I was wondering if someone could advise on what versions of U-Boot the Manufacturing Tool supports?  I sort of have a mixed bag going on; I use LTIB to build Linux kernel 3.0.35 and then I manually build (outside of LTIB) U-Boot version 2013.10.

So I guess my question is, does LTIB need to be used to build the Manufacturing Firmware version of U-Boot?  If so, then is 2009.08 the only supported version?

If/when we migrate to Yocto, is there a method for building the Manufacturing Firmware in that environment?

Labels (4)
0 Kudos
4 Replies

1,279 Views
hanjiapeng
Contributor I

cfg.ini modify:

[variable]

board = sabresd

mmc = 3

sxuboot=17x17arm2

sxdtb=17x17-arm2

ldo= -ldo

0 Kudos

1,279 Views
Yuri
NXP Employee
NXP Employee

  Let’s consider MFG operations sequence. At first, the MFG interfaces with i.MX6 boot ROM,

assuming i.MX6 is entered in its serial boot mode. In this mode special firmware release of
Linux is loaded to i.MX6 memory. Next, the firmware provides for host PC USB mass storage
device for main system loading and flashing. So, we have two OS(s) involved: firmware and main.
The firmware system should not be changed to avoid additional issues ; in this sense standard
(old) U-boot should be used for firmware generation (which is built under option  “Build mfg firmware”).
As for main system, that is intended to be located on a target system – it is possible to try
new U-boot.

Have a great day,
Yuri

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

0 Kudos

1,279 Views
kvb
Contributor III

Hello Yuri,

Thanks for the response, however, I'm still a bit confused.

In this mode special firmware release of Linux is loaded to i.MX6 memory.

Next, the firmware provides for host PC USB mass storage device for main system loading and flashing.

Are you saying here that the manufacturing version of Linux must be loaded into the device?  With a custom board, the 'stock' versions that come with the tool will not work on our board due to different DDR3 manufacturer.  We've already modified U-Boot (2013.10) to support the device.  We do not use LTIB to build that firmware; it's done manually outside of LTIB.  Are there guidelines somewhere that give instructions on how to build a manufacturing version of U-Boot outside of LTIB?  I've followed the directions located in the documents that come with the Manufacturing Tool,Manufacturing Tool V2 Linux or Android Firmware Development Guide V2 specifically, but the tool always hangs when attempting to load (see log below) the U-Boot binary. 

DLL version: 2.2.3

Tuesday, July 01, 2014 21:12:47   Start new logging

ModuleID[2] LevelID[10]: CMyExceptionHandler thread is running

ModuleID[2] LevelID[1]: new MxHidDeviceClass

ModuleID[2] LevelID[10]: new MxHidDevice[02122B58]

ModuleID[2] LevelID[10]: Device Manager thread is running

ModuleID[2] LevelID[10]: CmdOperation[0] device chagned and reset to state 0

ModuleID[2] LevelID[10]: ExecuteCommand--Boot[WndIndex:0], File is /path/to/existing/u-boot.bin

Another question that I have is is there a special format that MfgTool is expecting the U-Boot binaries to have?  Can the mkimage generated u-boot.imx be downloaded by the manufacturing tool?

So, we have two OS(s) involved: firmware and main.

The firmware system should not be changed to avoid additional issues ; in this sense standard

(old) U-boot should be used for firmware generation (which is built under option  “Build mfg firmware”).

As for main system, that is intended to be located on a target system – it is possible to try

new U-boot.

So what you're saying here is that two versions of firmware must be maintained to support manufacturing?  The first version is going to be the manufacturing specific firmware (U-Boot and Linux kernel) and the second version is our custom firmware (modified U-Boot and kernel).  This seems unnecessary to have to maintain 4 (2 U-Boot, 2 kernels) versions of firmware to manufacture a new device.  Am I misinterpreting something? 

The ultimate goal here is to able to just push a version of U-Boot onto our device and then use U-Boot to do the final provisioning of the hardware and load the kernel.  We ultimately do not need most of the functionality of the MfgTool, we just need to be able to push our version of U-Boot onto our device.  Is this not the purpose of the MfgTool?  Can the tool not just simply push a modified version of U-Boot and then execute that version? (here's a simple version of the ucl2.xml I'm trying to use)

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

    <CMD state="BootStrap" type="jump" > Jumping to U-Boot. </CMD>

As I understand it, the first command is suppose to push the binary to IRAM (not sure where exactly, as that's not documented) and the Jump command is suppose to execute what was just pushed into IRAM.

0 Kudos

1,279 Views
Yuri
NXP Employee
NXP Employee

Kevin,

  Yes, the manufacturing version of Linux must be loaded into the device.
It may be prepared as specific customer's one (supporting different memory, in particular),
using “Build mfg firmware” Linux configuration. It is based on the same drivers
as main OS release, also "old" U-boot may be used here (just for mfg firmware).

  Please take a look at section 3.9 (Building Manufacturing Firmware) of
"i.MX_6Dual6Quad_SABRE-SD_Linux_User's_Guide.pdf" in LTIB package.
For Yocto, the manufacturing defconfig is "imx_v7_mfg_defconfig".


Have a great day,
Yuri

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

0 Kudos