Add support for the RPU, real-time processing unit on Versal NET SoC. It is based on Cortext-R52 processor. The patch contains initial wiring and configuration for generic board with OCM(1MB) and DDR(2G) memories, cpu, interrupt controller, global timer and UART. versalnet.dtsi contains common peripherals integrated into Versal NET SoC, and versalnet_r52.dtsi has peripherals which are private to Cortex-R52 processor. Signed-off-by: Appana Durga Kedareswara rao <appana.durga.kedareswara.rao@amd.com> Signed-off-by: Mubin Sayyed <mubin.sayyed@amd.com>
39 lines
1 KiB
C
39 lines
1 KiB
C
/*
|
|
* Copyright (c) 2025 Advanced Micro Devices, Inc.
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include <zephyr/kernel.h>
|
|
#include <zephyr/linker/linker-defs.h>
|
|
#include <zephyr/arch/arm/mpu/arm_mpu.h>
|
|
|
|
#define DEVICE_REGION_START 0xE2000000U
|
|
#define DEVICE_REGION_END 0xF8000000U
|
|
|
|
static const struct arm_mpu_region mpu_regions[] = {
|
|
MPU_REGION_ENTRY("vector",
|
|
(uintptr_t)_vector_start,
|
|
REGION_RAM_TEXT_ATTR((uintptr_t)_vector_end)),
|
|
|
|
MPU_REGION_ENTRY("SRAM_TEXT",
|
|
(uintptr_t)__text_region_start,
|
|
REGION_RAM_TEXT_ATTR((uintptr_t)__rodata_region_start)),
|
|
|
|
MPU_REGION_ENTRY("SRAM_RODATA",
|
|
(uintptr_t)__rodata_region_start,
|
|
REGION_RAM_RO_ATTR((uintptr_t)__rodata_region_end)),
|
|
|
|
MPU_REGION_ENTRY("SRAM_DATA",
|
|
(uintptr_t)__rom_region_end,
|
|
REGION_RAM_ATTR((uintptr_t)__kernel_ram_end)),
|
|
|
|
MPU_REGION_ENTRY("DEVICE",
|
|
DEVICE_REGION_START,
|
|
REGION_DEVICE_ATTR(DEVICE_REGION_END)),
|
|
};
|
|
|
|
const struct arm_mpu_config mpu_config = {
|
|
.num_regions = ARRAY_SIZE(mpu_regions),
|
|
.mpu_regions = mpu_regions,
|
|
};
|