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 
13 // Need to add defaultOpalTiInfo with SRC BB821410 (ascii)
14 
15 constexpr uint8_t defaultPhypTiInfo[0x58] = {
16     0x01, 0xa1, 0x02, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00,
17     0x09, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
18     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
19     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
20     0x00, 0x00, 0x00, 0x00, 0x42, 0x37, 0x30, 0x30, 0x46, 0x46, 0x46,
21     0x46, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
22     0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
23     0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
24 
25 constexpr uint8_t defaultHbTiInfo[0x58] = {
26     0x01, 0xa1, 0x02, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
27     0x09, 0x01, 0x00, 0x00, 0x00, 0xbc, 0x80, 0x1b, 0x99, 0x00, 0x00,
28     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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 
35 /**
36  * @brief The main attention handler logic
37  *
38  * Check each processor for active attentions of type SBE Vital (vital),
39  * System Checkstop (checkstop) and Special Attention (special) and handle
40  * each as follows:
41  *
42  * checkstop: Call hardware error analyzer
43  * vital:     TBD
44  * special:   Determine if the special attention is a Breakpoint (BP),
45  *            Terminate Immediately (TI) or CoreCodeToSp (corecode). For each
46  *            special attention type, do the following:
47  *
48  *            BP:          Notify Cronus
49  *            TI:          Start host diagnostics mode systemd unit
50  *            Corecode:    TBD
51  *
52  * @param i_config pointer to attention handler configuration object
53  */
54 void attnHandler(Config* i_config);
55 
56 } // namespace attn
57