fsm/src/fm10k/registers/MGMT.h
2021-10-24 21:32:49 +02:00

51 lines
1.4 KiB
C++

#pragma once
#include "Register.h"
namespace FM10K{
namespace registers{
namespace MGMT{
enum class DEVICE_CFG_FeatureCode: uint8_t {
FULL = 0b00,
HALF = 0b01,
BASIC = 0b10,
RESERVED = 0b11,
};
typedef PACKED(struct {
uint8_t PCIeMode: 4; //Bitfield array [0..3]
uint8_t Eth100GDisabled: 1;
DEVICE_CFG_FeatureCode FeatureCode: 2;
uint16_t PCIeEnable: 9; //Bitfield array [0..8]
uint8_t SystimeClockSource: 1;
uint16_t : 15;
}, uint32_t) DEVICE_CFG;
const uint32_t DEVICE_CFG__Address = 0x4;
typedef PACKED(struct {
uint16_t PartNumber : 16;
uint16_t : 16;
}, uint32_t) VITAL_PRODUCT_DATA;
const uint32_t VITAL_PRODUCT_DATA__Address = 0x304;
typedef PACKED(struct {
uint16_t ChipVersion : 7;
uint32_t : 25;
}, uint32_t) CHIP_VERSION;
const uint32_t CHIP_VERSION__Address = 0x452;
typedef PACKED(struct {
uint16_t : 11;
uint8_t SKU : 5;
uint8_t VDDS_VRM : 8;
uint8_t VDDF_VRM : 8;
}, uint32_t) FUSE_DATA_0;
const uint32_t FUSE_DATA_0__Address = 0xC0E;
}
}
}