aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/uv
diff options
context:
space:
mode:
authorMike Travis <travis@sgi.com>2016-04-29 17:54:19 -0400
committerIngo Molnar <mingo@kernel.org>2016-05-04 02:48:50 -0400
commit1de329c10d9fbac4031f8eb30c4921c6efbf9faa (patch)
tree937d940b58534e40d37f91f969aff4a59eef3519 /arch/x86/include/asm/uv
parentef93bf803999445985acb25f4ed8772e1aa81221 (diff)
x86/platform/UV: Support UV4 socket address changes
With the UV4 system architecture addressing changes, BIOS now provides this information via an EFI system table. This is the initial decoding of that system table. It also collects the sizing information for later allocation of dynamic conversion tables. Tested-by: Dimitri Sivanich <sivanich@sgi.com> Tested-by: John Estabrook <estabrook@sgi.com> Tested-by: Gary Kroening <gfk@sgi.com> Tested-by: Nathan Zimmer <nzimmer@sgi.com> Signed-off-by: Mike Travis <travis@sgi.com> Reviewed-by: Dimitri Sivanich <sivanich@sgi.com> Cc: Andrew Banman <abanman@sgi.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Andy Lutomirski <luto@amacapital.net> Cc: Borislav Petkov <bp@alien8.de> Cc: Brian Gerst <brgerst@gmail.com> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Len Brown <len.brown@intel.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Russ Anderson <rja@sgi.com> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/20160429215405.503022681@asylum.americas.sgi.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/include/asm/uv')
-rw-r--r--arch/x86/include/asm/uv/uv_hub.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/arch/x86/include/asm/uv/uv_hub.h b/arch/x86/include/asm/uv/uv_hub.h
index e04cb41bc09a..1978e4b8dcff 100644
--- a/arch/x86/include/asm/uv/uv_hub.h
+++ b/arch/x86/include/asm/uv/uv_hub.h
@@ -147,15 +147,21 @@ struct uv_scir_s {
147 */ 147 */
148struct uv_hub_info_s { 148struct uv_hub_info_s {
149 unsigned long global_mmr_base; 149 unsigned long global_mmr_base;
150 unsigned long global_mmr_shift;
150 unsigned long gpa_mask; 151 unsigned long gpa_mask;
151 unsigned int gnode_extra; 152 unsigned short min_socket;
153 unsigned short min_pnode;
152 unsigned char hub_revision; 154 unsigned char hub_revision;
153 unsigned char apic_pnode_shift; 155 unsigned char apic_pnode_shift;
156 unsigned char gpa_shift;
154 unsigned char m_shift; 157 unsigned char m_shift;
155 unsigned char n_lshift; 158 unsigned char n_lshift;
159 unsigned int gnode_extra;
156 unsigned long gnode_upper; 160 unsigned long gnode_upper;
157 unsigned long lowmem_remap_top; 161 unsigned long lowmem_remap_top;
158 unsigned long lowmem_remap_base; 162 unsigned long lowmem_remap_base;
163 unsigned long global_gru_base;
164 unsigned long global_gru_shift;
159 unsigned short pnode; 165 unsigned short pnode;
160 unsigned short pnode_mask; 166 unsigned short pnode_mask;
161 unsigned short coherency_domain_number; 167 unsigned short coherency_domain_number;
@@ -362,7 +368,8 @@ union uvh_apicid {
362#define UV_GLOBAL_GRU_MMR_BASE 0x4000000 368#define UV_GLOBAL_GRU_MMR_BASE 0x4000000
363 369
364#define UV_GLOBAL_MMR32_PNODE_SHIFT 15 370#define UV_GLOBAL_MMR32_PNODE_SHIFT 15
365#define UV_GLOBAL_MMR64_PNODE_SHIFT 26 371#define _UV_GLOBAL_MMR64_PNODE_SHIFT 26
372#define UV_GLOBAL_MMR64_PNODE_SHIFT (uv_hub_info->global_mmr_shift)
366 373
367#define UV_GLOBAL_MMR32_PNODE_BITS(p) ((p) << (UV_GLOBAL_MMR32_PNODE_SHIFT)) 374#define UV_GLOBAL_MMR32_PNODE_BITS(p) ((p) << (UV_GLOBAL_MMR32_PNODE_SHIFT))
368 375