/****************************************************************************** * Copyright (c) 2014 - 2022 Xilinx, Inc. All rights reserved. * SPDX-License-Identifier: MIT ******************************************************************************/ /*****************************************************************************/ /** * * @file xplatform_info.h * * * @addtogroup common_platform_info APIs to Get Platform Information * * * The xplatform_info.h file contains definitions for various available Xilinx® * platforms. Also, it contains prototype of APIs, which can be used to get the * platform information. * * @{ *
* MODIFICATION HISTORY: * * Ver Who Date Changes * ----- ---- --------- ------------------------------------------------------- * 6.4 ms 05/23/17 Added PSU_PMU macro to support XGetPSVersion_Info * function for PMUFW. * 7.2 adk 08/01/20 Added versal support for the XGetPSVersion_Info function. * 7.6 mus 08/23/21 Updated prototypes for functions which are not taking any * arguments with void keyword. This has been done to fix * compilation warnings with "-Wstrict-prototypes" flag. * It fixes CR#1108601. * 7.6 mus 08/30/21 Updated flag checking to fix compilation warnings * reported with "-Wundef" flag. * 7.7 sk 01/10/22 Update XPLAT_INFO_MASK from signed to unsigned to fix * misra_c_2012_rule_10_4 violation. ** ******************************************************************************/ /** *@cond nocomments */ #ifndef XPLATFORM_INFO_H /* prevent circular inclusions */ #define XPLATFORM_INFO_H /* by using protection macros */ #ifdef __cplusplus extern "C" { #endif /***************************** Include Files *********************************/ #include "xil_types.h" /************************** Constant Definitions *****************************/ #if defined (versal) #define XPAR_PMC_TAP_BASEADDR 0xF11A0000U #define XPAR_PMC_TAP_VERSION_OFFSET 0x00000004U #define XPLAT_PS_VERSION_ADDRESS (XPAR_PMC_TAP_BASEADDR + \ XPAR_PMC_TAP_VERSION_OFFSET) #else #define XPAR_CSU_BASEADDR 0xFFCA0000U #define XPAR_CSU_VER_OFFSET 0x00000044U #define XPLAT_PS_VERSION_ADDRESS (XPAR_CSU_BASEADDR + \ XPAR_CSU_VER_OFFSET) #endif #define XPLAT_ZYNQ_ULTRA_MP_SILICON 0x0 #define XPLAT_ZYNQ_ULTRA_MP 0x1 #define XPLAT_ZYNQ_ULTRA_MPVEL 0x2 #define XPLAT_ZYNQ_ULTRA_MPQEMU 0x3 #define XPLAT_ZYNQ 0x4 #define XPLAT_MICROBLAZE 0x5 #define XPLAT_VERSAL 0x6U #define XPS_VERSION_1 0x0 #define XPS_VERSION_2 0x1 #define XPLAT_INFO_MASK (0xFU) #if defined (versal) #define XPS_VERSION_INFO_MASK 0xFF00U #define XPS_VERSION_INFO_SHIFT 0x8U #define XPLAT_INFO_SHIFT 0x18U #else #define XPS_VERSION_INFO_MASK (0xF) #define XPS_VERSION_INFO_SHIFT 0x0U #define XPLAT_INFO_SHIFT 0xCU #endif /**************************** Type Definitions *******************************/ /** *@endcond */ /***************** Macros (Inline Functions) Definitions *********************/ u32 XGetPlatform_Info(void); #if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) || defined (PSU_PMU) || defined (versal) u32 XGetPSVersion_Info(void); #endif #if defined (ARMR5) || defined (__aarch64__) || defined (ARMA53_32) u32 XGet_Zynq_UltraMp_Platform_info(void); #endif /************************** Function Prototypes ******************************/ #ifdef __cplusplus } #endif #endif /* end of protection macro */ /** * @} End of "addtogroup common_platform_info". */