@@ -144,7 +144,10 @@ static void json_smart_extended_log_v1(struct ocp_smart_extended_log *log)
144144 struct json_object * pmuw ;
145145 struct json_object * pmur ;
146146 uint16_t smart_log_ver = 0 ;
147+ int i = 0 ;
147148 char guid [40 ];
149+ char ascii_arr [65 ];
150+ char * ascii = ascii_arr ;
148151
149152 root = json_create_object ();
150153 pmuw = json_create_object ();
@@ -227,6 +230,49 @@ static void json_smart_extended_log_v1(struct ocp_smart_extended_log *log)
227230 log -> nvme_cmdset_errata_version );
228231 json_object_add_value_uint (root , "Lowest Permitted Firmware Revision" ,
229232 le64_to_cpu (log -> lowest_permitted_fw_rev ));
233+ json_object_add_value_uint (root , "NVMe Over Pcie Errata Version" ,
234+ log -> nvme_over_pcie_errate_version );
235+ json_object_add_value_uint (root , "NVMe Mi Errata Version" ,
236+ log -> nvme_mi_errata_version );
237+ json_object_add_value_uint (root , "Total media dies" ,
238+ le16_to_cpu (log -> total_media_dies ));
239+ json_object_add_value_uint (root , "Total die failure tolerance" ,
240+ le16_to_cpu (log -> total_die_failure_tolerance ));
241+ json_object_add_value_uint (root , "Max temperature recorded" ,
242+ le16_to_cpu (log -> max_temperature_recorded ));
243+ json_object_add_value_uint64 (root , "Nand avg erase count" ,
244+ le64_to_cpu (log -> nand_avg_erase_count ));
245+ json_object_add_value_uint (root , "Command timeouts" ,
246+ le32_to_cpu (log -> command_timeouts ));
247+ json_object_add_value_uint (root , "Sys area program fail count raw" ,
248+ le32_to_cpu (log -> sys_area_program_fail_count_raw ));
249+ json_object_add_value_uint (root , "Sys area program fail count noralized" ,
250+ log -> sys_area_program_fail_count_normalized );
251+ json_object_add_value_uint (root , "Sys area uncorrectable read count raw" ,
252+ le32_to_cpu (log -> sys_area_uncorr_read_count_raw ));
253+ json_object_add_value_uint (root , "Sys area uncorrectable read count noralized" ,
254+ log -> sys_area_uncorr_read_count_normalized );
255+ json_object_add_value_uint (root , "Sys area erase fail count raw" ,
256+ le32_to_cpu (log -> sys_area_erase_fail_count_raw ));
257+ json_object_add_value_uint (root , "Sys area erase fail count noralized" ,
258+ log -> sys_area_erase_fail_count_normalized );
259+ json_object_add_value_uint (root , "Max peak power capability" ,
260+ le16_to_cpu (log -> max_peak_power_capability ));
261+ json_object_add_value_uint (root , "Current max avg power" ,
262+ le16_to_cpu (log -> current_max_avg_power ));
263+ json_object_add_value_uint64 (root , "Lifetime power consumed" ,
264+ int48_to_long (log -> lifetime_power_consumed ));
265+ memset ((void * )ascii , 0 , 65 );
266+ for (i = 0 ; i < 8 ; i ++ )
267+ ascii += sprintf (ascii , "%c" , log -> dssd_firmware_revision [i ]);
268+ json_object_add_value_string (root , "Dssd firmware revision" , ascii_arr );
269+ json_object_add_value_string (root , "Dssd firmware build UUID" ,
270+ util_uuid_to_string (log -> dssd_firmware_build_uuid ));
271+ ascii = ascii_arr ;
272+ memset ((void * )ascii , 0 , 65 );
273+ for (i = 0 ; i < 64 ; i ++ )
274+ ascii += sprintf (ascii , "%c" , log -> dssd_firmware_build_label [i ]);
275+ json_object_add_value_string (root , "Dssd firmware build label" , ascii_arr );
230276 fallthrough ;
231277 case 2 ... 3 :
232278 json_object_add_value_uint (root , "Errata Version Field" ,
@@ -254,8 +300,11 @@ static void json_smart_extended_log_v2(struct ocp_smart_extended_log *log)
254300 struct json_object * root ;
255301 struct json_object * pmuw ;
256302 struct json_object * pmur ;
303+ int i = 0 ;
257304 uint16_t smart_log_ver = 0 ;
258305 char guid [40 ];
306+ char ascii_arr [65 ];
307+ char * ascii = ascii_arr ;
259308
260309 root = json_create_object ();
261310 pmuw = json_create_object ();
@@ -338,6 +387,49 @@ static void json_smart_extended_log_v2(struct ocp_smart_extended_log *log)
338387 log -> nvme_cmdset_errata_version );
339388 json_object_add_value_uint (root , "lowest_permitted_firmware_revision" ,
340389 le64_to_cpu (log -> lowest_permitted_fw_rev ));
390+ json_object_add_value_uint (root , "nvme_over_pcie_errata_version" ,
391+ log -> nvme_over_pcie_errate_version );
392+ json_object_add_value_uint (root , "nvme_mi_errata_version" ,
393+ log -> nvme_mi_errata_version );
394+ json_object_add_value_uint (root , "total_media_dies" ,
395+ le16_to_cpu (log -> total_media_dies ));
396+ json_object_add_value_uint (root , "total_die_failure_tolerance" ,
397+ le16_to_cpu (log -> total_die_failure_tolerance ));
398+ json_object_add_value_uint (root , "max_temperature_recorded" ,
399+ le16_to_cpu (log -> max_temperature_recorded ));
400+ json_object_add_value_uint64 (root , "nand_avg_erase_count" ,
401+ le64_to_cpu (log -> nand_avg_erase_count ));
402+ json_object_add_value_uint (root , "command_timeouts" ,
403+ le32_to_cpu (log -> command_timeouts ));
404+ json_object_add_value_uint (root , "sys_area_program_fail_count_raw" ,
405+ le32_to_cpu (log -> sys_area_program_fail_count_raw ));
406+ json_object_add_value_uint (root , "sys_area_program_fail_count_noralized" ,
407+ log -> sys_area_program_fail_count_normalized );
408+ json_object_add_value_uint (root , "sys_area_uncorrectable_read_count_raw" ,
409+ le32_to_cpu (log -> sys_area_uncorr_read_count_raw ));
410+ json_object_add_value_uint (root , "sys_area_uncorrectable_read_count_noralized" ,
411+ log -> sys_area_uncorr_read_count_normalized );
412+ json_object_add_value_uint (root , "sys_area_erase_fail_count_raw" ,
413+ le32_to_cpu (log -> sys_area_erase_fail_count_raw ));
414+ json_object_add_value_uint (root , "sys_area_erase_fail_count_noralized" ,
415+ log -> sys_area_erase_fail_count_normalized );
416+ json_object_add_value_uint (root , "max_peak_power_capability" ,
417+ le16_to_cpu (log -> max_peak_power_capability ));
418+ json_object_add_value_uint (root , "current_max_avg_power" ,
419+ le16_to_cpu (log -> current_max_avg_power ));
420+ json_object_add_value_uint64 (root , "lifetime_power_consumed" ,
421+ int48_to_long (log -> lifetime_power_consumed ));
422+ memset ((void * )ascii , 0 , 65 );
423+ for (i = 0 ; i < 8 ; i ++ )
424+ ascii += sprintf (ascii , "%c" , log -> dssd_firmware_revision [i ]);
425+ json_object_add_value_string (root , "dssd_firmware_revision" , ascii_arr );
426+ json_object_add_value_string (root , "dssd_firmware_build_uuid" ,
427+ util_uuid_to_string (log -> dssd_firmware_build_uuid ));
428+ ascii = ascii_arr ;
429+ memset ((void * )ascii , 0 , 65 );
430+ for (i = 0 ; i < 64 ; i ++ )
431+ ascii += sprintf (ascii , "%c" , log -> dssd_firmware_build_label [i ]);
432+ json_object_add_value_string (root , "dssd_firmware_build_label" , ascii_arr );
341433 fallthrough ;
342434 case 2 ... 3 :
343435 json_object_add_value_uint (root , "errata_version_field" ,
0 commit comments