|
@@ -232,6 +232,19 @@ static inline unsigned long uv_gpa(void *v)
|
|
|
return uv_soc_phys_ram_to_gpa(__pa(v));
|
|
|
}
|
|
|
|
|
|
+/* UV global physical address --> socket phys RAM */
|
|
|
+static inline unsigned long uv_gpa_to_soc_phys_ram(unsigned long gpa)
|
|
|
+{
|
|
|
+ unsigned long paddr = gpa & uv_hub_info->gpa_mask;
|
|
|
+ unsigned long remap_base = uv_hub_info->lowmem_remap_base;
|
|
|
+ unsigned long remap_top = uv_hub_info->lowmem_remap_top;
|
|
|
+
|
|
|
+ if (paddr >= remap_base && paddr < remap_base + remap_top)
|
|
|
+ paddr -= remap_base;
|
|
|
+ return paddr;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
/* gnode -> pnode */
|
|
|
static inline unsigned long uv_gpa_to_gnode(unsigned long gpa)
|
|
|
{
|