diff options
author | crgeddes <crgeddes@us.ibm.com> | 2017-04-26 14:57:34 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-05-02 12:44:38 -0400 |
commit | 9e4f956b73d40866a58eeea9f258d4697b2686c4 (patch) | |
tree | c905a158ad52fac58e1871834300680d1d0ed49b /src | |
parent | 3d0fd427668ae9418f50d1432cceee3c95e794d6 (diff) | |
download | blackbird-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.C | 11 | ||||
-rw-r--r-- | src/include/bootloader/bootloader.H | 5 | ||||
-rw-r--r-- | src/include/kernel/misc.H | 11 | ||||
-rw-r--r-- | src/kernel/misc.C | 20 |
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() |