soc/intel/xeon_sp: Fix final MTRR usage

The region top_of_ram -> cbmem_top is used by FSP and cbmem, but is
also just regular DRAM. Marking it as such improves the final MTRR
solution a lot and fixes MTRR starvation depending on the setup.

Change-Id: I19ff7cf2d699b4cc34caccd91cafd6a284d699d3
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/47868
Reviewed-by: Christian Walter <christian.walter@9elements.com>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Jonathan Zhang <jonzhang@fb.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/soc/intel/xeon_sp/uncore.c b/src/soc/intel/xeon_sp/uncore.c
index de29dea..8965b3b 100644
--- a/src/soc/intel/xeon_sp/uncore.c
+++ b/src/soc/intel/xeon_sp/uncore.c
@@ -200,6 +200,11 @@
 	LOG_MEM_RESOURCE("low_ram", dev, index, base_kb, size_kb);
 	ram_resource(dev, index++, base_kb, size_kb);
 
+	/* fsp_mem_base -> cbmem_top */
+	base_kb = top_of_ram / KiB;
+	size_kb = ((uintptr_t)cbmem_top() - top_of_ram) / KiB;
+	reserved_ram_resource(dev, index++, base_kb, size_kb);
+
 	/*
 	 * FSP meomoy, CBMem regions are already added as reserved
 	 * Add TSEG and MESEG Regions as reserved memory