diff options
| author | Doug Gilbert <dgilbert@us.ibm.com> | 2017-01-11 11:16:44 -0600 |
|---|---|---|
| committer | Joshua Hunsberger <jahunsbe@us.ibm.com> | 2017-10-23 17:24:27 -0500 |
| commit | 97283ea19f1a3890067759b0c8317cc7e5f5a3d9 (patch) | |
| tree | b6fe2f854bfaea7b4018135a1980c4d9372168eb /import/chips/p9/procedures/ppe | |
| parent | 71c1ab3670cd08dbe37524131c599027065d0b2b (diff) | |
| download | talos-hcode-97283ea19f1a3890067759b0c8317cc7e5f5a3d9.tar.gz talos-hcode-97283ea19f1a3890067759b0c8317cc7e5f5a3d9.zip | |
PK move global data to .sdata/.sbss sections to reduce code size
Change-Id: Iec504dba9dd8f92b4d633a19425fcd1800ddb783
RTC:167181
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/34750
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com>
Reviewed-by: ASHISH A. MORE <ashish.more@in.ibm.com>
Reviewed-by: YUE DU <daviddu@us.ibm.com>
Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
Diffstat (limited to 'import/chips/p9/procedures/ppe')
6 files changed, 14 insertions, 10 deletions
diff --git a/import/chips/p9/procedures/ppe/pk/kernel/pk_api.h b/import/chips/p9/procedures/ppe/pk/kernel/pk_api.h index 26b3d088..48405df7 100644 --- a/import/chips/p9/procedures/ppe/pk/kernel/pk_api.h +++ b/import/chips/p9/procedures/ppe/pk/kernel/pk_api.h @@ -966,7 +966,9 @@ pk_bh_schedule(PkBottomHalf* bottom_half) } #define PK_BH_STATIC_CREATE(bh_name, handler, arg) \ - PkBottomHalf bh_name = PK_BH_INIT(handler, arg) + PkBottomHalf bh_name __attribute__((section (".sdata"))) = \ + PK_BH_INIT(handler, arg) + //Trace function prototypes diff --git a/import/chips/p9/procedures/ppe/pk/kernel/pk_init.c b/import/chips/p9/procedures/ppe/pk/kernel/pk_init.c index f2cf1a15..07e3d282 100644 --- a/import/chips/p9/procedures/ppe/pk/kernel/pk_init.c +++ b/import/chips/p9/procedures/ppe/pk/kernel/pk_init.c @@ -111,6 +111,9 @@ void pk_set_timebase_rshift(uint32_t timebase_freq_hz) // variables. In debugging sessions using RAM-resident PK images it is // assumed that the processor may be reset at any time, so we always need to // reset everything at initialization. +#if PK_TRACE_SUPPORT + extern PkTimer g_pk_trace_timer __attribute__((section (".sdata"))); +#endif int pk_initialize(PkAddress kernel_stack, @@ -157,8 +160,6 @@ pk_initialize(PkAddress kernel_stack, __pk_time_queue.next_timeout = PK_TIMEBASE_MAX; #if PK_TRACE_SUPPORT - extern PkTimer g_pk_trace_timer; - extern PkTraceBuffer g_pk_trace_buf; //set the trace timebase HZ g_pk_trace_buf.hz = timebase_frequency_hz; diff --git a/import/chips/p9/procedures/ppe/pk/kernel/pk_kernel.h b/import/chips/p9/procedures/ppe/pk/kernel/pk_kernel.h index dc8c0565..9db8cdf1 100644 --- a/import/chips/p9/procedures/ppe/pk/kernel/pk_kernel.h +++ b/import/chips/p9/procedures/ppe/pk/kernel/pk_kernel.h @@ -167,7 +167,7 @@ size_t __pk_kernel_stack_size; UNLESS__PK_CORE_C__(extern) volatile -PkThread* __pk_priority_map[PK_THREADS + 1]; +PkThread* __pk_priority_map[PK_THREADS + 1] __attribute__ ((section (".sdata"))); /// The PK time queue structure /// @@ -205,7 +205,7 @@ typedef struct } PkTimeQueue; UNLESS__PK_CORE_C__(extern) -PkTimeQueue __pk_time_queue; +PkTimeQueue __pk_time_queue __attribute__ ((section (".sdata"))); /// Return a pointer to the PkThread object of the currently running thread, /// or NULL (0) if PK is idle or has not been started. diff --git a/import/chips/p9/procedures/ppe/pk/ppe42/ppe42_irq.h b/import/chips/p9/procedures/ppe/pk/ppe42/ppe42_irq.h index 58571a3f..8b5631b6 100644 --- a/import/chips/p9/procedures/ppe/pk/ppe42/ppe42_irq.h +++ b/import/chips/p9/procedures/ppe/pk/ppe42/ppe42_irq.h @@ -204,7 +204,7 @@ typedef struct }; #define EXTERNAL_IRQ_TABLE_START \ - Ppe42IrqHandler __ppe42_irq_handlers[EXTERNAL_IRQS + 1] = \ + Ppe42IrqHandler __ppe42_irq_handlers[EXTERNAL_IRQS + 1] __attribute__((section (".sdata"))) = \ { #else @@ -220,7 +220,7 @@ typedef struct #endif /*STATIC_IRQ_TABLE*/ /// Interrupt handlers for real (implemented interrupts) plus one for the phantom interrupt handler -extern Ppe42IrqHandler __ppe42_irq_handlers[EXTERNAL_IRQS + 1]; +extern Ppe42IrqHandler __ppe42_irq_handlers[EXTERNAL_IRQS + 1] __attribute__((section (".sdata"))); /// The 'phantom interrupt' handler diff --git a/import/chips/p9/procedures/ppe/pk/trace/pk_trace.h b/import/chips/p9/procedures/ppe/pk/trace/pk_trace.h index 9c34c5d6..67fbe7aa 100644 --- a/import/chips/p9/procedures/ppe/pk/trace/pk_trace.h +++ b/import/chips/p9/procedures/ppe/pk/trace/pk_trace.h @@ -295,7 +295,7 @@ typedef struct uint8_t cb[PK_TRACE_SZ]; } PkTraceBuffer; //pk_trace_buffer_t; -extern PkTraceBuffer g_pk_trace_buf; +extern PkTraceBuffer g_pk_trace_buf __attribute__((section (".sdata"))); #ifdef PK_TRACE_BUFFER_WRAP_MARKER extern uint32_t G_wrap_mask; diff --git a/import/chips/p9/procedures/ppe/pk/trace/pk_trace_core.c b/import/chips/p9/procedures/ppe/pk/trace/pk_trace_core.c index 35e39f9d..9f87bc1f 100644 --- a/import/chips/p9/procedures/ppe/pk/trace/pk_trace_core.c +++ b/import/chips/p9/procedures/ppe/pk/trace/pk_trace_core.c @@ -39,9 +39,10 @@ void pk_trace_timer_callback(void* arg); #if (PK_TRACE_SUPPORT && PK_TIMER_SUPPORT) +extern PkTimer g_pk_trace_timer __attribute__((section (".sdata"))); //Static initialization of the trace timer -PkTimer g_pk_trace_timer = +PkTimer g_pk_trace_timer __attribute__ ((section (".sdata"))) = { .deque = PK_DEQUE_ELEMENT_INIT(), .timeout = 0, @@ -50,7 +51,7 @@ PkTimer g_pk_trace_timer = }; //Static initialization of the pk trace buffer -PkTraceBuffer g_pk_trace_buf = +PkTraceBuffer g_pk_trace_buf __attribute__ ((section (".sdata"))) = { .version = PK_TRACE_VERSION, .image_str = PPE_IMG_STRING, |

