blob: 2ba1847a2ed79d6fc1970fc7cf303b552cd63ae1 [file] [log] [blame]
Hou Zhiqiang505d7352016-06-28 20:18:13 +08001/*
2 * Copyright 2016 NXP Semiconductor, Inc.
3 *
4 * SPDX-License-Identifier: GPL-2.0+
5 */
6
7#ifndef __SEC_FIRMWARE_H_
8#define __SEC_FIRMWARE_H_
9
Yuantian Tangaec3b142017-04-19 13:27:39 +080010#define PSCI_INVALID_VER 0xffffffff
Ruchika Guptadb204d72017-08-16 15:58:10 +053011#define SEC_JR3_OFFSET 0x40000
Sumit Gargb6fa55e2017-09-01 13:55:01 +053012#define WORD_MASK 0xffffffff
13#define WORD_SHIFT 32
Yuantian Tangaec3b142017-04-19 13:27:39 +080014
Sumit Gargb6fa55e2017-09-01 13:55:01 +053015int sec_firmware_init(const void *, u32 *, u32 *, u32 *, u32 *);
Hou Zhiqiang505d7352016-06-28 20:18:13 +080016int _sec_firmware_entry(const void *, u32 *, u32 *);
17bool sec_firmware_is_valid(const void *);
Ruchika Guptadb204d72017-08-16 15:58:10 +053018bool sec_firmware_support_hwrng(void);
19int sec_firmware_get_random(uint8_t *rand, int bytes);
20int fdt_fixup_kaslr(void *fdt);
Hou Zhiqiang6be115d2017-01-16 17:31:48 +080021#ifdef CONFIG_SEC_FIRMWARE_ARMV8_PSCI
Hou Zhiqiang505d7352016-06-28 20:18:13 +080022unsigned int sec_firmware_support_psci_version(void);
23unsigned int _sec_firmware_support_psci_version(void);
Yuantian Tangaec3b142017-04-19 13:27:39 +080024#else
25static inline unsigned int sec_firmware_support_psci_version(void)
26{
27 return PSCI_INVALID_VER;
28}
Hou Zhiqiang505d7352016-06-28 20:18:13 +080029#endif
30
Ruchika Guptadb204d72017-08-16 15:58:10 +053031static inline unsigned int sec_firmware_used_jobring_offset(void)
32{
33 return SEC_JR3_OFFSET;
34}
35
Hou Zhiqiang505d7352016-06-28 20:18:13 +080036#endif /* __SEC_FIRMWARE_H_ */