xref: /rk3399_ARM-atf/plat/mediatek/drivers/apusys/apusys_rv/2.0/apusys_rv.c (revision ad7673adef9bc5eaeef333ecaca8e85e82abe342)
1 /*
2  * Copyright (c) 2023, MediaTek Inc. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 /* TF-A system header */
8 #include <common/debug.h>
9 #include <lib/mmio.h>
10 
11 /* Vendor header */
12 #include "apusys_rv.h"
13 #include "apusys_rv_mbox_mpu.h"
14 
15 void apusys_rv_mbox_mpu_init(void)
16 {
17 	int i;
18 
19 	for (i = 0; i < APU_MBOX_NUM; i++) {
20 		mmio_write_32(APU_MBOX_FUNC_CFG(i),
21 			      (MBOX_CTRL_LOCK |
22 			       (mbox_mpu_setting_tab[i].no_mpu << MBOX_NO_MPU_SHIFT)));
23 		mmio_write_32(APU_MBOX_DOMAIN_CFG(i),
24 			      (MBOX_CTRL_LOCK |
25 			       (mbox_mpu_setting_tab[i].rx_ns << MBOX_RX_NS_SHIFT) |
26 			       (mbox_mpu_setting_tab[i].rx_domain << MBOX_RX_DOMAIN_SHIFT) |
27 			       (mbox_mpu_setting_tab[i].tx_ns << MBOX_TX_NS_SHIFT) |
28 			       (mbox_mpu_setting_tab[i].tx_domain << MBOX_TX_DOMAIN_SHIFT)));
29 	}
30 }
31