/****************************************************************************** // @file proc_data_control.c // @brief Data codes for proc component. */ /****************************************************************************** * * @page ChangeLogs Change Logs * @section _proc_data_control_c proc_data_control.c * @verbatim * * Flag Def/Fea Userid Date Description * ------- ---------- -------- ---------- ---------------------------------- * @th010 thallet 06/27/2012 Created * @th014 thallet 08/02/2012 Temporary Control Data Fix & TODO flags added * @th015 thallet 08/03/2012 Set core Pstates function * @gm006 SW224414 milesg 09/16/2013 Reset and FFDC improvements * @gm008 SW226989 milesg 09/30/2013 Sapphire initial support * @gm025 915973 milesg 02/14/2014 Full support for sapphire (KVM) mode * * @endverbatim * *///*************************************************************************/ //************************************************************************* // Includes //************************************************************************* #include "proc_data.h" #include "pgp_async.h" #include "threadSch.h" #include "pmc_register_addresses.h" #include "proc_data_service_codes.h" #include "occ_service_codes.h" #include "errl.h" #include "trac.h" #include "rtls.h" #include "apss.h" #include "state.h" #include "gpe_control.h" #include "occ_sys_config.h" //************************************************************************* // Externs //************************************************************************* //************************************************************************* // Macros //************************************************************************* //************************************************************************* // Defines/Enums //************************************************************************* //************************************************************************* // Structures //************************************************************************* //************************************************************************* // Globals //************************************************************************* // Pore flex request for GPE job. The initialization will be done one time // during pore flex create. PoreFlex G_core_data_control_req; // Global double buffering for core data control GPE_BUFFER(PcbsPstateRegs G_core_data_control_a[MAX_NUM_HW_CORES]) = {{{0}}}; GPE_BUFFER(PcbsPstateRegs G_core_data_control_b[MAX_NUM_HW_CORES]) = {{{0}}}; // Pointer to the core data control that will be used by GPE engine. GPE_BUFFER(PcbsPstateRegs * G_core_data_control_gpewrite_ptr) = { &G_core_data_control_a[0] }; // Pointer to the core data control that will be written to by the OCC FW. GPE_BUFFER(PcbsPstateRegs * G_core_data_control_occwrite_ptr) = { &G_core_data_control_b[0] }; // The Gpe parameter fields are set up each time before the GPE starts. GPE_BUFFER(GpeSetPstatesParms G_core_data_control_parms); //************************************************************************* // Functions //************************************************************************* // Function Specification // // Name: proc_set_pstate // // Description: Function to demonstrate setting Pstates to all cores // Should only be run from RTL // // Flow: --/--/-- FN= // // End Function Specification void proc_set_pstate_all(Pstate i_pstate) { uint8_t l_chiplet = 0; for(; l_chiplet