175 lines
4.7 KiB
C
175 lines
4.7 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
#ifndef __INSPUR_UTILS_H__
|
|
#define __INSPUR_UTILS_H__
|
|
|
|
#define BYTE_OF_64K 65536UL
|
|
#define BYTE_OF_32K 32768UL
|
|
#define BYTE_OF_16K 16384UL
|
|
#define BYTE_OF_4K 4096UL
|
|
#define BYTE_OF_512 512UL
|
|
#define BYTE_OF_256 256UL
|
|
#define BYTE_OF_128 128UL
|
|
|
|
/* Inspur specific LOG_PAGE_ID */
|
|
typedef enum {
|
|
VENDOR_SMART_LOG_PAGE = 0xc0,
|
|
} vendor_sepc_log_page_id_e;
|
|
|
|
#pragma pack(push, 1)
|
|
typedef struct r1_am_cap_transtime {
|
|
__u32 cap_trans_time1 : 16;
|
|
__u32 cap_trans_time2 : 16;
|
|
} r1_cap_transtime_t;
|
|
|
|
typedef struct vendor_warning_bit {
|
|
__u32 high_format_fail : 1;
|
|
__u32 low_format_fail : 1;
|
|
__u32 rebuild_fail1 : 1;
|
|
__u32 rebuild_fail2 : 1;
|
|
__u32 rebuild_fail3 : 1;
|
|
__u32 rebuild_fail4 : 1;
|
|
__u32 rebuild_fail5 : 1;
|
|
__u32 rebuild_fail6 : 1;
|
|
__u32 self_test_fail1 : 1;
|
|
__u32 self_test_fail2 : 1;
|
|
__u32 self_test_fail3 : 1;
|
|
__u32 self_test_fail4 : 1;
|
|
__u32 internal_err1 : 1;
|
|
__u32 internal_err2 : 1;
|
|
__u32 internal_err3 : 1;
|
|
__u32 internal_err4 : 1;
|
|
__u32 internal_err5 : 1;
|
|
__u32 internal_err6 : 1;
|
|
__u32 internal_err7 : 1;
|
|
__u32 internal_err8 : 1;
|
|
__u32 internal_err9 : 1;
|
|
__u32 internal_err10 : 1;
|
|
__u32 internal_err11 : 1;
|
|
__u32 internal_err12 : 1;
|
|
__u32 internal_err13 : 1;
|
|
__u32 internal_err14 : 1;
|
|
__u32 internal_err15 : 1;
|
|
__u32 internal_err16 : 1;
|
|
__u32 capacitance_test_fail : 1;
|
|
__u32 IO_read_fail : 1;
|
|
__u32 IO_write_fail : 1;
|
|
__u32 readOnly_after_rebuild : 1;
|
|
__u32 firmware_loss : 1;
|
|
__u32 cap_unsupply : 1;
|
|
__u32 spare_space_warning : 1;
|
|
__u32 lifetime_warning : 1;
|
|
__u32 temp_high_warning : 1;
|
|
__u32 temp_low_warning : 1;
|
|
__u32 mcu_disable : 1;
|
|
__u32 rsv : 25;
|
|
} vendor_warning_str;
|
|
|
|
typedef struct r1_vendor_log_ncm_cout {
|
|
__u32 nand_rd_unc_cnt;
|
|
__u32 nand_rd_srr_cnt;
|
|
__u32 nand_rd_soft_decode_cnt;
|
|
__u32 nand_rd_rebuild_fail_cnt;
|
|
__u32 nand_prg_fail_cnt;
|
|
__u32 nand_eras_fail_cnt;
|
|
__u64 nand_rd_cnt;
|
|
__u64 nand_prg_cnt;
|
|
__u64 nand_eras_cnt;
|
|
__u32 BE_scan_unc_cnt;
|
|
__u32 rebuild_req_cnt;
|
|
__u16 retry_req_cnt;
|
|
__u16 retry_success_cnt;
|
|
__u32 prg_badblk_num;
|
|
__u32 eras_badblk_num;
|
|
__u32 unc_badblk_num;
|
|
} r1_vendor_log_nandctl_count_t;
|
|
|
|
typedef struct r1_wearlvl_vendor_log_count {
|
|
__u32 fbb_count;
|
|
__u32 ebb_count;
|
|
__u32 lbb_count;
|
|
__u32 gc_read_count;
|
|
__u32 gc_write_count;
|
|
__u32 gc_write_fail_count;
|
|
__u32 force_gc_count;
|
|
__u32 avg_pe_count;
|
|
__u32 max_pe_count;
|
|
__u32 free_blk_num1;
|
|
__u32 free_blk_num2;
|
|
} r1_wearlvl_vendor_log_count_t;
|
|
|
|
typedef struct vendor_media_err {
|
|
__u64 lba_err[10];
|
|
} vendor_media_err_t;
|
|
|
|
typedef struct r1_vendor_log_io_err {
|
|
__u32 io_guard_err;
|
|
__u32 io_apptag_err;
|
|
__u32 io_reftag_err;
|
|
__u32 io_dma_linkdown_err;
|
|
__u32 io_dma_disable_err;
|
|
__u32 io_dma_timeout_err;
|
|
__u32 io_dma_fatal_err;
|
|
__u32 io_write_fail_cout;
|
|
__u32 io_read_fail_cout;
|
|
__u32 lba_err[6];
|
|
} r1_vendor_log_io_err_t;
|
|
|
|
typedef struct r1_vendor_log_s {
|
|
__u32 max_power;
|
|
__u32 disk_max_temper;
|
|
__u32 disk_overtemper_cout;
|
|
__u32 ctrl_max_temper;
|
|
__u32 ctrl_overtemper_cout;
|
|
r1_cap_transtime_t cap_transtime;
|
|
__u32 cap_health_state;
|
|
__u32 device_state;
|
|
r1_vendor_log_io_err_t io_err[4];
|
|
union {
|
|
vendor_warning_str detail_warning_bit;
|
|
__u32 detail_warning[2];
|
|
};
|
|
union {
|
|
vendor_warning_str detail_warning_his_bit;
|
|
__u32 detail_warning_his[2];
|
|
};
|
|
__u32 ddr_bit_err_cout;
|
|
__u32 temp_throttle_per;
|
|
__u64 port0_fundamental_reset_cnt;
|
|
__u64 port0_hot_reset_cnt;
|
|
__u64 port0_func_reset_cnt;
|
|
__u64 port0_linkdown_cnt;
|
|
__u64 port0_ctrl_reset_cnt;
|
|
__u64 nand_bytes_written[4];
|
|
__u32 power_info;
|
|
__u32 voltage_info;
|
|
__u32 current_info;
|
|
__u32 current_temp[4];
|
|
__u32 nand_max_temper;
|
|
__u32 nand_overtemper_cout;
|
|
__u32 mcu_data_id;
|
|
__u8 commit_id[16];
|
|
__u32 ces_RcvErr_cnt;
|
|
__u32 ces_BadTlp_cnt;
|
|
__u32 ces_BadDllp_cnt;
|
|
__u32 ces_Rplyover_cnt;
|
|
__u32 ces_RplyTo_cnt;
|
|
__u32 ces_Hlo_cnt;
|
|
__u32 scan_db_err_cnt;
|
|
__u32 db_int_err_cnt;
|
|
__u8 rsvFE[56];
|
|
r1_vendor_log_nandctl_count_t vendor_log_nandctl_cnt[4];
|
|
__u32 temp_ctrl_limit_cnt;
|
|
__u32 temp_ctrl_stop_cnt;
|
|
__u8 rsvncm[216];
|
|
r1_wearlvl_vendor_log_count_t wearlvl_vendor_log_count[4];
|
|
__u8 rsvwlm[512 - sizeof(r1_wearlvl_vendor_log_count_t) * 4 % 512];
|
|
__u32 e2e_check_err_cnt1;
|
|
__u32 e2e_check_err_cnt2;
|
|
__u32 e2e_check_err_cnt3;
|
|
__u32 e2e_check_err_cnt4;
|
|
vendor_media_err_t media_err[4];
|
|
__u8 rsvlkm[176];
|
|
} r1_cli_vendor_log_t;
|
|
#pragma pack(pop)
|
|
|
|
#endif // __INSPUR_UTILS_H__
|