memory_info.h: Store SMBIOS error correction type

There are platforms that support error correction types other than
single-bit ECC. Extend meminfo to accomodate additional ECC types.

It is assumed that `struct memory_info` is packed to save space. Thus,
use `uint8_t` instead of an enum type (which are usually 4 bytes wide).

Change-Id: I863f8e34c84841d931dfb8d7067af0f12a437e36
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/50178
Reviewed-by: Nico Huber <nico.h@gmx.de>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/include/memory_info.h b/src/include/memory_info.h
index 1ba7329..fed5bbe 100644
--- a/src/include/memory_info.h
+++ b/src/include/memory_info.h
@@ -96,8 +96,11 @@
 } __packed;
 
 struct memory_info {
-	/* controller specific */
-	bool ecc_capable;
+	/*
+	 * SMBIOS error correction type.
+	 * See the smbios.h smbios_memory_array_ecc enum.
+	 */
+	uint8_t ecc_type;
 	/* Maximum capacity the DRAM controller/mainboard supports */
 	uint32_t max_capacity_mib;
 	/* Maximum number of DIMMs the DRAM controller/mainboard supports */