david/ipxe
david
/
ipxe
Archived
1
0
Fork 0
This repository has been archived on 2020-12-06. You can view files and clone it, but cannot push or open issues or pull requests.
ipxe/src/drivers/infiniband/mlx_utils/mlx_lib/mlx_nvconfig/mlx_nvconfig_prm.h

332 lines
8.6 KiB
C

#ifndef MLX_NVCONFIG_PRM_H_
#define MLX_NVCONFIG_PRM_H_
/*
* Copyright (C) 2015 Mellanox Technologies Ltd.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
FILE_LICENCE ( GPL2_OR_LATER );
#include "../../include/public/mlx_types.h"
enum {
WAKE_ON_LAN_TYPE = 0x10,
VIRTUALIZATION_TYPE = 0x11,
VPI_LINK_TYPE = 0x12,
BOOT_SETTINGS_EXT_TYPE = 0x2001,
BANNER_TO_TYPE = 0x2010,
OCSD_OCBB_TYPE = 0x2011,
FLOW_CONTROL_TYPE = 0x2020,
BOOT_SETTINGS_TYPE = 0x2021,
NV_ROM_FLEXBOOT_DEBUG = 0x2004,
ISCSI_GENERAL_SETTINGS_TYPE = 0x2100,
IB_BOOT_SETTING_TYPE = 0x2022,
IB_DHCP_SETTINGS_TYPE = 0x2023,
GLOPAL_PCI_SETTINGS_TYPE = 0x80,
GLOPAL_PCI_CAPS_TYPE = 0x81,
GLOBAL_ROM_INI_TYPE = 0x100,
NV_VIRT_NET_ADDR = 0x110,
// Types for iSCSI strings
DHCP_VEND_ID = 0x2101,
ISCSI_INITIATOR_IPV4_ADDR = 0x2102,
ISCSI_INITIATOR_SUBNET = 0x2103,
ISCSI_INITIATOR_IPV4_GATEWAY = 0x2104,
ISCSI_INITIATOR_IPV4_PRIM_DNS = 0x2105,
ISCSI_INITIATOR_IPV4_SECDNS = 0x2106,
ISCSI_INITIATOR_NAME = 0x2107,
ISCSI_INITIATOR_CHAP_ID = 0x2108,
ISCSI_INITIATOR_CHAP_PWD = 0x2109,
ISCSI_INITIATOR_DHCP_CONF_TYPE = 0x210a,
CONNECT_FIRST_TGT = 0x2200,
FIRST_TGT_IP_ADDRESS = 0x2201,
FIRST_TGT_TCP_PORT = 0x2202,
FIRST_TGT_BOOT_LUN = 0x2203,
FIRST_TGT_ISCSI_NAME = 0x2204,
FIRST_TGT_CHAP_ID = 0x2205,
FIRST_TGT_CHAP_PWD = 0x2207,
NV_ROM_DEBUG_LEVEL = 0x2002,
NV_ROM_CAP_TYPE = 0x101,
};
union mlx_nvconfig_nic_boot_conf {
struct {
mlx_uint32 vlan_id : 12;
mlx_uint32 link_speed : 4;
mlx_uint32 legacy_boot_prot : 8;
mlx_uint32 boot_retry_count : 3;
mlx_uint32 boot_strap_type : 3;
mlx_uint32 en_vlan : 1;
mlx_uint32 en_option_rom : 1;
};
mlx_uint32 dword;
};
union mlx_nvconfig_nic_boot_ext_conf {
struct {
mlx_uint32 linkup_timeout : 8;
mlx_uint32 ip_ver : 2;
mlx_uint32 reserved0 : 6;
mlx_uint32 undi_network_wait_to : 8;
mlx_uint32 reserved1 : 8;
};
mlx_uint32 dword;
};
union mlx_nvconfig_rom_banner_timeout_conf {
struct {
mlx_uint32 rom_banner_to : 4;
mlx_uint32 reserved : 28;
};
mlx_uint32 dword;
};
union mlx_nvconfig_virt_conf {
struct {
mlx_uint32 reserved0 :24;
mlx_uint32 pf_bar_size_valid :1;
mlx_uint32 vf_bar_size_valid :1;
mlx_uint32 num_pf_msix_valid :1;
mlx_uint32 num_vf_msix_valid :1;
mlx_uint32 num_pfs_valid :1;
mlx_uint32 fpp_valid :1;
mlx_uint32 full_vf_qos_valid :1;
mlx_uint32 sriov_valid :1;
/*-------------------*/
mlx_uint32 num_of_vfs :16;
mlx_uint32 num_of_pfs :4;
mlx_uint32 reserved1 :9;
mlx_uint32 fpp_en :1;
mlx_uint32 full_vf_qos :1;
mlx_uint32 virt_mode :1; //sriov_en
/*-------------------*/
mlx_uint32 log_pf_uar_bar_size :6;
mlx_uint32 log_vf_uar_bar_size :6;
mlx_uint32 num_pf_msix :10;
mlx_uint32 num_vf_msix :10;
};
mlx_uint32 dword[3];
};
union mlx_nvconfig_virt_caps {
struct {
mlx_uint32 reserved0 :24;
mlx_uint32 max_vfs_per_pf_valid :1;
mlx_uint32 max_total_msix_valid :1;
mlx_uint32 max_total_bar_valid :1;
mlx_uint32 num_pfs_supported :1;
mlx_uint32 num_vf_msix_supported :1;
mlx_uint32 num_pf_msix_supported :1;
mlx_uint32 vf_bar_size_supported :1;
mlx_uint32 pf_bar_size_supported :1;
/*-------------------*/
mlx_uint32 max_vfs_per_pf :16;
mlx_uint32 max_num_pfs :4;
mlx_uint32 reserved1 :9;
mlx_uint32 fpp_support :1;
mlx_uint32 vf_qos_control_support :1;
mlx_uint32 sriov_support :1;
/*-------------------*/
mlx_uint32 max_log_pf_uar_bar_size :6;
mlx_uint32 max_log_vf_uar_bar_size :6;
mlx_uint32 max_num_pf_msix :10;
mlx_uint32 max_num_vf_msix :10;
/*-------------------*/
mlx_uint32 max_total_msix;
/*-------------------*/
mlx_uint32 max_total_bar;
};
mlx_uint32 dword[5];
};
union mlx_nvconfig_iscsi_init_dhcp_conf {
struct {
mlx_uint32 reserved0 :30;
mlx_uint32 dhcp_iscsi_en :1;
mlx_uint32 ipv4_dhcp_en :1;
};
mlx_uint32 dword;
};
union mlx_nvconfig_nic_ib_boot_conf {
struct {
mlx_uint32 boot_pkey : 16;
mlx_uint32 reserved0 : 16;
};
mlx_uint32 dword;
};
union mlx_nvconfig_wol_conf {
struct {
mlx_uint32 reserved0 :9;
mlx_uint32 en_wol_passwd :1;
mlx_uint32 en_wol_magic :1;
mlx_uint32 reserved1 :21;
mlx_uint32 reserved2 :32;
};
mlx_uint32 dword[2];
};
union mlx_nvconfig_iscsi_general {
struct {
mlx_uint32 reserved0 :22;
mlx_uint32 boot_to_target :2;
mlx_uint32 reserved1 :2;
mlx_uint32 vlan_en :1;
mlx_uint32 tcp_timestamps_en :1;
mlx_uint32 chap_mutual_auth_en :1;
mlx_uint32 chap_auth_en :1;
mlx_uint32 reserved2 :2;
/*-------------------*/
mlx_uint32 vlan :12;
mlx_uint32 reserved3 :20;
/*-------------------*/
mlx_uint32 lun_busy_retry_count:8;
mlx_uint32 link_up_delay_time :8;
mlx_uint32 drive_num :8;
mlx_uint32 reserved4 :8;
};
mlx_uint32 dword[3];
};
union mlx_nvconfig_ib_dhcp_conf {
struct {
mlx_uint32 reserved :24;
mlx_uint32 client_identifier :4;
mlx_uint32 mac_admin_bit :4;
};
mlx_uint32 dword;
};
union mlx_nvconfig_ocsd_ocbb_conf {
struct {
mlx_uint32 reserved :31;
mlx_uint32 ocsd_ocbb_en :1;
};
mlx_uint32 dword;
};
union mlx_nvconfig_vpi_link_conf {
struct {
mlx_uint32 network_link_type :2;
mlx_uint32 default_link_type :2;
mlx_uint32 reserved :28;
};
mlx_uint32 dword;
};
struct mlx_nvcofnig_romini {
mlx_uint32 reserved0 :1;
mlx_uint32 shared_memory_en :1;
mlx_uint32 hii_vpi_en :1;
mlx_uint32 tech_enum :1;
mlx_uint32 reserved1 :4;
mlx_uint32 static_component_name_string :1;
mlx_uint32 hii_iscsi_configuration :1;
mlx_uint32 hii_ibm_aim :1;
mlx_uint32 hii_platform_setup :1;
mlx_uint32 hii_bdf_decimal :1;
mlx_uint32 hii_read_only :1;
mlx_uint32 reserved2 :10;
mlx_uint32 mac_enum :1;
mlx_uint32 port_enum :1;
mlx_uint32 flash_en :1;
mlx_uint32 fmp_en :1;
mlx_uint32 bofm_en :1;
mlx_uint32 platform_to_driver_en:1;
mlx_uint32 hii_en :1;
mlx_uint32 undi_en :1;
/* -------------- */
mlx_uint64 dhcp_user_class;
/* -------------- */
mlx_uint32 reserved3 :10;
mlx_uint32 ucm_single_port :1;
mlx_uint32 tivoli_wa_en :1;
mlx_uint32 dhcp_pxe_discovery_control_dis :1;
mlx_uint32 hii_flexaddr_override:1;
mlx_uint32 hii_flexaddr_setting :1;
mlx_uint32 guided_ops :1;
mlx_uint32 hii_type :4;
mlx_uint32 hii_mriname2 :1;
mlx_uint32 hii_aim_ucm_ver2 :1;
mlx_uint32 uri_boot_retry_delay :4;
mlx_uint32 uri_boot_retry :4;
mlx_uint32 option_rom_debug :1;
mlx_uint32 promiscuous_vlan :1;
} __attribute__ ((packed));
union mlx_nvconfig_debug_conf {
struct {
mlx_uint32 dbg_log_en :1;
mlx_uint32 reserved1 :31;
/***************************************************/
mlx_uint32 stp_dbg_lvl :2;
mlx_uint32 romprefix_dbg_lvl :2;
mlx_uint32 dhcp_dbg_lvl :2;
mlx_uint32 dhcpv6_dbg_lvl :2;
mlx_uint32 arp_dbg_lvl :2;
mlx_uint32 neighbor_dbg_lvl :2;
mlx_uint32 ndp_dbg_lvl :2;
mlx_uint32 uri_dbg_lvl :2;
mlx_uint32 driver_dbg_lvl :2;
mlx_uint32 nodnic_dbg_lvl :2;
mlx_uint32 nodnic_cmd_dbg_lvl :2;
mlx_uint32 nodnic_device_dbg_lvl :2;
mlx_uint32 nodnic_port_dbg_lvl :2;
mlx_uint32 netdevice_dbg_lvl :2;
mlx_uint32 tftp_dbg_lvl :2;
mlx_uint32 udp_dbg_lvl :2;
/***************************************************/
mlx_uint32 tcp_dbg_lvl :2;
mlx_uint32 tcpip_dbg_lvl :2;
mlx_uint32 ipv4_dbg_lvl :2;
mlx_uint32 ipv6_dbg_lvl :2;
mlx_uint32 drv_set_dbg_lvl :2;
mlx_uint32 stat_update_dbg_lvl :2;
mlx_uint32 pxe_undi_dbg_lvl :2;
mlx_uint32 reserved2 :18;
};
mlx_uint32 dword[3];
};
union mlx_nvconfig_flexboot_debug {
struct {
mlx_uint32 reserved0 :29;
mlx_uint32 panic_behavior :2;
mlx_uint32 boot_to_shell :1;
};
mlx_uint32 dword;
};
union mlx_nvconfig_rom_cap_conf {
struct {
mlx_uint32 reserved0 :28;
mlx_uint32 uefi_logs_en :1;
mlx_uint32 flexboot_debug_en :1;
mlx_uint32 boot_debug_log_en :1;
mlx_uint32 boot_ip_ver_en :1;
};
mlx_uint32 dword;
};
#endif /* MLX_NVCONFIG_PRM_H_ */