1 #pragma once
2 
3 #include <attn/attn_config.hpp>
4 
5 namespace attn
6 {
7 
8 /** @brief Attention global status bits */
9 constexpr uint32_t SBE_ATTN         = 0x00000002;
10 constexpr uint32_t CHECKSTOP_ATTN   = 0x40000000;
11 constexpr uint32_t SPECIAL_ATTN     = 0x20000000;
12 constexpr uint32_t RECOVERABLE_ATTN = 0x10000000;
13 
14 // Need to add defaultOpalTiInfo with SRC BB821410 (ascii)
15 
16 constexpr uint8_t defaultPhypTiInfo[0x58] = {
17     0x01, 0xa1, 0x02, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00,
18     0x09, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
19     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
20     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
21     0x00, 0x00, 0x00, 0x00, 0x42, 0x37, 0x30, 0x30, 0x46, 0x46, 0x46,
22     0x46, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
23     0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
24     0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
25 
26 constexpr uint8_t defaultHbTiInfo[0x58] = {
27     0x01, 0xa1, 0x02, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
28     0x09, 0x01, 0x00, 0x00, 0x00, 0xbc, 0x80, 0x1b, 0x99, 0x00, 0x00,
29     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
30     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
31     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
32     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
33     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
34     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
35 
36 /**
37  * @brief The main attention handler logic
38  *
39  * Check each processor for active attentions of type SBE Vital (vital),
40  * System Checkstop (checkstop) and Special Attention (special) and handle
41  * each as follows:
42  *
43  * checkstop: Call hardware error analyzer
44  * vital:     TBD
45  * special:   Determine if the special attention is a Breakpoint (BP),
46  *            Terminate Immediately (TI) or CoreCodeToSp (corecode). For each
47  *            special attention type, do the following:
48  *
49  *            BP:          Notify Cronus
50  *            TI:          Start host diagnostics mode systemd unit
51  *            Corecode:    TBD
52  *
53  * @param i_config pointer to attention handler configuration object
54  */
55 void attnHandler(Config* i_config);
56 
57 } // namespace attn
58