diff options
author | Yue Du <daviddu@us.ibm.com> | 2017-06-22 10:50:57 -0500 |
---|---|---|
committer | Joshua Hunsberger <jahunsbe@us.ibm.com> | 2017-10-23 18:05:21 -0500 |
commit | e4cd00d195f000f00465acfb0326f176a1b77a0e (patch) | |
tree | 395a5f70ef31c41b92910df945f542451776370e /import/chips/p9/procedures/ppe_closed | |
parent | d650808d533939efdcd78b0c57ab95e729f8860a (diff) | |
download | talos-hcode-e4cd00d195f000f00465acfb0326f176a1b77a0e.tar.gz talos-hcode-e4cd00d195f000f00465acfb0326f176a1b77a0e.zip |
STOP: inline called-once functions
saving CME size: 256B
Change-Id: Idf371f4c7ed73de931a0a523554a8b778cd176fc
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42292
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: BRIAN D. VICTOR <brian.d.victor1@ibm.com>
Reviewed-by: Michael S. Floyd <mfloyd@us.ibm.com>
Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
Diffstat (limited to 'import/chips/p9/procedures/ppe_closed')
29 files changed, 82 insertions, 98 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop.h b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop.h index 4f7165c2..133339f4 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop.h +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop.h @@ -240,22 +240,19 @@ typedef struct } CmeStopRecord; -/// CME STOP Entry and Exit Prototypes #if HW405292_NDD1_PCBMUX_SAVIOR void p9_cme_pcbmux_savior_prologue(uint32_t); void p9_cme_pcbmux_savior_epilogue(uint32_t); #endif -void p9_cme_acquire_pcbmux(uint32_t, uint32_t); -void p9_cme_release_pcbmux(uint32_t); - +/// CME STOP Entry and Exit Prototypes void p9_cme_stop_enter_thread(void*); void p9_cme_stop_exit_thread(void*); void p9_cme_stop_eval_eimr_override(); void p9_cme_stop_entry(); void p9_cme_stop_exit(); -int p9_cme_stop_exit_catchup(uint32_t*, uint32_t*, uint32_t*, uint8_t*, int*); +// CME STOP Interrupt Handlers void p9_cme_stop_enter_handler(void*, PkIrqId); void p9_cme_stop_pcwu_handler(void*, PkIrqId); void p9_cme_stop_rgwu_handler(void*, PkIrqId); @@ -263,17 +260,6 @@ void p9_cme_stop_spwu_handler(void*, PkIrqId); void p9_cme_stop_db1_handler(void*, PkIrqId); void p9_cme_stop_db2_handler(void*, PkIrqId); +// CME STOP Utility Functions void p9_hcd_core_scan0(uint32_t, uint64_t, uint64_t); -void p9_hcd_core_pcb_arb(uint32_t, uint8_t); -void p9_hcd_core_poweron(uint32_t); -void p9_hcd_core_chiplet_reset(uint32_t); -void p9_hcd_core_gptr_time_initf(uint32_t); -void p9_hcd_core_chiplet_init(uint32_t); -void p9_hcd_core_repair_initf(uint32_t); -void p9_hcd_core_arrayinit(uint32_t); -void p9_hcd_core_initf(uint32_t); -void p9_hcd_core_startclocks(uint32_t); -void p9_hcd_core_scominit(uint32_t); -void p9_hcd_core_scomcust(uint32_t); -void p9_hcd_core_ras_runtime_scom(uint32_t); -void p9_hcd_core_occ_runtime_scom(uint32_t); +void p9_hcd_core_pcb_arb(uint32_t, uint8_t); // not used diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c index 0f71592b..4d779df5 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_cme_stop_exit.c @@ -28,6 +28,22 @@ #include "p9_cme_copy_scan_ring.h" #include "p9_cme_pstate.h" +// inline procedures only called by exit +#include "p9_hcd_core_poweron.c" +#include "p9_hcd_core_chiplet_reset.c" +#include "p9_hcd_core_gptr_time_initf.c" +#include "p9_hcd_core_chiplet_init.c" +#include "p9_hcd_core_repair_initf.c" +#include "p9_hcd_core_arrayinit.c" +#include "p9_hcd_core_initf.c" +#include "p9_hcd_core_startclocks.c" +#include "p9_hcd_core_scominit.c" +#include "p9_hcd_core_scomcust.c" +#include "p9_hcd_core_ras_runtime_scom.c" +#include "p9_hcd_core_occ_runtime_scom.c" + + + extern CmeStopRecord G_cme_stop_record; extern CmeRecord G_cme_record; @@ -37,7 +53,8 @@ uint8_t G_dsl[MAX_CORES_PER_CME][MAX_THREADS_PER_CORE] = {{0, 0, 0, 0}, {0, 0, 0 #endif -void p9_cme_stop_exit_end(uint32_t core, uint32_t spwu_stop) +static void +p9_cme_stop_exit_end(uint32_t core, uint32_t spwu_stop) { uint32_t core_mask = 0; uint32_t act_stop_level = 0; @@ -294,7 +311,8 @@ void p9_cme_stop_exit_end(uint32_t core, uint32_t spwu_stop) } -void p9_cme_stop_exit_lv2(uint32_t core) +static void +p9_cme_stop_exit_lv2(uint32_t core) { //-------------------------------------------------------------------------- PK_TRACE("+++++ +++++ STOP LEVEL 2 EXIT +++++ +++++"); @@ -347,7 +365,7 @@ void p9_cme_stop_exit_lv2(uint32_t core) #if !SKIP_EXIT_CATCHUP -int +static int p9_cme_stop_exit_catchup(uint32_t* core, uint32_t* deeper_core, uint32_t* spwu_stop, diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_arrayinit.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_arrayinit.c index e7527619..4b262c47 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_arrayinit.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_arrayinit.c @@ -24,10 +24,10 @@ /* IBM_PROLOG_END_TAG */ #include "plat_ring_traverse.h" -#include "p9_cme_stop.h" -#include "p9_cme_stop_exit_marks.h" #include "p9_ringid_cme_enums.h" +#include "p9_cme_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_core_arrayinit(uint32_t core) { diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_chiplet_init.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_chiplet_init.c index 8308d8a6..4c7d970f 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_chiplet_init.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_chiplet_init.c @@ -23,9 +23,9 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_cme_stop.h" #include "p9_cme_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_core_chiplet_init(uint32_t core) { diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_chiplet_reset.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_chiplet_reset.c index 9f16f781..20c76209 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_chiplet_reset.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_chiplet_reset.c @@ -23,9 +23,8 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_cme_stop.h" -#include "p9_cme_stop_exit_marks.h" #include "p9_hcode_image_defines.H" +#include "p9_cme_stop_exit_marks.h" enum P9_HCD_CORE_CHIPLET_RESET_CONSTANTS { @@ -47,6 +46,7 @@ enum P9_HCD_CORE_CHIPLET_RESET_CONSTANTS BIT64(16) | BIT64(18) | BIT64(22) | BITS64(25, 2)) }; +inline __attribute__((always_inline)) void p9_hcd_core_chiplet_reset(uint32_t core) { diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_gptr_time_initf.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_gptr_time_initf.c index fbc8ddf5..1d39dfd0 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_gptr_time_initf.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_gptr_time_initf.c @@ -24,10 +24,10 @@ /* IBM_PROLOG_END_TAG */ #include "plat_ring_traverse.h" -#include "p9_cme_stop.h" #include "p9_cme_stop_exit_marks.h" #include "p9_ringid_cme_enums.h" +inline __attribute__((always_inline)) void p9_hcd_core_gptr_time_initf(uint32_t core) { diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_initf.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_initf.c index db91d946..ff70e81d 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_initf.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_initf.c @@ -24,10 +24,10 @@ /* IBM_PROLOG_END_TAG */ #include "plat_ring_traverse.h" -#include "p9_cme_stop.h" -#include "p9_cme_stop_exit_marks.h" #include "p9_ringid_cme_enums.h" +#include "p9_cme_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_core_initf(uint32_t core) { diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_occ_runtime_scom.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_occ_runtime_scom.c index d041fde7..278e9d23 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_occ_runtime_scom.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_occ_runtime_scom.c @@ -23,9 +23,9 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_cme_stop.h" #include "p9_cme_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_core_occ_runtime_scom(uint32_t core) { diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_poweron.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_poweron.c index 0fbc2728..c7225fd5 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_poweron.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_poweron.c @@ -23,9 +23,9 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_cme_stop.h" #include "p9_cme_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_core_poweron(uint32_t core) { diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_ras_runtime_scom.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_ras_runtime_scom.c index cf19004e..a324f182 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_ras_runtime_scom.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_ras_runtime_scom.c @@ -23,9 +23,9 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_cme_stop.h" #include "p9_cme_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_core_ras_runtime_scom(uint32_t core) { diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_repair_initf.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_repair_initf.c index 13ec6b91..b346fd67 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_repair_initf.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_repair_initf.c @@ -25,10 +25,10 @@ #include "plat_ring_traverse.h" -#include "p9_cme_stop.h" -#include "p9_cme_stop_exit_marks.h" #include "p9_ringid_cme_enums.h" +#include "p9_cme_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_core_repair_initf(uint32_t core) { diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_scomcust.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_scomcust.c index 7c30d96c..3f0b92ee 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_scomcust.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_scomcust.c @@ -23,9 +23,9 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_cme_stop.h" #include "p9_cme_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_core_scomcust(uint32_t core) { diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_scominit.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_scominit.c index d1ed529b..7333f791 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_scominit.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_scominit.c @@ -23,7 +23,6 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_cme_stop.h" #include "p9_cme_stop_exit_marks.h" enum P9_HCD_CORE_SCOMINIT_CONSTANTS @@ -43,6 +42,7 @@ enum P9_HCD_CORE_SCOMINIT_CONSTANTS NEST_HANG_LIMIT_200_HANG_PULSES = 0x64 }; +inline __attribute__((always_inline)) void p9_hcd_core_scominit(uint32_t core) { diff --git a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_startclocks.c b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_startclocks.c index fc15dc31..2e9b453e 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_startclocks.c +++ b/import/chips/p9/procedures/ppe_closed/cme/stop_cme/p9_hcd_core_startclocks.c @@ -23,9 +23,9 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_cme_stop.h" #include "p9_cme_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_core_startclocks(uint32_t core) { diff --git a/import/chips/p9/procedures/ppe_closed/cme/topfiles.mk b/import/chips/p9/procedures/ppe_closed/cme/topfiles.mk index 86ea038c..1a160342 100644 --- a/import/chips/p9/procedures/ppe_closed/cme/topfiles.mk +++ b/import/chips/p9/procedures/ppe_closed/cme/topfiles.mk @@ -43,18 +43,6 @@ STOP-C-SOURCES = stop_cme/p9_cme_stop_irq_handlers.c \ stop_cme/p9_cme_stop_entry.c \ stop_cme/p9_cme_stop_exit.c \ stop_cme/p9_hcd_core_scan0.c \ - stop_cme/p9_hcd_core_poweron.c \ - stop_cme/p9_hcd_core_chiplet_reset.c \ - stop_cme/p9_hcd_core_gptr_time_initf.c \ - stop_cme/p9_hcd_core_chiplet_init.c \ - stop_cme/p9_hcd_core_repair_initf.c \ - stop_cme/p9_hcd_core_arrayinit.c \ - stop_cme/p9_hcd_core_initf.c \ - stop_cme/p9_hcd_core_startclocks.c \ - stop_cme/p9_hcd_core_scominit.c \ - stop_cme/p9_hcd_core_scomcust.c \ - stop_cme/p9_hcd_core_ras_runtime_scom.c \ - stop_cme/p9_hcd_core_occ_runtime_scom.c \ stop_cme/p9_cme_copy_scan_ring.c TOP-S-SOURCES = stop_cme/p9_cme_header.S diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_arrayinit.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_arrayinit.c index fd6a4ee5..a32c1574 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_arrayinit.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_arrayinit.c @@ -23,9 +23,9 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_sgpe_stop.h" #include "p9_sgpe_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_cache_arrayinit(uint32_t quad, uint32_t ex) { diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_chiplet_init.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_chiplet_init.c index 9e94fa90..01a9db39 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_chiplet_init.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_chiplet_init.c @@ -23,9 +23,9 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_sgpe_stop.h" #include "p9_sgpe_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_cache_chiplet_init(uint32_t quad) { diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_chiplet_reset.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_chiplet_reset.c index b1c772eb..87d4d221 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_chiplet_reset.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_chiplet_reset.c @@ -23,7 +23,6 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_sgpe_stop.h" #include "p9_sgpe_stop_exit_marks.h" extern SgpeStopRecord G_sgpe_stop_record; @@ -48,6 +47,7 @@ enum P9_HCD_CACHE_CHIPLET_RESET_CONSTANTS BIT64(18) | BIT64(22) | BITS64(25, 2)) }; +inline __attribute__((always_inline)) void p9_hcd_cache_chiplet_reset(uint32_t quad, uint32_t ex) { diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_dpll_setup.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_dpll_setup.c index 5f15934c..15cbd543 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_dpll_setup.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_dpll_setup.c @@ -23,9 +23,9 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_sgpe_stop.h" #include "p9_sgpe_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_cache_dpll_setup(uint32_t quad) { diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_l2_startclocks.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_l2_startclocks.c index 52887185..5798592c 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_l2_startclocks.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_l2_startclocks.c @@ -23,11 +23,11 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_sgpe_stop.h" #include "p9_sgpe_stop_exit_marks.h" extern SgpeStopRecord G_sgpe_stop_record; +inline __attribute__((always_inline)) void p9_hcd_cache_l2_startclocks(uint32_t quad, uint32_t ex, uint32_t pg) { diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_occ_runtime_scom.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_occ_runtime_scom.c index c0fcbda0..99391b85 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_occ_runtime_scom.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_occ_runtime_scom.c @@ -23,9 +23,9 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_sgpe_stop.h" #include "p9_sgpe_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_cache_occ_runtime_scom(uint32_t quad) { diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_poweron.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_poweron.c index 3c78e5c9..83bf9fe1 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_poweron.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_poweron.c @@ -23,9 +23,9 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_sgpe_stop.h" #include "p9_sgpe_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_cache_poweron(uint32_t quad) { diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_ras_runtime_scom.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_ras_runtime_scom.c index 0b1e9d07..de2e6bca 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_ras_runtime_scom.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_ras_runtime_scom.c @@ -23,9 +23,9 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_sgpe_stop.h" #include "p9_sgpe_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_cache_ras_runtime_scom(uint32_t quad) { diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_scomcust.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_scomcust.c index 3cf970d2..8512bb57 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_scomcust.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_scomcust.c @@ -23,9 +23,9 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_sgpe_stop.h" #include "p9_sgpe_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_cache_scomcust(uint32_t quad, uint32_t m_ex, int is_stop8) { diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_scominit.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_scominit.c index 7d4fd60f..a8825637 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_scominit.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_scominit.c @@ -23,11 +23,11 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_sgpe_stop.h" #include "p9_sgpe_stop_exit_marks.h" extern SgpeStopRecord G_sgpe_stop_record; +inline __attribute__((always_inline)) void p9_hcd_cache_scominit(uint32_t quad, uint32_t m_ex, int is_stop8) { diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_startclocks.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_startclocks.c index 11d3aeb8..eaed1283 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_startclocks.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_hcd_cache_startclocks.c @@ -23,9 +23,9 @@ /* */ /* IBM_PROLOG_END_TAG */ -#include "p9_sgpe_stop.h" #include "p9_sgpe_stop_exit_marks.h" +inline __attribute__((always_inline)) void p9_hcd_cache_startclocks(uint32_t quad, uint32_t ex) { diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h index d5d07e0c..1b807c2b 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h @@ -289,44 +289,33 @@ struct ring_save }; #endif -void p9_sgpe_set_slvcfg_pm_disable(uint32_t); -void p9_sgpe_clear_slvcfg_pm_disable(uint32_t); /// SGPE to PGPE IPC handlers void p9_sgpe_ipc_pgpe_ctrl_stop_updates(ipc_msg_t* cmd, void* arg); void p9_sgpe_ipc_pgpe_suspend_stop(ipc_msg_t* cmd, void* arg); void p9_sgpe_ipc_pgpe_rsp_callback(ipc_msg_t* cmd, void* arg); -/// SGPE STOP Entry and Exit Prototypes -void p9_sgpe_stop_suspend_msg_db1(uint32_t, uint32_t); -void p9_sgpe_stop_ipi_handler(void*, PkIrqId); +/// SGPE STOP Interrupt Handlers void p9_sgpe_stop_pig_handler(void*, PkIrqId); +void p9_sgpe_stop_ipi_handler(void*, PkIrqId); +void p9_sgpe_stop_suspend_msg_db1(uint32_t, uint32_t); +void p9_sgpe_stop_suspend_all_cmes(); + +/// SGPE STOP Entry and Exit Prototypes void p9_sgpe_stop_enter_thread(void*); void p9_sgpe_stop_exit_thread(void*); void p9_sgpe_stop_entry(); void p9_sgpe_stop_exit(); void p9_sgpe_stop_cme_scominit(uint32_t, uint32_t, uint32_t); -void p9_sgpe_stop_suspend_all_cmes(); /// Procedures shared between Istep4 and SGPE Stop -void p9_hcd_cache_scan0(uint32_t, uint64_t, uint64_t); -void p9_hcd_cache_poweron(uint32_t); -void p9_hcd_cache_chiplet_reset(uint32_t, uint32_t); void p9_hcd_cache_chiplet_l3_dcc_setup(uint32_t); void p9_hcd_cache_gptr_time_initf(uint32_t); void p9_hcd_cache_dpll_initf(uint32_t); -void p9_hcd_cache_dpll_setup(uint32_t); void p9_hcd_cache_dcc_skewadjust_setup(uint32_t); -void p9_hcd_cache_chiplet_init(uint32_t); void p9_hcd_cache_repair_initf(uint32_t); -void p9_hcd_cache_arrayinit(uint32_t, uint32_t ex); void p9_hcd_cache_initf(uint32_t); -void p9_hcd_cache_startclocks(uint32_t, uint32_t); -void p9_hcd_cache_l2_startclocks(uint32_t, uint32_t, uint32_t); -void p9_hcd_cache_scominit(uint32_t, uint32_t, int); -void p9_hcd_cache_scomcust(uint32_t, uint32_t, int); -void p9_hcd_cache_ras_runtime_scom(uint32_t); -void p9_hcd_cache_occ_runtime_scom(uint32_t); +void p9_hcd_cache_scan0(uint32_t, uint64_t, uint64_t); #ifdef __cplusplus } // extern "C" diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_exit.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_exit.c index 0b6042b9..6875d437 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_exit.c +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_exit.c @@ -27,6 +27,20 @@ #include "p9_sgpe_stop_exit_marks.h" #include "p9_hcd_sgpe_boot_cme.h" +// inline procedures only called by exit +#include "p9_hcd_cache_poweron.c" +#include "p9_hcd_cache_chiplet_reset.c" +#include "p9_hcd_cache_dpll_setup.c" +#include "p9_hcd_cache_chiplet_init.c" +#include "p9_hcd_cache_arrayinit.c" +#include "p9_hcd_cache_startclocks.c" +#include "p9_hcd_cache_l2_startclocks.c" +#include "p9_hcd_cache_scominit.c" +#include "p9_hcd_cache_scomcust.c" +#include "p9_hcd_cache_occ_runtime_scom.c" +#include "p9_hcd_cache_ras_runtime_scom.c" + + extern SgpeStopRecord G_sgpe_stop_record; #if !SKIP_IPC diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/topfiles.mk b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/topfiles.mk index 909f6ae8..dc548218 100644 --- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/topfiles.mk +++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/topfiles.mk @@ -24,32 +24,18 @@ # IBM_PROLOG_END_TAG ifdef IMAGE +TOP-S-SOURCES = p9_sgpe_image_header.S + TOP-C-SOURCES = p9_sgpe_stop_entry.c \ p9_sgpe_stop_exit.c \ - p9_sgpe_stop_irq_handlers.c \ p9_sgpe_stop_enter_thread.c \ p9_sgpe_stop_exit_thread.c \ - p9_hcd_cache_scan0.c \ - p9_hcd_cache_poweron.c \ - p9_hcd_cache_chiplet_reset.c \ - p9_hcd_cache_dpll_setup.c \ - p9_hcd_cache_chiplet_init.c \ - p9_hcd_cache_arrayinit.c \ - p9_hcd_cache_startclocks.c \ - p9_hcd_cache_l2_startclocks.c \ - p9_hcd_cache_scominit.c \ - p9_hcd_cache_scomcust.c \ - p9_hcd_cache_occ_runtime_scom.c \ - p9_hcd_cache_ras_runtime_scom.c \ - p9_hcd_sgpe_boot_cme.c \ + p9_sgpe_stop_irq_handlers.c \ p9_sgpe_ipc_handlers.c \ p9_sgpe_ipc_func_tables.c \ - p9_sgpe_irq.c - -UTILS-SRC = utils/p9_putringutils.C -UTILS-SRC += utils/plat_ring_traverse.C - -TOP-S-SOURCES = p9_sgpe_image_header.S + p9_sgpe_irq.c \ + p9_hcd_sgpe_boot_cme.c \ + p9_hcd_cache_scan0.c TOP-CPP-SOURCES = p9_sgpe_main.C TOP-CPP-SOURCES += p9_hcd_cache_initf.C @@ -59,6 +45,9 @@ TOP-CPP-SOURCES += p9_hcd_cache_dcc_skewadjust_setup.C TOP-CPP-SOURCES += p9_hcd_cache_repair_initf.C TOP-CPP-SOURCES += p9_hcd_cache_gptr_time_initf.C +UTILS-SRC = utils/p9_putringutils.C +UTILS-SRC += utils/plat_ring_traverse.C + UTILS_OBJECTS = $(UTILS-SRC:.C=.o) TOP_OBJECTS = $(TOP-C-SOURCES:.c=.o) $(TOP-S-SOURCES:.S=.o) $(TOP-CPP-SOURCES:.C=.o) endif |