mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-19 02:54:24 +00:00
PSCI: Publish CPU ON event
This allows other EL3 components to subscribe to CPU on events. Update Firmware Design guide to list psci_cpu_on_finish as an available event. Change-Id: Ida774afe0f9cdce4021933fcc33a9527ba7aaae2 Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
This commit is contained in:
parent
8e743bcd6a
commit
bd0c347781
3 changed files with 25 additions and 0 deletions
|
@ -2339,6 +2339,22 @@ implement:
|
|||
|
||||
SUBSCRIBE_TO_EVENT(foo, foo_handler);
|
||||
|
||||
Available Events
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
ARM Trusted Firmware core makes some events available by default. They're listed
|
||||
below, along with information as to when they're published, and the arguments
|
||||
passed to subscribed handlers.
|
||||
|
||||
Other EL3 components that are conditionally compiled in may make their own
|
||||
events available, but aren't documented here.
|
||||
|
||||
- ``psci_cpu_on_finish``
|
||||
|
||||
- When: Published on a PE after it's finished its power-up sequence.
|
||||
|
||||
- Argument: ``NULL``.
|
||||
|
||||
Performance Measurement Framework
|
||||
---------------------------------
|
||||
|
||||
|
|
|
@ -10,3 +10,9 @@
|
|||
* This file defines a list of pubsub events, declared using
|
||||
* REGISTER_PUBSUB_EVENT() macro.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Event published after a CPU has been powered up and finished its
|
||||
* initialization.
|
||||
*/
|
||||
REGISTER_PUBSUB_EVENT(psci_cpu_on_finish);
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <context_mgmt.h>
|
||||
#include <debug.h>
|
||||
#include <platform.h>
|
||||
#include <pubsub_events.h>
|
||||
#include <stddef.h>
|
||||
#include "psci_private.h"
|
||||
|
||||
|
@ -188,6 +189,8 @@ void psci_cpu_on_finish(unsigned int cpu_idx,
|
|||
if (psci_spd_pm && psci_spd_pm->svc_on_finish)
|
||||
psci_spd_pm->svc_on_finish(0);
|
||||
|
||||
PUBLISH_EVENT(psci_cpu_on_finish);
|
||||
|
||||
/* Populate the mpidr field within the cpu node array */
|
||||
/* This needs to be done only once */
|
||||
psci_cpu_pd_nodes[cpu_idx].mpidr = read_mpidr() & MPIDR_AFFINITY_MASK;
|
||||
|
|
Loading…
Add table
Reference in a new issue