diff options
Diffstat (limited to 'src/usr/diag/attn/runtime')
-rw-r--r-- | src/usr/diag/attn/runtime/attn_rt.C | 37 | ||||
-rw-r--r-- | src/usr/diag/attn/runtime/test/attntest_rt.H | 13 |
2 files changed, 45 insertions, 5 deletions
diff --git a/src/usr/diag/attn/runtime/attn_rt.C b/src/usr/diag/attn/runtime/attn_rt.C index 15b7b6b9e..5dd165b19 100644 --- a/src/usr/diag/attn/runtime/attn_rt.C +++ b/src/usr/diag/attn/runtime/attn_rt.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2014,2016 */ +/* Contributors Listed Below - COPYRIGHT 2014,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -26,6 +26,7 @@ #include "runtime/attnsvc.H" #include "common/attntrace.H" #include "common/attnmem.H" +#include "common/attnbits.H" #include <runtime/interface.h> #include <runtime/rt_targeting.H> #include <targeting/common/target.H> @@ -158,6 +159,33 @@ namespace ATTN_RT return rc; } + + /** brief getIpollEvents + * + * Bits that are *set* in this bitmask represent events that will be + * allowed to flow to the HOST or Service Processor. + * + * @return Value indicating which attention events should + * be enabled in the IPOLL mask register. + */ + + uint64_t getIpollEvents( void ) + { + uint64_t l_ipollEvents = 0; + + // Host side should allow 'Recov', 'UnitCs' and 'HostInt' + // SP side should allow 'Chkstop', 'Recov', 'Special' + // and maybe the mystery bit (route to SP). + l_ipollEvents = IPOLL_RECOVERABLE | IPOLL_UNIT_CS | + IPOLL_HOST_ATTN | IPOLL_SP_CHECK_STOP | + IPOLL_SP_RECOVERABLE | IPOLL_SP_SPECIAL | + IPOLL_ROUTE_TO_SP ; + + return(l_ipollEvents); + + } // end getIpollEvents + + // register runtimeInterfaces struct registerAttn { @@ -169,9 +197,10 @@ namespace ATTN_RT return; } - rt_intf->enable_attns = &enableAttns; - rt_intf->disable_attns = &disableAttns; - rt_intf->handle_attns = &handleAttns; + rt_intf->enable_attns = &enableAttns; + rt_intf->disable_attns = &disableAttns; + rt_intf->handle_attns = &handleAttns; + rt_intf->get_ipoll_events = &getIpollEvents; } }; diff --git a/src/usr/diag/attn/runtime/test/attntest_rt.H b/src/usr/diag/attn/runtime/test/attntest_rt.H index 84731ec22..b86c0a0a7 100644 --- a/src/usr/diag/attn/runtime/test/attntest_rt.H +++ b/src/usr/diag/attn/runtime/test/attntest_rt.H @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2014 */ +/* Contributors Listed Below - COPYRIGHT 2014,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -76,6 +76,17 @@ class AttnTestRT: public CxxTest::TestSuite ATTN_SLOW("handle_attns returned rc: %d", rc); } + if (NULL == rt_intf->get_ipoll_events) + { + TS_FAIL("AttnTestRT: get_ipoll_events not set"); + } + else + { + // just pass in some params for now + uint64_t l_bits = rt_intf->get_ipoll_events(); + ATTN_SLOW("get_ipoll_events returned: %llx", l_bits); + } + ATTN_SLOW(EXIT_MRK"AttnTestRT::testAttnRtIntf"); } |