How to set OTP bits with MfgTool?

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

How to set OTP bits with MfgTool?

ソリューションへジャンプ
2,481件の閲覧回数
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,533件の閲覧回数
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,534件の閲覧回数
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 件の賞賛
返信