uniphier: embed ROTPK hash into BL1/BL2
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Wed, 14 Jun 2017 11:38:12 +0000 (20:38 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Tue, 20 Jun 2017 14:54:28 +0000 (23:54 +0900)
commit63634800fcd82c3395959bcc88328427f6c06308
treee334cb88c8b3a1292d712ad38b774701f5cf29bd
parent0dc3c353054896722b7cbfbd04a4d845619485e7
uniphier: embed ROTPK hash into BL1/BL2

Currently, ROTPK_NOT_DEPLOYED flag is set in plat_get_rotpk_info().
It is up to users how to retrieve ROTPK if the ROT verification is
desired.  This is not nice.

This commit improves plat_get_rotpk_info() implementation and automates
the ROTPK deployment.  UniPhier platform has no ROTPK storage, so it
should be embedded in BL1/BL2, like ARM_ROTPK_LOCATION=devel_rsa case.
This makes sense because UniPhier platform implements its internal ROM
i.e. BL1 is used as updatable pseudo ROM.

Things work like this:

- ROT_KEY (default: $(BUILD_PLAT)/rot_key.pem) is created if missing.
  Users can override ROT_KEY from the command line if they want to
  use a specific ROT key.

- ROTPK_HASH is generated based on ROT_KEY.

- ROTPK_HASH is included by uniphier_rotpk.S and compiled into BL1/BL2.

- ROT_KEY is input to cert_create tool.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
plat/socionext/uniphier/platform.mk
plat/socionext/uniphier/uniphier_rotpk.S [new file with mode: 0644]
plat/socionext/uniphier/uniphier_tbbr.c