diff options
-rw-r--r-- | arch/x86/include/asm/uv/bios.h | 5 | ||||
-rw-r--r-- | arch/x86/kernel/bios_uv.c | 11 |
2 files changed, 15 insertions, 1 deletions
diff --git a/arch/x86/include/asm/uv/bios.h b/arch/x86/include/asm/uv/bios.h index a301a56d4157..da1c4e8e78fc 100644 --- a/arch/x86/include/asm/uv/bios.h +++ b/arch/x86/include/asm/uv/bios.h | |||
@@ -35,13 +35,15 @@ enum uv_bios_cmd { | |||
35 | UV_BIOS_FREQ_BASE, | 35 | UV_BIOS_FREQ_BASE, |
36 | UV_BIOS_WATCHLIST_ALLOC, | 36 | UV_BIOS_WATCHLIST_ALLOC, |
37 | UV_BIOS_WATCHLIST_FREE, | 37 | UV_BIOS_WATCHLIST_FREE, |
38 | UV_BIOS_MEMPROTECT | 38 | UV_BIOS_MEMPROTECT, |
39 | UV_BIOS_GET_PARTITION_ADDR | ||
39 | }; | 40 | }; |
40 | 41 | ||
41 | /* | 42 | /* |
42 | * Status values returned from a BIOS call. | 43 | * Status values returned from a BIOS call. |
43 | */ | 44 | */ |
44 | enum { | 45 | enum { |
46 | BIOS_STATUS_MORE_PASSES = 1, | ||
45 | BIOS_STATUS_SUCCESS = 0, | 47 | BIOS_STATUS_SUCCESS = 0, |
46 | BIOS_STATUS_UNIMPLEMENTED = -ENOSYS, | 48 | BIOS_STATUS_UNIMPLEMENTED = -ENOSYS, |
47 | BIOS_STATUS_EINVAL = -EINVAL, | 49 | BIOS_STATUS_EINVAL = -EINVAL, |
@@ -102,6 +104,7 @@ extern int uv_bios_mq_watchlist_alloc(int, void *, unsigned int, | |||
102 | unsigned long *); | 104 | unsigned long *); |
103 | extern int uv_bios_mq_watchlist_free(int, int); | 105 | extern int uv_bios_mq_watchlist_free(int, int); |
104 | extern s64 uv_bios_change_memprotect(u64, u64, enum uv_memprotect); | 106 | extern s64 uv_bios_change_memprotect(u64, u64, enum uv_memprotect); |
107 | extern s64 uv_bios_reserved_page_pa(u64, u64 *, u64 *, u64 *); | ||
105 | 108 | ||
106 | extern void uv_bios_init(void); | 109 | extern void uv_bios_init(void); |
107 | 110 | ||
diff --git a/arch/x86/kernel/bios_uv.c b/arch/x86/kernel/bios_uv.c index 7cf6fc3d1c10..d22d0f1bbea0 100644 --- a/arch/x86/kernel/bios_uv.c +++ b/arch/x86/kernel/bios_uv.c | |||
@@ -142,6 +142,17 @@ uv_bios_change_memprotect(u64 paddr, u64 len, enum uv_memprotect perms) | |||
142 | } | 142 | } |
143 | EXPORT_SYMBOL_GPL(uv_bios_change_memprotect); | 143 | EXPORT_SYMBOL_GPL(uv_bios_change_memprotect); |
144 | 144 | ||
145 | s64 | ||
146 | uv_bios_reserved_page_pa(u64 buf, u64 *cookie, u64 *addr, u64 *len) | ||
147 | { | ||
148 | s64 ret; | ||
149 | |||
150 | ret = uv_bios_call_irqsave(UV_BIOS_GET_PARTITION_ADDR, (u64)cookie, | ||
151 | (u64)addr, buf, (u64)len, 0); | ||
152 | return ret; | ||
153 | } | ||
154 | EXPORT_SYMBOL_GPL(uv_bios_reserved_page_pa); | ||
155 | |||
145 | s64 uv_bios_freq_base(u64 clock_type, u64 *ticks_per_second) | 156 | s64 uv_bios_freq_base(u64 clock_type, u64 *ticks_per_second) |
146 | { | 157 | { |
147 | return uv_bios_call(UV_BIOS_FREQ_BASE, clock_type, | 158 | return uv_bios_call(UV_BIOS_FREQ_BASE, clock_type, |