Lines Matching refs:service
12 TF-A also implements the `PSCI`_ as a runtime service. PSCI is the interface
544 The runtime service framework and its initialization is described in more
554 Dispatcher (SPD) service (see later for details). During initialization
555 that service must register a function to carry out initialization of BL32
841 #. Standard service calls
843 This service is for management of the entire system. The Power State
844 Coordination Interface (`PSCI`_) is the first set of standard service calls
847 #. Secure-EL1 Payload Dispatcher service
859 service - within TF-A this service is referred to as the Secure-EL1 Payload
866 #. CPU implementation service
868 This service will provide an interface to CPU implementation specific
870 This service is currently unimplemented.
873 Each implemented service handles a range of SMC function identifiers as
879 A runtime service is registered using the ``DECLARE_RT_SVC()`` macro, specifying
880 the name of the service, the range of OENs covered, the type of service and
881 …unctions. This macro instantiates a ``const struct rt_svc_desc`` for the service with these detail…
883 the framework to find all service descriptors included into BL31.
885 The specific service for a SMC Function is selected based on the OEN and call
886 type of the Function ID, and the framework uses that information in the service
889 The service descriptors do not include information to identify the precise set
890 of SMC function identifiers supported by this service implementation, the
893 to these aspects of a SMC call is the responsibility of the service
896 service handler is invoked.
908 Initialization involves validating each of the declared runtime service
909 descriptors, calling the service initialization function and populating the
910 index used for runtime lookup of the service.
912 The BL31 linker script collects all of the declared service descriptors into a
917 initialization if service declaration errors are detected. The framework does
925 Once validated, the service ``init()`` callback is invoked. This function carries
927 function is only invoked on the primary CPU during cold boot. If the service
929 or be done lazily when a CPU first issues an SMC call to that service. If
931 error and the service is ignored: this does not cause the firmware to halt.
936 service handler, the framework uses an array of 128 indices that map every
938 indicate the service is not handled. This ``rt_svc_descs_indices[]`` array is
939 populated for all of the OENs covered by a service after the service ``init()``
940 function has reported success. So a service that fails to initialize will never
944 Function ID call type and OEN onto a specific service handler in the
963 resulting value might indicate a service that has no handler, in this case the
966 service and handler.
968 The service's ``handle()`` callback is provided with five of the SMC parameters
1077 the Trusted OS is coupled with a companion runtime service in the BL31
1078 firmware. This service is responsible for the initialisation of the Trusted
1087 Dispatcher (TSPD) service as an example of how a Trusted OS is supported on a
1089 Test BL32 image and service are replaced by the Trusted OS and its dispatcher
1090 service. The TF-A build system expects that the dispatcher will define the
1105 The TSPD service is responsible for.
1115 The Secure-EL1 Payload Dispatcher (SPD) service is responsible for initializing
1132 initialization of the SPD service. The BL32 initialization function has this
1151 receipt of this SMC, the SPD service handler should switch the CPU context
1163 The Test SPD service included with TF-A provides one implementation
1167 SPD service handler invokes the synchronous call return mechanism to return
1508 levels for that specific CPU. The PSCI service, upon receiving a power down
1517 At runtime the platform hooks for power down are invoked by the PSCI service to
2641 Bits 10-15: The service identifier.
2644 #. The service identifier. Each PMF service is identified by a
2645 service name and a service identifier. Both the service name and
2649 service.
2651 Registering a PMF service
2654 To register a PMF service, the ``PMF_REGISTER_SERVICE()`` macro from ``pmf.h``
2655 is used. The arguments required are the service name, the service ID,
2668 retrieve a particular timestamp for the given service at runtime.
2679 PMF timestamps are stored in a per-service timestamp region. On a
2683 Having registered the service, the ``PMF_CAPTURE_TIMESTAMP()`` macro can be
2685 takes the service name, a local timestamp identifier and a flag as arguments.
2689 maintenance is required if any of the service's timestamps are captured
2724 the SMC. In that case, service specific cache maintenance may be
2737 #. ``pmf_main.c`` consists of core functions that implement service registration,