~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/mips/include/asm/mips-cpc.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/mips/include/asm/mips-cpc.h (Architecture sparc) and /arch/ppc/include/asm-ppc/mips-cpc.h (Architecture ppc)


  1 /* SPDX-License-Identifier: GPL-2.0-or-later *      1 
  2 /*                                                
  3  * Copyright (C) 2013 Imagination Technologies    
  4  * Author: Paul Burton <paul.burton@mips.com>     
  5  */                                               
  6                                                   
  7 #ifndef __MIPS_ASM_MIPS_CPS_H__                   
  8 # error Please include asm/mips-cps.h rather t    
  9 #endif                                            
 10                                                   
 11 #ifndef __MIPS_ASM_MIPS_CPC_H__                   
 12 #define __MIPS_ASM_MIPS_CPC_H__                   
 13                                                   
 14 #include <linux/bitops.h>                         
 15 #include <linux/errno.h>                          
 16                                                   
 17 /* The base address of the CPC registers */       
 18 extern void __iomem *mips_cpc_base;               
 19                                                   
 20 /**                                               
 21  * mips_cpc_default_phys_base - retrieve the d    
 22  *                              the CPC           
 23  *                                                
 24  * Returns the default physical base address o    
 25  * memory mapped registers. This is platform d    
 26  * implemented per-platform.                      
 27  */                                               
 28 extern phys_addr_t mips_cpc_default_phys_base(    
 29                                                   
 30 /**                                               
 31  * mips_cpc_probe - probe for a Cluster Power     
 32  *                                                
 33  * Attempt to detect the presence of a Cluster    
 34  * a CPC is successfully detected, else -errno    
 35  */                                               
 36 #ifdef CONFIG_MIPS_CPC                            
 37 extern int mips_cpc_probe(void);                  
 38 #else                                             
 39 static inline int mips_cpc_probe(void)            
 40 {                                                 
 41         return -ENODEV;                           
 42 }                                                 
 43 #endif                                            
 44                                                   
 45 /**                                               
 46  * mips_cpc_present - determine whether a Clus    
 47  *                                                
 48  * Returns true if a CPC is present in the sys    
 49  */                                               
 50 static inline bool mips_cpc_present(void)         
 51 {                                                 
 52 #ifdef CONFIG_MIPS_CPC                            
 53         return mips_cpc_base != NULL;             
 54 #else                                             
 55         return false;                             
 56 #endif                                            
 57 }                                                 
 58                                                   
 59 /* Offsets from the CPC base address to variou    
 60 #define MIPS_CPC_GCB_OFS        0x0000            
 61 #define MIPS_CPC_CLCB_OFS       0x2000            
 62 #define MIPS_CPC_COCB_OFS       0x4000            
 63                                                   
 64 #define CPC_ACCESSOR_RO(sz, off, name)            
 65         CPS_ACCESSOR_RO(cpc, sz, MIPS_CPC_GCB_    
 66         CPS_ACCESSOR_RO(cpc, sz, MIPS_CPC_COCB    
 67                                                   
 68 #define CPC_ACCESSOR_RW(sz, off, name)            
 69         CPS_ACCESSOR_RW(cpc, sz, MIPS_CPC_GCB_    
 70         CPS_ACCESSOR_RW(cpc, sz, MIPS_CPC_COCB    
 71                                                   
 72 #define CPC_CX_ACCESSOR_RO(sz, off, name)         
 73         CPS_ACCESSOR_RO(cpc, sz, MIPS_CPC_CLCB    
 74         CPS_ACCESSOR_RO(cpc, sz, MIPS_CPC_COCB    
 75                                                   
 76 #define CPC_CX_ACCESSOR_RW(sz, off, name)         
 77         CPS_ACCESSOR_RW(cpc, sz, MIPS_CPC_CLCB    
 78         CPS_ACCESSOR_RW(cpc, sz, MIPS_CPC_COCB    
 79                                                   
 80 /* CPC_ACCESS - Control core/IOCU access to CP    
 81 CPC_ACCESSOR_RW(32, 0x000, access)                
 82                                                   
 83 /* CPC_SEQDEL - Configure delays between comma    
 84 CPC_ACCESSOR_RW(32, 0x008, seqdel)                
 85                                                   
 86 /* CPC_RAIL - Configure the delay from rail po    
 87 CPC_ACCESSOR_RW(32, 0x010, rail)                  
 88                                                   
 89 /* CPC_RESETLEN - Configure the length of rese    
 90 CPC_ACCESSOR_RW(32, 0x018, resetlen)              
 91                                                   
 92 /* CPC_REVISION - Indicates the revisison of t    
 93 CPC_ACCESSOR_RO(32, 0x020, revision)              
 94                                                   
 95 /* CPC_PWRUP_CTL - Control power to the Cohere    
 96 CPC_ACCESSOR_RW(32, 0x030, pwrup_ctl)             
 97 #define CPC_PWRUP_CTL_CM_PWRUP                    
 98                                                   
 99 /* CPC_CONFIG - Mirrors GCR_CONFIG */             
100 CPC_ACCESSOR_RW(64, 0x138, config)                
101                                                   
102 /* CPC_SYS_CONFIG - Control cluster endianness    
103 CPC_ACCESSOR_RW(32, 0x140, sys_config)            
104 #define CPC_SYS_CONFIG_BE_IMMEDIATE               
105 #define CPC_SYS_CONFIG_BE_STATUS                  
106 #define CPC_SYS_CONFIG_BE                         
107                                                   
108 /* CPC_Cx_CMD - Instruct the CPC to take actio    
109 CPC_CX_ACCESSOR_RW(32, 0x000, cmd)                
110 #define CPC_Cx_CMD                                
111 #define  CPC_Cx_CMD_CLOCKOFF                      
112 #define  CPC_Cx_CMD_PWRDOWN                       
113 #define  CPC_Cx_CMD_PWRUP                         
114 #define  CPC_Cx_CMD_RESET                         
115                                                   
116 /* CPC_Cx_STAT_CONF - Indicates core configura    
117 CPC_CX_ACCESSOR_RW(32, 0x008, stat_conf)          
118 #define CPC_Cx_STAT_CONF_PWRUPE                   
119 #define CPC_Cx_STAT_CONF_SEQSTATE                 
120 #define  CPC_Cx_STAT_CONF_SEQSTATE_D0             
121 #define  CPC_Cx_STAT_CONF_SEQSTATE_U0             
122 #define  CPC_Cx_STAT_CONF_SEQSTATE_U1             
123 #define  CPC_Cx_STAT_CONF_SEQSTATE_U2             
124 #define  CPC_Cx_STAT_CONF_SEQSTATE_U3             
125 #define  CPC_Cx_STAT_CONF_SEQSTATE_U4             
126 #define  CPC_Cx_STAT_CONF_SEQSTATE_U5             
127 #define  CPC_Cx_STAT_CONF_SEQSTATE_U6             
128 #define  CPC_Cx_STAT_CONF_SEQSTATE_D1             
129 #define  CPC_Cx_STAT_CONF_SEQSTATE_D3             
130 #define  CPC_Cx_STAT_CONF_SEQSTATE_D2             
131 #define CPC_Cx_STAT_CONF_CLKGAT_IMPL              
132 #define CPC_Cx_STAT_CONF_PWRDN_IMPL               
133 #define CPC_Cx_STAT_CONF_EJTAG_PROBE              
134                                                   
135 /* CPC_Cx_OTHER - Configure the core-other reg    
136 CPC_CX_ACCESSOR_RW(32, 0x010, other)              
137 #define CPC_Cx_OTHER_CORENUM                      
138                                                   
139 /* CPC_Cx_VP_STOP - Stop Virtual Processors (V    
140 CPC_CX_ACCESSOR_RW(32, 0x020, vp_stop)            
141                                                   
142 /* CPC_Cx_VP_START - Start Virtual Processors     
143 CPC_CX_ACCESSOR_RW(32, 0x028, vp_run)             
144                                                   
145 /* CPC_Cx_VP_RUNNING - Indicate which Virtual     
146 CPC_CX_ACCESSOR_RW(32, 0x030, vp_running)         
147                                                   
148 /* CPC_Cx_CONFIG - Mirrors GCR_Cx_CONFIG */       
149 CPC_CX_ACCESSOR_RW(32, 0x090, config)             
150                                                   
151 #ifdef CONFIG_MIPS_CPC                            
152                                                   
153 /**                                               
154  * mips_cpc_lock_other - lock access to anothe    
155  * core: the other core to be accessed            
156  *                                                
157  * Call before operating upon a core via the '    
158  * order to prevent the region being moved dur    
159  * within the bounds of a mips_cm_{lock,unlock    
160  * by a call to mips_cpc_unlock_other.            
161  */                                               
162 extern void mips_cpc_lock_other(unsigned int c    
163                                                   
164 /**                                               
165  * mips_cpc_unlock_other - unlock access to an    
166  *                                                
167  * Call after operating upon another core via     
168  * Must be called after mips_cpc_lock_other.      
169  */                                               
170 extern void mips_cpc_unlock_other(void);          
171                                                   
172 #else /* !CONFIG_MIPS_CPC */                      
173                                                   
174 static inline void mips_cpc_lock_other(unsigne    
175 static inline void mips_cpc_unlock_other(void)    
176                                                   
177 #endif /* !CONFIG_MIPS_CPC */                     
178                                                   
179 #endif /* __MIPS_ASM_MIPS_CPC_H__ */              
180                                                   

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php