| Ben Tyner | ef32015 | 2020-01-09 10:31:23 -0600 | [diff] [blame] | 1 | #pragma once | 
|  | 2 |  | 
| Ben Tyner | 3fb52e5 | 2020-03-31 10:10:07 -0500 | [diff] [blame] | 3 | #include <attn/attn_config.hpp> | 
|  | 4 |  | 
| Ben Tyner | 73ac368 | 2020-01-09 10:46:47 -0600 | [diff] [blame] | 5 | namespace attn | 
|  | 6 | { | 
|  | 7 |  | 
| Ben Tyner | dbeaf79 | 2020-05-14 08:27:18 -0500 | [diff] [blame] | 8 | /** @brief Attention handler return codes */ | 
|  | 9 | enum ReturnCodes | 
|  | 10 | { | 
|  | 11 | RC_SUCCESS = 0, | 
|  | 12 | RC_NOT_HANDLED, | 
|  | 13 | RC_ANALYZER_ERROR, | 
|  | 14 | RC_CFAM_ERROR | 
|  | 15 | }; | 
|  | 16 |  | 
| Ben Tyner | fb19054 | 2020-11-06 09:27:56 -0600 | [diff] [blame] | 17 | /** @brief Attention global status bits */ | 
|  | 18 | constexpr uint32_t SBE_ATTN       = 0x00000002; | 
|  | 19 | constexpr uint32_t CHECKSTOP_ATTN = 0x40000000; | 
|  | 20 | constexpr uint32_t SPECIAL_ATTN   = 0x20000000; | 
|  | 21 |  | 
| Ben Tyner | b24b220 | 2021-02-08 09:06:10 -0600 | [diff] [blame^] | 22 | // Need to add defaultHbTiInfo with SRC BC801B99 (hex) | 
|  | 23 |  | 
|  | 24 | // Need to add defaultOpalTiInfo with SRC BB821410 (ascii) | 
|  | 25 |  | 
|  | 26 | constexpr uint8_t defaultPhypTiInfo[0x58] = { | 
|  | 27 | 0x01, 0xa1, 0x02, 0xa8, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, | 
|  | 28 | 0x09, 0x00, 0x00, 0x00, 0x48, 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, 0x42, 0x37, 0x30, 0x30, 0x46, 0x46, 0x46, | 
|  | 32 | 0x46, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | 
|  | 33 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | 
|  | 34 | 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; | 
|  | 35 |  | 
| Ben Tyner | ef32015 | 2020-01-09 10:31:23 -0600 | [diff] [blame] | 36 | /** | 
|  | 37 | * @brief The main attention handler logic | 
|  | 38 | * | 
|  | 39 | * Check each processor for active attentions of type SBE Vital (vital), | 
| Ben Tyner | b24b220 | 2021-02-08 09:06:10 -0600 | [diff] [blame^] | 40 | * System Checkstop (checkstop) and Special Attention (special) and | 
|  | 41 | * handle each as follows: | 
| Ben Tyner | ef32015 | 2020-01-09 10:31:23 -0600 | [diff] [blame] | 42 | * | 
| Ben Tyner | 3fb52e5 | 2020-03-31 10:10:07 -0500 | [diff] [blame] | 43 | * checkstop: Call hardware error analyzer | 
| Ben Tyner | ef32015 | 2020-01-09 10:31:23 -0600 | [diff] [blame] | 44 | * vital:     TBD | 
|  | 45 | * special:   Determine if the special attention is a Breakpoint (BP), | 
| Ben Tyner | b24b220 | 2021-02-08 09:06:10 -0600 | [diff] [blame^] | 46 | *            Terminate Immediately (TI) or CoreCodeToSp (corecode). For | 
|  | 47 | * each special attention type, do the following: | 
| Ben Tyner | ef32015 | 2020-01-09 10:31:23 -0600 | [diff] [blame] | 48 | * | 
|  | 49 | *            BP:          Notify Cronus | 
| Ben Tyner | 3fb52e5 | 2020-03-31 10:10:07 -0500 | [diff] [blame] | 50 | *            TI:          Start host diagnostics mode systemd unit | 
| Ben Tyner | ef32015 | 2020-01-09 10:31:23 -0600 | [diff] [blame] | 51 | *            Corecode:    TBD | 
| Ben Tyner | 970fd4f | 2020-02-19 13:46:42 -0600 | [diff] [blame] | 52 | * | 
| Ben Tyner | 3fb52e5 | 2020-03-31 10:10:07 -0500 | [diff] [blame] | 53 | * @param i_config pointer to attention handler configuration object | 
| Ben Tyner | ef32015 | 2020-01-09 10:31:23 -0600 | [diff] [blame] | 54 | */ | 
| Ben Tyner | 3fb52e5 | 2020-03-31 10:10:07 -0500 | [diff] [blame] | 55 | void attnHandler(Config* i_config); | 
| Ben Tyner | 73ac368 | 2020-01-09 10:46:47 -0600 | [diff] [blame] | 56 |  | 
|  | 57 | } // namespace attn |