soc/intel/meteorlake: Implement report_cache_info() function

Make use of deterministic cache helper functions from Meteor Lake
SoC code to print useful information during boot as below:

Cache: Level 3: Associativity = 12 Partitions = 1 Line Size = 64
Sets = 32768
Cache size = 24 MiB

Port of commit 55f5410fcd78 ("soc/intel/alderlake: Implement report_cache_info() function")

BUG=none
TEST=Build and Boot verified on google/rex

Signed-off-by: Dinesh Gehlot <digehlot@google.com>
Change-Id: I561658c8da0136d6c3d9578f22f5d320e542457d
Reviewed-on: https://review.coreboot.org/c/coreboot/+/69681
Reviewed-by: Kapil Porwal <kapilporwal@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Subrata Banik <subratabanik@google.com>
diff --git a/src/soc/intel/meteorlake/bootblock/report_platform.c b/src/soc/intel/meteorlake/bootblock/report_platform.c
index 6acf922..156102d 100644
--- a/src/soc/intel/meteorlake/bootblock/report_platform.c
+++ b/src/soc/intel/meteorlake/bootblock/report_platform.c
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
+#include <commonlib/helpers.h>
 #include <console/console.h>
 #include <cpu/cpu.h>
 #include <cpu/intel/cpu_ids.h>
@@ -65,6 +66,21 @@
 	return pci_read_config16(dev, PCI_DEVICE_ID);
 }
 
+static void report_cache_info(void)
+{
+	int cache_level = CACHE_L3;
+	struct cpu_cache_info info;
+
+	if (!fill_cpu_cache_info(cache_level, &info))
+		return;
+
+	printk(BIOS_INFO, "Cache: Level %d: ", cache_level);
+	printk(BIOS_INFO, "Associativity = %zd Partitions = %zd Line Size = %zd Sets = %zd\n",
+		info.num_ways, info.physical_partitions, info.line_size, info.num_sets);
+
+	printk(BIOS_INFO, "Cache size = %zu MiB\n", get_cache_size(&info)/MiB);
+}
+
 static void report_cpu_info(void)
 {
 	u32 i, cpu_id, cpu_feature_flag;
@@ -95,6 +111,8 @@
 	printk(BIOS_DEBUG,
 		"CPU: AES %ssupported, TXT %ssupported, VT %ssupported\n",
 		mode[aes], mode[txt], mode[vt]);
+
+	report_cache_info();
 }
 
 static void report_mch_info(void)