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