Programming i.MX6 mac and serial numbers

cancel
Showing results for 
Search instead for 
Did you mean: 

Programming i.MX6 mac and serial numbers

1,994 Views
peteroberts
Contributor I

I am attempting to program our custom imx6 board's serial number and MAC address as part of our factory procedure.
I have a legacy procedure which was used to program our imx28 boards.
The legacy procedure used the old 1.6.2 version of MfgTool.exe.
The profile file 'ucl.xml' launched a python program with the line '<CMD type="exec" body='"$(PROFILEPATH)\\Python27\\python.exe" ...etc>'
The python program generated a custom OTP configuration settings file (containing our serial number as a register value) and passed those setting to 'otp_burner.py' which created an .sb file which was loaded and burned.
I believe that 'otp_burner.py' was provided by Freescale and was specific to the imx28 in that it contains register name to location settings.

I understand that OTP settings (MAC/serial numbers etc) may be programmed following the procedure detailed in OPTION 1.
I also understand that (once linux is loaded) OTP setting is as simple as writing to '/sys/fsl_otp/'


I need a one step procedure however and therefore one which is driven from MfgTool2.exe (Library 2.6.2).

Dropping the original command (& associated files) into the imx6 procedure produces the following error:
'ModuleID[2] LevelID[5]: <CMD>1 has no "state" attribute'
If I add a state attribute then the MfgTool2.exe GUI does not even appear. No error report in the .log.

I cannot find any documentation on the '<CMD type="exec"' command either for the imx28 nor the imx6. I suspect that the command is no longer supported?


I would not be able to provide MfgTool2.exe with serial numbers either through producing a new 'ucl2.xml' file on each programming (see OPTION 1) nor by passing serial numbers as parameters to MfgTool2.exe as both these
methods would requires MfgTool2.exe to be stopped and restarted & the factory would not accept this.

Is there a way to call a host program/script from a ucl2.xml command?
How are serial numbers and MAC addresses normally programmed?

Tags (1)
0 Kudos
6 Replies

671 Views
igorpadykov
NXP TechSupport
NXP TechSupport

Hi Pete

it may be useful to check mfg tool sources on

GitHub - NXPmicro/mfgtools: Freescale/NXP I.MX Chip image deploy tools. 

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

0 Kudos

671 Views
peteroberts
Contributor I

Thanks. I will check.

It also looks as if people use 'sb_loader' directly e.g. following this guide: usb_loader.

(sb_loader & usb_loader being equiv.)

0 Kudos

671 Views
igorpadykov
NXP TechSupport
NXP TechSupport

one can also look at baremetal sdk example (/drivers/ocotp)

Github SDK
https://github.com/backenklee/swp-report/tree/master/iMX6_Platform_SDK

Best regards
igor

0 Kudos

671 Views
peteroberts
Contributor I

Thanks. The SDK link is a little too broad for my timescale. Could not find any 'sb_loader' documentation.

Checked MfgTool code & latest MfgTool2.exe does not have the 'exec' command but should be possible to add.

The first part of the question is answered; MfgTool2 does not support 'exec' - but I could add.

The second part of the question; How do/do others program serial/MAC as part of their manufacturing process is open.

Ta

0 Kudos

671 Views
igorpadykov
NXP TechSupport
NXP TechSupport

to be able to use "/sys/fsl_otp" one can check if there is

CONFIG_FSL_OTP=y  in yocto manufacturing tool kernel recipy arch/arm/configs/imx_v7_mfg_defconfig

for sb_loader one can look at

i.MX USB Loader 

https://github.com/NXPmicro/sb_loader

Best regards
igor

0 Kudos

671 Views
peteroberts
Contributor I

Thanks again.

I did not have "/sys/fsl_otp" provided by the BootStrap Kernal, doh!.

I have "/sys/fsl_otp"  once rebooted & running from flash image.

We use buildroot so I have some more reading here.

The other option seemed that I could  U-Boot OTP.

Again there is not enough detail for me to follow in my timescales.

I would appreciate you filling in some 'how to' links again though if possible.

For the moment I will use the MfgTool procedure to leave a run once script and so OTP following reboot.

This is not ideal though.

0 Kudos