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