mirror of https://gitee.com/openkylin/linux.git
43 lines
1.2 KiB
C
43 lines
1.2 KiB
C
|
/*
|
||
|
* arch/arm/include/asm/mcpm.h
|
||
|
*
|
||
|
* Created by: Nicolas Pitre, April 2012
|
||
|
* Copyright: (C) 2012-2013 Linaro Limited
|
||
|
*
|
||
|
* This program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License version 2 as
|
||
|
* published by the Free Software Foundation.
|
||
|
*/
|
||
|
|
||
|
#ifndef MCPM_H
|
||
|
#define MCPM_H
|
||
|
|
||
|
/*
|
||
|
* Maximum number of possible clusters / CPUs per cluster.
|
||
|
*
|
||
|
* This should be sufficient for quite a while, while keeping the
|
||
|
* (assembly) code simpler. When this starts to grow then we'll have
|
||
|
* to consider dynamic allocation.
|
||
|
*/
|
||
|
#define MAX_CPUS_PER_CLUSTER 4
|
||
|
#define MAX_NR_CLUSTERS 2
|
||
|
|
||
|
#ifndef __ASSEMBLY__
|
||
|
|
||
|
/*
|
||
|
* Platform specific code should use this symbol to set up secondary
|
||
|
* entry location for processors to use when released from reset.
|
||
|
*/
|
||
|
extern void mcpm_entry_point(void);
|
||
|
|
||
|
/*
|
||
|
* This is used to indicate where the given CPU from given cluster should
|
||
|
* branch once it is ready to re-enter the kernel using ptr, or NULL if it
|
||
|
* should be gated. A gated CPU is held in a WFE loop until its vector
|
||
|
* becomes non NULL.
|
||
|
*/
|
||
|
void mcpm_set_entry_vector(unsigned cpu, unsigned cluster, void *ptr);
|
||
|
|
||
|
#endif /* ! __ASSEMBLY__ */
|
||
|
#endif
|