Merge changes I3703868b,Ie77476db into integration
* changes: allwinner: Add SPC security setup for H6 allwinner: Add R_PRCM security setup for H6
This commit is contained in:
commit
fe7366ab17
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2017-2020, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -7,16 +7,11 @@
|
|||
#include <common/debug.h>
|
||||
#include <lib/mmio.h>
|
||||
|
||||
#include <sunxi_ccu.h>
|
||||
#include <sunxi_mmap.h>
|
||||
#include <sunxi_private.h>
|
||||
#include <sunxi_spc.h>
|
||||
|
||||
#ifdef SUNXI_SPC_BASE
|
||||
#define SPC_DECPORT_STA_REG(p) (SUNXI_SPC_BASE + ((p) * 0x0c) + 0x4)
|
||||
#define SPC_DECPORT_SET_REG(p) (SUNXI_SPC_BASE + ((p) * 0x0c) + 0x8)
|
||||
#define SPC_DECPORT_CLR_REG(p) (SUNXI_SPC_BASE + ((p) * 0x0c) + 0xc)
|
||||
#endif
|
||||
|
||||
#define R_PRCM_SEC_SWITCH_REG 0x1d0
|
||||
#define DMA_SEC_REG 0x20
|
||||
|
||||
/*
|
||||
|
@ -27,20 +22,18 @@
|
|||
*/
|
||||
void sunxi_security_setup(void)
|
||||
{
|
||||
#ifdef SUNXI_SPC_BASE
|
||||
int i;
|
||||
|
||||
INFO("Configuring SPC Controller\n");
|
||||
/* SPC setup: set all devices to non-secure */
|
||||
for (i = 0; i < 6; i++)
|
||||
mmio_write_32(SPC_DECPORT_SET_REG(i), 0xff);
|
||||
#endif
|
||||
for (i = 0; i < SUNXI_SPC_NUM_PORTS; i++)
|
||||
mmio_write_32(SUNXI_SPC_DECPORT_SET_REG(i), 0xffffffff);
|
||||
|
||||
/* set MBUS clocks, bus clocks (AXI/AHB/APB) and PLLs to non-secure */
|
||||
mmio_write_32(SUNXI_CCU_SEC_SWITCH_REG, 0x7);
|
||||
|
||||
/* Set R_PRCM bus clocks to non-secure */
|
||||
mmio_write_32(SUNXI_R_PRCM_BASE + R_PRCM_SEC_SWITCH_REG, 0x1);
|
||||
mmio_write_32(SUNXI_R_PRCM_SEC_SWITCH_REG, 0x1);
|
||||
|
||||
/* Set all DMA channels (16 max.) to non-secure */
|
||||
mmio_write_32(SUNXI_DMA_BASE + DMA_SEC_REG, 0xffff);
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
/*
|
||||
* Copyright (c) 2020, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef SUNXI_CCU_H
|
||||
#define SUNXI_CCU_H
|
||||
|
||||
#define SUNXI_CCU_SEC_SWITCH_REG (SUNXI_CCU_BASE + 0x02f0)
|
||||
|
||||
#define SUNXI_R_PRCM_SEC_SWITCH_REG (SUNXI_R_PRCM_BASE + 0x01d0)
|
||||
|
||||
#endif /* SUNXI_CCU_H */
|
|
@ -36,7 +36,6 @@
|
|||
#define SUNXI_MSGBOX_BASE 0x01c17000
|
||||
#define SUNXI_SPINLOCK_BASE 0x01c18000
|
||||
#define SUNXI_CCU_BASE 0x01c20000
|
||||
#define SUNXI_CCU_SEC_SWITCH_REG (SUNXI_CCU_BASE + 0x2f0)
|
||||
#define SUNXI_PIO_BASE 0x01c20800
|
||||
#define SUNXI_TIMER_BASE 0x01c20c00
|
||||
#define SUNXI_WDOG_BASE 0x01c20ca0
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* Copyright (c) 2020, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef SUNXI_SPC_H
|
||||
#define SUNXI_SPC_H
|
||||
|
||||
#define SUNXI_SPC_NUM_PORTS 6
|
||||
|
||||
#define SUNXI_SPC_DECPORT_STA_REG(p) (SUNXI_SPC_BASE + 0x0004 + 0x0c * (p))
|
||||
#define SUNXI_SPC_DECPORT_SET_REG(p) (SUNXI_SPC_BASE + 0x0008 + 0x0c * (p))
|
||||
#define SUNXI_SPC_DECPORT_CLR_REG(p) (SUNXI_SPC_BASE + 0x000c + 0x0c * (p))
|
||||
|
||||
#endif /* SUNXI_SPC_H */
|
|
@ -0,0 +1,14 @@
|
|||
/*
|
||||
* Copyright (c) 2020, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef SUNXI_CCU_H
|
||||
#define SUNXI_CCU_H
|
||||
|
||||
#define SUNXI_CCU_SEC_SWITCH_REG (SUNXI_CCU_BASE + 0x0f00)
|
||||
|
||||
#define SUNXI_R_PRCM_SEC_SWITCH_REG (SUNXI_R_PRCM_BASE + 0x0290)
|
||||
|
||||
#endif /* SUNXI_CCU_H */
|
|
@ -30,8 +30,8 @@
|
|||
#define SUNXI_DMA_BASE 0x03002000
|
||||
#define SUNXI_MSGBOX_BASE 0x03003000
|
||||
#define SUNXI_CCU_BASE 0x03001000
|
||||
#define SUNXI_CCU_SEC_SWITCH_REG (SUNXI_CCU_BASE + 0xf00)
|
||||
#define SUNXI_PIO_BASE 0x0300b000
|
||||
#define SUNXI_SPC_BASE 0x03008000
|
||||
#define SUNXI_TIMER_BASE 0x03009000
|
||||
#define SUNXI_WDOG_BASE 0x030090a0
|
||||
#define SUNXI_THS_BASE 0x05070400
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* Copyright (c) 2020, ARM Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef SUNXI_SPC_H
|
||||
#define SUNXI_SPC_H
|
||||
|
||||
#define SUNXI_SPC_NUM_PORTS 14
|
||||
|
||||
#define SUNXI_SPC_DECPORT_STA_REG(p) (SUNXI_SPC_BASE + 0x0000 + 0x10 * (p))
|
||||
#define SUNXI_SPC_DECPORT_SET_REG(p) (SUNXI_SPC_BASE + 0x0004 + 0x10 * (p))
|
||||
#define SUNXI_SPC_DECPORT_CLR_REG(p) (SUNXI_SPC_BASE + 0x0008 + 0x10 * (p))
|
||||
|
||||
#endif /* SUNXI_SPC_H */
|
Loading…
Reference in New Issue