summaryrefslogtreecommitdiffstats
path: root/src/occ_405/linkocc.cmd
diff options
context:
space:
mode:
authorAndres Lugo-Reyes <aalugore@us.ibm.com>2017-01-10 08:52:34 -0600
committerWilliam A. Bryan <wilbryan@us.ibm.com>2017-02-01 16:45:08 -0500
commit0ee0cf11ed50cf9c43d05a1ba2aa4f25801b6d97 (patch)
tree64c8e2f6f33033495335fa952f51edb0f3ba07ae /src/occ_405/linkocc.cmd
parent4d6a99902a2a377a12dbef720fea81873fb920cc (diff)
downloadtalos-occ-0ee0cf11ed50cf9c43d05a1ba2aa4f25801b6d97.tar.gz
talos-occ-0ee0cf11ed50cf9c43d05a1ba2aa4f25801b6d97.zip
WOF: Function to calculate the desired VFRT Mainstore address
Function also copies VFRT from Mainstore to SRAM and then sends the WOF VFRT IPC command to the PGPE Change-Id: I94c7d4bcc9179fce3f17c1b974a12186c67547c1 RTC: 130216 Depends-on: I2249777134608d9f79bdc85692a3acbf7907c3f5 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/34658 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-xsrc/occ_405/linkocc.cmd36
1 files changed, 32 insertions, 4 deletions
diff --git a/src/occ_405/linkocc.cmd b/src/occ_405/linkocc.cmd
index 1dbf362..3c4556c 100755
--- a/src/occ_405/linkocc.cmd
+++ b/src/occ_405/linkocc.cmd
@@ -533,14 +533,42 @@ SECTIONS
#if EXECUTABLE_FREE_SPACE
_DATA_SECTION_SIZE = . - _DATA_SECTION_BASE;
__WRITEABLE_DATA_LEN__ = . - __WRITEABLE_DATA_ADDR__ ;
- _EX_FREE_SECTION_SIZE = _GLOBAL_DATA_BASE - _EX_FREE_SECTION_BASE;
+ _EX_FREE_SECTION_SIZE = _PING_PONG_BUFFER_BASE - _EX_FREE_SECTION_BASE;
#else
- _DATA_SECTION_SIZE = _GLOBAL_DATA_BASE - _DATA_SECTION_BASE;
- __WRITEABLE_DATA_LEN__ = _GLOBAL_DATA_BASE - __WRITEABLE_DATA_ADDR__ ;
+ _DATA_SECTION_SIZE = _PING_PONG_BUFFER_BASE - _DATA_SECTION_BASE;
+ __WRITEABLE_DATA_LEN__ = _PING_PONG_BUFFER_BASE - __WRITEABLE_DATA_ADDR__ ;
_EX_FREE_SECTION_SIZE = 0;
#endif
- _SSX_FREE_END = _GLOBAL_DATA_BASE - 1;
+ _SSX_FREE_END = _PING_PONG_BUFFER_BASE - 1;
+
+
+ ////////////////////////////////
+ // Ping/Pong Buffer Section
+ //
+ // Contains two 256-byte buffers used to tell the PGPE which vfrt to use
+ //
+ ////////////////////////////////
+ __CUR_COUNTER__ = .;
+ _PING_PONG_BUFFER_BASE = 0xfffb3d00;
+ _PING_BUFFER_BASE = 0xfffb3d00;
+ _PING_BUFFER_SIZE = 0x100;
+ _PONG_BUFFER_BASE = 0xfffb3e00;
+ _PONG_BUFFER_SIZE = 0x100;
+ . = _PING_BUFFER_BASE;
+#if !PPC405_MMU_SUPPORT
+ . = . - writethrough_offset;
+ _LMA = . + writethrough_offset;
+ .vfrt_ping_buffer . : AT(_LMA) {*(vfrt_ping_buffer) . = ALIGN(_PING_BUFFER_SIZE);}
+ _LMA = . + writethrough_offset;
+ .vfrt_pong_buffer . : AT(_LMA) {*(vfrt_pong_buffer) . = ALIGN(_PONG_BUFFER_SIZE);}
+ . = . + writethrough_offset;
+#else
+ .vfrt_ping_buffer . : {*(vfrt_ping_buffer) . = ALIGN(_PING_BUFFER_SIZE);} > sram
+ .vfrt_pong_buffer . : {*(vfrt_pong_buffer) . = ALIGN(_PONG_BUFFER_SIZE);} > sram
+#endif
+ . = __CUR_COUNTER__;
+
////////////////////////////////
OpenPOWER on IntegriCloud