mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-18 02:24:18 +00:00

rk3576 is an Octa-core soc with Cortex-a53/a72 inside. This patch supports the following functions: 1. basic platform setup 2. power up/off cpus 3. suspend/resume cpus 4. suspend/resume system 5. reset system 6. power off system Change-Id: I67a019822bd4af13e4a3cdd09cf06202f4922cc4 Signed-off-by: XiaoDong Huang <derrick.huang@rock-chips.com>
39 lines
1 KiB
C
39 lines
1 KiB
C
// SPDX-License-Identifier: BSD-3-Clause
|
|
/*
|
|
* Copyright (c) 2025, Rockchip Electronics Co., Ltd.
|
|
*/
|
|
|
|
#include <assert.h>
|
|
#include <lib/mmio.h>
|
|
|
|
#include <platform_def.h>
|
|
|
|
#include <secure.h>
|
|
#include <soc.h>
|
|
|
|
static void secure_timer_init(void)
|
|
{
|
|
/* gpu's cntvalue comes from stimer1 channel_5 */
|
|
mmio_write_32(STIMER1_CHN_BASE(5) + TIMER_CONTROL_REG,
|
|
TIMER_DIS);
|
|
|
|
mmio_write_32(STIMER1_CHN_BASE(5) + TIMER_LOAD_COUNT0, 0xffffffff);
|
|
mmio_write_32(STIMER1_CHN_BASE(5) + TIMER_LOAD_COUNT1, 0xffffffff);
|
|
|
|
/* auto reload & enable the timer */
|
|
mmio_write_32(STIMER1_CHN_BASE(5) + TIMER_CONTROL_REG,
|
|
TIMER_EN | TIMER_FMODE);
|
|
}
|
|
|
|
void secure_init(void)
|
|
{
|
|
secure_timer_init();
|
|
fw_init();
|
|
|
|
/* crypto secure controlled by crypto */
|
|
mmio_write_32(SYS_SGRF_BASE + SYSSGRF_SOC_CON(0), BITS_WITH_WMASK(0, 0x1, 4));
|
|
mmio_write_32(SYS_SGRF_BASE + SYSSGRF_SOC_CON(0), BITS_WITH_WMASK(0, 0x1, 5));
|
|
|
|
/* disable DP encryption mode */
|
|
mmio_write_32(SYS_SGRF_BASE + SYSSGRF_SOC_CON(1), BITS_WITH_WMASK(1, 0x1, 14));
|
|
}
|