blob: 96ab74c516ef1fbc7b6525aa67ae46e904503148 [file] [log] [blame]
Angel Pons585495e2020-04-03 01:21:38 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Julius Wernerec5e5e02014-08-20 15:29:56 -07002
3#include <memlayout.h>
Julius Wernerec5e5e02014-08-20 15:29:56 -07004#include <arch/header.ld>
Patrick Rudolphc6ba36f2019-06-12 09:48:31 +02005#include <mainboard/addressmap.h>
Julius Wernerec5e5e02014-08-20 15:29:56 -07006
Patrick Rudolph8a48c922019-06-12 16:22:11 +02007// Stages start after CBFS in DRAM
Patrick Rudolphc6ba36f2019-06-12 09:48:31 +02008#define STAGES_START (QEMU_VIRT_DRAM + CONFIG_ROM_SIZE)
Philipp Hug2ef569a2018-12-31 14:13:47 +01009
Julius Wernerec5e5e02014-08-20 15:29:56 -070010SECTIONS
11{
Patrick Rudolph8a48c922019-06-12 16:22:11 +020012 // the virt target doesn't emulate flash and just puts the CBFS into DRAM.
13 // fake SRAM where CBFS resides. It's only done for better integration.
14 SRAM_START(QEMU_VIRT_DRAM)
Patrick Rudolphc6ba36f2019-06-12 09:48:31 +020015 BOOTBLOCK(QEMU_VIRT_DRAM, 64K)
16 // CBFS goes here
Patrick Rudolph8a48c922019-06-12 16:22:11 +020017 SRAM_END(STAGES_START)
18 DRAM_START(STAGES_START)
19
20#if ENV_ROMSTAGE
21 ROMSTAGE(STAGES_START, 128K)
22#endif
Patrick Rudolph871d2c72019-07-05 19:41:24 +020023#if ENV_RAMSTAGE
24 REGION(opensbi, STAGES_START, 128K, 4K)
25#endif
Patrick Rudolph8a48c922019-06-12 16:22:11 +020026 PRERAM_CBMEM_CONSOLE(STAGES_START + 128K, 8K)
Julius Werner8245bd22019-12-04 20:32:15 -080027 FMAP_CACHE(STAGES_START + 136K, 2K)
Julius Wernerbaf27db2019-10-02 17:28:56 -070028 CBFS_MCACHE(STAGES_START + 138K, 8K)
Patrick Rudolphc6ba36f2019-06-12 09:48:31 +020029 RAMSTAGE(STAGES_START + 200K, 16M)
Patrick Rudolph8a48c922019-06-12 16:22:11 +020030 STACK(STAGES_START + 200K + 16M, 4K)
Julius Wernerec5e5e02014-08-20 15:29:56 -070031}