ARM: shmobile: Convert file to use cntvoff
Now that a common function is available for CNTVOFF's initialization, let's convert shmobile-apmu code to use this function. Signed-off-by: Mylène Josserand <mylene.josserand@bootlin.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Simon Horman <horms+renesas@verge.net.au> Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
This commit is contained in:
parent
46ebbfcb9f
commit
cad160ed0a
|
@ -2,7 +2,6 @@
|
||||||
#ifndef __ARCH_MACH_COMMON_H
|
#ifndef __ARCH_MACH_COMMON_H
|
||||||
#define __ARCH_MACH_COMMON_H
|
#define __ARCH_MACH_COMMON_H
|
||||||
|
|
||||||
extern void shmobile_init_cntvoff(void);
|
|
||||||
extern void shmobile_init_delay(void);
|
extern void shmobile_init_delay(void);
|
||||||
extern void shmobile_boot_vector(void);
|
extern void shmobile_boot_vector(void);
|
||||||
extern unsigned long shmobile_boot_fn;
|
extern unsigned long shmobile_boot_fn;
|
||||||
|
|
|
@ -11,29 +11,9 @@
|
||||||
#include <linux/linkage.h>
|
#include <linux/linkage.h>
|
||||||
#include <asm/assembler.h>
|
#include <asm/assembler.h>
|
||||||
|
|
||||||
ENTRY(shmobile_init_cntvoff)
|
|
||||||
/*
|
|
||||||
* CNTVOFF has to be initialized either from non-secure Hypervisor
|
|
||||||
* mode or secure Monitor mode with SCR.NS==1. If TrustZone is enabled
|
|
||||||
* then it should be handled by the secure code
|
|
||||||
*/
|
|
||||||
cps #MON_MODE
|
|
||||||
mrc p15, 0, r1, c1, c1, 0 /* Get Secure Config */
|
|
||||||
orr r0, r1, #1
|
|
||||||
mcr p15, 0, r0, c1, c1, 0 /* Set Non Secure bit */
|
|
||||||
instr_sync
|
|
||||||
mov r0, #0
|
|
||||||
mcrr p15, 4, r0, r0, c14 /* CNTVOFF = 0 */
|
|
||||||
instr_sync
|
|
||||||
mcr p15, 0, r1, c1, c1, 0 /* Set Secure bit */
|
|
||||||
instr_sync
|
|
||||||
cps #SVC_MODE
|
|
||||||
ret lr
|
|
||||||
ENDPROC(shmobile_init_cntvoff)
|
|
||||||
|
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
ENTRY(shmobile_boot_apmu)
|
ENTRY(shmobile_boot_apmu)
|
||||||
bl shmobile_init_cntvoff
|
bl secure_cntvoff_init
|
||||||
b secondary_startup
|
b secondary_startup
|
||||||
ENDPROC(shmobile_boot_apmu)
|
ENDPROC(shmobile_boot_apmu)
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#include <linux/of_fdt.h>
|
#include <linux/of_fdt.h>
|
||||||
#include <linux/of_platform.h>
|
#include <linux/of_platform.h>
|
||||||
#include <asm/mach/arch.h>
|
#include <asm/mach/arch.h>
|
||||||
|
#include <asm/secure_cntvoff.h>
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "rcar-gen2.h"
|
#include "rcar-gen2.h"
|
||||||
|
|
||||||
|
@ -70,7 +71,7 @@ void __init rcar_gen2_timer_init(void)
|
||||||
void __iomem *base;
|
void __iomem *base;
|
||||||
u32 freq;
|
u32 freq;
|
||||||
|
|
||||||
shmobile_init_cntvoff();
|
secure_cntvoff_init();
|
||||||
|
|
||||||
if (of_machine_is_compatible("renesas,r8a7745") ||
|
if (of_machine_is_compatible("renesas,r8a7745") ||
|
||||||
of_machine_is_compatible("renesas,r8a7792") ||
|
of_machine_is_compatible("renesas,r8a7792") ||
|
||||||
|
|
Loading…
Reference in New Issue
Block a user