coreboot-kgpe-d16/src/soc/mediatek/mt8195/soc.c
Nina Wu c25aa5b47e soc/mediatek/mt8195: Add devapc basic drivers
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>
2021-08-04 09:23:45 +00:00

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,
};