soc/amd/cezanne/include/data_fabric: add data fabric IO decode registers

PPR #56569 Rev 3.04 was used as a reference.

Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: Ifcae9c9ad664d50100cd40692fd9631845f76671
Reviewed-on: https://review.coreboot.org/c/coreboot/+/76956
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Martin L Roth <gaumless@gmail.com>
diff --git a/src/soc/amd/cezanne/include/soc/data_fabric.h b/src/soc/amd/cezanne/include/soc/data_fabric.h
index 3cb0fd7..7787e19 100644
--- a/src/soc/amd/cezanne/include/soc/data_fabric.h
+++ b/src/soc/amd/cezanne/include/soc/data_fabric.h
@@ -8,6 +8,40 @@
 
 #define IOMS0_FABRIC_ID			10
 
+#define DF_IO_BASE0			DF_REG_ID(0, 0xc0)
+#define DF_IO_LIMIT0			DF_REG_ID(0, 0xc4)
+
+#define DF_IO_REG_COUNT			8
+
+#define DF_IO_REG_OFFSET(instance)	((instance) * 2 * sizeof(uint32_t))
+#define DF_IO_BASE(reg)			(DF_IO_BASE0 + DF_IO_REG_OFFSET(reg))
+#define DF_IO_LIMIT(reg)		(DF_IO_LIMIT0 + DF_IO_REG_OFFSET(reg))
+
+union df_io_base {
+	struct {
+		uint32_t re		:  1; /* [ 0.. 0] */
+		uint32_t we		:  1; /* [ 1.. 1] */
+		uint32_t		:  3; /* [ 2.. 4] */
+		uint32_t ie		:  1; /* [ 5.. 5] */
+		uint32_t		:  6; /* [ 6..11] */
+		uint32_t io_base	: 13; /* [12..24] */
+		uint32_t		:  7; /* [25..31] */
+	};
+	uint32_t raw;
+};
+
+union df_io_limit {
+	struct {
+		uint32_t dst_fabric_id	: 10; /* [ 0.. 9] */
+		uint32_t		:  2; /* [10..11] */
+		uint32_t io_limit	: 13; /* [12..24] */
+		uint32_t		:  7; /* [25..31] */
+	};
+	uint32_t raw;
+};
+
+#define DF_IO_ADDR_SHIFT		12
+
 #define DF_MMIO_BASE0			DF_REG_ID(0, 0x200)
 #define DF_MMIO_LIMIT0			DF_REG_ID(0, 0x204)
 #define   DF_MMIO_SHIFT			16