Visible to Intel only — GUID: tim1616566898974
Ixiasoft
Visible to Intel only — GUID: tim1616566898974
Ixiasoft
4.8. Security Setting Fuse Provisioning
quartus_pgm -c 1 -m jtag -o “ei;programming_file.fuse;AGFB014R24B”
Options
- i: The Programmer loads the provision firmware helper image to the device.
- e: The Programmer reads the fuse from the device and stores it in a .fuse file.
The .fuse file contains a list of fuse name-value pairs. The value specifies whether a fuse has been blown or the contents of the fuse field.
# Co-signed firmware = "Not blown" # Device Permit Kill = "Not blown" # Device not secure = "Not blown" # Disable HPS debug = "Not blown" # Disable Intrinsic ID PUF enrollment = "Not blown" # Disable JTAG = "Not blown" # Disable PUF-wrapped encryption key = "Not blown" # Disable owner encryption key in BBRAM = "Not blown" # Disable owner encryption key in eFuses = "Not blown" # Disable owner root public key hash 0 = "Not blown" # Disable owner root public key hash 1 = "Not blown" # Disable owner root public key hash 2 = "Not blown" # Disable virtual eFuses = "Not blown" # Force SDM clock to internal oscillator = "Not blown" # Force encryption key update = "Not blown" # Intel explicit key cancellation = "0" # Lock security eFuses = "Not blown" # Owner encryption key program done = "Not blown" # Owner encryption key program start = "Not blown" # Owner explicit key cancellation 0 = "" # Owner explicit key cancellation 1 = "" # Owner explicit key cancellation 2 = "" # Owner fuses = "0x00000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000 0000000000000000000000" # Owner root public key hash 0 = "0x00000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000" # Owner root public key hash 1 = "0x00000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000" # Owner root public key hash 2 = "0x00000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000" # Owner root public key size = "None" # PTS counter = "0" # PTS counter base = "0" # QSPI start up delay = "10ms" # RMA Counter = "0" # SDMIO0 is I2C = "Not blown" # SVN counter A = "0" # SVN counter B = "0" # SVN counter C = "0" # SVN counter D = "0"
Co-signed firmware = "Blown"
You may also allocate and program the Owner Fuses based on your requirements.
You may use the following command to perform a blank check, program, and verify the owner root public key:
quartus_pgm -c 1 -m jtag -o "ibpv;root0.qky"
Options
- i: Loads the provision firmware helper image to the device.
- b: Performs a blank check to verify the desired security setting fuses are not already blown.
- p: Programs the fuse.
- v: Verifies the programmed key on the device.
After programming the .qky file, you may examine the fuse info by checking the fuse info again to ensure both the owner public key hash and the owner public key size have non-zero values.
- Device not secure
- Device permit kill
- Disable owner root public key hash 0
- Disable owner root public key hash 1
- Disable owner root public key hash 2
- Intel key cancellation
- Owner encryption key program start
- Owner encryption key program done
- Owner key cancellation
- Owner public key hash
- Owner public key size
- Owner root public key hash 0
- Owner root public key hash 1
- Owner root public key hash 2
- PTS counter
- PTS counter base
- QSPI start up delay
- RMA counter
- SDMIO0 is I2C
- SVN counter A
- SVN counter B
- SVN counter C
- SVN counter D
//For physical (non-volatile) eFuses quartus_pgm -c 1 -m jtag -o "pi;programming_file.fuse" --non_volatile_key
//For virtual (volatile) eFuses quartus_pgm -c 1 -m jtag -o "pi;programming_file.fuse"
quartus_pgm -c 1 -m jtag -o "v;root0_another.qky"
If the keys don't match, the Programmer fails with an Operation failed error message.
Did you find the information on this page useful?
Feedback Message
Characters remaining: