From aa513a3a39202bcbc5294cd1ef6618ecbe151bf8 Mon Sep 17 00:00:00 2001 From: Dean Sanner Date: Sun, 15 May 2016 12:03:54 -0500 Subject: FSPless continous tracing support - Updated trace daemon to output trace buf addr, size to mbox scratch 1, 2 - Moved enable disable of continous trace to "istep" control - Updated istep tool to dump traces to file and commandline Change-Id: I2d9f48f5ed9878591ff9ab45fa18a98fc286ac1f RTC:127346 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/24565 Tested-by: Jenkins Server Reviewed-by: Christian R. Geddes Tested-by: FSP CI Jenkins Reviewed-by: Prachi Gupta Reviewed-by: Daniel M. Crowell --- src/include/usr/isteps/spless_255list.H | 100 ++++++++++++++++++++++++++++++++ src/include/usr/trace/trace.H | 13 +++++ 2 files changed, 113 insertions(+) create mode 100644 src/include/usr/isteps/spless_255list.H (limited to 'src/include') diff --git a/src/include/usr/isteps/spless_255list.H b/src/include/usr/isteps/spless_255list.H new file mode 100644 index 000000000..5bfca668a --- /dev/null +++ b/src/include/usr/isteps/spless_255list.H @@ -0,0 +1,100 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/include/usr/isteps/spless_255list.H $ */ +/* */ +/* OpenPOWER HostBoot Project */ +/* */ +/* Contributors Listed Below - COPYRIGHT 2012,2016 */ +/* [+] International Business Machines Corp. */ +/* */ +/* */ +/* Licensed under the Apache License, Version 2.0 (the "License"); */ +/* you may not use this file except in compliance with the License. */ +/* You may obtain a copy of the License at */ +/* */ +/* http://www.apache.org/licenses/LICENSE-2.0 */ +/* */ +/* Unless required by applicable law or agreed to in writing, software */ +/* distributed under the License is distributed on an "AS IS" BASIS, */ +/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ +/* implied. See the License for the specific language governing */ +/* permissions and limitations under the License. */ +/* */ +/* IBM_PROLOG_END_TAG */ +#ifndef __ISTEPS_SPLESS_255LIST_H +#define __ISTEPS_SPLESS_255LIST_H + +/** + * @file spless_255list.H + * + * This file DOES NOT contain real isteps. It contains control "isteps" + * for the SP Less communication/control path + * + * Please see the note in initsvcstructs.H for description of + * the ISTEPNAME macro. + * + */ + +#include +#include +#include + + +/** + * The following isteps are not used as normal isteps, but instead + * are for SPless communication/control of Hostboot. This is "weird" + * as it is not the normal use of isteps, but it takes advantage of + * an existing communication path, without adding a lot of extra + * code into hostboot. + * + * NOTE: These isteps are NEVER used for mainline boot and are only + * used for FSP Less communication + */ + +namespace INITSERVICE +{ + + // These constants are used by HB to handle the out of band + // "isteps". Note that the actual numbers must be in the + // Task info list so they get properly parsed into the + // isteplist.csv file + const uint8_t CONTROL_ISTEP = 0xFF; + const uint8_t CTL_CONT_TRACE_DISABLE = 0x00; + const uint8_t CTL_CONT_TRACE_ENABLE = 0x01; + const uint8_t FLUSH_TRACE_BUFS = 0x02; + + + const TaskInfo g_istep255[] = { + { + ISTEPNAME(255,0, "cont_trace_disable"), + NULL, + { NONE, EXT_IMAGE, IPL_NOOP, false } + }, + { + ISTEPNAME(255,1, "cont_trace_enable"), + NULL, + { NONE, EXT_IMAGE, IPL_NOOP, false } + }, + { + ISTEPNAME(255,2, "flush_trace_bufs"), + NULL, + { NONE, EXT_IMAGE, IPL_NOOP, false } + }, +}; + +const DepModInfo g_istep255Dependancies = { + { + NULL + } +}; + +const ExtTaskInfo g_istep255TaskList = { + &(g_istep255[0]), + ( sizeof(g_istep255)/sizeof(TaskInfo) ), + &g_istep255Dependancies +}; + +}; // end namespace + +#endif diff --git a/src/include/usr/trace/trace.H b/src/include/usr/trace/trace.H index d01003650..c934d18e7 100644 --- a/src/include/usr/trace/trace.H +++ b/src/include/usr/trace/trace.H @@ -181,6 +181,19 @@ namespace TRACE */ void flushBuffers(); +#ifndef __HOSTBOOT_RUNTIME + /** + * @brief Enable Continuous trace mode + * no-op for runtime + */ + void enableContinousTrace(); + + /** + * @brief Disable Continuous trace mode + * no-op for runtime + */ + void disableContinousTrace(); +#endif /** * @brief Return if debug trace is enabled for input trace descriptor * -- cgit v1.2.1