[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT/PLAT_RASPI PATCH 03/13] plats/raspi: Adding linker script file
Adding the linker script file for the Raspberry Pi 3B+ platform. Signed-off-by: Santiago Pagani <santiagopagani@xxxxxxxxx> --- link.lds.S | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 link.lds.S diff --git a/link.lds.S b/link.lds.S new file mode 100644 index 0000000..5544a1b --- /dev/null +++ b/link.lds.S @@ -0,0 +1,130 @@ +/* + * Copyright (C) 2018, bzt (bztsrc@github), https://github.com/bztsrc/raspi3-tutorial + * Copyright (C) 2020, Santiago Pagani <santiagopagani@xxxxxxxxx> + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + */ +#include <uk/arch/limits.h> +#include <uk/plat/common/common.lds.h> + +#define RAM_BASE_ADDR 0x80000 + +OUTPUT_FORMAT("elf64-littleaarch64") +OUTPUT_ARCH(aarch64) +ENTRY(_libraspiplat_entry) + +SECTIONS +{ + . = RAM_BASE_ADDR; + + /* Place DTB binary at the beginning of the RAM */ + _dtb = .; + //. = . + DTB_RESERVED_SIZE; + + /* Code */ + _text = .; + .text : + { + KEEP(*(.text.boot)) + *(.text) + *(.text.*) + *(.gnu.linkonce.t*) + } + _etext = .; + + . = ALIGN(__PAGE_SIZE); + EXCEPTION_SECTIONS + + CTORTAB_SECTION + + INITTAB_SECTION + + /* Read-only data */ + . = ALIGN(__PAGE_SIZE); + _rodata = .; + .rodata : + { + *(.rodata) + *(.rodata.*) + *(.gnu.linkonce.r*) + } + _erodata = .; + + /* Constructor tables (read-only) */ + . = ALIGN(0x8); + _ctors = .; + .preinit_array : { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } + + . = ALIGN(0x8); + .init_array : { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT_BY_INIT_PRIORITY(.init_array.*) SORT_BY_INIT_PRIORITY(.ctors.*))) + KEEP (*(.init_array .ctors)) + PROVIDE_HIDDEN (__init_array_end = .); + } + _ectors = .; + + . = ALIGN(__PAGE_SIZE); + TLS_SECTIONS + + /* Read-write data that is initialized explicitly in code */ + _data = .; + .data : + { + *(.data) + *(.data.*) + *(.gnu.linkonce.d*) + } + _edata = .; + + /* Read-write data that is not initialized explicitly in code */ + . = ALIGN(__PAGE_SIZE); + __bss_start = .; + .bss (NOLOAD) : + { + *(.bss) + *(.bss.*) + *(COMMON) + } + __bss_end = .; + + . = ALIGN(__PAGE_SIZE); + _pagetables = .; + .pagetables (NOLOAD) : + { + . += 3 * __PAGE_SIZE; + } + + _end = .; + + + . = ALIGN(__PAGE_SIZE); + .comment 0 : { *(.comment) } + DEBUG_SYMBOLS + + /DISCARD/ : { *(.gnu*) *(.note*) } +} +__bss_size = (__bss_end - __bss_start)>>3; -- 2.17.1 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |