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

TOMOYO Linux Cross Reference
Linux/arch/powerpc/include/asm/firmware.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ 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 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0-or-later */
  2 /*
  3  *  Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org)
  4  *
  5  *  Modifications for ppc64:
  6  *      Copyright (C) 2003 Dave Engebretsen <engebret@us.ibm.com>
  7  */
  8 #ifndef __ASM_POWERPC_FIRMWARE_H
  9 #define __ASM_POWERPC_FIRMWARE_H
 10 
 11 #ifdef __KERNEL__
 12 
 13 #include <asm/asm-const.h>
 14 
 15 /* firmware feature bitmask values */
 16 
 17 #define FW_FEATURE_PFT          ASM_CONST(0x0000000000000001)
 18 #define FW_FEATURE_TCE          ASM_CONST(0x0000000000000002)
 19 #define FW_FEATURE_SPRG0        ASM_CONST(0x0000000000000004)
 20 #define FW_FEATURE_DABR         ASM_CONST(0x0000000000000008)
 21 #define FW_FEATURE_COPY         ASM_CONST(0x0000000000000010)
 22 #define FW_FEATURE_ASR          ASM_CONST(0x0000000000000020)
 23 #define FW_FEATURE_DEBUG        ASM_CONST(0x0000000000000040)
 24 #define FW_FEATURE_TERM         ASM_CONST(0x0000000000000080)
 25 #define FW_FEATURE_PERF         ASM_CONST(0x0000000000000100)
 26 #define FW_FEATURE_DUMP         ASM_CONST(0x0000000000000200)
 27 #define FW_FEATURE_INTERRUPT    ASM_CONST(0x0000000000000400)
 28 #define FW_FEATURE_MIGRATE      ASM_CONST(0x0000000000000800)
 29 #define FW_FEATURE_PERFMON      ASM_CONST(0x0000000000001000)
 30 #define FW_FEATURE_CRQ          ASM_CONST(0x0000000000002000)
 31 #define FW_FEATURE_VIO          ASM_CONST(0x0000000000004000)
 32 #define FW_FEATURE_RDMA         ASM_CONST(0x0000000000008000)
 33 #define FW_FEATURE_LLAN         ASM_CONST(0x0000000000010000)
 34 #define FW_FEATURE_BULK_REMOVE  ASM_CONST(0x0000000000020000)
 35 #define FW_FEATURE_XDABR        ASM_CONST(0x0000000000040000)
 36 #define FW_FEATURE_PUT_TCE_IND  ASM_CONST(0x0000000000080000)
 37 #define FW_FEATURE_SPLPAR       ASM_CONST(0x0000000000100000)
 38 #define FW_FEATURE_LPAR         ASM_CONST(0x0000000000400000)
 39 #define FW_FEATURE_PS3_LV1      ASM_CONST(0x0000000000800000)
 40 #define FW_FEATURE_HPT_RESIZE   ASM_CONST(0x0000000001000000)
 41 #define FW_FEATURE_CMO          ASM_CONST(0x0000000002000000)
 42 #define FW_FEATURE_VPHN         ASM_CONST(0x0000000004000000)
 43 #define FW_FEATURE_XCMO         ASM_CONST(0x0000000008000000)
 44 #define FW_FEATURE_OPAL         ASM_CONST(0x0000000010000000)
 45 #define FW_FEATURE_SET_MODE     ASM_CONST(0x0000000040000000)
 46 #define FW_FEATURE_BEST_ENERGY  ASM_CONST(0x0000000080000000)
 47 #define FW_FEATURE_FORM1_AFFINITY ASM_CONST(0x0000000100000000)
 48 #define FW_FEATURE_PRRN         ASM_CONST(0x0000000200000000)
 49 #define FW_FEATURE_DRMEM_V2     ASM_CONST(0x0000000400000000)
 50 #define FW_FEATURE_DRC_INFO     ASM_CONST(0x0000000800000000)
 51 #define FW_FEATURE_BLOCK_REMOVE ASM_CONST(0x0000001000000000)
 52 #define FW_FEATURE_PAPR_SCM     ASM_CONST(0x0000002000000000)
 53 #define FW_FEATURE_ULTRAVISOR   ASM_CONST(0x0000004000000000)
 54 #define FW_FEATURE_STUFF_TCE    ASM_CONST(0x0000008000000000)
 55 #define FW_FEATURE_RPT_INVALIDATE ASM_CONST(0x0000010000000000)
 56 #define FW_FEATURE_FORM2_AFFINITY ASM_CONST(0x0000020000000000)
 57 #define FW_FEATURE_ENERGY_SCALE_INFO ASM_CONST(0x0000040000000000)
 58 #define FW_FEATURE_WATCHDOG     ASM_CONST(0x0000080000000000)
 59 #define FW_FEATURE_PLPKS        ASM_CONST(0x0000100000000000)
 60 
 61 #ifndef __ASSEMBLY__
 62 
 63 enum {
 64 #ifdef CONFIG_PPC64
 65         FW_FEATURE_PSERIES_POSSIBLE = FW_FEATURE_PFT | FW_FEATURE_TCE |
 66                 FW_FEATURE_SPRG0 | FW_FEATURE_DABR | FW_FEATURE_COPY |
 67                 FW_FEATURE_ASR | FW_FEATURE_DEBUG | FW_FEATURE_TERM |
 68                 FW_FEATURE_PERF | FW_FEATURE_DUMP | FW_FEATURE_INTERRUPT |
 69                 FW_FEATURE_MIGRATE | FW_FEATURE_PERFMON | FW_FEATURE_CRQ |
 70                 FW_FEATURE_VIO | FW_FEATURE_RDMA | FW_FEATURE_LLAN |
 71                 FW_FEATURE_BULK_REMOVE | FW_FEATURE_XDABR |
 72                 FW_FEATURE_PUT_TCE_IND | FW_FEATURE_STUFF_TCE |
 73                 FW_FEATURE_SPLPAR | FW_FEATURE_LPAR |
 74                 FW_FEATURE_CMO | FW_FEATURE_VPHN | FW_FEATURE_XCMO |
 75                 FW_FEATURE_SET_MODE | FW_FEATURE_BEST_ENERGY |
 76                 FW_FEATURE_FORM1_AFFINITY | FW_FEATURE_PRRN |
 77                 FW_FEATURE_HPT_RESIZE | FW_FEATURE_DRMEM_V2 |
 78                 FW_FEATURE_DRC_INFO | FW_FEATURE_BLOCK_REMOVE |
 79                 FW_FEATURE_PAPR_SCM | FW_FEATURE_ULTRAVISOR |
 80                 FW_FEATURE_RPT_INVALIDATE | FW_FEATURE_FORM2_AFFINITY |
 81                 FW_FEATURE_ENERGY_SCALE_INFO | FW_FEATURE_WATCHDOG |
 82                 FW_FEATURE_PLPKS,
 83         FW_FEATURE_PSERIES_ALWAYS = 0,
 84         FW_FEATURE_POWERNV_POSSIBLE = FW_FEATURE_OPAL | FW_FEATURE_ULTRAVISOR,
 85         FW_FEATURE_POWERNV_ALWAYS = 0,
 86         FW_FEATURE_PS3_POSSIBLE = FW_FEATURE_LPAR | FW_FEATURE_PS3_LV1,
 87         FW_FEATURE_PS3_ALWAYS = FW_FEATURE_LPAR | FW_FEATURE_PS3_LV1,
 88         FW_FEATURE_NATIVE_POSSIBLE = 0,
 89         FW_FEATURE_NATIVE_ALWAYS = 0,
 90         FW_FEATURE_POSSIBLE =
 91 #ifdef CONFIG_PPC_PSERIES
 92                 FW_FEATURE_PSERIES_POSSIBLE |
 93 #endif
 94 #ifdef CONFIG_PPC_POWERNV
 95                 FW_FEATURE_POWERNV_POSSIBLE |
 96 #endif
 97 #ifdef CONFIG_PPC_PS3
 98                 FW_FEATURE_PS3_POSSIBLE |
 99 #endif
100 #ifdef CONFIG_PPC_HASH_MMU_NATIVE
101                 FW_FEATURE_NATIVE_ALWAYS |
102 #endif
103                 0,
104         FW_FEATURE_ALWAYS =
105 #ifdef CONFIG_PPC_PSERIES
106                 FW_FEATURE_PSERIES_ALWAYS &
107 #endif
108 #ifdef CONFIG_PPC_POWERNV
109                 FW_FEATURE_POWERNV_ALWAYS &
110 #endif
111 #ifdef CONFIG_PPC_PS3
112                 FW_FEATURE_PS3_ALWAYS &
113 #endif
114 #ifdef CONFIG_PPC_HASH_MMU_NATIVE
115                 FW_FEATURE_NATIVE_ALWAYS &
116 #endif
117                 FW_FEATURE_POSSIBLE,
118 
119 #else /* CONFIG_PPC64 */
120         FW_FEATURE_POSSIBLE = 0,
121         FW_FEATURE_ALWAYS = 0,
122 #endif
123 };
124 
125 /* This is used to identify firmware features which are available
126  * to the kernel.
127  */
128 extern unsigned long    powerpc_firmware_features;
129 
130 #define firmware_has_feature(feature)                                   \
131         ((FW_FEATURE_ALWAYS & (feature)) ||                             \
132                 (FW_FEATURE_POSSIBLE & powerpc_firmware_features & (feature)))
133 
134 extern void system_reset_fwnmi(void);
135 extern void machine_check_fwnmi(void);
136 
137 /* This is true if we are using the firmware NMI handler (typically LPAR) */
138 extern int fwnmi_active;
139 extern int ibm_nmi_interlock_token;
140 
141 extern unsigned int __start___fw_ftr_fixup, __stop___fw_ftr_fixup;
142 
143 #ifdef CONFIG_PPC_PSERIES
144 void pseries_probe_fw_features(void);
145 #else
146 static inline void pseries_probe_fw_features(void) { }
147 #endif
148 
149 #endif /* __ASSEMBLY__ */
150 #endif /* __KERNEL__ */
151 #endif /* __ASM_POWERPC_FIRMWARE_H */
152 

~ [ 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