summaryrefslogtreecommitdiffstats
path: root/import/chips/p9/procedures/ppe_closed/sgpe
diff options
context:
space:
mode:
Diffstat (limited to 'import/chips/p9/procedures/ppe_closed/sgpe')
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_main.C9
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c5
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/pk_app_cfg.h7
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/stop_gpe_p9a10.mk96
4 files changed, 112 insertions, 5 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_main.C b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_main.C
index dce81d17..d9b6a539 100644
--- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_main.C
+++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_main.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HCODE Project */
/* */
-/* COPYRIGHT 2015,2018 */
+/* COPYRIGHT 2015,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -28,7 +28,8 @@
#include "occhw_shared_data.h"
#include "p9_hcd_memmap_occ_sram.H"
#include "p9_hcd_memmap_base.H"
-
+#include "p9_hcd_occ_errldefs.h"
+#include "p9_hcd_errldefs.h"
//We define a global literal for these register addresses
////This way compiler put them in .sdata area, and the address
@@ -184,7 +185,7 @@ main(int argc, char** argv)
#elif (CUMULUS_DD_LEVEL != 0)
#define PVR_CONST (0x42090800 | (((CUMULUS_DD_LEVEL ) / 10) << 8) | (CUMULUS_DD_LEVEL % 10))
#elif (AXONE_DD_LEVEL != 0)
-#define PVR_CONST (0x42091000 | (((AXONE_DD_LEVEL ) / 10) << 8) | (AXONE_DD_LEVEL % 10))
+#define PVR_CONST (0x42090000 | (((AXONE_DD_LEVEL ) / 10) << 8) | (AXONE_DD_LEVEL % 10))
#else
#define PVR_CONST 0
#endif
@@ -222,6 +223,7 @@ main(int argc, char** argv)
PK_PANIC(SGPE_MAIN_FAPI2_INIT_FAILED);
}
+ initErrLogging ((uint8_t) ERRL_SOURCE_XGPE);
p9_sgpe_stop_init();
// Initialize the thread control block for G_p9_sgpe_stop_enter_thread
@@ -258,6 +260,7 @@ main(int argc, char** argv)
OSD_PTR->occ_comp_shr_data.gpe3_data.gpe3_image_header_addr = OCC_SRAM_SGPE_BASE_ADDR + SGPE_HEADER_IMAGE_OFFSET;
OSD_PTR->occ_comp_shr_data.gpe3_data.gpe3_debug_header_addr = OCC_SRAM_SGPE_BASE_ADDR + SGPE_DEBUG_PTRS_OFFSET;
+
// Start running the highest priority thread.
// This function never returns
pk_start_threads();
diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c
index 0a691912..70aabe8b 100644
--- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c
+++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_irq_handlers.c
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HCODE Project */
/* */
-/* COPYRIGHT 2015,2018 */
+/* COPYRIGHT 2015,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -71,6 +71,7 @@ SgpeStopRecord G_sgpe_stop_record __attribute__((section (".dump_ptrs"))) =
{{0, 0, 0}}
};
+extern uint32_t G_pib_reset_flag;
void
@@ -78,6 +79,8 @@ p9_sgpe_fit_handler()
{
PK_TRACE("FIT: Handler Fired");
+ PK_TRACE_DBG("IPB reset flag value %x", G_pib_reset_flag);
+ G_pib_reset_flag = 0;
uint32_t tpending = in32(G_OCB_OPIT0PRA) |
in32(G_OCB_OPIT3PRA) |
in32(G_OCB_OPIT6PRB);
diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/pk_app_cfg.h b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/pk_app_cfg.h
index d087066b..c4adedec 100644
--- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/pk_app_cfg.h
+++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/pk_app_cfg.h
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HCODE Project */
/* */
-/* COPYRIGHT 2015,2018 */
+/* COPYRIGHT 2015,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -156,4 +156,9 @@
/// This file provides platform specific panic codes
#define PLATFORM_PANIC_CODES_H "sgpe_panic_codes.h"
+#define PK_MACHINE_HANDLER_SUPPORT 1
+
+#define PPE42_MACHINE_CHECK_HANDLER \
+ b __special_machine_check_handler
+
#endif /*__PK_APP_CFG_H__*/
diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/stop_gpe_p9a10.mk b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/stop_gpe_p9a10.mk
new file mode 100644
index 00000000..d3a889bf
--- /dev/null
+++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/stop_gpe_p9a10.mk
@@ -0,0 +1,96 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/stop_gpe_p9a10.mk $
+#
+# OpenPOWER HCODE Project
+#
+# COPYRIGHT 2016,2019
+# [+] 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
+#
+## IMAGE=qpmr_header
+##
+## # Target tool chain
+## $(IMAGE)_TARGET=PPE
+##
+## #linkscript to use
+## $(IMAGE)_LINK_SCRIPT=linkqpmr.cmd
+##
+## OBJS = p9_sgpe_qpmr.o
+## $(call BUILD_BINHEADER)
+
+STOP_TARGET := stop_gpe_p9a10
+IMAGE := $(STOP_TARGET)
+
+
+# Note: Flags are resolved very late,
+# so local variables can't be used to build them
+
+# Options for Platforms specific tuning
+
+$(IMAGE)_COMMONFLAGS+= -DNIMBUS_DD_LEVEL=0
+$(IMAGE)_COMMONFLAGS+= -DCUMULUS_DD_LEVEL=0
+$(IMAGE)_COMMONFLAGS+= -DAXONE_DD_LEVEL=10
+
+$(IMAGE)_COMMONFLAGS+= -DLAB_P9_TUNING=0
+
+$(IMAGE)_COMMONFLAGS+= -DEPM_P9_TUNING=0
+$(IMAGE)_COMMONFLAGS+= -DEPM_BROADSIDE_SCAN0=0
+
+$(IMAGE)_COMMONFLAGS+= -DSIMICS_TUNING=0
+$(IMAGE)_COMMONFLAGS+= -DUSE_SIMICS_IO=0
+
+
+include $(SGPE_SRCDIR)/stop_gpe/stop_common.mk
+$(IMAGE)_COMMONFLAGS += $(STOP_COMMONFLAGS)
+OBJS := $(STOP_OBJS)
+
+$(call BUILD_PPEIMAGE)
+
+# QPMR header edit:
+IMAGE=qpmr_header_p9a10
+IMAGE_EDITOR=stop_gpeImgEdit.exe
+
+# Target tool chain
+$(IMAGE)_TARGET=PPE
+
+#linkscript to use
+$(IMAGE)_LINK_SCRIPT=linkqpmr.cmd
+
+OBJS = p9_sgpe_qpmr.o
+
+
+$(call ADD_BINHEADER_INCDIR,$(IMAGE),\
+ $(PK_SRCDIR)/kernel \
+ $(PK_SRCDIR)/ppe42 \
+ $(PK_SRCDIR)/trace \
+ $(PK_SRCDIR)/$(_PPE_TYPE) \
+ $(PM_LIBDIR)/include \
+ $(PM_LIBDIR)/include/registers \
+ $(PM_LIBDIR)/common \
+ $(PM_LIBDIR)/occlib \
+ $(HCODE_LIBDIR) \
+ $(HCODE_COMMON_LIBDIR) \
+ $(HCODE_UTILS_INCDIR) \
+ $(ROOTPATH)/chips/p9/procedures/hwp/lib/ \
+ $(ROOTPATH)/chips/p9/utils/imageProcs/ \
+ )
+gitsha := $(shell git log -1 --pretty=format:"%h")
+$(call BUILD_BINHEADER,$(IMAGEPATH)/$(STOP_TARGET)/$(STOP_TARGET).bin, \
+ $(gitsha))
+
OpenPOWER on IntegriCloud