diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-ia64/sn/sn_feature_sets.h | 57 | ||||
| -rw-r--r-- | include/asm-ia64/sn/sn_sal.h | 36 |
2 files changed, 84 insertions, 9 deletions
diff --git a/include/asm-ia64/sn/sn_feature_sets.h b/include/asm-ia64/sn/sn_feature_sets.h new file mode 100644 index 000000000000..e68a80853d5d --- /dev/null +++ b/include/asm-ia64/sn/sn_feature_sets.h | |||
| @@ -0,0 +1,57 @@ | |||
| 1 | #ifndef _ASM_IA64_SN_FEATURE_SETS_H | ||
| 2 | #define _ASM_IA64_SN_FEATURE_SETS_H | ||
| 3 | |||
| 4 | /* | ||
| 5 | * SN PROM Features | ||
| 6 | * | ||
| 7 | * This file is subject to the terms and conditions of the GNU General Public | ||
| 8 | * License. See the file "COPYING" in the main directory of this archive | ||
| 9 | * for more details. | ||
| 10 | * | ||
| 11 | * Copyright (c) 2005 Silicon Graphics, Inc. All rights reserved. | ||
| 12 | */ | ||
| 13 | |||
| 14 | |||
| 15 | #include <asm/types.h> | ||
| 16 | #include <asm/bitops.h> | ||
| 17 | |||
| 18 | /* --------------------- PROM Features -----------------------------*/ | ||
| 19 | extern int sn_prom_feature_available(int id); | ||
| 20 | |||
| 21 | #define MAX_PROM_FEATURE_SETS 2 | ||
| 22 | |||
| 23 | /* | ||
| 24 | * The following defines features that may or may not be supported by the | ||
| 25 | * current PROM. The OS uses sn_prom_feature_available(feature) to test for | ||
| 26 | * the presence of a PROM feature. Down rev (old) PROMs will always test | ||
| 27 | * "false" for new features. | ||
| 28 | * | ||
| 29 | * Use: | ||
| 30 | * if (sn_prom_feature_available(PRF_FEATURE_XXX)) | ||
| 31 | * ... | ||
| 32 | */ | ||
| 33 | |||
| 34 | /* | ||
| 35 | * Example: feature XXX | ||
| 36 | */ | ||
| 37 | #define PRF_FEATURE_XXX 0 | ||
| 38 | |||
| 39 | |||
| 40 | |||
| 41 | /* --------------------- OS Features -------------------------------*/ | ||
| 42 | |||
| 43 | /* | ||
| 44 | * The following defines OS features that are optionally present in | ||
| 45 | * the operating system. | ||
| 46 | * During boot, PROM is notified of these features via a series of calls: | ||
| 47 | * | ||
| 48 | * ia64_sn_set_os_feature(feature1); | ||
| 49 | * | ||
| 50 | * Once enabled, a feature cannot be disabled. | ||
| 51 | * | ||
| 52 | * By default, features are disabled unless explicitly enabled. | ||
| 53 | */ | ||
| 54 | #define OSF_MCA_SLV_TO_OS_INIT_SLV 0 | ||
| 55 | #define OSF_FEAT_LOG_SBES 1 | ||
| 56 | |||
| 57 | #endif /* _ASM_IA64_SN_FEATURE_SETS_H */ | ||
diff --git a/include/asm-ia64/sn/sn_sal.h b/include/asm-ia64/sn/sn_sal.h index 27976d223186..231d0d04c3e8 100644 --- a/include/asm-ia64/sn/sn_sal.h +++ b/include/asm-ia64/sn/sn_sal.h | |||
| @@ -80,6 +80,9 @@ | |||
| 80 | #define SN_SAL_BTE_RECOVER 0x02000061 | 80 | #define SN_SAL_BTE_RECOVER 0x02000061 |
| 81 | #define SN_SAL_IOIF_GET_PCI_TOPOLOGY 0x02000062 | 81 | #define SN_SAL_IOIF_GET_PCI_TOPOLOGY 0x02000062 |
| 82 | 82 | ||
| 83 | #define SN_SAL_GET_PROM_FEATURE_SET 0x02000065 | ||
| 84 | #define SN_SAL_SET_OS_FEATURE_SET 0x02000066 | ||
| 85 | |||
| 83 | /* | 86 | /* |
| 84 | * Service-specific constants | 87 | * Service-specific constants |
| 85 | */ | 88 | */ |
| @@ -118,8 +121,8 @@ | |||
| 118 | /* | 121 | /* |
| 119 | * Error Handling Features | 122 | * Error Handling Features |
| 120 | */ | 123 | */ |
| 121 | #define SAL_ERR_FEAT_MCA_SLV_TO_OS_INIT_SLV 0x1 | 124 | #define SAL_ERR_FEAT_MCA_SLV_TO_OS_INIT_SLV 0x1 // obsolete |
| 122 | #define SAL_ERR_FEAT_LOG_SBES 0x2 | 125 | #define SAL_ERR_FEAT_LOG_SBES 0x2 // obsolete |
| 123 | #define SAL_ERR_FEAT_MFR_OVERRIDE 0x4 | 126 | #define SAL_ERR_FEAT_MFR_OVERRIDE 0x4 |
| 124 | #define SAL_ERR_FEAT_SBE_THRESHOLD 0xffff0000 | 127 | #define SAL_ERR_FEAT_SBE_THRESHOLD 0xffff0000 |
| 125 | 128 | ||
| @@ -152,12 +155,6 @@ sn_sal_rev(void) | |||
| 152 | } | 155 | } |
| 153 | 156 | ||
| 154 | /* | 157 | /* |
| 155 | * Specify the minimum PROM revsion required for this kernel. | ||
| 156 | * Note that they're stored in hex format... | ||
| 157 | */ | ||
| 158 | #define SN_SAL_MIN_VERSION 0x0404 | ||
| 159 | |||
| 160 | /* | ||
| 161 | * Returns the master console nasid, if the call fails, return an illegal | 158 | * Returns the master console nasid, if the call fails, return an illegal |
| 162 | * value. | 159 | * value. |
| 163 | */ | 160 | */ |
| @@ -336,7 +333,7 @@ ia64_sn_plat_cpei_handler(void) | |||
| 336 | } | 333 | } |
| 337 | 334 | ||
| 338 | /* | 335 | /* |
| 339 | * Set Error Handling Features | 336 | * Set Error Handling Features (Obsolete) |
| 340 | */ | 337 | */ |
| 341 | static inline u64 | 338 | static inline u64 |
| 342 | ia64_sn_plat_set_error_handling_features(void) | 339 | ia64_sn_plat_set_error_handling_features(void) |
| @@ -1100,4 +1097,25 @@ ia64_sn_is_fake_prom(void) | |||
| 1100 | return (rv.status == 0); | 1097 | return (rv.status == 0); |
| 1101 | } | 1098 | } |
| 1102 | 1099 | ||
| 1100 | static inline int | ||
| 1101 | ia64_sn_get_prom_feature_set(int set, unsigned long *feature_set) | ||
| 1102 | { | ||
| 1103 | struct ia64_sal_retval rv; | ||
| 1104 | |||
| 1105 | SAL_CALL_NOLOCK(rv, SN_SAL_GET_PROM_FEATURE_SET, set, 0, 0, 0, 0, 0, 0); | ||
| 1106 | if (rv.status != 0) | ||
| 1107 | return rv.status; | ||
| 1108 | *feature_set = rv.v0; | ||
| 1109 | return 0; | ||
| 1110 | } | ||
| 1111 | |||
| 1112 | static inline int | ||
| 1113 | ia64_sn_set_os_feature(int feature) | ||
| 1114 | { | ||
| 1115 | struct ia64_sal_retval rv; | ||
| 1116 | |||
| 1117 | SAL_CALL_NOLOCK(rv, SN_SAL_SET_OS_FEATURE_SET, feature, 0, 0, 0, 0, 0, 0); | ||
| 1118 | return rv.status; | ||
| 1119 | } | ||
| 1120 | |||
| 1103 | #endif /* _ASM_IA64_SN_SN_SAL_H */ | 1121 | #endif /* _ASM_IA64_SN_SN_SAL_H */ |
