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

mlxfw_mfa2_format.h (1785B)


      1/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */
      2/* Copyright (c) 2017-2019 Mellanox Technologies. All rights reserved */
      3
      4#ifndef _MLXFW_MFA2_FORMAT_H
      5#define _MLXFW_MFA2_FORMAT_H
      6
      7#include "mlxfw_mfa2_file.h"
      8#include "mlxfw_mfa2_tlv.h"
      9
     10enum mlxfw_mfa2_tlv_type {
     11	MLXFW_MFA2_TLV_MULTI_PART = 0x01,
     12	MLXFW_MFA2_TLV_PACKAGE_DESCRIPTOR = 0x02,
     13	MLXFW_MFA2_TLV_COMPONENT_DESCRIPTOR = 0x04,
     14	MLXFW_MFA2_TLV_COMPONENT_PTR = 0x22,
     15	MLXFW_MFA2_TLV_PSID = 0x2A,
     16};
     17
     18enum mlxfw_mfa2_compression_type {
     19	MLXFW_MFA2_COMPRESSION_TYPE_NONE,
     20	MLXFW_MFA2_COMPRESSION_TYPE_XZ,
     21};
     22
     23struct mlxfw_mfa2_tlv_package_descriptor {
     24	__be16 num_components;
     25	__be16 num_devices;
     26	__be32 cb_offset;
     27	__be32 cb_archive_size;
     28	__be32 cb_size_h;
     29	__be32 cb_size_l;
     30	u8 padding[3];
     31	u8 cv_compression;
     32	__be32 user_data_offset;
     33} __packed;
     34
     35MLXFW_MFA2_TLV(package_descriptor, struct mlxfw_mfa2_tlv_package_descriptor,
     36	       MLXFW_MFA2_TLV_PACKAGE_DESCRIPTOR);
     37
     38struct mlxfw_mfa2_tlv_multi {
     39	__be16 num_extensions;
     40	__be16 total_len;
     41} __packed;
     42
     43MLXFW_MFA2_TLV(multi, struct mlxfw_mfa2_tlv_multi,
     44	       MLXFW_MFA2_TLV_MULTI_PART);
     45
     46struct mlxfw_mfa2_tlv_psid {
     47	u8 psid[0];
     48} __packed;
     49
     50MLXFW_MFA2_TLV_VARSIZE(psid, struct mlxfw_mfa2_tlv_psid,
     51		       MLXFW_MFA2_TLV_PSID);
     52
     53struct mlxfw_mfa2_tlv_component_ptr {
     54	__be16 storage_id;
     55	__be16 component_index;
     56	__be32 storage_address;
     57} __packed;
     58
     59MLXFW_MFA2_TLV(component_ptr, struct mlxfw_mfa2_tlv_component_ptr,
     60	       MLXFW_MFA2_TLV_COMPONENT_PTR);
     61
     62struct mlxfw_mfa2_tlv_component_descriptor {
     63	__be16 pldm_classification;
     64	__be16 identifier;
     65	__be32 cb_offset_h;
     66	__be32 cb_offset_l;
     67	__be32 size;
     68} __packed;
     69
     70MLXFW_MFA2_TLV(component_descriptor, struct mlxfw_mfa2_tlv_component_descriptor,
     71	       MLXFW_MFA2_TLV_COMPONENT_DESCRIPTOR);
     72
     73#endif