blob: be2d087db81a9c6c92a79a68bf107e637a093b28 [file] [log] [blame]
MEMORY
{
/*
For debugging, use 8M rom, 8M prog, 16M ram.
*/
rom (rx) : ORIGIN = 0x20000000, LENGTH = 0x0800000
prog (rx) : ORIGIN = 0x20800000, LENGTH = 0x0800000
ram (!rx) : ORIGIN = 0x10000000, LENGTH = 0x1000000
}
_manifest_code_start = _stext - ORIGIN(rom);
/*
* The end of the .text section relative to the beginning of the associated slot
* for use in the manifest.
*/
_manifest_code_end = _etext - ORIGIN(rom);
/*
* The location of the entry point relative to the beginning of the associated
* slot for use in the manifest.
*/
_manifest_entry_point = _start - ORIGIN(rom);
MPU_MIN_ALIGN = 1K;
SECTIONS {
/*
* The flash header needs to match what the boot ROM for OpenTitan is
* expecting. At the moment, it contains only the entry point, but it
* will eventually contain the signature -- and (hopefully?!) some
* versioning information to make it slightly easier to debug when the
* boot ROM and Tock are out of sync with respect to the definition...
*/
.manifest ORIGIN(rom) : {
. = . + 884; /* magic # comes from manifest.h */
LONG(_manifest_code_start);
LONG(_manifest_code_end);
LONG(_manifest_entry_point);
. = ALIGN(1024);
} > rom
.flash_header : {
LONG(_stext)
} > rom
}
INCLUDE kernel_layout.ld