mirror of
https://github.com/CTCaer/switch-l4t-atf.git
synced 2025-04-01 12:41:51 +00:00
Correctly dimension the PSCI aff_map_node array
The array of affinity nodes is currently allocated for 32 entries with the PSCI_NUM_AFFS value defined in psci.h. This is not enough for large systems, and will substantially over allocate the array for small systems. This patch introduces an optional platform definition PLATFORM_NUM_AFFS to platform_def.h. If defined this value is used for PSCI_NUM_AFFS, otherwise a value of two times the number of CPU cores is used. The FVP port defines PLATFORM_NUM_AFFS to be 10 which saves nearly 1.5KB of memory. Fixes ARM-software/tf-issues#192 Change-Id: I68e30ac950de88cfbd02982ba882a18fb69c1445
This commit is contained in:
parent
13ac44a5c7
commit
6c0b45d1ce
@ -150,6 +150,11 @@ file is found in [plat/fvp/include/platform_def.h].
|
||||
Defines the maximum number of CPUs that can be implemented within a cluster
|
||||
on the platform.
|
||||
|
||||
* **#define : PLATFORM_NUM_AFFS**
|
||||
|
||||
Defines the total number of nodes in the affinity heirarchy at all affinity
|
||||
levels used by the platform.
|
||||
|
||||
* **#define : PRIMARY_CPU**
|
||||
|
||||
Defines the `MPIDR` of the primary CPU on the platform. This value is used
|
||||
|
@ -128,9 +128,6 @@
|
||||
#define psci_validate_power_state(pstate) (pstate & PSTATE_VALID_MASK)
|
||||
|
||||
|
||||
/* Number of affinity instances whose state this psci imp. can track */
|
||||
#define PSCI_NUM_AFFS 32ull
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#include <stdint.h>
|
||||
|
@ -75,6 +75,8 @@
|
||||
#define PLATFORM_CORE_COUNT (PLATFORM_CLUSTER1_CORE_COUNT + \
|
||||
PLATFORM_CLUSTER0_CORE_COUNT)
|
||||
#define PLATFORM_MAX_CPUS_PER_CLUSTER 4
|
||||
#define PLATFORM_NUM_AFFS (PLATFORM_CLUSTER_COUNT + \
|
||||
PLATFORM_CORE_COUNT)
|
||||
#define PRIMARY_CPU 0x0
|
||||
#define MAX_IO_DEVICES 3
|
||||
#define MAX_IO_HANDLES 4
|
||||
|
@ -33,8 +33,16 @@
|
||||
|
||||
#include <arch.h>
|
||||
#include <bakery_lock.h>
|
||||
#include <platform_def.h> /* for PLATFORM_NUM_AFFS */
|
||||
#include <psci.h>
|
||||
|
||||
/* Number of affinity instances whose state this psci imp. can track */
|
||||
#ifdef PLATFORM_NUM_AFFS
|
||||
#define PSCI_NUM_AFFS PLATFORM_NUM_AFFS
|
||||
#else
|
||||
#define PSCI_NUM_AFFS (2 * PLATFORM_CORE_COUNT)
|
||||
#endif
|
||||
|
||||
/*******************************************************************************
|
||||
* The following two data structures hold the topology tree which in turn tracks
|
||||
* the state of the all the affinity instances supported by the platform.
|
||||
|
Loading…
x
Reference in New Issue
Block a user