Changes between Version 6 and Version 7 of newport/secure_boot


Ignore:
Timestamp:
08/27/2026 08:40:49 PM (25 hours ago)
Author:
Tim Harvey
Comment:

added troubleshooting section showing result of flashing a secured board

Legend:

Unmodified
Added
Removed
Modified
  • newport/secure_boot

    v6 v7  
    7070== Blowing Fuses to lock a device to use trusted boot
    7171
    72 **Important Note: Once boards have been configured for trusted-mode boot by hard blowing fuses the JTAG chain is disabled and boards can not be re-tested by Gateworks and as a result returns (RMA) will not be accepted. It is recommended that OEM's test board functionality before permanently setting trusted-mode boot fuses.**
     72**Important Note: Once boards have been configured for trusted-mode boot by hard blowing fuses JTAG is disabled and boards can not be re-tested by Gateworks and as a result returns (RMA) will not be accepted. It is recommended that OEM's test board functionality before permanently setting trusted-mode boot fuses.**
    7373
    7474In order to enable trusted boot you must:
     
    311311
    312312You can continue the process of securing your firmware image by locking down U-Boot's environment and using a ramdisk to mount an encrypted filesystem. For detailed examples of that see [wiki:/venice/secure_boot venice/secure_boot]
     313
     314
     315== Troubleshooting
     316If you have blown fuses to enable secure boot, while the JTAG chain still functions and allows programming of the GSC firmware and identification of the GSC and CN80xx, JTAG access to the CN80xx registers is disabled and you will not be able to program the eMMC flash:
     317
     318Here is an example of failing to program eMMC flash:
     319{{{#!bash
     320$ jtag_usbv4 -p firmware-newport.bin
     321
     322Channel #      S01                                           
     323--------------------------------------------------------------------------------
     324USB Open Rev    r0                                           
     325JTAG_ID #00    CN8                                           
     326JTAG_ID #01    MSP                                           
     327Load Debugger  fS1
     328}}}
     329 * Note the JTAG chain scans (and does allow programming of the GSC) but CN80xx registers are not available which is why Load Debugger fails.
     330
     331Programming the GSC however does work with a locked board:
     332{{{#!bash
     333$ jtag_usbv4 -m gw6400.txt
     334
     335
     336Channel #      S01                                                           
     337
     338-----------------------------------------------------------------------------
     339USB Open Rev    r0                                                           
     340JTAG_ID #00    CN8                                                           
     341JTAG_ID #01    MSP                                                           
     342MSP PROG        OK                                                           
     343MSP VERIFY      OK                                                           
     344Load Debugger  fS1
     345}}}
     346 * Note that 'MSP PROG' is 'OK' indicating the GSC was programmed. The Load Debugger failure does not matter when programming the GSC