Revision history   OpenPOWER Library

 4.1.1. Starting and Stopping an AFU in the Dedicated-Process Model

 In a dedicated-process programming model, an AFU is started and stopped by system software.

 The following procedure should be used to start an AFU.

  1.  System software must initialize the state of the PSL.

    All the required Privileged 1, Privileged 1 Slice, and Privileged 2 Slice registers should be initialized so that the address context for the processes and other contexts such as the interrupt vector table entries can be used.

  2.  System software must set the AFU Slice Reset bit in the AFU_Cntl_An Register (AFU_Cntl_An[RA]).

    Setting the AFU Slice Reset starts a reset sequence for the corresponding AFU. Initiating a reset sequence also disables the AFU. The AFU does not respond to the problem state MMIO region while disabled.

  3.  System software must poll the AFU Slice Reset Status for the AFU Slice Reset Sequence to be complete (AFU_Cntl_An[RS] = '10').

  4.  System software must set the WED if required by the AFU at start time.

    The WED is initialized by writing a 64-bit WED value to the PSL_WED_An Register.

  5.  System software must set the AFU Enable bit in the AFU_Cntl_An Register (AFU_Cntl_An[E]).

    The state of the AFU Enable Status must be a '00' before system software can set the AFU Enable bit to a '1' for a start command to be issued to the AFU by the PSL. The WED is passed to the AFU when the start command is issued.

  6.  System software must poll the AFU Enable Status for the AFU Slice Enabled (AFU_Cntl_An[ES] = '10').

    The AFU_Cntl_An[ES] field is set to '10' when the PSL and AFU are initialized, running, and able to accept MMIO. After the AFU is running, system memory accesses can be performed by the AFU and problem state MMIOs can be performed by software.

     Note: If problem state registers are required to be initialized in the AFU before the application can start, the AFU should provide a mechanism for starting the accelerator and should not depend on the start command issued by the PSL.

 The following procedure should be used to stop an AFU.

  1.  System software must set the AFU Slice Reset bit in the AFU_Cntl_An Register (AFU_Cntl_An[RA]).

    Setting the AFU Slice Reset starts a reset sequence for the corresponding AFU. Initiating a reset sequence also disables the AFU. The AFU does not respond to the problem state MMIO region while disabled.

  2.  System software must poll the AFU Slice Reset Status for the AFU Slice Reset Sequence to be complete (AFU_Cntl_An[RS] = '10').

 

Figure 4.1. Accelerator Invocation Process in the Dedicated Process Model



loading table of contents...