Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cad160ed authored by Mylène Josserand's avatar Mylène Josserand Committed by Maxime Ripard
Browse files

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: default avatarMylène Josserand <mylene.josserand@bootlin.com>
Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Tested-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
Acked-by: default avatarSimon Horman <horms+renesas@verge.net.au>
Signed-off-by: default avatarMaxime Ripard <maxime.ripard@bootlin.com>
parent 46ebbfcb
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -2,7 +2,6 @@
#ifndef __ARCH_MACH_COMMON_H
#define __ARCH_MACH_COMMON_H

extern void shmobile_init_cntvoff(void);
extern void shmobile_init_delay(void);
extern void shmobile_boot_vector(void);
extern unsigned long shmobile_boot_fn;
+1 −21
Original line number Diff line number Diff line
@@ -11,29 +11,9 @@
#include <linux/linkage.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
ENTRY(shmobile_boot_apmu)
	bl	shmobile_init_cntvoff
	bl	secure_cntvoff_init
	b	secondary_startup
ENDPROC(shmobile_boot_apmu)
#endif
+2 −1
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@
#include <linux/of_fdt.h>
#include <linux/of_platform.h>
#include <asm/mach/arch.h>
#include <asm/secure_cntvoff.h>
#include "common.h"
#include "rcar-gen2.h"

@@ -70,7 +71,7 @@ void __init rcar_gen2_timer_init(void)
	void __iomem *base;
	u32 freq;

	shmobile_init_cntvoff();
	secure_cntvoff_init();

	if (of_machine_is_compatible("renesas,r8a7745") ||
	    of_machine_is_compatible("renesas,r8a7792") ||