/openbmc/openpower-hw-diags/attn/ |
H A D | Attention_Handler.md | 1 # Attention Handler 5 An attention is a hardware, firmware or software alert mechanism used to request 6 service from an Attention Handler via an attention signal (e.g. a GPIO). An 7 attention handler is, in this case, a stateless service that handles attention 8 requests. The attention handler in combination with a hardware analyzer 12 attention handler or attention handler service. When operating in application 15 of the attention handler service, per attention signal. 19 The main role of the attention handler is a long running process monitoring the 20 attention interrupt signal and delegating tasks to external components to aid in 21 handling attention requests. The attention handler is loaded into memory when [all …]
|
H A D | attention.hpp | 12 /** @brief attention handler configuration flags */ 16 * @brief These objects contain information about an active attention. 18 * An Attention object is created for each active attention. These objects 20 * the attention handler function to call for handling the attention. Each 21 * Attention object also carries a priority value. This priority is used 22 * to determine which attention event(s) to handle when there are more than 25 class Attention class 37 Attention() = delete; 40 Attention(AttentionType i_type, int (*i_handler)(Attention*), 44 ~Attention() = default; [all …]
|
H A D | attn_handler.hpp | 9 /** @brief Attention global status bits */ 17 * @brief Clear attention interrupts 19 * The attention interrupts are sticky and may still be set (MPIPL) even if 20 * there are no active attentions. If there is an active attention then 26 * @brief The main attention handler logic 29 * System Checkstop (checkstop) and Special Attention (special) and handle 34 * special: Determine if the special attention is a Breakpoint (BP), 36 * special attention type, do the following: 42 * @param i_config pointer to attention handler configuration object 47 * @brief Determine if attention is active and not masked [all …]
|
H A D | attention.cpp | 1 #include <attn/attention.hpp> 8 Attention::Attention(AttentionType i_type, int (*i_handler)(Attention*), in Attention() function in attn::Attention 15 /** @brief Get attention priority */ 16 int Attention::getPriority() const in getPriority() 22 Config* Attention::getConfig() const in getConfig() 27 /* @brief Call attention handler function */ 28 int Attention::handle() in handle() 33 /* @brief Get attention handler target */ 34 pdbg_target* Attention::getTarget() const in getTarget() 40 bool Attention::operator<(const Attention& right) const in operator <()
|
H A D | attn_handler.cpp | 14 #include <attn/attention.hpp> 37 * @brief Handle checkstop attention 39 * @param i_attention Attention object 40 * @return 0 indicates that the checkstop attention was successfully handled 41 * 1 indicates that the checkstop attention was NOT successfully 44 int handleCheckstop(Attention* i_attention); 47 * @brief Handle special attention 49 * @param i_attention Attention object 50 * @return 0 indicates that the special attention was successfully handled 51 * 1 indicates that the special attention was NOT successfully handled [all …]
|
H A D | vital_handler.cpp | 1 #include <attn/attention.hpp> 23 // attempt sbe hreset and attention interrupt clear in attemptSbeRecovery() 31 // try to clear attention interrupts in attemptSbeRecovery() 34 // loop through processors checking attention interrupts in attemptSbeRecovery() 50 // get attention interrupts on processor in attemptSbeRecovery() 55 trace::err("sbe attention did not clear"); in attemptSbeRecovery() 71 trace::inf("sbe attention cleared"); in attemptSbeRecovery() 78 * @brief Check for active checkstop attention 98 // check for active checkstop attention in checkstopActive() 122 * @brief Handle SBE vital attention [all …]
|
H A D | vital_handler.hpp | 7 * @brief Handle SBE vital attention 9 * @param i_attention Attention object 10 * @return 0 indicates that the vital attention was successfully handled 11 * 1 indicates that the vital attention was NOT successfully handled 13 int handleVital(Attention* i_attention);
|
H A D | attn_main.hpp | 9 * @brief Load the attention handler as a gpio monitor 11 * Request the attention gpio for monitoring and attach the attention handler 14 * @param i_config pointer to attention handler configuration object
|
H A D | meson.build | 21 # attention handler default config override 24 # install attention handler unit file 33 # install attention handler config file 44 'attention.cpp',
|
H A D | attn_main.cpp | 7 * @brief Attention handler application main() 19 "attention", GPIOD_LINE_REQUEST_EVENT_FALLING_EDGE, 0}; in attnDaemon() 21 // get handle to attention GPIO line in attnDaemon()
|
H A D | bp_handler.hpp | 7 * @brief Breakpoint special attention handler 9 * Handler for special attention events due to a breakpoint condition.
|
H A D | attn_common.hpp | 11 /** @brief Attention handler return codes */ 33 /** @brief Attention handler error reason codes */ 46 * When we receive a Checkstop or special Attention Term Immediate,
|
H A D | attn_monitor.hpp | 13 * @brief Responsible for monitoring attention GPIO state change 29 * @param i_attnConfig poiner to attention handler configuration object 61 /** @brief attention handler configuration object pointer */
|
H A D | attn_monitor.cpp | 22 trace::inf("Attention GPIO active"); in scheduleGPIOEvent() 43 // active attention when gpio == 0 in handleGPIOEvent() 61 /** @brief Request a GPIO line for monitoring attention events */
|
H A D | attn_logging.hpp | 29 /** @brief Commit special attention TI event to log */ 41 /** @brief Commit attention handler failure event to log */
|
/openbmc/openpower-hw-diags/test/ |
H A D | test-end2end.cpp | 3 #include <attn/attention.hpp> 14 int handleSpecial(Attention* i_attention); 15 int handleCheckstop(Attention* i_attention); 16 int handleVital(Attention* i_attention); 19 /** @brief Attention handler test application */ 27 // create attention handler config object in main() 33 // exercise attention gpio event path in main() 48 // Exercise special, checkstop and vital attention handler paths in main() 52 std::vector<attn::Attention> attentions; in main() 54 attentions.emplace_back(attn::Attention::AttentionType::Special, in main() [all …]
|
H A D | test-attention.cpp | 1 #include <attn/attention.hpp> 13 int handleSpecial(Attention* i_attention); 20 int handleAttention(Attention* attention) in handleAttention() argument 23 if (attention != nullptr) in handleAttention() 34 // Attention type 35 Attention::AttentionType gType = Attention::AttentionType::Special; 37 int (*gHandler)(Attention*) = &(handleSpecial); 62 pAttn = std::make_unique<Attention>( in SetUp() 63 Attention(gType, gHandler, target, config)); in SetUp() 71 std::unique_ptr<Attention> pAttn; [all …]
|
/openbmc/openpower-hw-diags/ |
H A D | main.cpp | 9 * @brief Attention handler application main() 12 * application will either be loaded as a daemon for monitoring the attention 18 * --start: Start the attention handler 19 * --stop: Stop the attention handler 20 * --all <on|off>: All attention handling 21 * --vital <on|off>: Vital attention handling 22 * --checkstop <on|off>: Checkstop attention handling 23 * --terminate <on|off>: Terminate Immiediately attention handling 24 * --breakpoints <on|off>: Breakpoint attention handling 41 printf(" --start: Start the attention handler\n"); in main() [all …]
|
H A D | main_nl.cpp | 4 #include <attn/attention.hpp> 15 * @brief Attention handler application main() 18 * application can be loaded as a daemon for monitoring the attention 24 * --daemon: Start the attention handler daemon 47 // they are initialized for the attention handler, invocation of in main() 48 // the analyzer via attention handler and direct invocation of in main()
|
H A D | listener.cpp | 18 * @brief Start a thread to monitor the attention GPIO 20 * @param i_config Attention handler configuration object 24 // Configure and start attention monitor in threadGpioMon() 30 /** @brief Start a thread to listen for attention handler messages */ 48 // only once. All other communtication with the attention handler will in threadListener() 91 // stop attention handler daemon? in threadListener() 101 // start attention handler daemon? in threadListener()
|
H A D | cli.hpp | 34 * attention handler configuration object as needed. 38 * @param o_config pointer to attention handler configuration object
|
/openbmc/qemu/include/scsi/ |
H A D | utils.h | 104 /* Unit attention, Capacity data has changed */ 106 /* Unit attention, SCSI bus reset */ 110 /* Unit attention, Power on, reset or bus device reset occurred */ 112 /* Unit attention, Medium may have changed*/ 114 /* Unit attention, Reported LUNs data has changed */ 116 /* Unit attention, Device internal reset */
|
/openbmc/docs/designs/ |
H A D | power-systems-memory-preserving-reboot.md | 54 - **Attention**: The signal generated by the hardware or the firmware for a 96 - The hypervisor should send a special attention to BMC to notify about a severe 99 - BMC should receive special TI attention from hypervisor 129 When there is a fault, the hypervisor generates attention. The attention 130 listener on the BMC detects the attention. In the case of OpenPOWER based Linux 136 The attention listener on the BMC calls a chip-op to analyze the reason for the 137 attention. 141 Attention on the BMC sets the Diagnostic target for reboot to initiate a memory 232 - Add support to openpower-hw-diags to catch special attention and initiate 235 - SBE needs to support a new operation to analyze the attention received from
|
/openbmc/openpower-hw-diags/analyzer/ |
H A D | analyzer_main.cpp | 67 trace::err("Unsupported attention type: %u", i_type); in __attn() 128 // Filter for root cause attention. in analyzeHardware() 143 // If a root cause attention was found, or if this was a system checkstop, in analyzeHardware() 149 trace::inf("Root cause attention: %s 0x%0" PRIx32 " %s", in analyzeHardware() 155 // This is bad. Analysis should have found a root cause attention in analyzeHardware() 159 trace::err("System checkstop with no root cause attention"); in analyzeHardware() 174 // Resolve the root cause attention. in analyzeHardware() 220 // the command line, that there will not be an active attention. In in analyzeHardware()
|
H A D | filter-root-cause.cpp | 143 // MC_USTLFIR are considered a channel failure attention. in __findMemoryChannelFailure() 174 // attention. Note that this function excludes memory channel failure attentions 284 // Find any processor with chip checkstop attention that did not in __findNonExternalCs() 327 // At this point, the attention has not been explicitly ignored. So in __findTiRootCause() 383 // potential root cause of a system checkstop attention. These would include in findRootCause() 384 // any attention that would generate an SUE. Note that is it possible for in findRootCause() 394 // system checkstop attention. These would include any attention that would in findRootCause() 402 // with the ATTN_FROM_OCMB flag in case there was an attention from an in findRootCause() 410 // chip that reported the attention. In other words, no external checkstop in findRootCause() 537 // Find the initial root cause attention based on common rules for FIR in filterRootCause()
|