From 009f439d2aa9df1944eb08b7f1fc30006abd8137 Mon Sep 17 00:00:00 2001 From: Andres Lugo-Reyes Date: Mon, 19 Dec 2016 16:07:30 -0600 Subject: WOF: Function to calculate VDD/VDN step number 1. Calculate VDN/VDD step number 2. Extract the WOF header address from the PGPE header 3. Save important data from WOF header into global struct 4. Create global pointer struct to save important addresses to a pinned location in memory. Change-Id: I2249777134608d9f79bdc85692a3acbf7907c3f5 RTC:130216 Depends-on: Ic323321b8c66945732a6b7345ad85d6f41a62edd Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/34300 Tested-by: FSP CI Jenkins Reviewed-by: William A. Bryan --- src/occ_405/linkocc.cmd | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) (limited to 'src/occ_405/linkocc.cmd') diff --git a/src/occ_405/linkocc.cmd b/src/occ_405/linkocc.cmd index e15a4f3..1dbf362 100755 --- a/src/occ_405/linkocc.cmd +++ b/src/occ_405/linkocc.cmd @@ -5,7 +5,7 @@ /* */ /* OpenPOWER OnChipController Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2011,2016 */ +/* Contributors Listed Below - COPYRIGHT 2011,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -533,14 +533,36 @@ SECTIONS #if EXECUTABLE_FREE_SPACE _DATA_SECTION_SIZE = . - _DATA_SECTION_BASE; __WRITEABLE_DATA_LEN__ = . - __WRITEABLE_DATA_ADDR__ ; - _EX_FREE_SECTION_SIZE = _TRACE_BUFFERS_START_BASE - _EX_FREE_SECTION_BASE; + _EX_FREE_SECTION_SIZE = _GLOBAL_DATA_BASE - _EX_FREE_SECTION_BASE; #else - _DATA_SECTION_SIZE = _TRACE_BUFFERS_START_BASE - _DATA_SECTION_BASE; - __WRITEABLE_DATA_LEN__ = _TRACE_BUFFERS_START_BASE - __WRITEABLE_DATA_ADDR__ ; + _DATA_SECTION_SIZE = _GLOBAL_DATA_BASE - _DATA_SECTION_BASE; + __WRITEABLE_DATA_LEN__ = _GLOBAL_DATA_BASE - __WRITEABLE_DATA_ADDR__ ; _EX_FREE_SECTION_SIZE = 0; #endif - _SSX_FREE_END = _TRACE_BUFFERS_START_BASE - 1; + _SSX_FREE_END = _GLOBAL_DATA_BASE - 1; + + + //////////////////////////////// + // Global Data Section + // + // Contains pointers to important Global variables + // + //////////////////////////////// + __CUR_COUNTER__ = .; + _GLOBAL_DATA_BASE = 0xfffb3f00; + _GLOBAL_DATA_SIZE = 0x100; + . = _GLOBAL_DATA_BASE; +#if !PPC405_MMU_SUPPORT + . = . - writethrough_offset; + _LMA = . + writethrough_offset; + .global_data . : AT(_LMA) {*(global_data) . = ALIGN(_GLOBAL_DATA_SIZE);} + . = . + writethrough_offset; +#else + .global_data . : {*(global_data) . = ALIGN(_GLOBAL_DATA_SIZE);} > sram +#endif + . = __CUR_COUNTER__; + //////////////////////////////// // Trace Buffers @@ -668,3 +690,4 @@ SECTIONS _PPC405_END_OF_MEMORY = 0; } + -- cgit v1.2.1