• Juan Castillo's avatar
    TBB: add platform API to read the ROTPK information · 95cfd4ad
    Juan Castillo authored
    This patch extends the platform port by adding an API that returns
    either the Root of Trust public key (ROTPK) or its hash. This is
    usually stored in ROM or eFUSE memory. The ROTPK returned must be
    encoded in DER format according to the following ASN.1 structure:
    
        SubjectPublicKeyInfo  ::=  SEQUENCE  {
            algorithm           AlgorithmIdentifier,
            subjectPublicKey    BIT STRING
        }
    
    In case the platform returns a hash of the key:
    
        DigestInfo  ::= SEQUENCE {
            digestAlgorithm     AlgorithmIdentifier,
            keyDigest           OCTET STRING
        }
    
    An implementation for ARM development platforms is provided in this
    patch. When TBB is enabled, the ROTPK hash location must be specified
    using the build option 'ARM_ROTPK_LOCATION'. Available options are:
    
        - 'regs' : return the ROTPK hash stored in the Trusted
          root-key storage registers.
    
        - 'devel_rsa' : return a ROTPK hash embedded in the BL1 and
          BL2 binaries. This hash has been obtained from the development
          RSA public key located in 'plat/arm/board/common/rotpk'.
    
    On FVP, the number of MMU tables has been increased to map and
    access the ROTPK registers.
    
    A new file 'board_common.mk' has been added to improve code sharing
    in the ARM develelopment platforms.
    
    Change-Id: Ib25862e5507d1438da10773e62bd338da8f360bf
    95cfd4ad
board_arm_trusted_boot.c 5.77 KB