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