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_devlink.h (2124B)


      1/* Broadcom NetXtreme-C/E network driver.
      2 *
      3 * Copyright (c) 2017 Broadcom Limited
      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_DEVLINK_H
     11#define BNXT_DEVLINK_H
     12
     13/* Struct to hold housekeeping info needed by devlink interface */
     14struct bnxt_dl {
     15	struct bnxt *bp;	/* back ptr to the controlling dev */
     16	bool remote_reset;
     17};
     18
     19static inline struct bnxt *bnxt_get_bp_from_dl(struct devlink *dl)
     20{
     21	return ((struct bnxt_dl *)devlink_priv(dl))->bp;
     22}
     23
     24static inline void bnxt_dl_remote_reload(struct bnxt *bp)
     25{
     26	devlink_remote_reload_actions_performed(bp->dl, 0,
     27						BIT(DEVLINK_RELOAD_ACTION_DRIVER_REINIT) |
     28						BIT(DEVLINK_RELOAD_ACTION_FW_ACTIVATE));
     29}
     30
     31static inline bool bnxt_dl_get_remote_reset(struct devlink *dl)
     32{
     33	return ((struct bnxt_dl *)devlink_priv(dl))->remote_reset;
     34}
     35
     36static inline void bnxt_dl_set_remote_reset(struct devlink *dl, bool value)
     37{
     38	((struct bnxt_dl *)devlink_priv(dl))->remote_reset = value;
     39}
     40
     41#define NVM_OFF_MSIX_VEC_PER_PF_MAX	108
     42#define NVM_OFF_MSIX_VEC_PER_PF_MIN	114
     43#define NVM_OFF_IGNORE_ARI		164
     44#define NVM_OFF_DIS_GRE_VER_CHECK	171
     45#define NVM_OFF_ENABLE_SRIOV		401
     46#define NVM_OFF_NVM_CFG_VER		602
     47
     48#define BNXT_NVM_CFG_VER_BITS		8
     49#define BNXT_NVM_CFG_VER_BYTES		1
     50
     51#define BNXT_MSIX_VEC_MAX	512
     52#define BNXT_MSIX_VEC_MIN_MAX	128
     53
     54enum bnxt_nvm_dir_type {
     55	BNXT_NVM_SHARED_CFG = 40,
     56	BNXT_NVM_PORT_CFG,
     57	BNXT_NVM_FUNC_CFG,
     58};
     59
     60struct bnxt_dl_nvm_param {
     61	u16 id;
     62	u16 offset;
     63	u16 dir_type;
     64	u16 nvm_num_bits;
     65	u8 dl_num_bytes;
     66};
     67
     68enum bnxt_dl_version_type {
     69	BNXT_VERSION_FIXED,
     70	BNXT_VERSION_RUNNING,
     71	BNXT_VERSION_STORED,
     72};
     73
     74void bnxt_devlink_health_fw_report(struct bnxt *bp);
     75void bnxt_dl_health_fw_status_update(struct bnxt *bp, bool healthy);
     76void bnxt_dl_health_fw_recovery_done(struct bnxt *bp);
     77void bnxt_dl_fw_reporters_create(struct bnxt *bp);
     78void bnxt_dl_fw_reporters_destroy(struct bnxt *bp);
     79int bnxt_dl_register(struct bnxt *bp);
     80void bnxt_dl_unregister(struct bnxt *bp);
     81
     82#endif /* BNXT_DEVLINK_H */