summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorcrgeddes <crgeddes@us.ibm.com>2017-04-26 14:57:34 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-05-02 12:44:38 -0400
commit9e4f956b73d40866a58eeea9f258d4697b2686c4 (patch)
treec905a158ad52fac58e1871834300680d1d0ed49b /src
parent3d0fd427668ae9418f50d1432cceee3c95e794d6 (diff)
downloadblackbird-hostboot-9e4f956b73d40866a58eeea9f258d4697b2686c4.tar.gz
blackbird-hostboot-9e4f956b73d40866a58eeea9f258d4697b2686c4.zip
Expand hostboot progress indicator in core scratch 3 reg
Previously this register only had 2 values. "running" in ascii and 0 This commit adds 3 more possible states. Now 0 represents that HB passed off control to the hypervisor. "shutdown" represents that HB TI'ed. "bootload" says we are in the bootloader. "starthbb" means the bootloader has started the base image. "running" means hostboot is up and running. Change-Id: I11e7ef3dbb559a221343070b2c1b15f67853710b RTC: 171742 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/39730 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Reviewed-by: Richard J. Knight <rjknight@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src')
-rw-r--r--src/bootloader/bootloader.C11
-rw-r--r--src/include/bootloader/bootloader.H5
-rw-r--r--src/include/kernel/misc.H11
-rw-r--r--src/kernel/misc.C20
4 files changed, 42 insertions, 5 deletions
diff --git a/src/bootloader/bootloader.C b/src/bootloader/bootloader.C
index 097fc0549..13e58b8b9 100644
--- a/src/bootloader/bootloader.C
+++ b/src/bootloader/bootloader.C
@@ -238,6 +238,11 @@ namespace Bootloader{
bootloader_trace_index = 0;
BOOTLOADER_TRACE(BTLDR_TRC_MAIN_START);
+ //Set core scratch 3 to say bootloader is active
+ //"bootload" = 0x626F6F746C6F6164 in ascii
+ uint64_t hostboot_string = 0x626F6F746C6F6164;
+ writeScratchReg(MMIO_SCRATCH_HOSTBOOT_ACTIVE, hostboot_string);
+
// @TODO RTC:138268 Support multiple sides of PNOR in bootloader
//pnorEnd is the end of flash, which is base of lpc, plus
@@ -332,6 +337,12 @@ namespace Bootloader{
}
BOOTLOADER_TRACE(BTLDR_TRC_MAIN_COPY_HBB_DONE);
+ //Set core scratch 3 to say hbb image is starting
+ //"starthbb" = 0x7374617274686262 in ascii
+ hostboot_string = 0x7374617274686262;
+ writeScratchReg(MMIO_SCRATCH_HOSTBOOT_ACTIVE,
+ hostboot_string);
+
// Start executing HBB
enterHBB(HBB_HRMOR, HBB_RUNNING_OFFSET);
}
diff --git a/src/include/bootloader/bootloader.H b/src/include/bootloader/bootloader.H
index 3c75770de..81515d4b9 100644
--- a/src/include/bootloader/bootloader.H
+++ b/src/include/bootloader/bootloader.H
@@ -148,6 +148,11 @@ namespace Bootloader{
}
+ /**Core Scratch Register 3 which tells the state of hostboot.
+ This is passed into writeScratchReg to select which scratch
+ reg you are writing */
+#define MMIO_SCRATCH_HOSTBOOT_ACTIVE 0x18
+
/**
* @brief Pointer to bootloader scratch space
*
diff --git a/src/include/kernel/misc.H b/src/include/kernel/misc.H
index a7b1d442b..b1415089f 100644
--- a/src/include/kernel/misc.H
+++ b/src/include/kernel/misc.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2016 */
+/* Contributors Listed Below - COPYRIGHT 2011,2017 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -55,8 +55,11 @@ namespace KernelMisc
/** @brief Indicate whether HB is running or not */
enum HbRunning
{
- HB_RUNNING = 0,
- HB_SHUTDOWN = 1,
+ HB_RUNNING = 0,
+ HB_STARTED_PAYLOAD = 1,
+ HB_BOOTLOADER = 2,
+ HB_START_BASE_IMAGE = 3,
+ HB_SHUTDOWN = 4,
};
/** @fn setHbScratchStatus
@@ -95,7 +98,7 @@ namespace KernelMisc
*
* @param i_caller - Task calling cpu_master_winkle to be
* restored after winkle is complete.
- * @param i_fusedCores - true if using 8 threaded cores
+ * @param i_fusedCores - true if using 8 threaded cores
*/
WinkleCore(task_t* i_caller, bool i_fusedCores) :
iv_caller(i_caller), iv_timebase(0),
diff --git a/src/kernel/misc.C b/src/kernel/misc.C
index 2a4889b48..9c7ec7883 100644
--- a/src/kernel/misc.C
+++ b/src/kernel/misc.C
@@ -236,10 +236,28 @@ namespace KernelMisc
updateScratchReg(MMIO_SCRATCH_HOSTBOOT_ACTIVE,
*reinterpret_cast<const uint64_t*>(hostboot_string));
}
- else
+ else if(i_status == HB_STARTED_PAYLOAD)
{
updateScratchReg(MMIO_SCRATCH_HOSTBOOT_ACTIVE,0);
}
+ else if(i_status == HB_BOOTLOADER)
+ {
+ const char * hostboot_string = "bootload";
+ updateScratchReg(MMIO_SCRATCH_HOSTBOOT_ACTIVE,
+ *reinterpret_cast<const uint64_t*>(hostboot_string));
+ }
+ else if(i_status == HB_START_BASE_IMAGE)
+ {
+ const char * hostboot_string = "starthbb";
+ updateScratchReg(MMIO_SCRATCH_HOSTBOOT_ACTIVE,
+ *reinterpret_cast<const uint64_t*>(hostboot_string));
+ }
+ else if(i_status == HB_SHUTDOWN)
+ {
+ const char * hostboot_string = "shutdown";
+ updateScratchReg(MMIO_SCRATCH_HOSTBOOT_ACTIVE,
+ *reinterpret_cast<const uint64_t*>(hostboot_string));
+ }
}
void WinkleCore::masterPreWork()
OpenPOWER on IntegriCloud