aboutsummaryrefslogtreecommitdiff
path: root/src/lib/program.ld
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/program.ld')
-rw-r--r--src/lib/program.ld12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/lib/program.ld b/src/lib/program.ld
index 7027747bd5..8180d9f1dc 100644
--- a/src/lib/program.ld
+++ b/src/lib/program.ld
@@ -29,22 +29,26 @@
_cbmem_init_hooks = .;
KEEP(*(.rodata.cbmem_init_hooks));
_ecbmem_init_hooks = .;
+ RECORD_SIZE(cbmem_init_hooks)
#endif
. = ALIGN(ARCH_POINTER_ALIGN_SIZE);
_rsbe_init_begin = .;
KEEP(*(.rsbe_init));
_ersbe_init_begin = .;
+ RECORD_SIZE(rsbe_init_begin)
#if ENV_RAMSTAGE
. = ALIGN(ARCH_POINTER_ALIGN_SIZE);
_pci_drivers = .;
KEEP(*(.rodata.pci_driver));
_epci_drivers = .;
+ RECORD_SIZE(pci_drivers)
. = ALIGN(ARCH_POINTER_ALIGN_SIZE);
_cpu_drivers = .;
KEEP(*(.rodata.cpu_driver));
_ecpu_drivers = .;
+ RECORD_SIZE(cpu_drivers)
#endif
. = ALIGN(ARCH_POINTER_ALIGN_SIZE);
@@ -52,6 +56,7 @@
*(.rodata.*);
. = ALIGN(ARCH_POINTER_ALIGN_SIZE);
_etext = .;
+ RECORD_SIZE(text)
} : to_load
#if ENV_RAMSTAGE && (CONFIG(COVERAGE) || CONFIG(ASAN_IN_RAMSTAGE))
@@ -82,6 +87,7 @@
_rmodule_params = .;
KEEP(*(.module_parameters));
_ermodule_params = .;
+ RECORD_SIZE(rmodule_params)
#endif
*(.data);
@@ -92,6 +98,7 @@
#if ENV_ROMSTAGE_OR_BEFORE
PROVIDE(_preram_cbmem_console = .);
PROVIDE(_epreram_cbmem_console = _preram_cbmem_console);
+ PROVIDE(_preram_cbmem_console_size = ABSOLUTE(0));
#elif ENV_RAMSTAGE
. = ALIGN(ARCH_POINTER_ALIGN_SIZE);
_bs_init_begin = .;
@@ -99,10 +106,12 @@
LONG(0);
LONG(0);
_ebs_init_begin = .;
+ RECORD_SIZE(bs_init_begin)
#endif
. = ALIGN(ARCH_POINTER_ALIGN_SIZE);
_edata = .;
+ RECORD_SIZE(data)
}
#endif
@@ -116,6 +125,7 @@
*(.sbss.*)
. = ALIGN(ARCH_POINTER_ALIGN_SIZE);
_ebss = .;
+ RECORD_SIZE(bss)
}
#endif
@@ -126,6 +136,7 @@
. += (ENV_RMODULE ? __heap_size : CONFIG_HEAP_SIZE);
. = ALIGN(ARCH_POINTER_ALIGN_SIZE);
_eheap = .;
+ RECORD_SIZE(heap)
}
#endif
@@ -135,6 +146,7 @@
#endif
_eprogram = .;
+RECORD_SIZE(program)
/* Discard the sections we don't need/want */