VISTARA : MailBox command implementation for DDR SPD error info clear for dimm_id requested #40
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary:
In this task, mailbox command to store and clear DDR SPD error is implemented. here 2 types of SPD errors are handled . Type 0 is SPD CRC ERROR and TYPE 1 is SPD NULL DATA ERROR TYPE 0(SPD CRC) ERROR is checked for all 4 DIMMs and if error is found, when comparing calculated CRC with available CRC, then DIMM_ID and the offset is stored in NVDATA
TYPE 1(SPD NULL DATA) ERROR is checked for all 4 DIMMs and if error is found,when reading first 4 bytes of the reading address, then DIMM_ID and the offset is stored in NVDATA
MailBox command ddr-err-spd-info-get(0xFB38) is implemented to retrive this error information from persistent memory (NVDATA) and send as a response to this command. MailBox command ddr-err-spd-info-clr(0xFB39) is implemented to clear this error information from NVDATA (persistent memory)
Test Plan:
Output
[root@DG18161 cxl]# ./cxl ddr-err-spd-info-clr
usage: cxl cxl-ddr-spd-err-info-clr [..] []
ex: cxl ddr-err-spd-info-clr -i 2
Above cmd to Clear SPD error information from nvdata for provided dimm_id
Option 'i': set DIMM_ID for which SPD Error info to be cleared
[root@DG18161 cxl]#
root@DG18161 cxl]# ./cxl ddr-err-spd-info-clr mem1 -i 7
mem1: invalid input options 0x7 (Expecting option 0,1,2,3,0xFF)
[root@dhcp-100-97-47-177 cxl]# ./cxl ddr-err-bist-info-get mem0
BIST error details for DDR (0)
DDR BIST error count 9
DDR BIST error info (col)10
DDR BIST error info (row)11
DDR BIST error info (bank)12
DDR BIST error info (cs)13
BIST error details for DDR (1)
DDR BIST error count 9
DDR BIST error info (col)10
DDR BIST error info (row)11
DDR BIST error info (bank)12
DDR BIST error info (cs)13
[root@dhcp-100-97-47-177 cxl]# ./cxl ddr-err-bist-info-clr mem0
[root@dhcp-100-97-47-177 cxl]# ./cxl ddr-err-bist-info-get mem0
BIST error details for DDR (0)
DDR BIST error count 0
DDR BIST error info (col)0
DDR BIST error info (row)0
DDR BIST error info (bank)0
DDR BIST error info (cs)0
BIST error details for DDR (1)
DDR BIST error count 0
DDR BIST error info (col)0
DDR BIST error info (row)0
DDR BIST error info (bank)0
DDR BIST error info (cs)0
[root@dhcp-100-97-47-177 cxl]# ./cxl ddr-err-spd-info-get mem0
SPD error details
DIMM_Id(0) spd_err_type (SPD_CRC) count (0) offset (0)
DIMM_Id(0) spd_err_type (SPD_NULL_DATA) count (0) offset (0)
DIMM_Id(1) spd_err_type (SPD_CRC) count (0) offset (0)
DIMM_Id(1) spd_err_type (SPD_NULL_DATA) count (90) offset (100)
DIMM_Id(2) spd_err_type (SPD_CRC) count (0) offset (0)
DIMM_Id(2) spd_err_type (SPD_NULL_DATA) count (90) offset (100)
DIMM_Id(3) spd_err_type (SPD_CRC) count (0) offset (0)
DIMM_Id(3) spd_err_type (SPD_NULL_DATA) count (90) offset (100)
[root@dhcp-100-97-47-177 cxl]#
Devarsh has entered dimm_id = 0[root@dhcp-100-97-47-177 cxl]# ./cxl ddr-err-spd-info-clr mem0 -i 1
Devarsh has entered dimm_id = 1[root@dhcp-100-97-47-177 cxl]# ./cxl ddr-err-spd-info-get mem0
SPD error details
DIMM_Id(0) spd_err_type (SPD_CRC) count (0) offset (0)
DIMM_Id(0) spd_err_type (SPD_NULL_DATA) count (0) offset (0)
DIMM_Id(1) spd_err_type (SPD_CRC) count (0) offset (0)
DIMM_Id(1) spd_err_type (SPD_NULL_DATA) count (0) offset (0)
DIMM_Id(2) spd_err_type (SPD_CRC) count (0) offset (0)
DIMM_Id(2) spd_err_type (SPD_NULL_DATA) count (90) offset (100)
DIMM_Id(3) spd_err_type (SPD_CRC) count (0) offset (0)
DIMM_Id(3) spd_err_type (SPD_NULL_DATA) count (90) offset (100)
[root@dhcp-100-97-47-177 cxl]# ./cxl ddr-err-spd-info-clr mem0 -i 2
Devarsh has entered dimm_id = 2[root@dhcp-100-97-47-177 cxl]# ./cxl ddr-err-spd-info-get mem0
SPD error details
DIMM_Id(0) spd_err_type (SPD_CRC) count (0) offset (0)
DIMM_Id(0) spd_err_type (SPD_NULL_DATA) count (0) offset (0)
DIMM_Id(1) spd_err_type (SPD_CRC) count (0) offset (0)
DIMM_Id(1) spd_err_type (SPD_NULL_DATA) count (0) offset (0)
DIMM_Id(2) spd_err_type (SPD_CRC) count (0) offset (0)
DIMM_Id(2) spd_err_type (SPD_NULL_DATA) count (0) offset (0)
DIMM_Id(3) spd_err_type (SPD_CRC) count (0) offset (0)
DIMM_Id(3) spd_err_type (SPD_NULL_DATA) count (90) offset (100)
[root@dhcp-100-97-47-177 cxl]#
Reviewers:
Subscribers:
Tasks:
Tags: