summaryrefslogtreecommitdiffstats
path: root/src/import/hwpf/fapi2/include/plat/plat_vpd_access.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/hwpf/fapi2/include/plat/plat_vpd_access.H')
-rw-r--r--src/import/hwpf/fapi2/include/plat/plat_vpd_access.H45
1 files changed, 41 insertions, 4 deletions
diff --git a/src/import/hwpf/fapi2/include/plat/plat_vpd_access.H b/src/import/hwpf/fapi2/include/plat/plat_vpd_access.H
index bc82a1d3..430aad87 100644
--- a/src/import/hwpf/fapi2/include/plat/plat_vpd_access.H
+++ b/src/import/hwpf/fapi2/include/plat/plat_vpd_access.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER sbe Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2016 */
+/* Contributors Listed Below - COPYRIGHT 2016,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -50,10 +50,47 @@ inline fapi2::ReturnCode platGetVPD(const fapi2::Target<fapi2::TARGET_TYPE_MCS>&
else
{
o_blob[0] = 111;
+ }
+
+ return l_rc;
+}
+
+// platform specific for OCMB target -- test code only
+inline fapi2::ReturnCode platGetVPD(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target,
+ VPDInfo<fapi2::TARGET_TYPE_OCMB_CHIP>& io_vpd_info,
+ uint8_t* o_blob)
+{
+ fapi2::ReturnCode l_rc = fapi2::FAPI2_RC_SUCCESS;
+
+ if( o_blob == nullptr )
+ {
+ io_vpd_info.iv_size = 128;
+ }
+ else
+ {
+ //-- Implementation Example/Suggestion for 'EFD' --
+ // Check byte 2 for DDR4 or DDR5
+ // Check bytes 205-206 of SPD for supported speeds
+ // Look at EFD metadata in 277-415
+ // Walk through all present EFD blocks looking for
+ // a match for speed, rank, channel/position
+ // Copy entire EFD block into o_blob
+ // Update output variables with the metadata that
+ // should be used to decode the block
+
+ if( io_vpd_info.iv_omi_freq_mhz == 25600 )
+ {
+ o_blob[0] = 0x40;
+ }
+ else if( io_vpd_info.iv_omi_freq_mhz == 21330 )
+ {
+ o_blob[0] = 0x10;
+ }
- io_vpd_info.iv_freq_mhz = 10000;
- io_vpd_info.iv_rank_count_dimm_0 = 1;
- io_vpd_info.iv_rank_count_dimm_1 = 8;
+ io_vpd_info.iv_efd_type = 0x11;
+ io_vpd_info.iv_dmb_mfg_id = 0x2980;
+ io_vpd_info.iv_dmb_revision = 0x00;
+ io_vpd_info.iv_ddr_mode = 0x0C;
}
OpenPOWER on IntegriCloud