summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Deprez <olivier.deprez@arm.com>2023-10-17 15:44:11 +0200
committerTrustedFirmware Code Review <review@review.trustedfirmware.org>2023-10-17 15:44:11 +0200
commit47dddbe7b0f53b87592f68be3dc9bc14ce33a5bf (patch)
treea016d66b5f6a1128f52e44239c0cc77376d2bc9d
parent159ebbfe801e294483bf22cb80f6b6724cf400e0 (diff)
parent013006f1f889f5869502147af464e38619459463 (diff)
Merge "feat(mt8188): add EMI MPU support for SCP and DSP" into integration
-rw-r--r--plat/mediatek/drivers/emi_mpu/mt8188/emi_mpu.c47
1 files changed, 45 insertions, 2 deletions
diff --git a/plat/mediatek/drivers/emi_mpu/mt8188/emi_mpu.c b/plat/mediatek/drivers/emi_mpu/mt8188/emi_mpu.c
index ae1b7ef67..e8882f070 100644
--- a/plat/mediatek/drivers/emi_mpu/mt8188/emi_mpu.c
+++ b/plat/mediatek/drivers/emi_mpu/mt8188/emi_mpu.c
@@ -12,8 +12,51 @@
void set_emi_mpu_regions(void)
{
- /* TODO: set emi mpu region */
- INFO("%s, emi mpu is not setting currently\n", __func__);
+ struct emi_region_info_t region_info;
+
+ /* SCP core0 DRAM */
+ region_info.start = 0x50000000ULL;
+ region_info.end = 0x528FFFFFULL;
+ region_info.region = 2;
+ SET_ACCESS_PERMISSION(region_info.apc, 1,
+ FORBIDDEN, FORBIDDEN, FORBIDDEN, FORBIDDEN,
+ FORBIDDEN, FORBIDDEN, FORBIDDEN, NO_PROTECTION,
+ FORBIDDEN, FORBIDDEN, FORBIDDEN, FORBIDDEN,
+ FORBIDDEN, FORBIDDEN, FORBIDDEN, NO_PROTECTION);
+ emi_mpu_set_protection(&region_info);
+
+ /* SCP core1 DRAM */
+ region_info.start = 0x70000000ULL;
+ region_info.end = 0x729FFFFFULL;
+ region_info.region = 3;
+ SET_ACCESS_PERMISSION(region_info.apc, 1,
+ FORBIDDEN, FORBIDDEN, FORBIDDEN, FORBIDDEN,
+ FORBIDDEN, FORBIDDEN, FORBIDDEN, NO_PROTECTION,
+ FORBIDDEN, FORBIDDEN, FORBIDDEN, FORBIDDEN,
+ FORBIDDEN, FORBIDDEN, FORBIDDEN, NO_PROTECTION);
+ emi_mpu_set_protection(&region_info);
+
+ /* DSP protect address */
+ region_info.start = 0x60000000ULL;
+ region_info.end = 0x610FFFFFULL;
+ region_info.region = 4;
+ SET_ACCESS_PERMISSION(region_info.apc, 1,
+ FORBIDDEN, FORBIDDEN, FORBIDDEN, FORBIDDEN,
+ FORBIDDEN, FORBIDDEN, FORBIDDEN, FORBIDDEN,
+ FORBIDDEN, FORBIDDEN, FORBIDDEN, NO_PROTECTION,
+ FORBIDDEN, FORBIDDEN, FORBIDDEN, NO_PROTECTION);
+ emi_mpu_set_protection(&region_info);
+
+ /* All default settings */
+ region_info.start = 0x40000000ULL;
+ region_info.end = 0x1FFFF0000ULL;
+ region_info.region = 31;
+ SET_ACCESS_PERMISSION(region_info.apc, 1,
+ FORBIDDEN, FORBIDDEN, NO_PROTECTION, NO_PROTECTION,
+ NO_PROTECTION, FORBIDDEN, NO_PROTECTION, NO_PROTECTION,
+ NO_PROTECTION, SEC_R_NSEC_RW, NO_PROTECTION, FORBIDDEN,
+ NO_PROTECTION, NO_PROTECTION, NO_PROTECTION, NO_PROTECTION);
+ emi_mpu_set_protection(&region_info);
}
int set_apu_emi_mpu_region(void)