summaryrefslogtreecommitdiffstats
path: root/src/include/usr/mbox/mbox_queues.H
blob: 19c5eeabc71f4ab4e053b774990ae9cf0a0281c3 (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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* $Source: src/include/usr/mbox/mbox_queues.H $                          */
/*                                                                        */
/* OpenPOWER HostBoot Project                                             */
/*                                                                        */
/* Contributors Listed Below - COPYRIGHT 2012,2019                        */
/* [+] International Business Machines Corp.                              */
/*                                                                        */
/*                                                                        */
/* Licensed under the Apache License, Version 2.0 (the "License");        */
/* you may not use this file except in compliance with the License.       */
/* You may obtain a copy of the License at                                */
/*                                                                        */
/*     http://www.apache.org/licenses/LICENSE-2.0                         */
/*                                                                        */
/* Unless required by applicable law or agreed to in writing, software    */
/* distributed under the License is distributed on an "AS IS" BASIS,      */
/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or        */
/* implied. See the License for the specific language governing           */
/* permissions and limitations under the License.                         */
/*                                                                        */
/* IBM_PROLOG_END_TAG                                                     */
#ifndef __MBOX_QUEUES_H
#define __MBOX_QUEUES_H

/**
 * @file mbox_queues.H
 * @brief Mailbox queue identifiers. This file is shared between
 *        Hostboot and FSP.
 */

namespace MBOX
{
    /**
     * message queue IDs
     * FSP msg_queue range      0x80000000 - 0xFFFFFFFF
     * Hostboot msg_queue range 0x00000001 - 0x7FFFFFFF
     */
    enum queue_id_t
    {
        NOT_FOUND               = 0,
        HB_MAILBOX_MSGQ         = 1,
        // Add HB services here:
        HB_ISTEP_MSGQ           = 2,
        HB_ATTR_SYNC_MSGQ       = 3,
        HB_ERROR_MSGQ           = 4,
        //                        5,  // Reserved for VID
        HB_HWPF_ATTR_MSGQ       = 6, // HWPF Attribute override/sync
        HB_TRACE_MSGQ           = 7,
        HB_LID_MSGQ             = 8, //For transferring LIDs from FSP.
        HB_IPC_MSGQ             = 9, //For inter-drawer HB messages
        HB_POP_ATTR_MSGQ        = 10, // populate Attribute response
        HB_COALESCE_MSGQ        = 11, //host_coalesce response
        HB_SBE_SYSCONFIG_MSGQ   = 12, //For SBE System Config response
        HB_CLOSE_TCES_MSGQ      = 13, // close/disable TCEs
        HB_POP_TPM_INFO_MSGQ    = 14, // response to populate TPM info by node
        HB_FREQ_ATTR_DATA_MSGQ  = 15, // freq attributes data from master to all other drawers

        // Add HB mbox msg queue ids (services) before this line
        HB_LAST_VALID_MSGQ,          // end of valid HB mbox msgQ ids

        HB_TEST_MSGQ            = 0x7FFFFFFF,

        // FSP mailboxes
        FSP_FIRST_MSGQ          = 0x80000000,
        FSP_MAILBOX_MSGQ        = 0x80000001,
        // Add FSP services here:
        FSP_TRACE_MSGQ          = 0x80000002,
        FSP_PROGRESS_CODES_MSGQ = 0x80000003,
        FSP_ERROR_MSGQ          = 0x80000004,
        FSP_VDDR_MSGQ           = 0x80000005,
        IPL_SERVICE_QUEUE       = 0x80000008,
        FSP_ATTR_SYNC_MSGQ      = 0x80000009,
        FSP_DUMP_MSGQ_ID        = 0x8000000A,
        FSP_HWPF_ATTR_MSGQ      = 0x8000000B, // HWPF Attribute override/sync
        FSP_VPD_MSGQ            = 0x8000000C,
        FSP_PRD_SYNC_MSGQ_ID    = 0x8000000D,
        FSP_TOD_MSGQ            = 0x8000000E,
        FSP_SBE_SYNC_MSGQ_ID    = 0x8000000F,
        FSP_TARG_DECONFIG_MSGQ  = 0x80000010,
        FSP_SCOM_OPS_MSGQ       = 0x80000011,
        FSP_OCC_MSGQ_ID         = 0x80000012,
        FSP_NVDIMM_KEYS_MSGQ_ID = 0x80000013, // Attribute write request, equivalent
                                              // to HWSV's ATTR_WRITE_OP_QUEUE_ID

        FSP_LID_MSGQ            = FSP_ATTR_SYNC_MSGQ,


        FSP_ECHO_MSGQ = 0xFFFFFFFF,     // Fake FSP for test
    };

    // Message types are only unique with in each message queue. Each message
    // queue can use the entire range limited only by the restrictions listed
    // below.
    //
    // Each HB and FSP service will need it's own list of message types
    // Not sure where they belong.
    //
    // types 0x00000000 - 0x3FFFFFFF are considered secure messages
    // and are disabled when under SecureBoot environment
    // types 0x40000000 - 0x7FFFFFFF can be done at anytime
    // types 0x80000000 - 0xFFFFFFFF are reserved on HB for kernel services
    // This means HB services can't use them, but this is not a restriction
    // on FSP services
    enum
    {
        FIRST_SECURE_MSG        = 0,
        LAST_SECURE_MSG         = 0x3FFFFFFF,
        FIRST_UNSECURE_MSG      = 0x40000000,
        LAST_UNSECURE_MSG       = 0x7FFFFFFF,
        FIRST_HB_KERNEL_MSG     = 0x80000000,
        LAST_KERNEL_MSG         = 0xFFFFFFFF
    };

    /**
     * MBOX to MBOX service message types.
     */
    enum msg_type_t
    {
        MSG_INVALID_MSG_QUEUE_ID = FIRST_UNSECURE_MSG + 1,
        MSG_INVALID_MSG_TYPE,
        MSG_REQUEST_DMA_BUFFERS,
        MSG_INITIAL_DMA,
    };


};

#endif

OpenPOWER on IntegriCloud