1 /* 2 * Arm SCP/MCP Software 3 * Copyright (c) 2018-2021, Arm Limited and Contributors. All rights reserved. 4 * 5 * SPDX-License-Identifier: BSD-3-Clause 6 */ 7 8 #ifndef N1SDP_PIK_CPU_H 9 #define N1SDP_PIK_CPU_H 10 11 #include <fwk_macros.h> 12 13 #include <stdint.h> 14 15 #define PE_COUNT_MAX 16 16 17 /*! 18 * \brief PE Static Configuration register definitions 19 */ 20 struct static_config_reg { 21 FWK_RW uint32_t STATIC_CONFIG; 22 FWK_RW uint32_t RVBARADDR_LW; 23 FWK_RW uint32_t RVBARADDR_UP; 24 uint32_t RESERVED; 25 }; 26 27 /*! 28 * \brief AP cores clock control register definitions 29 */ 30 struct coreclk_reg { 31 FWK_RW uint32_t CTRL; 32 FWK_RW uint32_t DIV; 33 uint32_t RESERVED; 34 FWK_RW uint32_t MOD; 35 }; 36 37 /*! 38 * \brief CPU (V8.2) PIK register definitions 39 */ 40 struct pik_cpu_reg { 41 FWK_RW uint32_t CLUSTER_CONFIG; 42 uint8_t RESERVED0[0x10 - 0x4]; 43 struct static_config_reg STATIC_CONFIG[PE_COUNT_MAX]; 44 uint8_t RESERVED1[0x800 - 0x110]; 45 FWK_RW uint32_t PPUCLK_CTRL; 46 FWK_RW uint32_t PPUCLK_DIV1; 47 uint8_t RESERVED2[0x810 - 0x808]; 48 FWK_RW uint32_t PCLK_CTRL; 49 uint8_t RESERVED3[0x820 - 0x814]; 50 FWK_RW uint32_t ATCLK_CTRL; 51 uint8_t RESERVED4[0x830 - 0x824]; 52 FWK_RW uint32_t GICCLK_CTRL; 53 uint8_t RESERVED5[0x840 - 0x834]; 54 FWK_RW uint32_t AMBACLK_CTRL; 55 uint8_t RESERVED6[0x850 - 0x844]; 56 FWK_RW uint32_t CLUSCLK_CTRL; 57 FWK_RW uint32_t CLUSCLK_DIV1; 58 uint8_t RESERVED7[0x860 - 0x858]; 59 struct coreclk_reg CORECLK[8]; 60 uint8_t RESERVED8[0xA00 - 0x8E0]; 61 FWK_R uint32_t CLKFORCE_STATUS; 62 FWK_RW uint32_t CLKFORCE_SET; 63 FWK_RW uint32_t CLKFORCE_CLR; 64 uint8_t RESERVED9[0xFB8 - 0xA0C]; 65 FWK_R uint32_t CAP2; 66 FWK_R uint32_t CAP; 67 FWK_R uint32_t PIK_CONFIG; 68 FWK_R uint8_t RESERVED10[0xFD0 - 0xFC4]; 69 FWK_R uint32_t PID4; 70 FWK_R uint32_t PID5; 71 FWK_R uint32_t PID6; 72 FWK_R uint32_t PID7; 73 FWK_R uint32_t PID0; 74 FWK_R uint32_t PID1; 75 FWK_R uint32_t PID2; 76 FWK_R uint32_t PID3; 77 FWK_R uint32_t ID0; 78 FWK_R uint32_t ID1; 79 FWK_R uint32_t ID2; 80 FWK_R uint32_t ID3; 81 }; 82 83 #define PIK_CPU_CAP_CLUSSYNC UINT32_C(0x00000001) 84 #define PIK_CPU_CAP_CORESYNC(CORE) ((uint32_t)(1 << ((CORE) + 1))) 85 #define PIK_CPU_CAP_PE_MASK UINT32_C(0xF0000000) 86 #define PIK_CPU_CAP_PE_POS 28 87 88 #endif /* N1SDP_PIK_CPU_H */ 89