@@ -362,6 +362,31 @@ const char *nvme_register_pmr_pmrszu_to_string(__u8 pmrszu)
362
362
}
363
363
}
364
364
365
+ void nvme_show_single_register (void * bar , bool fabrics , int offset , enum nvme_print_flags flags )
366
+ {
367
+ uint64_t value ;
368
+
369
+ if (nvme_is_64bit_reg (offset ))
370
+ value = mmio_read64 (bar + offset );
371
+ else
372
+ value = mmio_read32 (bar + offset );
373
+
374
+ if (!nvme_is_fabrics_reg (offset )) {
375
+ if (fabrics ) {
376
+ printf ("register: 0x%02x (%s) not fabrics\n" , offset ,
377
+ nvme_register_to_string (offset ));
378
+ return ;
379
+ }
380
+ if (value == 0xffffffff ) {
381
+ printf ("register: 0x%02x (%s), value: %" PRIx64 " not valid\n" , offset ,
382
+ nvme_register_to_string (offset ), value );
383
+ return ;
384
+ }
385
+ }
386
+
387
+ nvme_print (single_register , flags , offset , value );
388
+ }
389
+
365
390
void nvme_show_ctrl_registers (void * bar , bool fabrics , enum nvme_print_flags flags )
366
391
{
367
392
nvme_print (ctrl_registers , flags , bar , fabrics );
@@ -893,61 +918,121 @@ void nvme_show_lba_status_info(__u32 result)
893
918
const char * nvme_host_metadata_type_to_string (enum nvme_features_id fid ,
894
919
__u8 type )
895
920
{
896
- switch (fid ) {
897
- case NVME_FEAT_FID_ENH_CTRL_METADATA :
898
- case NVME_FEAT_FID_CTRL_METADATA :
899
- switch (type ) {
900
- case NVME_CTRL_METADATA_OS_CTRL_NAME :
901
- return "Operating System Controller Name" ;
902
- case NVME_CTRL_METADATA_OS_DRIVER_NAME :
903
- return "Operating System Driver Name" ;
904
- case NVME_CTRL_METADATA_OS_DRIVER_VER :
905
- return "Operating System Driver Version" ;
906
- case NVME_CTRL_METADATA_PRE_BOOT_CTRL_NAME :
907
- return "Pre-boot Controller Name" ;
908
- case NVME_CTRL_METADATA_PRE_BOOT_DRIVER_NAME :
909
- return "Pre-boot Driver Name" ;
910
- case NVME_CTRL_METADATA_PRE_BOOT_DRIVER_VER :
911
- return "Pre-boot Driver Version" ;
912
- case NVME_CTRL_METADATA_SYS_PROC_MODEL :
913
- return "System Processor Model" ;
914
- case NVME_CTRL_METADATA_CHIPSET_DRV_NAME :
915
- return "Chipset Driver Name" ;
916
- case NVME_CTRL_METADATA_CHIPSET_DRV_VERSION :
917
- return "Chipset Driver Version" ;
918
- case NVME_CTRL_METADATA_OS_NAME_AND_BUILD :
919
- return "Operating System Name and Build" ;
920
- case NVME_CTRL_METADATA_SYS_PROD_NAME :
921
- return "System Product Name" ;
922
- case NVME_CTRL_METADATA_FIRMWARE_VERSION :
923
- return "Firmware Version" ;
924
- case NVME_CTRL_METADATA_OS_DRIVER_FILENAME :
925
- return "Operating System Driver Filename" ;
926
- case NVME_CTRL_METADATA_DISPLAY_DRV_NAME :
927
- return "Display Driver Name" ;
928
- case NVME_CTRL_METADATA_DISPLAY_DRV_VERSION :
929
- return "Display Driver Version" ;
930
- case NVME_CTRL_METADATA_HOST_DET_FAIL_REC :
931
- return "Host-Determined Failure Record" ;
932
- default :
933
- return "Unknown Controller Type" ;
934
- }
935
- case NVME_FEAT_FID_NS_METADATA :
936
- switch (type ) {
937
- case NVME_NS_METADATA_OS_NS_NAME :
938
- return "Operating System Namespace Name" ;
939
- case NVME_NS_METADATA_PRE_BOOT_NS_NAME :
940
- return "Pre-boot Namespace Name" ;
941
- case NVME_NS_METADATA_OS_NS_QUAL_1 :
942
- return "Operating System Namespace Name Qualifier 1" ;
943
- case NVME_NS_METADATA_OS_NS_QUAL_2 :
944
- return "Operating System Namespace Name Qualifier 2" ;
945
- default :
946
- return "Unknown Namespace Type" ;
947
- }
948
- default :
949
- return "Unknown Feature" ;
950
- }
921
+ switch (fid ) {
922
+ case NVME_FEAT_FID_ENH_CTRL_METADATA :
923
+ case NVME_FEAT_FID_CTRL_METADATA :
924
+ switch (type ) {
925
+ case NVME_CTRL_METADATA_OS_CTRL_NAME :
926
+ return "Operating System Controller Name" ;
927
+ case NVME_CTRL_METADATA_OS_DRIVER_NAME :
928
+ return "Operating System Driver Name" ;
929
+ case NVME_CTRL_METADATA_OS_DRIVER_VER :
930
+ return "Operating System Driver Version" ;
931
+ case NVME_CTRL_METADATA_PRE_BOOT_CTRL_NAME :
932
+ return "Pre-boot Controller Name" ;
933
+ case NVME_CTRL_METADATA_PRE_BOOT_DRIVER_NAME :
934
+ return "Pre-boot Driver Name" ;
935
+ case NVME_CTRL_METADATA_PRE_BOOT_DRIVER_VER :
936
+ return "Pre-boot Driver Version" ;
937
+ case NVME_CTRL_METADATA_SYS_PROC_MODEL :
938
+ return "System Processor Model" ;
939
+ case NVME_CTRL_METADATA_CHIPSET_DRV_NAME :
940
+ return "Chipset Driver Name" ;
941
+ case NVME_CTRL_METADATA_CHIPSET_DRV_VERSION :
942
+ return "Chipset Driver Version" ;
943
+ case NVME_CTRL_METADATA_OS_NAME_AND_BUILD :
944
+ return "Operating System Name and Build" ;
945
+ case NVME_CTRL_METADATA_SYS_PROD_NAME :
946
+ return "System Product Name" ;
947
+ case NVME_CTRL_METADATA_FIRMWARE_VERSION :
948
+ return "Firmware Version" ;
949
+ case NVME_CTRL_METADATA_OS_DRIVER_FILENAME :
950
+ return "Operating System Driver Filename" ;
951
+ case NVME_CTRL_METADATA_DISPLAY_DRV_NAME :
952
+ return "Display Driver Name" ;
953
+ case NVME_CTRL_METADATA_DISPLAY_DRV_VERSION :
954
+ return "Display Driver Version" ;
955
+ case NVME_CTRL_METADATA_HOST_DET_FAIL_REC :
956
+ return "Host-Determined Failure Record" ;
957
+ default :
958
+ return "Unknown Controller Type" ;
959
+ }
960
+ case NVME_FEAT_FID_NS_METADATA :
961
+ switch (type ) {
962
+ case NVME_NS_METADATA_OS_NS_NAME :
963
+ return "Operating System Namespace Name" ;
964
+ case NVME_NS_METADATA_PRE_BOOT_NS_NAME :
965
+ return "Pre-boot Namespace Name" ;
966
+ case NVME_NS_METADATA_OS_NS_QUAL_1 :
967
+ return "Operating System Namespace Name Qualifier 1" ;
968
+ case NVME_NS_METADATA_OS_NS_QUAL_2 :
969
+ return "Operating System Namespace Name Qualifier 2" ;
970
+ default :
971
+ return "Unknown Namespace Type" ;
972
+ }
973
+ default :
974
+ return "Unknown Feature" ;
975
+ }
976
+ }
977
+
978
+ const char * nvme_register_symbol_to_string (int offset )
979
+ {
980
+ switch (offset ) {
981
+ case NVME_REG_CAP :
982
+ return "cap" ;
983
+ case NVME_REG_VS :
984
+ return "version" ;
985
+ case NVME_REG_INTMS :
986
+ return "intms" ;
987
+ case NVME_REG_INTMC :
988
+ return "intmc" ;
989
+ case NVME_REG_CC :
990
+ return "cc" ;
991
+ case NVME_REG_CSTS :
992
+ return "csts" ;
993
+ case NVME_REG_NSSR :
994
+ return "nssr" ;
995
+ case NVME_REG_AQA :
996
+ return "aqa" ;
997
+ case NVME_REG_ASQ :
998
+ return "asq" ;
999
+ case NVME_REG_ACQ :
1000
+ return "acq" ;
1001
+ case NVME_REG_CMBLOC :
1002
+ return "cmbloc" ;
1003
+ case NVME_REG_CMBSZ :
1004
+ return "cmbsz" ;
1005
+ case NVME_REG_BPINFO :
1006
+ return "bpinfo" ;
1007
+ case NVME_REG_BPRSEL :
1008
+ return "bprsel" ;
1009
+ case NVME_REG_BPMBL :
1010
+ return "bpmbl" ;
1011
+ case NVME_REG_CMBMSC :
1012
+ return "cmbmsc" ;
1013
+ case NVME_REG_CMBSTS :
1014
+ return "cmbsts" ;
1015
+ case NVME_REG_CRTO :
1016
+ return "crto" ;
1017
+ case NVME_REG_PMRCAP :
1018
+ return "pmrcap" ;
1019
+ case NVME_REG_PMRCTL :
1020
+ return "pmrctl" ;
1021
+ case NVME_REG_PMRSTS :
1022
+ return "pmrsts" ;
1023
+ case NVME_REG_PMREBS :
1024
+ return "pmrebs" ;
1025
+ case NVME_REG_PMRSWTP :
1026
+ return "pmrswtp" ;
1027
+ case NVME_REG_PMRMSCL :
1028
+ return "pmrmscl" ;
1029
+ case NVME_REG_PMRMSCU :
1030
+ return "pmrmscu" ;
1031
+ default :
1032
+ break ;
1033
+ }
1034
+
1035
+ return "unknown" ;
951
1036
}
952
1037
953
1038
void nvme_feature_show (enum nvme_features_id fid , int sel , unsigned int result )
0 commit comments