CDT I-BM API 1.0.0
Loading...
Searching...
No Matches
CdtCipix.h
1#pragma once
2
3#include "CdtBaseBmAPI.h"
4#include "Utils.tpp"
5
6#define MAX_CIPIX 6
7
8struct FwInfo {
9 std::string name;
10 int nCipix;
11};
12
13class CdtCipix : public virtual CdtBaseBMAPI {
14 public:
15 CdtCipix(std::string name);
16 uint8_t getMaxCipix() const;
17 void fetchFwInfo();
18 RMMResult cipixRegRead(int cipixIdx, std::string reg);
19 RMMResult cipixRegWrite(int cipixIdx, std::string, uint8_t wdata);
20
21 using CipixMap = std::unordered_map<std::string, uint8_t>;
22 using FwMap = std::map<std::string, FwInfo>;
23
24 protected:
25 uint8_t maxCipix;
26
27 private:
28 std::array<std::mutex, MAX_CIPIX> cipixControllerMutex;
29 RMMLog cipixLog;
30 std::string fwAlias = "Undefined";
31 rmmStatus getCipixRegAddr(std::string reg, uint8_t& address);
32 RMMResult cipixRegAccess(int cipixIdx, std::string reg, uint8_t opcode, uint8_t wdata = 0);
33 static const CipixMap cdt_cipix_map;
34 static const FwMap fwMap;
35};
CdtBaseBMAPI(RMMAPI *rmmApi, int ring, int node, std::string name, FENRegMap additional_reg_map)
Constructor for the CdtBm class.
Definition CdtBaseBmAPI.cpp:14
RMMResult cipixRegWrite(int cipixIdx, std::string, uint8_t wdata)
Writes a value to a cipix register and returns the read value.
Definition CdtCipix.cpp:77
RMMResult cipixRegRead(int cipixIdx, std::string reg)
Reads a value from a cipix register.
Definition CdtCipix.cpp:54
Definition CdtCipix.h:8