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