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 Singhstatic 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