If I use Engine = SW, I see this result:
Authenticate image from DDR location 0x80800000...
data abort
pc : [<0000a8a2>] lr : [<0000ab1f>]
reloc pc : [<e78c08a2>] lr : [<e78c0b1f>]
sp : 9ef03460 ip : 0000e7ed fp : 007b4fe0
r10: 10800000 r9 : 9ef0373c r8 : 00000000
r7 : 00000000 r6 : 00904cb4 r5 : 10800000 r4 : 00000000
r3 : 5be0cd19 r2 : 00000008 r1 : 00904cb4 r0 : 10800000
Flags: nZCv IRQs off FIQs off Mode SVC_32 (T)
Code: 2a08 d1ea 4605 2400 (f810) 7024
Resetting CPU ...
If I use Engine = ANY, then I get both HAB_INV_ASSERTION and HAB_INV_SIGNATURE.
Keys:
Reading bank 3:
Word 0x00000000: f315b190 99ef27c6 26b10686 abdd61dc
Word 0x00000004: 9c001352 d2c95d64 6ce8e499 21f083c7
The keys I used are the same:
0xF315B190
0x99EF27C6
0x26B10686
0xABDD61DC
0x9C001352
0xD2C95D64
0x6CE8E499
0x21F083C7
I tried to follow HAB for Dummies. https://boundarydevices.com/high-assurance-boot-hab-dummies/
Here are the first two errors:
HAB Configuration: 0xf0, HAB State: 0x66
--------- HAB Event 1 -----------------
event data:
0xdb 0x00 0x14 0x42 0x33 0x0c 0xa0 0x00
0x00 0x00 0x00 0x00 0x00 0x91 0x00 0x00
0x00 0x00 0x02 0x00
STS = HAB_FAILURE (0x33)
RSN = HAB_INV_ASSERTION (0x0C)
CTX = HAB_CTX_ASSERT (0xA0)
ENG = HAB_ENG_ANY (0x00)
--------- HAB Event 2 -----------------
event data:
0xdb 0x00 0x14 0x42 0x33 0x18 0xc0 0x00
0xca 0x00 0x0c 0x00 0x01 0xc5 0x00 0x00
0x00 0x00 0x07 0xdc
STS = HAB_FAILURE (0x33)
RSN = HAB_INV_SIGNATURE (0x18)
CTX = HAB_CTX_COMMAND (0xC0)
ENG = HAB_ENG_ANY (0x00)
I found out that for the i.MX6 ULL you must use Engine = SW.
Also, I was trying to use shadow registers (because of limited early board supply), but apparently they are ignored.
@JohnKlug
Hello,
You may look at the following discussions; hope they help.
https://community.nxp.com/t5/i-MX-Processors/i-MX6UL-with-Secure-Boot-and-HAB-errors/m-p/695820
Regards,
Yuri.