mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-28 01:21:58 +00:00
ARM: Allow SMP kernels to boot on UP systems
UP systems do not implement all the instructions that SMP systems have, so in order to boot a SMP kernel on a UP system, we need to rewrite parts of the kernel. Do this using an 'alternatives' scheme, where the kernel code and data is modified prior to initialization to replace the SMP instructions, thereby rendering the problematical code ineffectual. We use the linker to generate a list of 32-bit word locations and their replacement values, and run through these replacements when we detect a UP system. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
067173526c
commit
f00ec48fad
14 changed files with 237 additions and 102 deletions
|
@ -18,4 +18,19 @@ static inline int cache_ops_need_broadcast(void)
|
|||
return ((read_cpuid_ext(CPUID_EXT_MMFR3) >> 12) & 0xf) < 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return true if we are running on a SMP platform
|
||||
*/
|
||||
static inline bool is_smp(void)
|
||||
{
|
||||
#ifndef CONFIG_SMP
|
||||
return false;
|
||||
#elif defined(CONFIG_SMP_ON_UP)
|
||||
extern unsigned int smp_on_up;
|
||||
return !!smp_on_up;
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue