Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp3405688pxk; Mon, 7 Sep 2020 11:58:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwaMd2EhbG0DD0nXAEH4Xu713Zi4pU5sl1K4zL3C4Ka0UTVhPEGUguvuKh6Ub5YkoCXdG6q X-Received: by 2002:a17:906:4151:: with SMTP id l17mr23973253ejk.116.1599505086649; Mon, 07 Sep 2020 11:58:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1599505086; cv=none; d=google.com; s=arc-20160816; b=iVsS3v03FFiA16pf4xHVOc3zPKY832VVurqLw6s2jPCK9HFDhy/+HzvTto5Z9T1t3c HJh6xhsbY9VGfQtV4xC4gv6wetVKqt29cYaUpzfyCglV7neGUBkSMPl3tIPYFwTAVnR9 /aIVyf/sWjLSU79eUFoleQmgEf6vYFFXYc4xf7NLEmZdUaGTRZLu0QlCzvLY89WNgptl P9Rbf67F6gDdnLwwx3IkX9+8ogbD2AEp17woayItz/dmIAuc95mXsEF6fqlH0baPE23b XtGy4AcdrdBf5gwM/IRznC9Wr5QbV3B3JvP0e9DQCXlWviZWJRhiwyiCt84UVKOcsNyi wXbQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:subject:cc:to :from:date:user-agent:message-id:dkim-signature; bh=7k8IOMYoc1gVXN/TSihaTk/xr+vpjX1M0UAUzXmxFys=; b=issGNMS0KrODjLrAAdQ8AiDlzmz7wUSUE9PpKqqA6zgT/sZNCJXyazKy+iFbKqSF14 yBtLX1A06XqjSzvX++kUK082DFXe3vj0iQLvC5PnsC1sddToFTiRoUpXtagrfonVe3ED gexNdA2cZ74+DeUDhM8tDZ+TnRhXv8/vNyxY/o/fk/egox+vVCIWVLeiZ/1oTJJfYyZD VEtGMHtlQuMSydV18Qe7qO26sFUqhuR8Y/N46vL8fOIRDbof07Mp8xop0iqtC4szFfJd VdJOEg3b6OfHye/IDhAagDy3m5bgO5LdLiECz9HYWQKBBJL8p5ldjGp3bACX3oLdX1DQ Z7Eg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@hpe.com header.s=pps0720 header.b=LElVZFxD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=hpe.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g6si10373536ejx.47.2020.09.07.11.57.44; Mon, 07 Sep 2020 11:58:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@hpe.com header.s=pps0720 header.b=LElVZFxD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=hpe.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730227AbgIGS4X (ORCPT + 99 others); Mon, 7 Sep 2020 14:56:23 -0400 Received: from mx0a-002e3701.pphosted.com ([148.163.147.86]:39010 "EHLO mx0a-002e3701.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729923AbgIGS4K (ORCPT ); Mon, 7 Sep 2020 14:56:10 -0400 Received: from pps.filterd (m0148663.ppops.net [127.0.0.1]) by mx0a-002e3701.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 087IriMh016001; Mon, 7 Sep 2020 18:54:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=message-id : date : from : to : cc : subject : references : mime-version : content-type; s=pps0720; bh=7k8IOMYoc1gVXN/TSihaTk/xr+vpjX1M0UAUzXmxFys=; b=LElVZFxDlhc9UPV8f7/9doJzeSoTI6VTDBXlmBUEMzV6X0gJItLI4NOMBJBO064C53zz hoNlGFdnE3kBPXfCJXkfIIa3vz6+NM98vILNdpyyrkN7A9itYr/tHSNfZ5naB2c9cYWG WsxT00eTKDaxvvMQL4q9oi2zKtomc8+BAMbLgi0tAFZs1a9IeHqwS8fxdnoJCZCm5IAD TYqCEighSqsWYkRcni5TVNybH9MDcDMYoUVXvvf9zffAfLOg/5BRdS02iB1uBK6i1e6u GDqIOr8Mr29j1oNGJ4ERkyoe87jIWJQxygfE7OlPLztyS4Z+TgeIY8IRQyscCTQM6aIJ Xg== Received: from g9t5009.houston.hpe.com (g9t5009.houston.hpe.com [15.241.48.73]) by mx0a-002e3701.pphosted.com with ESMTP id 33cmj44mxs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 07 Sep 2020 18:54:34 +0000 Received: from dog.eag.rdlabs.hpecorp.net (dog.eag.rdlabs.hpecorp.net [128.162.243.181]) by g9t5009.houston.hpe.com (Postfix) with ESMTP id F2FD055; Mon, 7 Sep 2020 18:54:32 +0000 (UTC) Received: by dog.eag.rdlabs.hpecorp.net (Postfix, from userid 5508) id 53DBE30060F11; Mon, 7 Sep 2020 13:54:31 -0500 (CDT) Message-ID: <20200907185431.257694099@hpe.com> User-Agent: quilt/0.66 Date: Mon, 07 Sep 2020 13:54:39 -0500 From: Mike Travis To: Thomas Gleixner , Ingo Molnar , Borislav Petkov , x86@kernel.org, Steve Wahl , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Arnd Bergmann , Greg Kroah-Hartman Cc: Dimitri Sivanich , "H. Peter Anvin" , Russ Anderson , Darren Hart , Andy Shevchenko , Alexandre Chartre , Jian Cai , Vitaly Kuznetsov , linux-kernel@vger.kernel.org, platform-driver-x86@vger.kernel.org Subject: [PATCH 09/12] x86/platform/uv: Update UV5 MMR references in UV GRU References: <20200907185430.363197758@hpe.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235,18.0.687 definitions=2020-09-07_11:2020-09-07,2020-09-07 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 mlxlogscore=999 malwarescore=0 spamscore=0 impostorscore=0 bulkscore=0 suspectscore=0 adultscore=0 mlxscore=0 priorityscore=1501 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2006250000 definitions=main-2009070181 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Make modifications to the GRU mappings to accommodate changes for UV5. Signed-off-by: Mike Travis Reviewed-by: Dimitri Sivanich Reviewed-by: Steve Wahl --- arch/x86/kernel/apic/x2apic_uv_x.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) --- linux.orig/arch/x86/kernel/apic/x2apic_uv_x.c +++ linux/arch/x86/kernel/apic/x2apic_uv_x.c @@ -83,6 +83,9 @@ static unsigned long __init uv_early_rea static inline bool is_GRU_range(u64 start, u64 end) { + if (!gru_start_paddr) + return false; + return start >= gru_start_paddr && end <= gru_end_paddr; } @@ -914,13 +917,24 @@ static __init void map_high(char *id, un static __init void map_gru_high(int max_pnode) { union uvh_rh_gam_gru_overlay_config_u gru; - int shift = UVH_RH_GAM_GRU_OVERLAY_CONFIG_BASE_SHFT; - unsigned long mask = UVH_RH_GAM_GRU_OVERLAY_CONFIG_BASE_MASK; - unsigned long base; + unsigned long mask, base; + int shift; + + if (UVH_RH_GAM_GRU_OVERLAY_CONFIG) { + gru.v = uv_read_local_mmr(UVH_RH_GAM_GRU_OVERLAY_CONFIG); + shift = UVH_RH_GAM_GRU_OVERLAY_CONFIG_BASE_SHFT; + mask = UVH_RH_GAM_GRU_OVERLAY_CONFIG_BASE_MASK; + } else if (UVH_RH10_GAM_GRU_OVERLAY_CONFIG) { + gru.v = uv_read_local_mmr(UVH_RH10_GAM_GRU_OVERLAY_CONFIG); + shift = UVH_RH10_GAM_GRU_OVERLAY_CONFIG_BASE_SHFT; + mask = UVH_RH10_GAM_GRU_OVERLAY_CONFIG_BASE_MASK; + } else { + pr_err("UV: GRU unavailable (no MMR)\n"); + return; + } - gru.v = uv_read_local_mmr(UVH_RH_GAM_GRU_OVERLAY_CONFIG); if (!gru.s.enable) { - pr_info("UV: GRU disabled\n"); + pr_info("UV: GRU disabled (by BIOS)\n"); return; } @@ -1289,7 +1303,11 @@ static void __init uv_init_hub_info(stru /* Show system specific info: */ pr_info("UV: N:%d M:%d m_shift:%d n_lshift:%d\n", hi->n_val, hi->m_val, hi->m_shift, hi->n_lshift); pr_info("UV: gpa_mask/shift:0x%lx/%d pnode_mask:0x%x apic_pns:%d\n", hi->gpa_mask, hi->gpa_shift, hi->pnode_mask, hi->apic_pnode_shift); - pr_info("UV: mmr_base/shift:0x%lx/%ld gru_base/shift:0x%lx/%ld\n", hi->global_mmr_base, hi->global_mmr_shift, hi->global_gru_base, hi->global_gru_shift); + pr_info("UV: mmr_base/shift:0x%lx/%ld\n", hi->global_mmr_base, hi->global_mmr_shift); + if (hi->global_gru_base) + pr_info("UV: gru_base/shift:0x%lx/%ld\n", + hi->global_gru_base, hi->global_gru_shift); + pr_info("UV: gnode_upper:0x%lx gnode_extra:0x%x\n", hi->gnode_upper, hi->gnode_extra); }