Critical Link MityCam SoC Firmware  1.0
Critical Link MityCam SoC Firmware
U3VRegisters.h
Go to the documentation of this file.
1 /*
2  * GigERegisters.h
3  *
4  * Created on: Oct 3, 2017
5  * Author: mitydsp
6  */
7 
8 #include "RegisterFile.h"
9 
10 #ifndef U3VREGISTERS_H_
11 #define U3VREGISTERS_H_
12 
13 namespace U3VRegisters {
14 
15 #define GENCP_VERSION (0x00010000)
16 
17 #define FX3_ALIGNMENT_COUNT (2)
18 static const uint32_t FX3_ALIGNMENT = (2 << (FX3_ALIGNMENT_COUNT-1));
19 
20 // IMPORTANT: Registers must be in monotonically increasing address order.
21 
27 {
28 
29  REGDEF_INT(ABRM_GENCP_VERSION , RO, GENCP_VERSION),
30  REGDEF_STR(ABRM_MANUFACTURER_NAME , RO, 64, "Critical Link LLC"),
31  // These should get loaded/copied from a file at startup during U3V init function.
32  REGDEF_STR(ABRM_MODEL_NAME , RO, 64, "CMV8000"),
33  REGDEF_STR(ABRM_FAMILY_NAME , RO, 64, "MityCAM"),
34  REGDEF_STR(ABRM_DEVICE_VERSION , RO, 64, "0"),
35  REGDEF_STR(ABRM_MANUFACTURER_INFO , RO, 64, "The best camera's in town."),
36  REGDEF_STR(ABRM_SERIAL_NUMBER , RO, 64, "Fake42"),
37  REGDEF_STR(ABRM_USER_DEFINED_NAME , RW, 64, ""), // Conditional register: we won't support this to start.
38  REGDEF_I64(ABRM_DEVICE_CAPABILITY , RO, U3V_DEVICE_CAPABILITY), // Define the device capabilities; defaults to the minimum set of that used by the standard
39  REGDEF_INT(ABRM_MAX_DEVICE_RESPONSE_TIME , RO, 1000),
40  REGDEF_I64(ABRM_MANIFEST_TABLE_ADDRESS , RO, MANIFEST_TABLE_ADDR), // Use the existing manifest table.
41  REGDEF_I64(ABRM_SBRM_ADDRESS , RO, SBRM_TABLE_ADDR),
42  REGDEF_I64(ABRM_DEVICE_CONFIGURATION , RW, U3V_DEVICE_CONFIGURATION),
43  REGDEF_INT(ABRM_HEARTBEAT_TIMEOUT , RW, 0),
44  REGDEF_INT(ABRM_MESSAGE_CHANNEL_ID , RW, 0),
45 
46  REGDEF_I64(ABRM_TIMESTAMP , RO, 0),
47  REGDEF_INT(ABRM_TIMESTAMP_LATCH , RW, 0),
48  REGDEF_I64(ABRM_TIMESTAMP_INCREMENT , RO, 100), // FIXME: There is some kind of precision/accuracy issue latching the result in a timely fashion so this continues to fail the precision test
49  REGDEF_INT(ABRM_ACCESS_PRIVILEGE , RW, 0),
50 
51  REGDEF_INT(ABRM_PROTOCOL_ENDIANESS , RW, GENCP_LITTLE_ENDIAN),
52  REGDEF_INT(ABRM_IMPLEMENTATION_ENDIANESS , RW, GENCP_LITTLE_ENDIAN),
53 
55  REGDEF_I64(U3V_CP_CABABILITY , RO, U3V_CP_CAPABILITY),
57  REGDEF_INT(U3V_MAX_COMMAND_TRANS , RO, U3V_MAX_CMD_LEN),
58  REGDEF_INT(U3V_MAX_ACK_TRANS , RO, U3V_MAX_ACK_LEN),
59  REGDEF_INT(U3V_NB_STRTEAM , RO, U3V_NB_STREAMS),
60  REGDEF_I64(U3V_SIRM_ADDRESS , RO, U3V_SIRM_TABLE_ADDR),
62  REGDEF_I64(U3V_EIRM_ADDRESS , RO, 0),
63  REGDEF_INT(U3V_EIRM_LENGTH , RO, 0),
64  REGDEF_I64(U3V_IIDC2_ADDRESS , RO, 0),
65  REGDEF_INT(U3V_CURRENT_SPEED , RO, 0),
66 
67  REGDEF_INT(U3V_SIRM_INFO, RO, (FX3_ALIGNMENT_COUNT << 24)), // 4 byte alignment
68  REGDEF_INT(U3V_SIRM_CTRL, RW, 0),
69  REGDEF_I64(U3V_REQ_PAYLOAD_SIZE, RO, 0), // To be set/updated based on the frame parameters.
70  REGDEF_INT(U3V_REQ_LEADER_SIZE, RO, U3V_MAX_HEADER),
71  REGDEF_INT(U3V_REQ_TRAILER_SIZE, RO, U3V_MAX_FOOTER),
72  REGDEF_INT(U3V_MAX_LEADER, RW, 0),
73  REGDEF_INT(U3V_PAYLOAD_SIZE, RW, 0),
74  REGDEF_INT(U3V_PAYLOAD_COUNT, RW, 0),
75  REGDEF_INT(U3V_PAYLOAD_FINAL1, RW, 0),
76  REGDEF_INT(U3V_PAYLOAD_FINAL2, RW, 0),
77  REGDEF_INT(U3V_MAX_TRAILER_SIZE, RW, 0),
78 
79 #include "GenICamSharedRegs.h"
80 
81  REGDEF_INT(TEST_PENDING_ACK, RW, 0),
82  REGDEF_INT(HDMI_START, RW, 0),
83  REGDEF_INT(HDMI_STOP, RW, 0),
84  REGDEF_INT(HDMI_OFFSET_X, RW, 0),
85  REGDEF_INT(HDMI_OFFSET_Y, RW, 0),
86  REGDEF_INT(HDMI_WIDTH, RW, 0),
87  REGDEF_INT(HDMI_HEIGHT, RW, 0),
88  REGDEF_INT(HDMI_OUTPUT_SEL, RW, 2),
89 // REGDEF_INT(HDMI_COLOR_SEL, RW, 0), this is deprecated
90  REGDEF_FLT(HDMI_GAMMA, RW, 1.0f),
91  REGDEF_FLT(HDMI_WBRED, RW, 1.0f),
92  REGDEF_FLT(HDMI_WBGREEN, RW, 1.0f),
93  REGDEF_FLT(HDMI_WBBLUE, RW, 1.0f),
94  REGDEF_INT(HDMI_TESTPATEN, RW, 0),
95 
97 };
98 
99 }
100 
101 #endif /* U3VREGISTERS_H_ */
U3V_CP_CAPABILITY
const uint64_t U3V_CP_CAPABILITY
Definition: RegisterFile.h:576
U3V_NB_STREAMS
const uint32_t U3V_NB_STREAMS
Definition: RegisterFile.h:580
REGDEF_I64
#define REGDEF_I64(name, access, dflt)
Definition: RegisterFile.h:98
SBRM_TABLE_ADDR
#define SBRM_TABLE_ADDR
Definition: RegisterFile.h:545
U3V_SIRM_TABLE_ADDR
const uint32_t U3V_SIRM_TABLE_ADDR
Definition: RegisterFile.h:587
REGDEF_INT
#define REGDEF_INT(name, access, dflt)
Definition: RegisterFile.h:99
REGDEF_END_OF_TABLE
#define REGDEF_END_OF_TABLE
Definition: RegisterFile.h:103
U3V_MAX_HEADER
#define U3V_MAX_HEADER
Definition: RegisterFile.h:584
U3V_CP_CONFIGURATION
const uint64_t U3V_CP_CONFIGURATION
Definition: RegisterFile.h:577
SocCamera::tcRegisterFile::tsRegDefinition
Definition: RegisterFile.h:151
U3V_DEVICE_CONFIGURATION
const uint64_t U3V_DEVICE_CONFIGURATION
Definition: RegisterFile.h:542
U3V_VERSION
const uint32_t U3V_VERSION
Definition: RegisterFile.h:575
GENCP_VERSION
#define GENCP_VERSION
Definition: U3VRegisters.h:15
MANIFEST_TABLE_ADDR
const uint32_t MANIFEST_TABLE_ADDR
Definition: RegisterFile.h:497
U3V_DEVICE_CAPABILITY
const uint64_t U3V_DEVICE_CAPABILITY
Definition: RegisterFile.h:537
U3V_MAX_ACK_LEN
const uint32_t U3V_MAX_ACK_LEN
Definition: RegisterFile.h:579
U3V_MAX_FOOTER
#define U3V_MAX_FOOTER
Definition: RegisterFile.h:585
GENCP_LITTLE_ENDIAN
#define GENCP_LITTLE_ENDIAN
Definition: RegisterFile.h:601
U3VRegisters
Definition: U3VRegisters.h:13
GenICamSharedRegs.h
U3V_MAX_CMD_LEN
const uint32_t U3V_MAX_CMD_LEN
Definition: RegisterFile.h:578
U3V_SIRM_LENGTH
const uint32_t U3V_SIRM_LENGTH
Definition: RegisterFile.h:583
RegisterFile.h
REGDEF_FLT
#define REGDEF_FLT(name, access, dflt)
Definition: RegisterFile.h:100
REGDEF_STR
#define REGDEF_STR(name, access, size, dflt)
Definition: RegisterFile.h:101
FX3_ALIGNMENT_COUNT
#define FX3_ALIGNMENT_COUNT
Definition: U3VRegisters.h:17