cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

bnxt_coredump.h (2270B)


      1/* Broadcom NetXtreme-C/E network driver.
      2 *
      3 * Copyright (c) 2018 Broadcom Inc
      4 *
      5 * This program is free software; you can redistribute it and/or modify
      6 * it under the terms of the GNU General Public License as published by
      7 * the Free Software Foundation.
      8 */
      9
     10#ifndef BNXT_COREDUMP_H
     11#define BNXT_COREDUMP_H
     12
     13#include <linux/utsname.h>
     14#include <linux/time.h>
     15#include <linux/rtc.h>
     16
     17struct bnxt_coredump_segment_hdr {
     18	__u8 signature[4];
     19	__le32 component_id;
     20	__le32 segment_id;
     21	__le32 flags;
     22	__u8 low_version;
     23	__u8 high_version;
     24	__le16 function_id;
     25	__le32 offset;
     26	__le32 length;
     27	__le32 status;
     28	__le32 duration;
     29	__le32 data_offset;
     30	__le32 instance;
     31	__le32 rsvd[5];
     32};
     33
     34struct bnxt_coredump_record {
     35	__u8 signature[4];
     36	__le32 flags;
     37	__u8 low_version;
     38	__u8 high_version;
     39	__u8 asic_state;
     40	__u8 rsvd0[5];
     41	char system_name[32];
     42	__le16 year;
     43	__le16 month;
     44	__le16 day;
     45	__le16 hour;
     46	__le16 minute;
     47	__le16 second;
     48	__le16 utc_bias;
     49	__le16 rsvd1;
     50	char commandline[256];
     51	__le32 total_segments;
     52	__le32 os_ver_major;
     53	__le32 os_ver_minor;
     54	__le32 rsvd2;
     55	char os_name[32];
     56	__le16 end_year;
     57	__le16 end_month;
     58	__le16 end_day;
     59	__le16 end_hour;
     60	__le16 end_minute;
     61	__le16 end_second;
     62	__le16 end_utc_bias;
     63	__le32 asic_id1;
     64	__le32 asic_id2;
     65	__le32 coredump_status;
     66	__u8 ioctl_low_version;
     67	__u8 ioctl_high_version;
     68	__le16 rsvd3[313];
     69};
     70
     71#define BNXT_CRASH_DUMP_LEN	(8 << 20)
     72
     73#define COREDUMP_LIST_BUF_LEN		2048
     74#define COREDUMP_RETRIEVE_BUF_LEN	4096
     75
     76struct bnxt_coredump {
     77	void		*data;
     78	int		data_size;
     79	u16		total_segs;
     80};
     81
     82#define BNXT_COREDUMP_BUF_LEN(len) ((len) - sizeof(struct bnxt_coredump_record))
     83
     84struct bnxt_hwrm_dbg_dma_info {
     85	void *dest_buf;
     86	int dest_buf_size;
     87	u16 dma_len;
     88	u16 seq_off;
     89	u16 data_len_off;
     90	u16 segs;
     91	u32 seg_start;
     92	u32 buf_len;
     93};
     94
     95struct hwrm_dbg_cmn_input {
     96	__le16 req_type;
     97	__le16 cmpl_ring;
     98	__le16 seq_id;
     99	__le16 target_id;
    100	__le64 resp_addr;
    101	__le64 host_dest_addr;
    102	__le32 host_buf_len;
    103};
    104
    105struct hwrm_dbg_cmn_output {
    106	__le16 error_code;
    107	__le16 req_type;
    108	__le16 seq_id;
    109	__le16 resp_len;
    110	u8 flags;
    111	#define HWRM_DBG_CMN_FLAGS_MORE	1
    112};
    113
    114int bnxt_get_coredump(struct bnxt *bp, u16 dump_type, void *buf, u32 *dump_len);
    115u32 bnxt_get_coredump_length(struct bnxt *bp, u16 dump_type);
    116
    117#endif