CDT I-BM API 1.0.0
Loading...
Searching...
No Matches
CdtCascadeAPI.h
1#pragma once
2
3#include <cstdarg>
4
5#include "CdtCDRE.h"
6#include "CdtHv.h"
7#include "RegSize.h"
8
9enum class CascadeProp {
10 FilterXDuration,
11 FilterXSize,
12 FilterYSize,
13 FilterYDuration,
14 FilterSkew,
15 FilterEMIStop,
16};
17
18using CascadePropInfo = std::tuple<std::string, uint8_t, uint8_t, RegSize>;
19using CascadePropMap = std::unordered_map<CascadeProp, CascadePropInfo>;
20
24class CdtCascadeAPI : public CdtHv, public CdtCDRE {
25 public:
26 CdtCascadeAPI(RMMAPI* rmmApi, int ring, int node, std::string name, TiaBoardVersion tia_board_version);
27 RMMResult readProperty(CascadeProp prop);
28 rmmStatus writeProperty(CascadeProp prop, uint32_t val);
29 rmmStatus writeDefaultProperties(std::initializer_list<CascadeProp> props, bool clearUnmappedBits = false);
30 rmmStatus writeDefaultProperty(CascadeProp prop);
31
32 void configFE();
33 RMMLog log;
34
35 private:
36 const CascadePropInfo* getPropPtr(CascadeProp prop) const;
37
38 /* Operation parameters. Will be written to hardware in configFE() */
39 CascadePropMap propMap_ = CascadePropMap{
40 {CascadeProp::FilterXSize, CascadePropInfo("filter_xsize", 0, 3, RegSize(0b111, 3))},
41 {CascadeProp::FilterXDuration, CascadePropInfo("filter_xsize", 4, 8, RegSize(0b11111111, 5))},
42 {CascadeProp::FilterYSize, CascadePropInfo("filter_xsize", 12, 3, RegSize(0b111, 3))},
43 {CascadeProp::FilterYDuration, CascadePropInfo("filter_xsize", 16, 8, RegSize(0b11111111, 5))},
44 {CascadeProp::FilterSkew, CascadePropInfo("filter_xsize", 24, 8, RegSize(0b11111111, 1))},
45 {CascadeProp::FilterEMIStop, CascadePropInfo("filter_base", 16, 10, RegSize(0b1111111111, 16))},
46 };
47};
CdtCascadeAPI(RMMAPI *rmmApi, int ring, int node, std::string name, TiaBoardVersion tia_board_version)
Constructor for the CdtCascadeAPI class.
Definition CdtCascadeAPI.cpp:16
rmmStatus writeProperty(CascadeProp prop, uint32_t val)
Writes a cascade Property to hardware.
Definition CdtCascadeAPI.cpp:60
rmmStatus writeDefaultProperty(CascadeProp prop)
Gets a property from memory, writes it into hardware.
Definition CdtCascadeAPI.cpp:121
RMMResult readProperty(CascadeProp prop)
Reads a cascade Property from hardware.
Definition CdtCascadeAPI.cpp:38
Definition RegSize.h:5