1// SPDX-License-Identifier: BSD-3-Clause 2/* 3 * Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved. 4 */ 5 6#include "sm8550.dtsi" 7 8/delete-node/ &reserved_memory; 9 10/ { 11 reserved_memory: reserved-memory { 12 #address-cells = <2>; 13 #size-cells = <2>; 14 ranges; 15 16 17 /* These are 3 types of reserved memory regions here: 18 * 1. Firmware related regions which aren't shared with kernel. 19 * The device tree source in kernel doesn't need to have node to 20 * indicate the firmware related reserved information. Bootloader 21 * conveys the information by updating devicetree at runtime. 22 * This will be described as: UEFI saves the physical address of 23 * the UEFI System Table to dts file's chosen node. Kernel read this 24 * table and add reserved memory regions to efi config table. Current 25 * reserved memory region may have reserved region which was not yet 26 * used, release note of the firmware have such kind of information. 27 * 2. Firmware related memory regions which are shared with Kernel 28 * The device tree source in the kernel needs to include nodes 29 * that indicate fimware-related shared information. A label name 30 * is suggested because this type of shared information needs to 31 * be referenced by specific drivers for handling purposes. 32 * Unlike previous platforms, QCS8550 boots using EFI and describes 33 * most reserved regions in the ESRT memory map. As a result, reserved 34 * memory regions which aren't relevant to the kernel(like the hypervisor 35 ( region) don't need to be described in DT. 36 * 3. Remoteproc regions. 37 * Remoteproc regions will be reserved and then assigned to 38 * subsystem firmware later. 39 * Here is a reserved memory map for this platform: 40 * 0x80000000 +-------------------+ 41 * | | 42 * | Firmware Related | 43 * | | 44 * 0x8a800000 +-------------------+ 45 * | | 46 * | Remoteproc Region | 47 * | | 48 * 0xa7000000 +-------------------+ 49 * | | 50 * | Kernel Available | 51 * | | 52 * 0xd4d00000 +-------------------+ 53 * | | 54 * | Firmware Related | 55 * | | 56 * 0x100000000 +-------------------+ 57 */ 58 59 aop_image_mem: aop-image-region@81c00000 { 60 reg = <0x0 0x81c00000 0x0 0x60000>; 61 no-map; 62 }; 63 64 aop_cmd_db_mem: aop-cmd-db-region@81c60000 { 65 compatible = "qcom,cmd-db"; 66 reg = <0x0 0x81c60000 0x0 0x20000>; 67 no-map; 68 }; 69 70 aop_config_mem: aop-config-region@81c80000 { 71 no-map; 72 reg = <0x0 0x81c80000 0x0 0x20000>; 73 }; 74 75 smem_mem: smem-region@81d00000 { 76 compatible = "qcom,smem"; 77 reg = <0x0 0x81d00000 0x0 0x200000>; 78 hwlocks = <&tcsr_mutex 3>; 79 no-map; 80 }; 81 82 adsp_mhi_mem: adsp-mhi-region@81f00000 { 83 reg = <0x0 0x81f00000 0x0 0x20000>; 84 no-map; 85 }; 86 87 mpss_mem: mpss-region@8a800000 { 88 reg = <0x0 0x8a800000 0x0 0x10800000>; 89 no-map; 90 }; 91 92 q6_mpss_dtb_mem: q6-mpss-dtb-region@9b000000 { 93 reg = <0x0 0x9b000000 0x0 0x80000>; 94 no-map; 95 }; 96 97 ipa_fw_mem: ipa-fw-region@9b080000 { 98 reg = <0x0 0x9b080000 0x0 0x10000>; 99 no-map; 100 }; 101 102 ipa_gsi_mem: ipa-gsi-region@9b090000 { 103 reg = <0x0 0x9b090000 0x0 0xa000>; 104 no-map; 105 }; 106 107 gpu_micro_code_mem: gpu-micro-code-region@9b09a000 { 108 reg = <0x0 0x9b09a000 0x0 0x2000>; 109 no-map; 110 }; 111 112 spss_region_mem: spss-region@9b100000 { 113 reg = <0x0 0x9b100000 0x0 0x180000>; 114 no-map; 115 }; 116 117 spu_secure_shared_memory_mem: spu-secure-shared-memory-region@9b280000 { 118 reg = <0x0 0x9b280000 0x0 0x80000>; 119 no-map; 120 }; 121 122 camera_mem: camera-region@9b300000 { 123 reg = <0x0 0x9b300000 0x0 0x800000>; 124 no-map; 125 }; 126 127 video_mem: video-region@9bb00000 { 128 reg = <0x0 0x9bb00000 0x0 0x700000>; 129 no-map; 130 }; 131 132 cvp_mem: cvp-region@9c200000 { 133 reg = <0x0 0x9c200000 0x0 0x700000>; 134 no-map; 135 }; 136 137 cdsp_mem: cdsp-region@9c900000 { 138 reg = <0x0 0x9c900000 0x0 0x2000000>; 139 no-map; 140 }; 141 142 q6_cdsp_dtb_mem: q6-cdsp-dtb-region@9e900000 { 143 reg = <0x0 0x9e900000 0x0 0x80000>; 144 no-map; 145 }; 146 147 q6_adsp_dtb_mem: q6-adsp-dtb-region@9e980000 { 148 reg = <0x0 0x9e980000 0x0 0x80000>; 149 no-map; 150 }; 151 152 adspslpi_mem: adspslpi-region@9ea00000 { 153 reg = <0x0 0x9ea00000 0x0 0x4080000>; 154 no-map; 155 }; 156 157 mpss_dsm_mem: mpss-dsm-region@d4d00000 { 158 reg = <0x0 0xd4d00000 0x0 0x3300000>; 159 no-map; 160 }; 161 }; 162}; 163