diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2006-09-25 04:19:00 -0400 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2006-10-03 02:50:21 -0400 |
commit | 3f639ee8c52c187d8c95db430ac6f485bffbe5af (patch) | |
tree | 26299497413aba786f962960c4a3cf83aa81f42b /include/asm-powerpc/firmware.h | |
parent | fc246c389db7b08b4a054e68c742c6598b02523c (diff) |
[POWERPC] implement BEGIN/END_FW_FTR_SECTION
and use it an all the obvious places in assembler code.
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Diffstat (limited to 'include/asm-powerpc/firmware.h')
-rw-r--r-- | include/asm-powerpc/firmware.h | 67 |
1 files changed, 43 insertions, 24 deletions
diff --git a/include/asm-powerpc/firmware.h b/include/asm-powerpc/firmware.h index 77069df92bf8..1022737f4f34 100644 --- a/include/asm-powerpc/firmware.h +++ b/include/asm-powerpc/firmware.h | |||
@@ -14,34 +14,36 @@ | |||
14 | 14 | ||
15 | #ifdef __KERNEL__ | 15 | #ifdef __KERNEL__ |
16 | 16 | ||
17 | #ifndef __ASSEMBLY__ | 17 | #include <asm/asm-compat.h> |
18 | 18 | ||
19 | /* firmware feature bitmask values */ | 19 | /* firmware feature bitmask values */ |
20 | #define FIRMWARE_MAX_FEATURES 63 | 20 | #define FIRMWARE_MAX_FEATURES 63 |
21 | 21 | ||
22 | #define FW_FEATURE_PFT (1UL<<0) | 22 | #define FW_FEATURE_PFT ASM_CONST(0x0000000000000001) |
23 | #define FW_FEATURE_TCE (1UL<<1) | 23 | #define FW_FEATURE_TCE ASM_CONST(0x0000000000000002) |
24 | #define FW_FEATURE_SPRG0 (1UL<<2) | 24 | #define FW_FEATURE_SPRG0 ASM_CONST(0x0000000000000004) |
25 | #define FW_FEATURE_DABR (1UL<<3) | 25 | #define FW_FEATURE_DABR ASM_CONST(0x0000000000000008) |
26 | #define FW_FEATURE_COPY (1UL<<4) | 26 | #define FW_FEATURE_COPY ASM_CONST(0x0000000000000010) |
27 | #define FW_FEATURE_ASR (1UL<<5) | 27 | #define FW_FEATURE_ASR ASM_CONST(0x0000000000000020) |
28 | #define FW_FEATURE_DEBUG (1UL<<6) | 28 | #define FW_FEATURE_DEBUG ASM_CONST(0x0000000000000040) |
29 | #define FW_FEATURE_TERM (1UL<<7) | 29 | #define FW_FEATURE_TERM ASM_CONST(0x0000000000000080) |
30 | #define FW_FEATURE_PERF (1UL<<8) | 30 | #define FW_FEATURE_PERF ASM_CONST(0x0000000000000100) |
31 | #define FW_FEATURE_DUMP (1UL<<9) | 31 | #define FW_FEATURE_DUMP ASM_CONST(0x0000000000000200) |
32 | #define FW_FEATURE_INTERRUPT (1UL<<10) | 32 | #define FW_FEATURE_INTERRUPT ASM_CONST(0x0000000000000400) |
33 | #define FW_FEATURE_MIGRATE (1UL<<11) | 33 | #define FW_FEATURE_MIGRATE ASM_CONST(0x0000000000000800) |
34 | #define FW_FEATURE_PERFMON (1UL<<12) | 34 | #define FW_FEATURE_PERFMON ASM_CONST(0x0000000000001000) |
35 | #define FW_FEATURE_CRQ (1UL<<13) | 35 | #define FW_FEATURE_CRQ ASM_CONST(0x0000000000002000) |
36 | #define FW_FEATURE_VIO (1UL<<14) | 36 | #define FW_FEATURE_VIO ASM_CONST(0x0000000000004000) |
37 | #define FW_FEATURE_RDMA (1UL<<15) | 37 | #define FW_FEATURE_RDMA ASM_CONST(0x0000000000008000) |
38 | #define FW_FEATURE_LLAN (1UL<<16) | 38 | #define FW_FEATURE_LLAN ASM_CONST(0x0000000000010000) |
39 | #define FW_FEATURE_BULK (1UL<<17) | 39 | #define FW_FEATURE_BULK ASM_CONST(0x0000000000020000) |
40 | #define FW_FEATURE_XDABR (1UL<<18) | 40 | #define FW_FEATURE_XDABR ASM_CONST(0x0000000000040000) |
41 | #define FW_FEATURE_MULTITCE (1UL<<19) | 41 | #define FW_FEATURE_MULTITCE ASM_CONST(0x0000000000080000) |
42 | #define FW_FEATURE_SPLPAR (1UL<<20) | 42 | #define FW_FEATURE_SPLPAR ASM_CONST(0x0000000000100000) |
43 | #define FW_FEATURE_ISERIES (1UL<<21) | 43 | #define FW_FEATURE_ISERIES ASM_CONST(0x0000000000200000) |
44 | #define FW_FEATURE_LPAR (1UL<<22) | 44 | #define FW_FEATURE_LPAR ASM_CONST(0x0000000000400000) |
45 | |||
46 | #ifndef __ASSEMBLY__ | ||
45 | 47 | ||
46 | enum { | 48 | enum { |
47 | #ifdef CONFIG_PPC64 | 49 | #ifdef CONFIG_PPC64 |
@@ -94,6 +96,23 @@ extern void machine_check_fwnmi(void); | |||
94 | /* This is true if we are using the firmware NMI handler (typically LPAR) */ | 96 | /* This is true if we are using the firmware NMI handler (typically LPAR) */ |
95 | extern int fwnmi_active; | 97 | extern int fwnmi_active; |
96 | 98 | ||
99 | #else /* __ASSEMBLY__ */ | ||
100 | |||
101 | #define BEGIN_FW_FTR_SECTION 96: | ||
102 | |||
103 | #define END_FW_FTR_SECTION(msk, val) \ | ||
104 | 97: \ | ||
105 | .section __fw_ftr_fixup,"a"; \ | ||
106 | .align 3; \ | ||
107 | .llong msk; \ | ||
108 | .llong val; \ | ||
109 | .llong 96b; \ | ||
110 | .llong 97b; \ | ||
111 | .previous | ||
112 | |||
113 | #define END_FW_FTR_SECTION_IFSET(msk) END_FW_FTR_SECTION((msk), (msk)) | ||
114 | #define END_FW_FTR_SECTION_IFCLR(msk) END_FW_FTR_SECTION((msk), 0) | ||
115 | |||
97 | #endif /* __ASSEMBLY__ */ | 116 | #endif /* __ASSEMBLY__ */ |
98 | #endif /* __KERNEL__ */ | 117 | #endif /* __KERNEL__ */ |
99 | #endif /* __ASM_POWERPC_FIRMWARE_H */ | 118 | #endif /* __ASM_POWERPC_FIRMWARE_H */ |