Add basic devapc (device access permission control) drivers. DAPC driver is used to set up bus fabric security and data protection among hardwares. DAPC driver groups the master hardwares into different domains and gives secure and non-secure property. The slave hardware can configure different access permissions for different domains via DAPC driver. 1. Initialize devapc. 2. Set master domain and secure side band. 3. Set domain remap. 4. Set default permission. Change-Id: I3677657a117caed0d73526f78b0ebe8180148335 Signed-off-by: Nina Wu <nina-cm.wu@mediatek.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/56764 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Yu-Ping Wu <yupingso@google.com>
39 lines
800 B
C
39 lines
800 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
|
|
#include <device/device.h>
|
|
#include <soc/devapc.h>
|
|
#include <soc/emi.h>
|
|
#include <soc/mcupm.h>
|
|
#include <soc/mmu_operations.h>
|
|
#include <soc/sspm.h>
|
|
#include <soc/ufs.h>
|
|
#include <symbols.h>
|
|
|
|
static void soc_read_resources(struct device *dev)
|
|
{
|
|
ram_resource(dev, 0, (uintptr_t)_dram / KiB, sdram_size() / KiB);
|
|
}
|
|
|
|
static void soc_init(struct device *dev)
|
|
{
|
|
mtk_mmu_disable_l2c_sram();
|
|
dapc_init();
|
|
mcupm_init();
|
|
sspm_init();
|
|
ufs_disable_refclk();
|
|
}
|
|
|
|
static struct device_operations soc_ops = {
|
|
.read_resources = soc_read_resources,
|
|
.init = soc_init,
|
|
};
|
|
|
|
static void enable_soc_dev(struct device *dev)
|
|
{
|
|
dev->ops = &soc_ops;
|
|
}
|
|
|
|
struct chip_operations soc_mediatek_mt8195_ops = {
|
|
CHIP_NAME("SOC Mediatek MT8195")
|
|
.enable_dev = enable_soc_dev,
|
|
};
|