How to set OTP bits with MfgTool?

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

How to set OTP bits with MfgTool?

跳至解决方案
2,486 次查看
patrickmcneil
Contributor II

Hi,

I'd like to use mfg-tool to program an OtpInit.sb as part of production programming. The OtpInit.sb is produced by otp_burner.py.

This is a chunk of my ucl.xml:

<LIST name="Full Install" desc="Full Install on NAND">

  <!-- Flash OTP Bits -->   

  <CMD type="boot" body="Recovery" file="OtpInit.sb" timeout="60">flashing OTP.</CMD>

  <!-- Force into USB Boot mode, then load the updater_ivt.sb bootstream - Linux Env. -->

  <CMD type="boot" body="Recovery" file="updater_ivt.sb" timeout="60">Booting Update Firmware.</CMD>

   

  <!-- Wait for Linux to boot and show up as the USB Gadget device. -->

  <CMD type="find" body="Updater" timeout="180"/>

  ....

But, this doesn't work. I think there must be some command that I need to execute after booting the OtpInit.sb image.

This is what I see on the debug console:

"

pitc_loader(8003)

loading pitc id 8003

pitc installed

initialize pitc 2280: id:8003

"

If I program this bootstream from BitInit.exe, it works fine, and I get:

"

pitc_loader(8003)

loading pitc id 8003

pitc installed

initialize pitc 2280: id:8003

pitc 8003: process_cdb(cdb:14)

k_pitc_cmd_write_otp_register_set

pitc 8003: process_cdb(cdb:11)

k_pitc_cmd_request_sense

"

-So, definitely something is missing.

in the mfgtool source, I see the section DWORD COpMxRomUpdate::InitOtpRegs() - but it is commented out for some reason - so is this functionality broken/unsupported?

I'm in a big hurry to get this working - production starts on Dec. 1st.

Thanks,

-Patrick

标签 (1)
0 项奖励
回复
1 解答
1,538 次查看
patrickmcneil
Contributor II

Hi,

OK, I think I've answered my own question:

<LIST name="Full Install" desc="Full Install on NAND">

  <!-- Flash OTP Bits -->  

  <CMD type="boot" body="Recovery" file="OtpInit.sb" timeout="60">flashing OTP.</CMD>

  <!-- Burn the OTP -->

  <CMD type="burn"/>

  <!-- Force into USB Boot mode, then load the updater_ivt.sb bootstream - Linux Env. -->

  <CMD type="boot" body="Recovery" file="updater_ivt.sb" timeout="60">Booting Update Firmware.</CMD>

....

The 'Burn' command will burn the OTP bits. I'm not sure if this is documented anywhere.. but it's in the code, and works.

-Patrick

在原帖中查看解决方案

0 项奖励
回复
1 回复
1,539 次查看
patrickmcneil
Contributor II

Hi,

OK, I think I've answered my own question:

<LIST name="Full Install" desc="Full Install on NAND">

  <!-- Flash OTP Bits -->  

  <CMD type="boot" body="Recovery" file="OtpInit.sb" timeout="60">flashing OTP.</CMD>

  <!-- Burn the OTP -->

  <CMD type="burn"/>

  <!-- Force into USB Boot mode, then load the updater_ivt.sb bootstream - Linux Env. -->

  <CMD type="boot" body="Recovery" file="updater_ivt.sb" timeout="60">Booting Update Firmware.</CMD>

....

The 'Burn' command will burn the OTP bits. I'm not sure if this is documented anywhere.. but it's in the code, and works.

-Patrick

0 项奖励
回复