diff options
Diffstat (limited to 'sys/boot/arm')
| -rw-r--r-- | sys/boot/arm/Makefile | 5 | ||||
| -rw-r--r-- | sys/boot/arm/Makefile.inc | 3 | ||||
| -rw-r--r-- | sys/boot/arm/loader/loader.conf | 13 | ||||
| -rw-r--r-- | sys/boot/arm/uboot/Makefile | 70 | ||||
| -rw-r--r-- | sys/boot/arm/uboot/conf.c | 97 | ||||
| -rw-r--r-- | sys/boot/arm/uboot/help.uboot | 27 | ||||
| -rw-r--r-- | sys/boot/arm/uboot/ldscript.arm | 134 | ||||
| -rw-r--r-- | sys/boot/arm/uboot/start.S | 139 | ||||
| -rw-r--r-- | sys/boot/arm/uboot/version | 9 |
9 files changed, 0 insertions, 497 deletions
diff --git a/sys/boot/arm/Makefile b/sys/boot/arm/Makefile deleted file mode 100644 index 1d12d9831658..000000000000 --- a/sys/boot/arm/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# $FreeBSD$ - -SUBDIR= uboot - -.include <bsd.subdir.mk> diff --git a/sys/boot/arm/Makefile.inc b/sys/boot/arm/Makefile.inc deleted file mode 100644 index 265f86d1ed55..000000000000 --- a/sys/boot/arm/Makefile.inc +++ /dev/null @@ -1,3 +0,0 @@ -# $FreeBSD$ - -.include "../Makefile.inc" diff --git a/sys/boot/arm/loader/loader.conf b/sys/boot/arm/loader/loader.conf deleted file mode 100644 index 4154ab7bcc9f..000000000000 --- a/sys/boot/arm/loader/loader.conf +++ /dev/null @@ -1,13 +0,0 @@ -# This is defaults/loader.conf for ARM, containing defaults for loader(8). -# Do not modify the contents of this file, instead put your customizations -# into /boot/loader.conf or /boot/loader.conf.local -# $FreeBSD$ - -autoboot_delay=10 -bootfile="kernel" # Kernel name (possibly absolute path) -kernel="kernel" # /boot sub-directory containing kernel and modules -loader_conf_files="/boot/loader.conf /boot/loader.conf.local" -module_path="/boot/kernel;/boot/modules;/boot/dtb" -nextboot_conf="/boot/nextboot.conf" -nextboot_enable="NO" -verbose_loading="NO" diff --git a/sys/boot/arm/uboot/Makefile b/sys/boot/arm/uboot/Makefile deleted file mode 100644 index 5bf7d533b942..000000000000 --- a/sys/boot/arm/uboot/Makefile +++ /dev/null @@ -1,70 +0,0 @@ -# $FreeBSD$ - -LOADER_UFS_SUPPORT?= yes -LOADER_CD9660_SUPPORT?= no -LOADER_MSDOS_SUPPORT?= no -LOADER_EXT2FS_SUPPORT?= no -LOADER_NET_SUPPORT?= yes -LOADER_NFS_SUPPORT?= yes -LOADER_TFTP_SUPPORT?= no -LOADER_GZIP_SUPPORT?= no -LOADER_BZIP2_SUPPORT?= no - -.include <bsd.init.mk> - -FILES+= ubldr ubldr.bin - -NEWVERSWHAT= "U-Boot loader" ${MACHINE_ARCH} -INSTALLFLAGS= -b -WARNS?= 1 -# Address at which ubldr will be loaded. -# This varies for different boards and SOCs. -UBLDR_LOADADDR?= 0x1000000 - -# Architecture-specific loader code -SRCS= start.S conf.c self_reloc.c vers.c - -.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} > 40201 -CWARNFLAGS.self_reloc.c+= -Wno-error=maybe-uninitialized -.endif - -HELP_FILES+= help.uboot ${BOOTSRC}/fdt/help.fdt - -# Always add MI sources -.include "${BOOTSRC}/loader.mk" - -CFLAGS+= -ffreestanding -msoft-float - -LDFLAGS= -nostdlib -static -T ${.CURDIR}/ldscript.${MACHINE_CPUARCH} -LDFLAGS+= -Wl,-znotext - -# Pull in common loader code -.include "${BOOTSRC}/uboot.mk" - -CFLAGS+= -fPIC - -DPADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSA} -LDADD= ${LIBFICL} ${LIBUBOOT} ${LIBFDT} ${LIBUBOOT_FDT} ${LIBSA} - -OBJS+= ${SRCS:N*.h:R:S/$/.o/g} - -ldscript.abs: - echo "UBLDR_LOADADDR = ${UBLDR_LOADADDR};" >${.TARGET} - -ldscript.pie: - echo "UBLDR_LOADADDR = 0;" >${.TARGET} - -ubldr: ${OBJS} ldscript.abs ${.CURDIR}/ldscript.${MACHINE_CPUARCH} ${DPADD} - ${CC} ${CFLAGS} -T ldscript.abs ${LDFLAGS} \ - -o ${.TARGET} ${OBJS} ${LDADD} - -ubldr.pie: ${OBJS} ldscript.pie ${.CURDIR}/ldscript.${MACHINE_CPUARCH} ${DPADD} - ${CC} ${CFLAGS} -T ldscript.pie ${LDFLAGS} -pie -Wl,-Bsymbolic \ - -o ${.TARGET} ${OBJS} ${LDADD} - -ubldr.bin: ubldr.pie - ${OBJCOPY} -S -O binary ubldr.pie ${.TARGET} - -CLEANFILES+= ldscript.abs ldscript.pie ubldr ubldr.pie ubldr.bin - -.include <bsd.prog.mk> diff --git a/sys/boot/arm/uboot/conf.c b/sys/boot/arm/uboot/conf.c deleted file mode 100644 index 777a7b20340c..000000000000 --- a/sys/boot/arm/uboot/conf.c +++ /dev/null @@ -1,97 +0,0 @@ -/*- - * Copyright (c) 2008 Semihalf, Rafal Jaworowski - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <stand.h> -#include "bootstrap.h" -#include "libuboot.h" - -#if defined(LOADER_NET_SUPPORT) -#include "dev_net.h" -#endif - -/* Make sure we have an explicit reference to exit so libsa's panic pulls in the MD exit */ -void (*exitfn)(int) = exit; - -struct devsw *devsw[] = { -#if defined(LOADER_DISK_SUPPORT) || defined(LOADER_CD9660_SUPPORT) - &uboot_storage, -#endif -#if defined(LOADER_NET_SUPPORT) - &netdev, -#endif - NULL -}; - -struct fs_ops *file_system[] = { -#if defined(LOADER_UFS_SUPPORT) - &ufs_fsops, -#endif -#if defined(LOADER_CD9660_SUPPORT) - &cd9660_fsops, -#endif -#if defined(LOADER_EXT2FS_SUPPORT) - &ext2fs_fsops, -#endif -#if defined(LOADER_NANDFS_SUPPORT) - &nandfs_fsops, -#endif -#if defined(LOADER_NFS_SUPPORT) - &nfs_fsops, -#endif -#if defined(LOADER_TFTP_SUPPORT) - &tftp_fsops, -#endif -#if defined(LOADER_GZIP_SUPPORT) - &gzipfs_fsops, -#endif -#if defined(LOADER_BZIP2_SUPPORT) - &bzipfs_fsops, -#endif - NULL -}; - -struct netif_driver *netif_drivers[] = { -#if defined(LOADER_NET_SUPPORT) - &uboot_net, -#endif - NULL, -}; - -struct file_format *file_formats[] = { - &uboot_elf, - NULL -}; - -extern struct console uboot_console; - -struct console *consoles[] = { - &uboot_console, - NULL -}; diff --git a/sys/boot/arm/uboot/help.uboot b/sys/boot/arm/uboot/help.uboot deleted file mode 100644 index c1574af92715..000000000000 --- a/sys/boot/arm/uboot/help.uboot +++ /dev/null @@ -1,27 +0,0 @@ -$FreeBSD$ - -############################################################################### -# Tubenv DShow or import U-Boot environment variables - - ubenv <import | show> [varname ...] - - Display U-Boot environment variables, or import them into the - loader environment (which makes them available in the kernel). - -############################################################################### -# Tubenv Simport DImport U-Boot env vars - - ubenv import [varname ...] - - If no variable names are specified, all U-Boot environment - variables are imported. Each variable is prefixed with "uboot." - to avoid any possible conflicts with loader or kernel variables. - -############################################################################### -# Tubenv Sshow DShow U-Boot env vars - - ubenv show [varname ...] - - If no variable names are specified, all U-Boot environment - variables are shown. - diff --git a/sys/boot/arm/uboot/ldscript.arm b/sys/boot/arm/uboot/ldscript.arm deleted file mode 100644 index 8eb604c88887..000000000000 --- a/sys/boot/arm/uboot/ldscript.arm +++ /dev/null @@ -1,134 +0,0 @@ -/* $FreeBSD$ */ - -OUTPUT_ARCH(arm) -ENTRY(_start) -SECTIONS -{ - /* Read-only sections, merged into text segment: */ - . = UBLDR_LOADADDR + SIZEOF_HEADERS; - . = ALIGN(8); - .text : - { - *(.text) - /* .gnu.warning sections are handled specially by elf32.em. */ - *(.gnu.warning) - *(.gnu.linkonce.t*) - } =0 - _etext = .; - PROVIDE (etext = .); - .interp : { *(.interp) } - .hash : { *(.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - .rela.text : - { *(.rela.text) *(.rela.gnu.linkonce.t*) } - .rela.data : - { *(.rela.data) *(.rela.gnu.linkonce.d*) } - .rela.rodata : - { *(.rela.rodata) *(.rela.gnu.linkonce.r*) } - .rela.got : { *(.rela.got) } - .rela.got1 : { *(.rela.got1) } - .rela.got2 : { *(.rela.got2) } - .rela.ctors : { *(.rela.ctors) } - .rela.dtors : { *(.rela.dtors) } - .rela.init : { *(.rela.init) } - .rela.fini : { *(.rela.fini) } - .rela.bss : { *(.rela.bss) } - .rela.plt : { *(.rela.plt) } - .rela.sdata : { *(.rela.sdata) } - .rela.sbss : { *(.rela.sbss) } - .rela.sdata2 : { *(.rela.sdata2) } - .rela.sbss2 : { *(.rela.sbss2) } - .init : { *(.init) } =0 - .fini : { *(.fini) } =0 - .rodata : { *(.rodata) *(.gnu.linkonce.r*) } - .rodata1 : { *(.rodata1) } - .sdata2 : { *(.sdata2) } - .sbss2 : { *(.sbss2) } - /* Adjust the address for the data segment to the doubleword boundary. */ - . = ALIGN(8); - .data : - { - *(.data) - *(.gnu.linkonce.d*) - CONSTRUCTORS - } - .data1 : { *(.data1) } - .got1 : { *(.got1) } - .dynamic : { *(.dynamic) } - /* Put .ctors and .dtors next to the .got2 section, so that the pointers - get relocated with -mrelocatable. Also put in the .fixup pointers. - The current compiler no longer needs this, but keep it around for 2.7.2 */ - PROVIDE (_GOT2_START_ = .); - .got2 : { *(.got2) } - PROVIDE (__CTOR_LIST__ = .); - .ctors : { *(.ctors) } - PROVIDE (__CTOR_END__ = .); - PROVIDE (__DTOR_LIST__ = .); - .dtors : { *(.dtors) } - PROVIDE (__DTOR_END__ = .); - PROVIDE (_FIXUP_START_ = .); - .fixup : { *(.fixup) } - PROVIDE (_FIXUP_END_ = .); - PROVIDE (_GOT2_END_ = .); - PROVIDE (_GOT_START_ = .); - .got : { *(.got) } - .got.plt : { *(.got.plt) } - PROVIDE (_GOT_END_ = .); - /* We want the small data sections together, so single-instruction offsets - can access them all, and initialized data all before uninitialized, so - we can shorten the on-disk segment size. */ - .sdata : { *(.sdata) } - _edata = .; - PROVIDE (edata = .); - .sbss : - { - PROVIDE (__sbss_start = .); - *(.sbss) - *(.scommon) - *(.dynsbss) - PROVIDE (__sbss_end = .); - } - .plt : { *(.plt) } - .bss : - { - PROVIDE (__bss_start = .); - *(.dynbss) - *(.bss) - *(COMMON) - } - _end = . ; - PROVIDE (end = .); - /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - /* SGI/MIPS DWARF 2 extensions */ - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } - /* These must appear regardless of . */ -} diff --git a/sys/boot/arm/uboot/start.S b/sys/boot/arm/uboot/start.S deleted file mode 100644 index 3f7764f2b7b0..000000000000 --- a/sys/boot/arm/uboot/start.S +++ /dev/null @@ -1,139 +0,0 @@ -/*- - * Copyright (c) 2008 Semihalf, Rafal Czubak - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#include <machine/asm.h> -#include <machine/armreg.h> - - .text - .extern _C_LABEL(self_reloc), _C_LABEL(main) - .weak _DYNAMIC - -/* - * Entry point to the loader that U-Boot passes control to. - */ - .globl _start -_start: - -#ifdef _ARM_ARCH_6 - mrc p15, 0, ip, c1, c0, 0 - orr ip, ip, #(CPU_CONTROL_UNAL_ENABLE) - orr ip, ip, #(CPU_CONTROL_AFLT_ENABLE) - mcr p15, 0, ip, c1, c0, 0 -#endif - - /* - * Save r0 and r1 (argc and argv passed from u-boot), and lr (trashed - * by the call to self_reloc below) until we're ready to call main(). - */ - push {r0, r1, lr} - - /* - * Do self-relocation when the weak external symbol _DYNAMIC is non-NULL. - * When linked as a dynamic relocatable file, the linker automatically - * defines _DYNAMIC with a value that is the offset of the dynamic - * relocation info section. - * Note that we're still on u-boot's stack here, but the self_reloc - * code uses only a couple dozen bytes of stack space. - */ - adr ip, .here_off /* .here_off is a symbol whose value */ - ldr r0, [ip] /* is its own offset in the text seg. */ - sub r0, ip, r0 /* Get its pc-relative address and */ - ldr r1, .dynamic_off /* subtract its value and we get */ - teq r1, #0 /* r0 = physaddr we were loaded at. */ - addne r1, r1, r0 /* r1 = dynamic section physaddr. */ - blne _C_LABEL(self_reloc) /* Do reloc if _DYNAMIC is non-NULL. */ - - /* Hint where to look for the API signature */ - ldr ip, =uboot_address - str sp, [ip] - - /* Save U-Boot's r8 and r9 */ - ldr ip, =saved_regs - str r8, [ip, #0] - str r9, [ip, #4] - - /* - * First restore argc, argv, and the u-boot return address, then - * Start loader. This is basically a tail-recursion call; if main() - * returns, it returns to u-boot (which reports the value returned r0). - */ - pop {r0, r1, lr} - b main - - /* - * Data for self-relocation, in the text segment for pc-rel access. - */ -.here_off: - .word . -.dynamic_off: - .word _DYNAMIC - -/* - * syscall() - */ -ENTRY(syscall) - /* Save caller's lr, r8 and r9 */ - ldr ip, =saved_regs - str r8, [ip, #8] - str r9, [ip, #12] - str lr, [ip, #16] - /* Restore U-Boot's r8 and r9 */ - ldr r8, [ip, #0] - ldr r9, [ip, #4] - /* Call into U-Boot */ - ldr lr, =return_from_syscall - ldr ip, =syscall_ptr - ldr pc, [ip] -return_from_syscall: - /* Restore loader's r8, r9 and lr */ - ldr ip, =saved_regs - ldr lr, [ip, #16] - ldr r9, [ip, #12] - ldr r8, [ip, #8] - /* Return to caller */ - mov pc, lr - -/* - * Data section - */ - .data - .align 4 - .globl syscall_ptr -syscall_ptr: - .long 0 - - .globl uboot_address -uboot_address: - .long 0 - -saved_regs: - .long 0 /* U-Boot's r8 */ - .long 0 /* U-Boot's r9 */ - .long 0 /* Loader's r8 */ - .long 0 /* Loader's r9 */ - .long 0 /* Loader's lr */ diff --git a/sys/boot/arm/uboot/version b/sys/boot/arm/uboot/version deleted file mode 100644 index 486c4125cc0d..000000000000 --- a/sys/boot/arm/uboot/version +++ /dev/null @@ -1,9 +0,0 @@ -$FreeBSD$ - -NOTE ANY CHANGES YOU MAKE TO THE BOOTBLOCKS HERE. The format of this -file is important. Make sure the current version number is on line 6. - -1.2: Extended with NAND FS support. -1.1: Flattened Device Tree blob support. -1.0: Added storage support. Booting from HDD, USB, etc. is now possible. -0.5: Initial U-Boot/arm version (netbooting only). |
