blob: e272c7d449a3b3e0f939c43207eb1dbb1c3b1ed9 [file] [log] [blame]
Angel Ponsa2ee7612020-04-04 18:51:15 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Patrick Georgi40a3e322015-06-22 19:41:29 +02002
3#include <memlayout.h>
4
5#include <arch/header.ld>
6
7/*
8 * Note: The BootROM uses the address range [0x4000_0000:0x4000_E000) itself,
9 * so the bootblock loading address must be placed after that. After the
10 * handoff that area may be reclaimed for other uses, e.g. CBFS cache.
11 * TODO: Did this change on Tegra210? What's the new valid range?
12 */
13
14SECTIONS
15{
16 SRAM_START(0x40000000)
Philipp Deppenwiesec9b7d1f2018-11-10 00:35:02 +010017 PRERAM_CBMEM_CONSOLE(0x40000000, 2K)
Julius Wernercefe89e2019-11-06 19:29:44 -080018 FMAP_CACHE(0x40000800, 2K)
Julius Wernerbaf27db2019-10-02 17:28:56 -070019 PRERAM_CBFS_CACHE(0x40001000, 20K)
20 CBFS_MCACHE(0x40006000, 8K)
Christian Walter6d2dbe12019-07-31 16:23:53 +020021 VBOOT2_WORK(0x40008000, 12K)
Sergii Dmytruk2710df72022-11-10 00:40:51 +020022 TPM_LOG(0x4000B000, 2K)
Julius Werner7dcf9d52015-10-16 13:10:02 -070023#if ENV_ARM64
Christian Walter6d2dbe12019-07-31 16:23:53 +020024 STACK(0x4000B800, 3K)
Julius Werner7dcf9d52015-10-16 13:10:02 -070025#else /* AVP gets a separate stack to avoid any chance of handoff races. */
Christian Walter6d2dbe12019-07-31 16:23:53 +020026 STACK(0x4000C400, 3K)
Julius Werner7dcf9d52015-10-16 13:10:02 -070027#endif
Christian Walter6d2dbe12019-07-31 16:23:53 +020028 TIMESTAMP(0x4000D000, 2K)
Julius Wernera2d123e2019-11-12 15:43:12 -080029 BOOTBLOCK(0x4000D800, 42K)
30 OVERLAP_VERSTAGE_ROMSTAGE(0x40018000, 160K)
Patrick Georgi40a3e322015-06-22 19:41:29 +020031 SRAM_END(0x40040000)
32
33 DRAM_START(0x80000000)
34 POSTRAM_CBFS_CACHE(0x80100000, 1M)
Patrick Georgi42f15052023-10-07 11:16:43 +020035 RAMSTAGE(0x80200000, 2M)
Julius Wernerfe4cbf12015-10-07 18:38:24 -070036 TTB(0x100000000 - CONFIG_TTB_SIZE_MB * 1M, CONFIG_TTB_SIZE_MB * 1M)
Patrick Georgi40a3e322015-06-22 19:41:29 +020037}