Skip to content

Commit

Permalink
Base Core/Kernel Changes to Support the Axone Processor Chip
Browse files Browse the repository at this point in the history
  - Add the new cpu type, update the pvr checks and other
    miscellaneous changes to support a new Axone proc chip type

Change-Id: Ie2541bf826bdff65f6f11b0f16839855d69eb4d6
RTC: 173001
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/64260
Reviewed-by: Matt Derksen <mderkse1@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-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>
  • Loading branch information
wghoffa authored and dcrowell77 committed Aug 20, 2018
1 parent 3341c6a commit 498b466
Show file tree
Hide file tree
Showing 10 changed files with 26 additions and 6 deletions.
9 changes: 5 additions & 4 deletions src/include/arch/pvrformat.H
Original file line number Diff line number Diff line change
Expand Up @@ -113,13 +113,13 @@ struct PVR_t
*/
enum
{
NIMBUS_DD1_MASK = 0x00FF2F0F,
IS_NIMBUS_DD1 = 0x004E0100,
NIMBUS_DD1_MASK = 0x00FF2F0F,
IS_NIMBUS_DD1 = 0x004E0100,
IS_NIMBUS_DD20 = 0x004E0200,
IS_NIMBUS_DD21 = 0x004E0201,

// Field: chipType
NIMBUS_CHIP = 0,
NIMBUS_CHIP = 0,
CUMULUS_CHIP = 1,

// Field: smt
Expand All @@ -130,7 +130,8 @@ struct PVR_t
P8_MURANO = 0x4B,
P8_NAPLES = 0x4C,
P8_VENICE = 0x4D,
P9_ALL = 0x4E,
P9_ALL = 0x4E, //NIMBUS/CUMULUS
P9_AXONE = 0x4F,
};

/**
Expand Down
2 changes: 2 additions & 0 deletions src/include/sys/misc.h
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,8 @@ enum ProcessorCoreType
CORE_POWER9_NIMBUS,
/** Power9 "CUMULUS" (scale-up) core */
CORE_POWER9_CUMULUS,
/** Power9' "AXONE" core */
CORE_POWER9_AXONE,

CORE_UNKNOWN,
};
Expand Down
1 change: 1 addition & 0 deletions src/kernel/basesegment.C
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ void BaseSegment::_init()
case CORE_POWER8_NAPLES:
case CORE_POWER9_NIMBUS:
case CORE_POWER9_CUMULUS:
case CORE_POWER9_AXONE:
default:
iv_physMemSize = VMM_BASE_BLOCK_SIZE;
break;
Expand Down
5 changes: 4 additions & 1 deletion src/kernel/cpuid.C
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2011,2017 */
/* Contributors Listed Below - COPYRIGHT 2011,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -67,6 +67,9 @@ namespace CpuID
}
}

case PVR_t::P9_AXONE:
return CORE_POWER9_AXONE;

default:
return CORE_UNKNOWN;
}
Expand Down
1 change: 1 addition & 0 deletions src/kernel/cpumgr.C
Original file line number Diff line number Diff line change
Expand Up @@ -469,6 +469,7 @@ size_t CpuManager::getThreadCount()

case CORE_POWER9_NIMBUS:
case CORE_POWER9_CUMULUS:
case CORE_POWER9_AXONE:
threads = 4;
break;

Expand Down
1 change: 1 addition & 0 deletions src/kernel/exception.C
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,7 @@ void kernel_execute_softpatch()
case CORE_POWER8_NAPLES:
case CORE_POWER9_NIMBUS:
case CORE_POWER9_CUMULUS:
case CORE_POWER9_AXONE:
case CORE_UNKNOWN:
p8_softpatch_denorm_assist(t->fp_context);
break;
Expand Down
3 changes: 3 additions & 0 deletions src/kernel/misc.C
Original file line number Diff line number Diff line change
Expand Up @@ -510,6 +510,7 @@ namespace KernelMisc
case CORE_POWER8_NAPLES:
case CORE_POWER9_NIMBUS:
case CORE_POWER9_CUMULUS:
case CORE_POWER9_AXONE:
startAddr = reinterpret_cast<uint64_t*>
( VmmManager::INITIAL_MEM_SIZE ) ;
endAddr = reinterpret_cast<uint64_t*>(i_expandSize);
Expand Down Expand Up @@ -574,6 +575,7 @@ namespace KernelMisc
break;
case CORE_POWER9_NIMBUS:
case CORE_POWER9_CUMULUS:
case CORE_POWER9_AXONE:
case CORE_UNKNOWN:
default:
// See EX07.EC.CC.PCC0.COMMON.SPR_COMMON.SCOMC in scomdef for
Expand Down Expand Up @@ -660,6 +662,7 @@ const char* ProcessorCoreTypeStrings[]
"Naples",
"Nimbus",
"Cumulus",
"Axone",
"Unknown"
};

Expand Down
1 change: 1 addition & 0 deletions src/lib/syscall_misc.C
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ size_t cpu_thread_count()
break;
case CORE_POWER9_NIMBUS:
case CORE_POWER9_CUMULUS:
case CORE_POWER9_AXONE:
threads = 4;
break;

Expand Down
3 changes: 2 additions & 1 deletion src/lib/syscall_mmio.C
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
/* Contributors Listed Below - COPYRIGHT 2010,2016 */
/* Contributors Listed Below - COPYRIGHT 2010,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
Expand Down Expand Up @@ -75,6 +75,7 @@ static uint64_t mmio_scratch_base()
return 0x40;
case CORE_POWER9_NIMBUS:
case CORE_POWER9_CUMULUS:
case CORE_POWER9_AXONE:
case CORE_UNKNOWN:
default:
// See misc.C - updateScratchReg() for more info on this
Expand Down
6 changes: 6 additions & 0 deletions src/usr/targeting/targetservicestart.C
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,12 @@ static void checkProcessorTargeting(TargetService& i_targetService)
l_haveOneCorrectProcessor = true;
}
break;
case MODEL_AXONE:
if(l_coreType == CORE_POWER9_AXONE)
{
l_haveOneCorrectProcessor = true;
}
break;

default:
break;
Expand Down

0 comments on commit 498b466

Please sign in to comment.