summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/utils/stopreg/p9_stop_section_defines.H
blob: d660e5fb771ed488cd5eade37f15bbb7c776545c (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
/* IBM_PROLOG_BEGIN_TAG                                                   */
/* This is an automatically generated prolog.                             */
/*                                                                        */
/* $Source: src/import/chips/p9/procedures/utils/stopreg/p9_stop_section_defines.H $ */
/*                                                                        */
/* OpenPOWER HostBoot Project                                             */
/*                                                                        */
/* Contributors Listed Below - COPYRIGHT 2015,2016                        */
/* [+] 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                                                     */

///
/// @file   p9_stop_section_defines.H
/// @brief  defines all constants associated with STOP image layout.
///
// *HWP HW Owner    :  Greg Still <stillgs@us.ibm.com>
// *HWP FW Owner    :  Prem Shanker Jha <premjha2@in.ibm.com>
// *HWP Team        :  PM
// *HWP Level       :  2
// *HWP Consumed by :  HB:HYP

#ifndef _STOP_SECTION_DEFINES_H
#define _STOP_SECTION_DEFINES_H

#ifdef __cplusplus
namespace stopImageSection
{
#endif

//basic constants
enum
{
ONE_KB                  = 1024,
ONE_MB                  = ONE_KB * ONE_KB,
TWO_MB                  = 2 * ONE_MB,
MAX_CORE_SCOM_ENTRIES = 15,
MAX_EQ_SCOM_ENTRIES   = 15,
MAX_L2_SCOM_ENTRIES   = 16,
MAX_L3_SCOM_ENTRIES   = 16,
MAX_CORE_ID_SUPPORTED = 23,
MAX_THREAD_ID_SUPPORTED = 3,
MAX_CACHE_SECTN_SIZE_PER_CHIPLET =
    MAX_EQ_SCOM_ENTRIES + MAX_L2_SCOM_ENTRIES + MAX_L3_SCOM_ENTRIES,

// start offset for SPR register restore, core scom or cache scom register
// restore regions in homer image.
CORE_SCOM_SECTN_START   = ( TWO_MB + ( 256 * ONE_KB )), //offset from start of chip HOMER
CACHE_SCOM_SECTN_START  = ( ONE_MB + ( 128 * ONE_KB )), // start of cache section

//constants in HOMER's header area.
FUSED_MODE      =   0xBB,
NONFUSED_MODE   =   0xAA,
CPMR_MAGIC_WORD = 0x43504d525f312e30,
CACHE_CHIPLET_ID_MIN = 0x10,
CACHE_CHIPLET_ID_MAX = 0x15,
CORE_CHIPLET_ID_MIN  = 0x20,
CORE_CHIPLET_ID_MAX  = 0x37,
MAX_SPR_RESTORE_INST = 0x08,
SIZE_PER_SPR_RESTORE_INST = ((4 * sizeof(uint8_t)) / sizeof(uint32_t)),
};

// all section sizes below are in bytes
enum
{
SCOM_ENTRY_SIZE         = 16,
INTERRUPT_HANDLER_SIZE  = 8 * ONE_KB,
THREAD_LAUNCHER_SIZE    = 256,
THREAD_RESTORE_SECTN    = 192,
THREAD_COMPLETION       = 64,
THREAD_AREA_SIZE        = ONE_KB,
THREAD_SECTN_SIZE       = THREAD_RESTORE_SECTN + THREAD_COMPLETION,
CORE_SPR_SECTN_SIZE     = ONE_KB,
L2_AREA                 = (SCOM_ENTRY_SIZE * MAX_L2_SCOM_ENTRIES),
L3_AREA                 = (SCOM_ENTRY_SIZE * MAX_L2_SCOM_ENTRIES ),
EQ_AREA                 = SCOM_ENTRY_SIZE * MAX_EQ_SCOM_ENTRIES,
MAX_SIZE_PER_CORE       = 8 * ONE_KB,
SPR_RESTORE_PER_CHIP    = ( MAX_SIZE_PER_CORE *
                            ( MAX_CORE_ID_SUPPORTED + 1)) +
                          ( INTERRUPT_HANDLER_SIZE + THREAD_LAUNCHER_SIZE),
SCOM_SIZE_PER_CORE      = ( MAX_CORE_SCOM_ENTRIES + 1 ) * SCOM_ENTRY_SIZE,
SCOM_SIZE_PER_CHIP      = SCOM_SIZE_PER_CORE * ( MAX_CORE_ID_SUPPORTED + 1),
SCOM_SIZE_PER_CACHE_CHIPLET = L2_AREA + L3_AREA + EQ_AREA
                              + SCOM_ENTRY_SIZE,
//size in byte ends
};

#ifdef __cplusplus
}//stopImageSection ends
#endif //__cplusplus

#endif

OpenPOWER on IntegriCloud