Hi,
is there a way to check values of OTPMK and SRKH after they are written to device, PROGFB(0x2) instruction is issued and device is restarted?
In short is there a way to check if any of fuses needed for secure boot are blown?
Thank you for your support @yipingwang.
However, I'm still facing problems. I followed the exact instructions on secure boot procedure of flashing OPTMK and SRKH. I'm using Grapeboard from Scalys based on LS1012A.
Everything is fine except step 9. It turns out neither of registers, OTPMK and SRKH, were fused. Check the output.
SRKH:
=> md 01e80254 0x10
01e80254: 00000000 00000000 00000000 00000000 ................
OTPMK:
=> md.b 1e90014 4
01e90014: 88 00 09 00 ....
Am I missing something? Is there a way to check whether device detects TA_PROG_SFP?
step 7:
mw 1e80020 0x02000000
step2:
Enable POVDD
LS1012ARDB:
• Through I2C transactions, write to LDO1CT register to change LDO1EN bit in vr5100
• i2c mw 0x08 0x6c 0x10
FRWY-LS1012A:
• Put J37 to enable PROG_SFP
• Through I2C transactions, write to LDO1CT register to change LDO1EN bit in vr5100
• i2c mw 0x08 0x6c 0x10
IMHO command "i2c mw 0x08 0x6c 0x10" controls MC34VR5100A1EP and provides power supply for SFP_PROG pin. That is not the case for Grapeboard, which uses external PS instead.
As described in steps of previous post I did all by book. However, my OTPMK and SRKH values are deleted once device is restarted despite the fact I appended 1.8V and blew the fuses. Do you have any clue why?
In your step 7, have you executed the following command in u-boot.
mw 1e80020 0x02000000
NOT
mw 1e80020 0x2
I used correct command.
The issue is somewhat related to external power supply appended to SFP_PROG pin. There seems to be no current draw.
Check if SRKH is fused.
=> md $SRKHR0 0x10
01e80254: 00000000 00000000 00000000 00000000 ................
01e80264: 00000000 00000000 00000000 00000000 ................
Zero indicates that SRKH is not fused.
Check if SRKH is fused.
Then, following could be the value on dumping SRK hash.
=> md $SRKHR0 0x10
01e80254: d4fec2fd 9e567f31 5c422818 fd5c7be8 ....1.V..(B\.{\.
01e80264: 8fabbe34 702a79df e185ff2d 8796a232 4....y*p-...2...
1. Verify the SNVS register - HPSR to check whether OTPMK is fused already.
=> md $SNVS_HPSR_REG
88000900
OTPMK_ZERO_BIT (second nibble) is 1, indicating that OTPMK is not fused
Check if OPTMK is fused.
=> md $SNVS_HPSR_REG
80000900
OTPMK_ZERO_BIT (second nibble) is 0, indicating that OTPMK is fused.
Read OTPMK.
=> md $OTPMKR0 0x10
01e80234: ffffffff ffffffff ffffffff ffffffff ................
01e80244: ffffffff ffffffff ffffffff ffffffff ................