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