u-boot/arch/arm/cpu/armv7/sunxi/tzpc.c
Chen-Yu Tsai 5823664fb8 sunxi: Support Secure Memory Touch Arbiter (SMTA) in sun8i H3
Secure Memory Touch Arbiter is the same thing as the TrustZone
Protection Controller found on A31/A31s.

Access to many peripherals on the H3 can be controlled by the SMTA,
and the settings default to secure access only.

This patch supports the new settings, and sets them to allow non-secure
access.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Acked-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2016-01-26 16:20:04 +01:00

27 lines
704 B
C

/*
* (C) Copyright 2015 Chen-Yu Tsai <wens@csie.org>
*
* SPDX-License-Identifier: GPL-2.0+
*/
#include <asm/io.h>
#include <asm/arch/cpu.h>
#include <asm/arch/tzpc.h>
/* Configure Trust Zone Protection Controller */
void tzpc_init(void)
{
struct sunxi_tzpc *tzpc = (struct sunxi_tzpc *)SUNXI_TZPC_BASE;
#ifdef CONFIG_MACH_SUN6I
/* Enable non-secure access to the RTC */
writel(SUN6I_TZPC_DECPORT0_RTC, &tzpc->decport0_set);
#endif
#ifdef CONFIG_MACH_SUN8I_H3
/* Enable non-secure access to all peripherals */
writel(SUN8I_H3_TZPC_DECPORT0_ALL, &tzpc->decport0_set);
writel(SUN8I_H3_TZPC_DECPORT1_ALL, &tzpc->decport1_set);
writel(SUN8I_H3_TZPC_DECPORT2_ALL, &tzpc->decport2_set);
#endif
}