blob: eeb90d0d57f2e5e07794895f15f330e2cd07b2f5 [file] [log] [blame]
MEMORY
{
rom (rx) : ORIGIN = 0x20000000, LENGTH = 0x80000
prog (rx) : ORIGIN = 0x20000000 + 0x80000, LENGTH = 0x80000
ram (!rx) : ORIGIN = 0x10000000, LENGTH = 0x20000
}
_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