blob: 12ab15026f1d0efdcf5892351eb3020ccb53457b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
/*
* @file: ppe/sbe/sbefw/sbeHostMsg.H
*
* @brief This file contains the message structures for SBE Host
* communication.
*
*/
#ifndef __SBEFW_SBEHOST_MSG_H
#define __SBEFW_SBEHOST_MSG_H
#include <stdint.h>
#include "sbe_host_intf.H"
#include "sbe_sp_intf.H"
/*****************************************************************/
/* SBE->PSU request structures */
/*****************************************************************/
/**
* @brief structure for Host->SBE command request format denoting
* mininum header (as of now, contained in mbx 0)
*/
typedef struct
{
// mbxReg0
uint64_t res:16;
uint64_t flags:16;
uint64_t seqID:16;
uint64_t cmdClass:8;
uint64_t command:8;
/**
* @brief initialize the fields contained in PSU Mbx0
*
*/
void init()
{
res = 0;
flags = 0;
seqID = 0;
cmdClass = SBE_PSU_CMD_CLASS_UNKNOWN;
command = SBE_PSU_CMD_UNKNOWN;
}
} sbePsu2SbeCmdReqHdr_t;
extern sbePsu2SbeCmdReqHdr_t g_sbePsu2SbeCmdReqHdr;
/*****************************************************************/
/* SBE->PSU response structures */
/*****************************************************************/
/**
* @brief SBE->Host Generic response structure
*
*/
typedef struct
{
uint64_t mbxReg4;
uint64_t mbxReg5;
uint64_t mbxReg6;
uint64_t mbxReg7;
} sbeSbe2PsuGenericResp_t ;
/**
* @brief Structure for SBE->Host response header contained in
* mbx4 register
*
*/
typedef struct
{
// mbxReg 4
uint64_t primStatus:16;
uint64_t secStatus:16;
uint64_t seqID:16;
uint64_t cmdClass:8;
uint64_t command:8;
/**
* @brief set the primary and secondary status
*
* @param[in] i_prim Primary status
* @param[in] i_sec Secondary status
*
*/
void setStatus(const uint16_t i_prim, const uint16_t i_sec)
{
primStatus = i_prim;
secStatus = i_sec;
}
/**
* @brief initialize the response fields contained in PSU Mbx3
*
*/
void init()
{
primStatus = SBE_PRI_OPERATION_SUCCESSFUL;
secStatus = SBE_SEC_OPERATION_SUCCESSFUL;
seqID = g_sbePsu2SbeCmdReqHdr.seqID;
cmdClass = g_sbePsu2SbeCmdReqHdr.cmdClass;
command = g_sbePsu2SbeCmdReqHdr.command;
}
} sbeSbe2PsuRespHdr_t;
extern sbeSbe2PsuRespHdr_t g_sbeSbe2PsuRespHdr;
#endif // __SBEFW_SBEHOST_MSG_H
|