Open
Description
Notes from my experiments:
- HACE can only access RAM
- HACE address registers assume offset into RAM rather than full AHB address
- FIT SHA verification is done before copying to RAM(?) so HACE doesn't help
- Writes to the hash, crypto, and RSA "engine control" registers start the operation
- Hash, crypto, and RSA can run in parallel
- Command queue is just queue of register writes
- Commands are tag, register offset within HACE register map, and data
- It looks like tag changes get written to the tag register automagically
- Writes to tag register can block(?) based on whether the engines are idle or busy
- Useful operation seems to be:
- Enable interrupts on tag register write and completion
- Queue a "transaction" (series of register writes) with the same "tag": write data src, write hash dest, write data len, write engine start
- When tag register write interrupt fires, that transaction is starting
- When completion interrupt fires, the transaction is done.
- Using only tag register write interrupt would miss completion of last transaction in queue.
Metadata
Metadata
Assignees
Labels
No labels