diff options
Diffstat (limited to 'qemu/roms/u-boot/board/gaisler/grsim')
-rw-r--r-- | qemu/roms/u-boot/board/gaisler/grsim/Makefile | 8 | ||||
-rw-r--r-- | qemu/roms/u-boot/board/gaisler/grsim/config.mk | 16 | ||||
-rw-r--r-- | qemu/roms/u-boot/board/gaisler/grsim/grsim.c | 27 | ||||
-rw-r--r-- | qemu/roms/u-boot/board/gaisler/grsim/u-boot.lds | 144 |
4 files changed, 195 insertions, 0 deletions
diff --git a/qemu/roms/u-boot/board/gaisler/grsim/Makefile b/qemu/roms/u-boot/board/gaisler/grsim/Makefile new file mode 100644 index 000000000..4c93bdae8 --- /dev/null +++ b/qemu/roms/u-boot/board/gaisler/grsim/Makefile @@ -0,0 +1,8 @@ +# +# (C) Copyright 2003-2004 +# Wolfgang Denk, DENX Software Engineering, wd@denx.de. +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y := grsim.o diff --git a/qemu/roms/u-boot/board/gaisler/grsim/config.mk b/qemu/roms/u-boot/board/gaisler/grsim/config.mk new file mode 100644 index 000000000..d1f61dac7 --- /dev/null +++ b/qemu/roms/u-boot/board/gaisler/grsim/config.mk @@ -0,0 +1,16 @@ +# +# (C) Copyright 2007 +# Daniel Hellstrom, Gaisler Research, daniel@gaisler.com +# +# SPDX-License-Identifier: GPL-2.0+ +# + +# +# GRSIM simulating a LEON3 GR-XC3S-1500 board +# + +# U-BOOT IN FLASH +CONFIG_SYS_TEXT_BASE = 0x00000000 + +# U-BOOT IN RAM +#CONFIG_SYS_TEXT_BASE = 0x40000000 diff --git a/qemu/roms/u-boot/board/gaisler/grsim/grsim.c b/qemu/roms/u-boot/board/gaisler/grsim/grsim.c new file mode 100644 index 000000000..fd73920b6 --- /dev/null +++ b/qemu/roms/u-boot/board/gaisler/grsim/grsim.c @@ -0,0 +1,27 @@ +/* + * GRSIM/TSIM board + * + * (C) Copyright 2007 + * Daniel Hellstrom, Gaisler Research, daniel@gaisler.com. + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <common.h> +#include <asm/leon.h> + +phys_size_t initdram(int board_type) +{ + return 1; +} + +int checkboard(void) +{ + puts("Board: GRSIM/TSIM\n"); + return 0; +} + +int misc_init_r(void) +{ + return 0; +} diff --git a/qemu/roms/u-boot/board/gaisler/grsim/u-boot.lds b/qemu/roms/u-boot/board/gaisler/grsim/u-boot.lds new file mode 100644 index 000000000..cdc83941e --- /dev/null +++ b/qemu/roms/u-boot/board/gaisler/grsim/u-boot.lds @@ -0,0 +1,144 @@ +/* + * Linker script for Gaisler Research AB's GRSIM LEON3 simulator. + * + * (C) Copyright 2007 + * Daniel Hellstrom, Gaisler Research, daniel@gaisler.com. + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +OUTPUT_FORMAT("elf32-sparc", "elf32-sparc", "elf32-sparc") +OUTPUT_ARCH(sparc) +ENTRY(_start) +SECTIONS +{ + +/* Read-only sections, merged into text segment: */ + . = + SIZEOF_HEADERS; + .interp : { *(.interp) } + .hash : { *(.hash) } + .dynsym : { *(.dynsym) } + .dynstr : { *(.dynstr) } + .rel.text : { *(.rel.text) } + .rela.text : { *(.rela.text) } + .rel.data : { *(.rel.data) } + .rela.data : { *(.rela.data) } + .rel.rodata : { *(.rel.rodata) } + .rela.rodata : { *(.rela.rodata) } + .rel.got : { *(.rel.got) } + .rela.got : { *(.rela.got) } + .rel.ctors : { *(.rel.ctors) } + .rela.ctors : { *(.rela.ctors) } + .rel.dtors : { *(.rel.dtors) } + .rela.dtors : { *(.rela.dtors) } + .rel.bss : { *(.rel.bss) } + .rela.bss : { *(.rela.bss) } + .rel.plt : { *(.rel.plt) } + .rela.plt : { *(.rela.plt) } + .init : { *(.init) } + .plt : { *(.plt) } + + .text : { + _load_addr = .; + _text = .; + + *(.start) + arch/sparc/cpu/leon3/start.o (.text) +/* 8k is the same as the PROM offset from end of main memory, (CONFIG_SYS_PROM_SIZE) */ + . = ALIGN(8192); +/* PROM CODE, Will be relocated to the end of memory, + * no global data accesses please. + */ + __prom_start = .; + *(.prom.pgt) + *(.prom.data) + *(.prom.text) + . = ALIGN(16); + __prom_end = .; + *(.text) + *(.fixup) + *(.gnu.warning) +/* *(.got1)*/ + . = ALIGN(16); + *(.eh_frame) + *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) + } + . = ALIGN(4); + _etext = .; + + /* CMD Table */ + + + . = ALIGN(4); + .u_boot_list : { + KEEP(*(SORT(.u_boot_list*))); + } + + .data : + { + *(.data) + *(.data1) + *(.data.rel) + *(.data.rel.*) + *(.sdata) + *(.sdata2) + *(.dynamic) + CONSTRUCTORS + } + _edata = .; + PROVIDE (edata = .); + + . = ALIGN(4); + __got_start = .; + .got : { + *(.got) +/* *(.data.rel) + *(.data.rel.local)*/ + . = ALIGN(16); + } + __got_end = .; + +/* .data.rel : { } */ + + + . = ALIGN(4096); + __init_begin = .; + .text.init : { *(.text.init) } + .data.init : { *(.data.init) } + . = ALIGN(4096); + __init_end = .; + + __bss_start = .; + .bss : + { + *(.sbss) *(.scommon) + *(.dynbss) + *(.bss) + *(COMMON) + . = ALIGN(16); /* to speed clearing of bss up */ + } + __bss_end = . ; + __bss_end = . ; + PROVIDE (end = .); + +/* Relocated into main memory */ + + /* Start of main memory */ + /*. = 0x40000000;*/ + + .stack (NOLOAD) : { *(.stack) } + + /* PROM CODE */ + + /* global data in RAM passed to kernel after booting */ + + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + +} |