xref: /optee_os/core/arch/arm/plat-rcar/romapi.h (revision fa6e35468ab59b632b7ed807e0e8bf1977e0e230)
1*fa6e3546SVolodymyr Babchuk /* SPDX-License-Identifier: BSD-2-Clause */
2*fa6e3546SVolodymyr Babchuk /*
3*fa6e3546SVolodymyr Babchuk  * Copyright (c) 2021, EPAM Systems
4*fa6e3546SVolodymyr Babchuk  */
5*fa6e3546SVolodymyr Babchuk 
6*fa6e3546SVolodymyr Babchuk #ifndef __ROMAPI_H
7*fa6e3546SVolodymyr Babchuk #define __ROMAPI_H
8*fa6e3546SVolodymyr Babchuk 
9*fa6e3546SVolodymyr Babchuk #include <compiler.h>
10*fa6e3546SVolodymyr Babchuk 
11*fa6e3546SVolodymyr Babchuk /*
12*fa6e3546SVolodymyr Babchuk  * Mask ROM provides number of facilities, including function that returns 32
13*fa6e3546SVolodymyr Babchuk  * byte random vector.
14*fa6e3546SVolodymyr Babchuk  */
15*fa6e3546SVolodymyr Babchuk #define PLAT_RND_VECTOR_SZ	32
16*fa6e3546SVolodymyr Babchuk 
17*fa6e3546SVolodymyr Babchuk /*
18*fa6e3546SVolodymyr Babchuk  * Call to this function must be protected by a spinlock, because ROM code
19*fa6e3546SVolodymyr Babchuk  * accesses hardware. This function requires at least 4kb scratch buffer to
20*fa6e3546SVolodymyr Babchuk  * work. All parameters should be aligned to 8 bytes.
21*fa6e3546SVolodymyr Babchuk  */
22*fa6e3546SVolodymyr Babchuk uint32_t plat_rom_getrndvector(uint8_t rndbuff[PLAT_RND_VECTOR_SZ],
23*fa6e3546SVolodymyr Babchuk 			       uint8_t *scratch,
24*fa6e3546SVolodymyr Babchuk 			       uint32_t scratch_sz);
25*fa6e3546SVolodymyr Babchuk 
26*fa6e3546SVolodymyr Babchuk #endif
27