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?
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!
-----------------------------------------------------------------------------------------------------------------------
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.)
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
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
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
https://github.com/NXPmicro/sb_loader
Best regards
igor
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.