Skip to content

Write driver for AST2400/2500 Hash and Crypto Engine #132

Open
@mx-shift

Description

@mx-shift

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions