blob: 07b314834d88f7b69e43f599e27ba5ac2eb83469 [file] [log] [blame]
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved.
*/
#include "sm8550.dtsi"
/delete-node/ &reserved_memory;
/ {
reserved_memory: reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
/* These are 3 types of reserved memory regions here:
* 1. Firmware related regions which aren't shared with kernel.
* The device tree source in kernel doesn't need to have node to
* indicate the firmware related reserved information. Bootloader
* conveys the information by updating devicetree at runtime.
* This will be described as: UEFI saves the physical address of
* the UEFI System Table to dts file's chosen node. Kernel read this
* table and add reserved memory regions to efi config table. Current
* reserved memory region may have reserved region which was not yet
* used, release note of the firmware have such kind of information.
* 2. Firmware related memory regions which are shared with Kernel
* The device tree source in the kernel needs to include nodes
* that indicate fimware-related shared information. A label name
* is suggested because this type of shared information needs to
* be referenced by specific drivers for handling purposes.
* Unlike previous platforms, QCS8550 boots using EFI and describes
* most reserved regions in the ESRT memory map. As a result, reserved
* memory regions which aren't relevant to the kernel(like the hypervisor
( region) don't need to be described in DT.
* 3. Remoteproc regions.
* Remoteproc regions will be reserved and then assigned to
* subsystem firmware later.
* Here is a reserved memory map for this platform:
* 0x80000000 +-------------------+
* | |
* | Firmware Related |
* | |
* 0x8a800000 +-------------------+
* | |
* | Remoteproc Region |
* | |
* 0xa7000000 +-------------------+
* | |
* | Kernel Available |
* | |
* 0xd4d00000 +-------------------+
* | |
* | Firmware Related |
* | |
* 0x100000000 +-------------------+
*/
aop_image_mem: aop-image-region@81c00000 {
reg = <0x0 0x81c00000 0x0 0x60000>;
no-map;
};
aop_cmd_db_mem: aop-cmd-db-region@81c60000 {
compatible = "qcom,cmd-db";
reg = <0x0 0x81c60000 0x0 0x20000>;
no-map;
};
aop_config_mem: aop-config-region@81c80000 {
no-map;
reg = <0x0 0x81c80000 0x0 0x20000>;
};
smem_mem: smem-region@81d00000 {
compatible = "qcom,smem";
reg = <0x0 0x81d00000 0x0 0x200000>;
hwlocks = <&tcsr_mutex 3>;
no-map;
};
adsp_mhi_mem: adsp-mhi-region@81f00000 {
reg = <0x0 0x81f00000 0x0 0x20000>;
no-map;
};
mpss_mem: mpss-region@8a800000 {
reg = <0x0 0x8a800000 0x0 0x10800000>;
no-map;
};
q6_mpss_dtb_mem: q6-mpss-dtb-region@9b000000 {
reg = <0x0 0x9b000000 0x0 0x80000>;
no-map;
};
ipa_fw_mem: ipa-fw-region@9b080000 {
reg = <0x0 0x9b080000 0x0 0x10000>;
no-map;
};
ipa_gsi_mem: ipa-gsi-region@9b090000 {
reg = <0x0 0x9b090000 0x0 0xa000>;
no-map;
};
gpu_micro_code_mem: gpu-micro-code-region@9b09a000 {
reg = <0x0 0x9b09a000 0x0 0x2000>;
no-map;
};
spss_region_mem: spss-region@9b100000 {
reg = <0x0 0x9b100000 0x0 0x180000>;
no-map;
};
spu_secure_shared_memory_mem: spu-secure-shared-memory-region@9b280000 {
reg = <0x0 0x9b280000 0x0 0x80000>;
no-map;
};
camera_mem: camera-region@9b300000 {
reg = <0x0 0x9b300000 0x0 0x800000>;
no-map;
};
video_mem: video-region@9bb00000 {
reg = <0x0 0x9bb00000 0x0 0x700000>;
no-map;
};
cvp_mem: cvp-region@9c200000 {
reg = <0x0 0x9c200000 0x0 0x700000>;
no-map;
};
cdsp_mem: cdsp-region@9c900000 {
reg = <0x0 0x9c900000 0x0 0x2000000>;
no-map;
};
q6_cdsp_dtb_mem: q6-cdsp-dtb-region@9e900000 {
reg = <0x0 0x9e900000 0x0 0x80000>;
no-map;
};
q6_adsp_dtb_mem: q6-adsp-dtb-region@9e980000 {
reg = <0x0 0x9e980000 0x0 0x80000>;
no-map;
};
adspslpi_mem: adspslpi-region@9ea00000 {
reg = <0x0 0x9ea00000 0x0 0x4080000>;
no-map;
};
mpss_dsm_mem: mpss_dsm_region@d4d00000 {
reg = <0x0 0xd4d00000 0x0 0x3300000>;
no-map;
};
};
};