cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
andreca
Visitor
Visitor
612 Views
Registered: ‎03-20-2019

Bricked Zynq-7000 after setting CNTL eFUSEs in script

I am developing TCL scripts to program the PL eFUSEs on our Zynq-700 XC7Z020 and have ended up bricking two units. The units were programmed with an PPK-RSA-hash in PS and an AES key in PL and would successfully boot a secure, signed image. But writing the XSK_EFUSEPL_FORCE_USE_AES_ONLY and XSK_EFUSEPL_DISABLE_AES_KEY_READ in FUSE_CNTL with a TLC script fails and bricks the unit. Writing the same CNTL eFUSEs in the Vivado GUI works.

I am using Vivado HLx 2017.2 and using the following scripts, run in consecutive order.

AES:

 

open_hw
connect_hw_server
current_hw_target
open_hw_target

set_property PROGRAM.FILE "fpga.bit" [get_hw_devices xc7z020_1]
current_hw_device [get_hw_devices xc7z020_1]
set_property ENCRYPTION.FILE "efuse.nky" [get_property PROGRAM.HW_BITSTREAM [get_hw_devices xc7z020_1]]

# Write AES fuses
program_hw_devices -key {efuse} -user_efuse {0} [get_hw_devices xc7z020_1]

refresh_hw_target

# Read AES fuses
set key [get_property REGISTER.EFUSE.FUSE_KEY [current_hw_device]]

 

CNTL:

 

open_hw
connect_hw_server
current_hw_target
open_hw_target

set_property PROGRAM.FILE "fpga.bit" [get_hw_devices xc7z020_1]
current_hw_device [get_hw_devices xc7z020_1]

# Write control fuses
program_hw_devices -control_efuse {108} [current_hw_device]

 

Each time I write the CNTL eFUSEs in the Vivado GUI i get the following error messages:

ERROR: [Labtools 27-3105] HW Server Error: Could not program property cntl bits 0x420108
ERROR: [Labtoolstcl 44-513] HW Target shutdown. Closing target: localhost:3121/xilinx_tcf/Digilent/210299ABBF9D

Any ideas?

0 Kudos
5 Replies
jss
Visitor
Visitor
452 Views
Registered: ‎09-18-2020

andreca, I'm having almost the exact same issue as you.  The differences are that I'm on a 7014, blew the FUSE_CNTL mask 502, and used Vivado HW Mgr rather than raw Tcl.  BTW, I've engaged the Xilinx support personnel who have escalated to engineering.  If they don't post the results of their investigation to the thread I've started on this problem, I'll copy there.  Good luck!

Zynq 7000 dead after PL eFUSEs blown - Community Forums (xilinx.com)

0 Kudos
jss
Visitor
Visitor
355 Views
Registered: ‎09-18-2020

andreca, I never got a resolution from xilinx on this problem.  They told me to NOT burn the AES_Exclusive bit and that they didn't know why my unit bricked.  So we no longer burn that bit.

0 Kudos
andreca
Visitor
Visitor
333 Views
Registered: ‎03-20-2019

Thank you for informing me @jss. Could I somehow get involved in your dialogue with Xilinx? (since thy're not responding to my post). Could you e.g. send them a link to my thread/issue?

Regards

0 Kudos
jss
Visitor
Visitor
311 Views
Registered: ‎09-18-2020

andreca, I don't know how one would go about that.  I don't believe that you get Xilinx technical support involved by starting a thread in these forums.  You have to contact your local FAE, who, if they can't help, will escalate you to the next level.

BTW: our support personnel suspected that we were releasing the POR inside the "Secure Lock Down window".  That will cause a secure lock down with no error code being displayed on INIT_B.  While we still don't know what the problem was, we did determine that that wasn't the problem.  I would reference you to p178 of UG585 (TRM for the 7014).  You can find a similar section in the TRM for the Zynq that you're using.  It is entitled, "PS_POR_B De-assertion Guidelines".  Maybe you can get started on proving that your POR de-assertion is/isn't the problem while your waiting for your FAE to get back to you?

Good luck!

0 Kudos
jss
Visitor
Visitor
308 Views
Registered: ‎09-18-2020

andreca, just a thought...  Are you getting an error code output on INIT_B from the PL?

0 Kudos