diff options
author | Andres Lugo-Reyes <aalugore@us.ibm.com> | 2016-12-19 16:07:30 -0600 |
---|---|---|
committer | William A. Bryan <wilbryan@us.ibm.com> | 2017-02-01 11:06:24 -0500 |
commit | 009f439d2aa9df1944eb08b7f1fc30006abd8137 (patch) | |
tree | 719f526548b4c125984d45aeaa30051ae32c7afe /src/occ_405/linkocc.cmd | |
parent | 11bf85d22eed50613085dfea02c4df9e53e1a380 (diff) | |
download | talos-occ-009f439d2aa9df1944eb08b7f1fc30006abd8137.tar.gz talos-occ-009f439d2aa9df1944eb08b7f1fc30006abd8137.zip |
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 <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: William A. Bryan <wilbryan@us.ibm.com>
Diffstat (limited to 'src/occ_405/linkocc.cmd')
-rwxr-xr-x | src/occ_405/linkocc.cmd | 33 |
1 files changed, 28 insertions, 5 deletions
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; } + |