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