xref: /rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-platform.h (revision 12d80bbbf6031228bdd910eccb03bb185e8df527)
1*4b8b8d74SJaiprakash Singh /***********************license start***********************************
2*4b8b8d74SJaiprakash Singh * Copyright (C) 2021-2026 Marvell.
3*4b8b8d74SJaiprakash Singh * SPDX-License-Identifier: BSD-3-Clause
4*4b8b8d74SJaiprakash Singh * https://spdx.org/licenses
5*4b8b8d74SJaiprakash Singh ***********************license end**************************************/
6*4b8b8d74SJaiprakash Singh 
7*4b8b8d74SJaiprakash Singh /**
8*4b8b8d74SJaiprakash Singh  * @file
9*4b8b8d74SJaiprakash Singh  *
10*4b8b8d74SJaiprakash Singh  * Functions for information about the run platform.
11*4b8b8d74SJaiprakash Singh  *
12*4b8b8d74SJaiprakash Singh  * <hr>$Revision: 49448 $<hr>
13*4b8b8d74SJaiprakash Singh  * @addtogroup hal
14*4b8b8d74SJaiprakash Singh  * @{
15*4b8b8d74SJaiprakash Singh  */
16*4b8b8d74SJaiprakash Singh 
17*4b8b8d74SJaiprakash Singh /**
18*4b8b8d74SJaiprakash Singh  * This typedef defines the possible platforms for the ODY. The
19*4b8b8d74SJaiprakash Singh  * numbers represent fuse setting in Fuses[197:195].
20*4b8b8d74SJaiprakash Singh  */
21*4b8b8d74SJaiprakash Singh typedef enum {
22*4b8b8d74SJaiprakash Singh 	PLATFORM_HW = 0,
23*4b8b8d74SJaiprakash Singh 	PLATFORM_EMULATOR = 1,
24*4b8b8d74SJaiprakash Singh 	PLATFORM_RTL = 2,
25*4b8b8d74SJaiprakash Singh 	PLATFORM_ASIM = 3,
26*4b8b8d74SJaiprakash Singh } ody_platform_t;
27*4b8b8d74SJaiprakash Singh 
28*4b8b8d74SJaiprakash Singh /**
29*4b8b8d74SJaiprakash Singh  * Check which platform we are currently running on. This allows a ODY binary to
30*4b8b8d74SJaiprakash Singh  * run on various platforms without a recompile.
31*4b8b8d74SJaiprakash Singh  *
32*4b8b8d74SJaiprakash Singh  * @param platform to check for
33*4b8b8d74SJaiprakash Singh  *
34*4b8b8d74SJaiprakash Singh  * @return Non zero if we are on the platform
35*4b8b8d74SJaiprakash Singh  */
36*4b8b8d74SJaiprakash Singh static inline int ody_is_platform(ody_platform_t platform) __attribute__ ((pure, always_inline));
ody_is_platform(ody_platform_t platform)37*4b8b8d74SJaiprakash Singh static inline int ody_is_platform(ody_platform_t platform)
38*4b8b8d74SJaiprakash Singh {
39*4b8b8d74SJaiprakash Singh 	extern ody_platform_t __ody_platform;
40*4b8b8d74SJaiprakash Singh 
41*4b8b8d74SJaiprakash Singh 	return (__ody_platform == platform);
42*4b8b8d74SJaiprakash Singh }
43*4b8b8d74SJaiprakash Singh 
44*4b8b8d74SJaiprakash Singh /**
45*4b8b8d74SJaiprakash Singh  * Call to initialize the platform state
46*4b8b8d74SJaiprakash Singh  */
47*4b8b8d74SJaiprakash Singh extern void __ody_platform_init(void);
48*4b8b8d74SJaiprakash Singh 
49*4b8b8d74SJaiprakash Singh /** @} */
50