| 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 |