@@ -145,7 +145,10 @@ static void json_smart_extended_log_v1(struct ocp_smart_extended_log *log)
145145 struct json_object * pmur ;
146146 uint16_t smart_log_ver = 0 ;
147147 uint16_t dssd_version = 0 ;
148+ int i = 0 ;
148149 char guid [40 ];
150+ char ascii_arr [65 ];
151+ char * ascii = ascii_arr ;
149152
150153 root = json_create_object ();
151154 pmuw = json_create_object ();
@@ -228,6 +231,49 @@ static void json_smart_extended_log_v1(struct ocp_smart_extended_log *log)
228231 log -> nvme_cmdset_errata_version );
229232 json_object_add_value_uint (root , "Lowest Permitted Firmware Revision" ,
230233 le64_to_cpu (log -> lowest_permitted_fw_rev ));
234+ json_object_add_value_uint (root , "NVMe Over Pcie Errata Version" ,
235+ log -> nvme_over_pcie_errate_version );
236+ json_object_add_value_uint (root , "NVMe Mi Errata Version" ,
237+ log -> nvme_mi_errata_version );
238+ json_object_add_value_uint (root , "Total media dies" ,
239+ le16_to_cpu (log -> total_media_dies ));
240+ json_object_add_value_uint (root , "Total die failure tolerance" ,
241+ le16_to_cpu (log -> total_die_failure_tolerance ));
242+ json_object_add_value_uint (root , "Max temperature recorded" ,
243+ le16_to_cpu (log -> max_temperature_recorded ));
244+ json_object_add_value_uint64 (root , "Nand avg erase count" ,
245+ le64_to_cpu (log -> nand_avg_erase_count ));
246+ json_object_add_value_uint (root , "Command timeouts" ,
247+ le32_to_cpu (log -> command_timeouts ));
248+ json_object_add_value_uint (root , "Sys area program fail count raw" ,
249+ le32_to_cpu (log -> sys_area_program_fail_count_raw ));
250+ json_object_add_value_uint (root , "Sys area program fail count noralized" ,
251+ log -> sys_area_program_fail_count_normalized );
252+ json_object_add_value_uint (root , "Sys area uncorrectable read count raw" ,
253+ le32_to_cpu (log -> sys_area_uncorr_read_count_raw ));
254+ json_object_add_value_uint (root , "Sys area uncorrectable read count noralized" ,
255+ log -> sys_area_uncorr_read_count_normalized );
256+ json_object_add_value_uint (root , "Sys area erase fail count raw" ,
257+ le32_to_cpu (log -> sys_area_erase_fail_count_raw ));
258+ json_object_add_value_uint (root , "Sys area erase fail count noralized" ,
259+ log -> sys_area_erase_fail_count_normalized );
260+ json_object_add_value_uint (root , "Max peak power capability" ,
261+ le16_to_cpu (log -> max_peak_power_capability ));
262+ json_object_add_value_uint (root , "Current max avg power" ,
263+ le16_to_cpu (log -> current_max_avg_power ));
264+ json_object_add_value_uint64 (root , "Lifetime power consumed" ,
265+ int48_to_long (log -> lifetime_power_consumed ));
266+ memset ((void * )ascii , 0 , 65 );
267+ for (i = 0 ; i < 8 ; i ++ )
268+ ascii += sprintf (ascii , "%c" , log -> dssd_firmware_revision [i ]);
269+ json_object_add_value_string (root , "Dssd firmware revision" , ascii_arr );
270+ json_object_add_value_string (root , "Dssd firmware build UUID" ,
271+ util_uuid_to_string (log -> dssd_firmware_build_uuid ));
272+ ascii = ascii_arr ;
273+ memset ((void * )ascii , 0 , 65 );
274+ for (i = 0 ; i < 64 ; i ++ )
275+ ascii += sprintf (ascii , "%c" , log -> dssd_firmware_build_label [i ]);
276+ json_object_add_value_string (root , "Dssd firmware build label" , ascii_arr );
231277 fallthrough ;
232278 case 2 ... 3 :
233279 json_object_add_value_uint (root , "Errata Version Field" ,
@@ -257,9 +303,12 @@ static void json_smart_extended_log_v2(struct ocp_smart_extended_log *log)
257303 struct json_object * root ;
258304 struct json_object * pmuw ;
259305 struct json_object * pmur ;
306+ int i = 0 ;
260307 uint16_t smart_log_ver = 0 ;
261308 uint16_t dssd_version = 0 ;
262309 char guid [40 ];
310+ char ascii_arr [65 ];
311+ char * ascii = ascii_arr ;
263312
264313 root = json_create_object ();
265314 pmuw = json_create_object ();
@@ -342,6 +391,49 @@ static void json_smart_extended_log_v2(struct ocp_smart_extended_log *log)
342391 log -> nvme_cmdset_errata_version );
343392 json_object_add_value_uint (root , "lowest_permitted_firmware_revision" ,
344393 le64_to_cpu (log -> lowest_permitted_fw_rev ));
394+ json_object_add_value_uint (root , "nvme_over_pcie_errata_version" ,
395+ log -> nvme_over_pcie_errate_version );
396+ json_object_add_value_uint (root , "nvme_mi_errata_version" ,
397+ log -> nvme_mi_errata_version );
398+ json_object_add_value_uint (root , "total_media_dies" ,
399+ le16_to_cpu (log -> total_media_dies ));
400+ json_object_add_value_uint (root , "total_die_failure_tolerance" ,
401+ le16_to_cpu (log -> total_die_failure_tolerance ));
402+ json_object_add_value_uint (root , "max_temperature_recorded" ,
403+ le16_to_cpu (log -> max_temperature_recorded ));
404+ json_object_add_value_uint64 (root , "nand_avg_erase_count" ,
405+ le64_to_cpu (log -> nand_avg_erase_count ));
406+ json_object_add_value_uint (root , "command_timeouts" ,
407+ le32_to_cpu (log -> command_timeouts ));
408+ json_object_add_value_uint (root , "sys_area_program_fail_count_raw" ,
409+ le32_to_cpu (log -> sys_area_program_fail_count_raw ));
410+ json_object_add_value_uint (root , "sys_area_program_fail_count_noralized" ,
411+ log -> sys_area_program_fail_count_normalized );
412+ json_object_add_value_uint (root , "sys_area_uncorrectable_read_count_raw" ,
413+ le32_to_cpu (log -> sys_area_uncorr_read_count_raw ));
414+ json_object_add_value_uint (root , "sys_area_uncorrectable_read_count_noralized" ,
415+ log -> sys_area_uncorr_read_count_normalized );
416+ json_object_add_value_uint (root , "sys_area_erase_fail_count_raw" ,
417+ le32_to_cpu (log -> sys_area_erase_fail_count_raw ));
418+ json_object_add_value_uint (root , "sys_area_erase_fail_count_noralized" ,
419+ log -> sys_area_erase_fail_count_normalized );
420+ json_object_add_value_uint (root , "max_peak_power_capability" ,
421+ le16_to_cpu (log -> max_peak_power_capability ));
422+ json_object_add_value_uint (root , "current_max_avg_power" ,
423+ le16_to_cpu (log -> current_max_avg_power ));
424+ json_object_add_value_uint64 (root , "lifetime_power_consumed" ,
425+ int48_to_long (log -> lifetime_power_consumed ));
426+ memset ((void * )ascii , 0 , 65 );
427+ for (i = 0 ; i < 8 ; i ++ )
428+ ascii += sprintf (ascii , "%c" , log -> dssd_firmware_revision [i ]);
429+ json_object_add_value_string (root , "dssd_firmware_revision" , ascii_arr );
430+ json_object_add_value_string (root , "dssd_firmware_build_uuid" ,
431+ util_uuid_to_string (log -> dssd_firmware_build_uuid ));
432+ ascii = ascii_arr ;
433+ memset ((void * )ascii , 0 , 65 );
434+ for (i = 0 ; i < 64 ; i ++ )
435+ ascii += sprintf (ascii , "%c" , log -> dssd_firmware_build_label [i ]);
436+ json_object_add_value_string (root , "dssd_firmware_build_label" , ascii_arr );
345437 fallthrough ;
346438 case 2 ... 3 :
347439 json_object_add_value_uint (root , "errata_version_field" ,
0 commit comments