]> git.dujemihanovic.xyz Git - u-boot.git/commit
board: samsung: e850-96: Load LDFW firmware on board init
authorSam Protsenko <semen.protsenko@linaro.org>
Tue, 23 Jul 2024 18:14:36 +0000 (13:14 -0500)
committerMinkyu Kang <mk7.kang@samsung.com>
Wed, 24 Jul 2024 07:37:09 +0000 (16:37 +0900)
commitf04e58cc978824872e6a4de40788d65660e502bf
tree032aab9f23a2625ccb546d073a363da61e5554dd
parentac1a474b38a5170f93b6aaf1c7f74f34530a8ed0
board: samsung: e850-96: Load LDFW firmware on board init

LDFW is a Loadable Firmware which provides additional security
capabilities in EL3 monitor. For example, True Random Number Generator
(TRNG) block registers can't be accessed from EL1 (where U-Boot and
Linux kernel are running), but it's possible to access TRNG capabilities
via corresponding SMC calls, which in turn are handled by LDFW. To do
so, LDFW firmware has to be loaded first. It's stored on a raw eMMC
partition, so it has to be read into NWD (Normal World) RAM buffer, and
then loaded to SWD (Secure World) memory using the special SMC call to
EL3 monitor program. EL3_MON will load LDFW to SWD memory, more
specifically to the area starting at 0xbf700000 (with size of 7.5 MiB).
That memory area is reserved in device tree, so there shouldn't be any
collisions. After that LDFW becomes functional.

Implement LDFW firmware loading on board init. While at it, fix the
copyright date in header comments, as this board support was actually
added in 2024, not in 2020: it was probably a copy-paste mistake.

Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
board/samsung/e850-96/Makefile
board/samsung/e850-96/e850-96.c
board/samsung/e850-96/fw.c [new file with mode: 0644]
board/samsung/e850-96/fw.h [new file with mode: 0644]