1*036935a8SXiaoDong Huang// SPDX-License-Identifier: BSD-3-Clause 2*036935a8SXiaoDong Huang/* 3*036935a8SXiaoDong Huang * Copyright (c) 2025, Rockchip Electronics Co., Ltd. 4*036935a8SXiaoDong Huang */ 5*036935a8SXiaoDong Huang 6*036935a8SXiaoDong Huang#ifndef ROCKCHIP_PLAT_LD_S 7*036935a8SXiaoDong Huang#define ROCKCHIP_PLAT_LD_S 8*036935a8SXiaoDong Huang 9*036935a8SXiaoDong HuangMEMORY { 10*036935a8SXiaoDong Huang PMUSRAM (rwx): ORIGIN = PMUSRAM_BASE, LENGTH = PMUSRAM_RSIZE 11*036935a8SXiaoDong Huang} 12*036935a8SXiaoDong Huang 13*036935a8SXiaoDong HuangSECTIONS 14*036935a8SXiaoDong Huang{ 15*036935a8SXiaoDong Huang . = PMUSRAM_BASE; 16*036935a8SXiaoDong Huang 17*036935a8SXiaoDong Huang /* 18*036935a8SXiaoDong Huang * pmu_cpuson_entrypoint request address 19*036935a8SXiaoDong Huang * align 64K when resume, so put it in the 20*036935a8SXiaoDong Huang * start of pmusram 21*036935a8SXiaoDong Huang */ 22*036935a8SXiaoDong Huang .text_pmusram : { 23*036935a8SXiaoDong Huang ASSERT(. == ALIGN(64 * 1024), 24*036935a8SXiaoDong Huang ".pmusram.entry request 64K aligned."); 25*036935a8SXiaoDong Huang KEEP(*(.pmusram.entry)) 26*036935a8SXiaoDong Huang __bl31_pmusram_text_start = .; 27*036935a8SXiaoDong Huang *(.pmusram.text) 28*036935a8SXiaoDong Huang *(.pmusram.rodata) 29*036935a8SXiaoDong Huang . = ALIGN(PAGE_SIZE); 30*036935a8SXiaoDong Huang __bl31_pmusram_text_end = .; 31*036935a8SXiaoDong Huang __bl31_pmusram_data_start = .; 32*036935a8SXiaoDong Huang *(.pmusram.data) 33*036935a8SXiaoDong Huang . = ALIGN(PAGE_SIZE); 34*036935a8SXiaoDong Huang __bl31_pmusram_data_end = .; 35*036935a8SXiaoDong Huang 36*036935a8SXiaoDong Huang ASSERT(__bl31_pmusram_data_end <= PMUSRAM_BASE + PMUSRAM_RSIZE, 37*036935a8SXiaoDong Huang ".pmusram has exceeded its limit."); 38*036935a8SXiaoDong Huang } >PMUSRAM 39*036935a8SXiaoDong Huang} 40*036935a8SXiaoDong Huang#endif /* ROCKCHIP_PLAT_LD_S */ 41