summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/spd_bin.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/include/spd_bin.h b/src/include/spd_bin.h
new file mode 100644
index 0000000000..a0c1bbda4f
--- /dev/null
+++ b/src/include/spd_bin.h
@@ -0,0 +1,57 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2016 Intel Corporation.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#ifndef SPD_BIN_H
+#define SPD_BIN_H
+
+#include <arch/early_variables.h>
+#include <stdint.h>
+#include <commonlib/region.h>
+
+#define SPD_PAGE_LEN 256
+#define SPD_PAGE_LEN_DDR4 512
+#define SPD_PAGE_0 (0x6C >> 1)
+#define SPD_PAGE_1 (0x6E >> 1)
+#define SPD_DRAM_TYPE 2
+#define SPD_DRAM_DDR3 0x0B
+#define SPD_DRAM_LPDDR3_INTEL 0xF1
+#define SPD_DRAM_LPDDR3_JEDEC 0x0F
+#define SPD_DRAM_DDR4 0x0C
+#define SPD_DENSITY_BANKS 4
+#define SPD_ADDRESSING 5
+#define SPD_ORGANIZATION 7
+#define SPD_BUS_DEV_WIDTH 8
+#define DDR3_SPD_PART_OFF 128
+#define DDR3_SPD_PART_LEN 18
+#define LPDDR3_SPD_PART_OFF 128
+#define LPDDR3_SPD_PART_LEN 18
+#define DDR4_SPD_PART_OFF 329
+#define DDR4_SPD_PART_LEN 20
+#define LPDDR4_SPD_PART_OFF 329
+#define LPDDR4_SPD_PART_LEN 20
+
+struct spd_block {
+ u8 *spd_array[CONFIG_DIMM_MAX];
+ /* Length of each dimm */
+ u16 len;
+};
+
+void print_spd_info(uint8_t spd[]);
+/* Return 0 on success & -1 on failure */
+int get_spd_cbfs_rdev(struct region_device *spd_rdev, u8 spd_index);
+void dump_spd_info(struct spd_block *blk);
+void get_spd_smbus(struct spd_block *blk);
+
+#endif