diff options
Diffstat (limited to 'src/lib/gpe_pba_pgas.pS')
-rwxr-xr-x | src/lib/gpe_pba_pgas.pS | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/src/lib/gpe_pba_pgas.pS b/src/lib/gpe_pba_pgas.pS deleted file mode 100755 index 346234d..0000000 --- a/src/lib/gpe_pba_pgas.pS +++ /dev/null @@ -1,110 +0,0 @@ -// $Id: gpe_pba_pgas.pS,v 1.1.1.1 2013/12/11 20:49:20 bcbrock Exp $ -// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/lib/gpe_pba_pgas.pS,v $ -//----------------------------------------------------------------------------- -// *! (C) Copyright International Business Machines Corp. 2013 -// *! All Rights Reserved -- Property of IBM -// *! *** IBM Confidential *** -//----------------------------------------------------------------------------- - -/// \file gpe_pba.pS -/// \brief PBA subroutines for PORE-GPE procedures - - .nolist -#include "ssx.h" -#include "pgas.h" -#include "pgp_config.h" -#include "gpe.h" -#include "gpe_pba.h" - .list - - .oci - - .text.pore - - // Reset a PBA slave from a GpePbaParms structure. A setup sequence - // looks like - // - // gpe_pba_reset - // gpe_pba_setup - // - // The subroutine gpe_pba_reset can also be called by itself to insure - // that all write data has been flushed to mainstore. - // - // Note that any PORE program that reads or writes Centaur will need - // to execute its code from SRAM since it is not possible to set up - // the slave for reading from Centaur while executing from main memory. - // - // Slave reset for PBA is a complex issue, especially in cases like - // this where the entity requesting the reset may be executing from - // main memory - i.e., continuing to read from the slave being - // reset. To work around potential issues the code that polls for - // reset is PowerBus cache-line aligned, and we re-hit the reset - // button each time we get an unsuccessful poll for the reset being - // done. This should guarantee that the slave will go to reset - // status as soon as any PowerBus blockages (if any) clear. For - // details see HW228485. - // - // At entry : - // - // A0 : The (constant) address of the GpePbaParms structure - // - // Clobbered: - // - // D0 : scratched - // D1 : scratched - // A1 : Holds PBA_SLVRST - - .global gpe_pba_reset - - .balign 128 -gpe_pba_reset: - la A1, PBA_SLVRST - ld D0, GPEPBAPARMS_SLVRST, A0 - std D0, 0, A1 - - ld D0, GPEPBAPARMS_SLVRST_IN_PROGRESS, A0 - ld D1, 0, A1 - and D0, D0, D1 - branz D0, gpe_pba_reset - - ret - - .epilogue gpe_pba_reset - - - // Set up a PBA slave from a GpePbaParms structure. A setup sequence - // looks like - // - // gpe_pba_reset - // gpe_pba_setup - // - // At entry : - // - // A0 : The (constant) address of the GpePbaParms structure - // - // Clobbered: - // - // D0 : scratch - // A1 : Holds PBA_SLVCTL address for the indicated slave - - - .global gpe_pba_setup -gpe_pba_setup: - - // Write the new SLVCTL value under MASK - - ld D0, GPEPBAPARMS_SLVCTL_ADDRESS, A0 - mr A1, D0 - - ld D0, 0, A1 - ld D1, GPEPBAPARMS_MASK, A0 - and D0, D0, D1 - - ld D1, GPEPBAPARMS_SLVCTL, A0 - or D0, D0, D1 - - std D0, 0, A1 - - ret - - .epilogue gpe_pba_setup |