diff --git a/sys/arch/arm32/boot/Makefile b/sys/arch/arm32/boot/Makefile deleted file mode 100644 index 54a67017d48a..000000000000 --- a/sys/arch/arm32/boot/Makefile +++ /dev/null @@ -1,93 +0,0 @@ -# $NetBSD: Makefile,v 1.3 1996/06/12 19:24:19 mark Exp $ - -# Copyright (c) 1994,1995 Mark Brinicombe. -# Copyright (c) 1994 Brini. -# All rights reserved. -# -# This code is derived from software written for Brini by Mark Brinicombe -# -# 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. -# 3. All advertising materials mentioning features or use of this software -# must display the following acknowledgement: -# This product includes software developed by Brini. -# 4. The name of the company nor the name of the author may be used to -# endorse or promote products derived from this software without specific -# prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY BRINI ``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. -# -# RiscBSD kernel project -# -# Makefile -# -# Makefile for RiscBSD bootloader for RISCOS -# -# Created : 14/01/96 -# - -S= ../../.. - -machine-links: - -rm -f machine && \ - ln -s ${.CURDIR}/../include machine - -rm -f ${MACHINE_ARCH} && \ - ln -s ${.CURDIR}/../include ${MACHINE_ARCH} - -all: machine-links boot - -NOPROG= noprog -NOMAN= noman - -CFLAGS= -O3 -fno-builtin -D_LOCORE -D_KERNEL -I. -I${.CURDIR} -I$S -I${.CURDIR}/../.. -AFLAGS= -D_LOCORE -D_KERNEL -I. -I${.CURDIR} -I$S -I${.CURDIR}/../.. - -### find out what to use for libkern and libsa -#SAREL= -#KERNREL= -#.include "Makefile.inc" -.include "$S/lib/libsa/Makefile.inc" -.include "$S/lib/libkern/Makefile.inc" - -all: boot ${SALIB} ${KERNLIB} - -#.PATH: $S/lib/libkern -#.PATH: $S/lib/libkern/arch/arm32 - -# start.o should be first -OBJS= start.o strcpy.o strlen.o strncmp.o strstr.o \ - svc32.o div.o exit.o enteros.o exitos.o setcpsr.o \ - memcpy.o memset.o ntohl.o _bsdboot.o _main.o \ - areahand.o vsprintf.o bsdbooter.o swiv.o - -boot: ${OBJS} - ${LD} -Bstatic -e start -N -Ttext 0x8000 -o boot ${OBJS} - cp boot boot.sym - @strip boot - @sh ${.CURDIR}/rmaouthdr boot boot.tmp - @mv -f boot.tmp boot - @ls -l boot - -CLEANFILES+=boot boot.sym machine ${MACHINE_ARCH} - -clean:: - rm -f a.out [Ee]rrs mklog core *.core - rm -f ${PROG} ${OBJS} ${LOBJS} ${CLEANFILES} - -.include diff --git a/sys/arch/arm32/boot/Makefile.inc b/sys/arch/arm32/boot/Makefile.inc deleted file mode 100644 index 45bcede83bce..000000000000 --- a/sys/arch/arm32/boot/Makefile.inc +++ /dev/null @@ -1,28 +0,0 @@ -# $NetBSD: Makefile.inc,v 1.1 1996/01/31 23:17:48 mark Exp $ -# -# NOTE: $S must correspond to the top of the 'sys' tree - -KERNDIR= $S/lib/libkern - -KERNDST= lib/kern -KERNREL?= ../../ -KERNLIB?= ${KERNDST}/libkern.a - -${KERNLIB}: .NOTMAIN __always_make_kernlib - @echo making sure the kern library is up to date... - @(cd ${KERNDST} && ${MAKE} -f ${KERNREL}${KERNDIR}/Makefile \ - KERNCC="${CC}" \ - KERNCFLAGS="${CFLAGS}" \ - KERNREL="${KERNREL}" \ - KERNDIR="${KERNDIR}" libkern.o) - -clean:: .NOTMAIN __always_make_kernlib - @echo cleaning the kern library objects - @(cd ${KERNDST} && ${MAKE} -f ${KERNREL}${KERNDIR}/Makefile \ - KERNCC="${CC}" \ - KERNCFLAGS="${CFLAGS}" \ - KERNREL="${KERNREL}" \ - KERNDIR="${KERNDIR}" clean) - -__always_make_kernlib: .NOTMAIN - @([ -d ${KERNDST} ] || mkdir -p ${KERNDST}) diff --git a/sys/arch/arm32/boot/README b/sys/arch/arm32/boot/README deleted file mode 100644 index 27aa4846887f..000000000000 --- a/sys/arch/arm32/boot/README +++ /dev/null @@ -1,7 +0,0 @@ -Ok, this is the bootloader source that can be used to boot NetBSD/arm32 -from RISCOS. This code was written for use with Norcroft C and -objasm under RISCOS. It has been modified to compile under NetBSD/arm32 -but is as yet untested. - -It is provided here for the moment as example code for a boot loader -and will be updated shortly to compile under NetBSD/arm32 diff --git a/sys/arch/arm32/boot/_bsdboot.S b/sys/arch/arm32/boot/_bsdboot.S deleted file mode 100644 index 901fe345a9e2..000000000000 --- a/sys/arch/arm32/boot/_bsdboot.S +++ /dev/null @@ -1,52 +0,0 @@ -/* $NetBSD: _bsdboot.S,v 1.2 1996/06/03 21:24:48 mark Exp $ */ - -/* Copyright (c) 1994 Mark Brinicombe. - * Copyright (c) 1994 Brini. - * All rights reserved. - * - * This code is derived from software written for Brini by Mark Brinicombe - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Brini. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY BRINI ``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 REGENTS 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. - * - * RiscBSD kernel project - * - * _boot.s - * - * Kernel entry/exit code - * - * Created : 12/09/94 - * - * Based on kate/boot/_boot.s - */ - -#include "regs.h" - - .text - .global __bsdboot -__bsdboot: - mov pc, r1 diff --git a/sys/arch/arm32/boot/_main.S b/sys/arch/arm32/boot/_main.S deleted file mode 100644 index 230868775627..000000000000 --- a/sys/arch/arm32/boot/_main.S +++ /dev/null @@ -1,138 +0,0 @@ -/* $NetBSD: _main.S,v 1.2 1996/06/03 21:24:49 mark Exp $ */ - -/* Copyright (c) 1994 Mark Brinicombe. - * Copyright (c) 1994 Brini. - * All rights reserved. - * - * This code is derived from software written for Brini by Mark Brinicombe - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Brini. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY BRINI ``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 REGENTS 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. - * - * RiscBSD kernel project - * - * _main.s - * - * Kernel entry/exit code - * - * Created : 12/09/94 - * - * Based on kate/boot/_main.s - */ - -#include "regs.h" - - .global ___main -___main: - swi 0x20010 - mov sp, r1 - sub sl, sp, #2048 - - ldr r3, [pc, #cli_ptr - . - 8] - str r0, [r3] -#if 0 - LDR a4,[pc,#|__cli_ptr|-.-8] - STR a1,[a4,#0] - LDR a4,[pc,#|__himem_ptr|-.-8] - STR a2,[a4,#0] - LDR a4,[pc,#|__stack_ptr|-.-8] - STR sl,[a4,#0] - LDR a4,[pc,#|__robase_ptr|-.-8] - LDR a1,[a4,#0] - LDR a4,[pc,#|__base_ptr|-.-8] - STR a1,[a4,#0] - LDR a4,[pc,#|__rwlimit_ptr|-.-8] - LDR a1,[a4,#0] - LDR a4,[pc,#|__lomem_ptr|-.-8] - STR a1,[a4,#0] - LDR a4,[pc,#|__break_ptr|-.-8] - STR a1,[a4,#0] -#endif -#if 0 - cmp sl, r0 - movlss pc, lr /* no stack - exit fast */ - add sl, sl, #256 -#endif - mov fp, #0 - b __main - -cli_ptr: - .word ___cli - - .data - .global ___cli -___cli: - .word 0 - -#if 0 - -|__cli_ptr| - DCD |__cli| - -|__robase_ptr| - DCD |__robase| -|__base_ptr| - DCD |__base| -|__rwbase_ptr| - DCD |__rwbase| -|__rwlimit_ptr| - DCD |__rwlimit| -|__himem_ptr| - DCD |__himem| -|__lomem_ptr| - DCD |__lomem| - -|__break_ptr| - DCD |__break| -|__stack_ptr| - DCD |__stack| - -|__time_ptr| - DCD |__time| - - EXPORT |__cli| ; CLI from OS_GetEnv -|__cli| - DCD 0 - - EXPORT |__base| ; BASE (application = 0x8000) -|__base| - DCD 0 - EXPORT |__lomem| ; LOMEM -|__lomem| - DCD 0 - EXPORT |__himem| ; HIMEM from OS_GetEnv -|__himem| - DCD 0 - - EXPORT |__break| ; the 'break' -|__break| - DCD 0 - EXPORT |__stack| ; stack limit -|__stack| - DCD 0 - -#endif diff --git a/sys/arch/arm32/boot/areahand.S b/sys/arch/arm32/boot/areahand.S deleted file mode 100644 index 83d7b07c8341..000000000000 --- a/sys/arch/arm32/boot/areahand.S +++ /dev/null @@ -1,93 +0,0 @@ -/* $NetBSD: areahand.S,v 1.2 1996/06/03 21:24:50 mark Exp $ */ - -/* - * Copyright (c) 1994 Mark Brinicombe. - * Copyright (c) 1994 Brini. - * All rights reserved. - * - * This code is derived from software written for Brini by Mark Brinicombe - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Brini. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY BRINI ``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 REGENTS 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. - * - * RiscBSD kernel project - * - * areahand.s - * - * Created : 12/09/94 - */ - -#include "regs.h" - - .text - .global _kernarea_handler -/* - * r0 - code - * r1 - page block - * r2 - entries - * r3 - size increase - * r4 - current size - * r5 - pagesize - * r12 - arrangement table - */ - -_kernarea_handler: -/* Is it a pregrow request ? */ - teq r0, #0x00000000 - bicnes pc, lr, #1<<28 - -/* Make sure that the area is currently 0 in size */ - teq r4, #0x00000000 - movne r0, #0x000000 - orrnes pc, lr, #1<<28 - - teq r1, #0x00000000 - biceqs pc, lr, #1<<28 - -/* Store registers */ - stmfd sp!, {r0-r12} - -/* Get first page number */ - ldr r8, [r12, #0x0004] - sub r8, r8, r2 - mov r8, #0x00000700 - str r1, [r12] - -loop: - str r8, [r1], #0x000c - add r8, r8, #0x00000001 - subs r2, r2, #0x00000001 - bne loop - - ldmfd sp!, {r0-r12} -/* bics pc, lr, #1<<28 */ - adr r0, error1 - orrs pc, lr, #1<<28 - -error1: - .word 0 - .asciz "error1" diff --git a/sys/arch/arm32/boot/arm6.h b/sys/arch/arm32/boot/arm6.h deleted file mode 100644 index 9c52ce662a9d..000000000000 --- a/sys/arch/arm32/boot/arm6.h +++ /dev/null @@ -1,161 +0,0 @@ -; ARM6 PSR transfer macros - -; Condition code symbols - -Cond_EQ * 0 :SHL: 28 -Cond_NE * 1 :SHL: 28 -Cond_CS * 2 :SHL: 28 -Cond_HS * Cond_CS -Cond_CC * 3 :SHL: 28 -Cond_LO * Cond_CC -Cond_MI * 4 :SHL: 28 -Cond_PL * 5 :SHL: 28 -Cond_VS * 6 :SHL: 28 -Cond_VC * 7 :SHL: 28 -Cond_HI * 8 :SHL: 28 -Cond_LS * 9 :SHL: 28 -Cond_GE * 10 :SHL: 28 -Cond_LT * 11 :SHL: 28 -Cond_GT * 12 :SHL: 28 -Cond_LE * 13 :SHL: 28 -Cond_AL * 14 :SHL: 28 -Cond_ * Cond_AL -Cond_NV * 15 :SHL: 28 - -; New positions of I and F bits in 32-bit PSR - -I32_bit * 1 :SHL: 7 -F32_bit * 1 :SHL: 6 -IF32_26Shift * 26-6 - -; Processor mode numbers - -USR26_mode * 2_00000 -FIQ26_mode * 2_00001 -IRQ26_mode * 2_00010 -SVC26_mode * 2_00011 -USR32_mode * 2_10000 -FIQ32_mode * 2_10001 -IRQ32_mode * 2_10010 -SVC32_mode * 2_10011 -ABT32_mode * 2_10111 -UND32_mode * 2_11011 - -; New register names - -r13_abort RN 13 -r14_abort RN 14 -lr_abort RN 14 - -r13_undef RN 13 -r14_undef RN 14 -lr_undef RN 14 - - MACRO - mrs $cond, $rd, $psrs - LCLA psrtype -psrtype SETA -1 - [ "$psrs" = "CPSR" :LOR: "$psrs" = "CPSR_all" -psrtype SETA 0 :SHL: 22 - ] - [ "$psrs" = "SPSR" :LOR: "$psrs" = "SPSR_all" -psrtype SETA 1 :SHL: 22 - ] - ASSERT psrtype <> -1 - ASSERT $rd <> 15 - & Cond_$cond :OR: 2_00000001000011110000000000000000 :OR: psrtype :OR: ($rd :SHL: 12) - MEND - - MACRO - msr $cond, $psrl, $op2a, $op2b - LCLA psrtype - LCLS op2as - LCLA op - LCLA shift -psrtype SETA -1 - [ "$psrl" = "CPSR" :LOR: "$psrl" = "CPSR_all" -psrtype SETA (0:SHL:22) :OR: (1:SHL:19) :OR: (1:SHL:16) - ] - [ "$psrl" = "CPSR_flg" -psrtype SETA (0:SHL:22) :OR: (1:SHL:19) :OR: (0:SHL:16) - ] - [ "$psrl" = "CPSR_ctl" -psrtype SETA (0:SHL:22) :OR: (0:SHL:19) :OR: (1:SHL:16) - ] - [ "$psrl" = "SPSR" :LOR: "$psrl" = "SPSR_all" -psrtype SETA (1:SHL:22) :OR: (1:SHL:19) :OR: (1:SHL:16) - ] - [ "$psrl" = "SPSR_flg" -psrtype SETA (1:SHL:22) :OR: (1:SHL:19) :OR: (0:SHL:16) - ] - [ "$psrl" = "SPSR_ctl" -psrtype SETA (1:SHL:22) :OR: (0:SHL:19) :OR: (1:SHL:16) - ] - ASSERT psrtype <> -1 - [ ("$op2a" :LEFT: 1) = "#" - ; Immediate operand - -op2as SETS "$op2a" :RIGHT: ((:LEN: "$op2a")-1) -op SETA $op2as - - [ "$op2b" = "" - ; Rotate not specified in immediate operand -shift SETA 0 - WHILE (op :AND: &FFFFFF00)<>0 :LAND: shift<16 -op SETA ((op:SHR:30):AND:3):OR:(op:SHL:2) -shift SETA shift + 1 - WEND - ASSERT (op :AND: &FFFFFF00)=0 - | - ; Rotate of immediate operand specified explicitly - ASSERT (($op2b):AND:&FFFFFFE1)=0 -shift SETA ($opt2b):SHR:1 - ] -op SETA (shift :SHL: 8) :OR: op :OR: (1:SHL:25) - | - - ; Not an immediate operand - [ "$op2b" = "" - ; Unshifted register -op SETA ($op2a) :OR: (0:SHL:25) - | - ! 1, "Shifted register not yet implemented in this macro!" - ] - ] - & Cond_$cond :OR: 2_00000001001000001111000000000000 :OR: op :OR: psrtype - MEND - -; SetMode newmode, reg1, regoldpsr -; -; Sets processor mode to constant value newmode -; using register reg1 as a temporary. -; If regoldpsr is specified, then this register -; on exit holds the old PSR before the mode change -; reg1 on exit always holds the new PSR after the mode change - -; MACRO -; SetMode $newmode, $reg1, $regoldpsr -; [ "$regoldpsr"="" -; mrs AL, $reg1, CPSR_all -; BIC $reg1, $reg1, #&1F -; ORR $reg1, $reg1, #$newmode -; msr AL, CPSR_all, $reg1 -; | -; mrs AL, $regoldpsr, CPSR_all -; BIC $reg1, $regoldpsr, #&1F -; ORR $reg1, $reg1, #$newmode -; msr AL, CPSR_all, $reg1 -; ] -; MEND - - MACRO - mrc $cond, $coproc, $op, $rd, $crn, $crm, $info - & Cond_$cond :OR: 2_00001110000100000000000000010000 :OR: ($coproc :SHL: 8) :OR: ($op :SHL: 21) :OR: ($rd :SHL: 12) :OR: ($crn :SHL: 16) :OR: $crm :OR: ($info :SHL: 5) - MEND - - MACRO - mcr $cond, $coproc, $op, $rd, $crn, $crm, $info - & Cond_$cond :OR: 2_00001110000000000000000000010000 :OR: ($coproc :SHL: 8) :OR: ($op :SHL: 21) :OR: ($rd :SHL: 12) :OR: ($crn :SHL: 16) :OR: $crm :OR: ($info :SHL: 5) - MEND - - END diff --git a/sys/arch/arm32/boot/bsdbooter.c b/sys/arch/arm32/boot/bsdbooter.c deleted file mode 100644 index 35f64eb46e0d..000000000000 --- a/sys/arch/arm32/boot/bsdbooter.c +++ /dev/null @@ -1,774 +0,0 @@ -/* $NetBSD: bsdbooter.c,v 1.2 1996/06/03 21:24:51 mark Exp $ */ - -/* - * Copyright (c) 1994,1995 Mark Brinicombe. - * Copyright (c) 1994,1995 Brini. - * All rights reserved. - * - * This code is derived from software written for Brini by Mark Brinicombe - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mark Brinicombe. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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. - * - * RiscBSD kernel project - * - * bsdbooter.c - * - * RiscBSD boot loader - * - * Created : 12/09/94 - * - * Based on kate/boot/boot.c - */ - -/* Include standard header files */ - -# include -# include -# include - -/* Include local headers */ - -#include -#include -#include -#include -#include -#include "swiv.h" -#include "swis.h" - -/* - * Declare global variables - */ - -# define VERSION "2.10" - -# define USE_MODULEAREA - -# define KERNAREA 512 -# define KERNBASE 0xf0000000 - -# define TABLEAREA 513 -# define LOADAREA 514 - -# define SCRATCHSIZE 0xc000 - - -# define OS_DynamicArea 0x66 -# define OS_Memory 0x68 -# define OS_MMUControl 0x6b - -# define FASTBOOT_FILENAME ".booter.fastboot" - -/* - * Declare external variables - */ - -extern char *__cli; - -/* - * Local vars. Some of these have to be global because they are used after - * the processor has been switches to SVC mode local variables would be - * lost as they would be on the USR mode stack. - */ - -typedef struct exec aout_t; - -BootConfig bootconfig; -int in[3], out[3]; -char kernelname[1024]; -unsigned char *buffer; -static aout_t aout; -unsigned int kernelsize; -unsigned int logical; -unsigned int physical; -unsigned int filesize; -unsigned int copysize; - -/* - * Local function prototypes - */ - -void fatal(struct Error *error); -unsigned char *locate_memory_blocks(void); -void uprintf(char *formattoken, ...); -void _bsdboot(BootConfig *bootconfig, unsigned int address); -int vsprintf(char *buf, const char *fmt, va_list args); - -/* Now for the main code */ - -extern int main (int, char **); - -void __exit(int); - -void _main(void) - { - uprintf("_main entered\n"); - __exit (main (0, (char **)0)); /* ... ignition */ - -/* not reached */ - } - -/* The main booter code */ - -int main(int argc, char *argv[]) - { - char *cliptr; - int loop; - int filehandle; - unsigned char *arrangementtable; - - uprintf("main entered\n"); - -/* Analyse the command line */ - - cliptr = __cli; - - uprintf("command line is %s\n", cliptr); - -/* Skip the command name */ - - while (*cliptr != ' ' && *cliptr != 0) - ++cliptr; - -/* Skip any spaces */ - - while (*cliptr == ' ') - ++cliptr; - -/* Check for another parameter */ - - if (*cliptr != 0) - { - for (loop = 0; *cliptr != ' ' && *cliptr != 0; ++loop,++cliptr) - { - kernelname[loop] = *cliptr; - } - kernelname[loop] = 0; - } - else - strcpy(kernelname, "riscbsd"); - - strcpy(bootconfig.kernelname, kernelname); - -/* Write the command line used to a fastboot file. Execing or Obeying - * this file will boot RiscBSD. This can be used during the RiscOS bootup - * to enable a fast boot. - */ - -/* - * Open the autoboot file. Just skip if file cannot be opened. - */ - - swi(OS_Find, IN(R0|R1)|OUT(R0), 0x80, FASTBOOT_FILENAME, &filehandle); - if (filehandle != 0) - { - swi(OS_GBPB, IN(R0|R1|R2|R3|R4), 2, filehandle, __cli, - strlen(__cli), 0); - swi(OS_GBPB, IN(R0|R1|R2|R3|R4), 2, filehandle, "\n", 1, 0); - -/* Close the file */ - - swi(OS_Find, IN(R0|R1), 0, filehandle); - - swi(OS_File, IN(R0|R1|R2), 18, FASTBOOT_FILENAME, 0xfeb); - } - else - { - uprintf("Warning: Cannot write fastboot file %s\n\r", FASTBOOT_FILENAME); - } - -/* Set the screen mode ... */ - -/* I know this is messy. It is currently just a hack to try things out - * Why didn't Acorn add a SWI call to interpret the mode string and return - * a mode specifer ? - */ - -/* Also this is temporary as eventually the console driver will set the VIDC - * up as required. - * It sort of expects the screenmode= options to be at the end of the string. - */ - - { - char *modeptr; - int modespec[6]; - - modeptr = strstr(__cli, "screenmode="); - if (modeptr) - { - modeptr += 11; - modespec[0] = 0x00000001; - modespec[1] = 0x00000000; - modespec[2] = 0x00000000; - modespec[3] = 0x00000003; - modespec[4] = 0x00000000; - modespec[5] = -1; - - while (*modeptr) - { - switch (*modeptr) - { - case 'X': - case 'x': - ++modeptr; - while (*modeptr >= '0' && *modeptr <= '9') - { - modespec[1] = (modespec[1] * 10) + (*modeptr - '0'); - ++modeptr; - } - break; - - case 'Y': - case 'y': - ++modeptr; - while (*modeptr >= '0' && *modeptr <= '9') - { - modespec[2] = (modespec[2] * 10) + (*modeptr - '0'); - ++modeptr; - } - break; -/* - case 'C': - case 'c': - case 'G': - case 'g': - ++modeptr; - while (*modeptr >= '0' && *modeptr <= '9') - { - modespec[3] = (modespec[3] * 10) + (*modeptr - '0'); - ++modeptr; - } - break; -*/ - case 'F': - case 'f': - ++modeptr; - while (*modeptr >= '0' && *modeptr <= '9') - { - modespec[4] = (modespec[4] * 10) + (*modeptr - '0'); - ++modeptr; - } - break; - - default: - ++modeptr; - break; - } - } - if (modespec[4] == 0) modespec[4] = -1; -/* uprintf("x=%d y=%d c=%d f=%d\n", modespec[1], modespec[2], - modespec[3], modespec[4]);*/ - fatal(swix(Wimp_SetMode, IN(R0), &modespec)); - bootconfig.framerate = modespec[4]; - } - else - bootconfig.framerate = 0; - } - -/* Announcement time .. */ -/* Used to be above but now moved to after the mode change */ - - - if (strstr(__cli, "verbose") != 0) - uprintf("RiscBSD BootLoader " VERSION " " __DATE__ "\n\r"); - -/* A bit of info */ - - if (strstr(__cli, "verbose") != 0) - uprintf("Kernel: %s\n\r", kernelname); - -/* Get the machine id */ - - fatal(swix(OS_ReadSysInfo, IN(R0)|OUT(R3), 2, &bootconfig.machine_id)); - -/* Get the display variables. Failure on any of these will abort the boot */ - - in[0] = 149; - in[1] = 150; - in[2] = -1; - - fatal(swix(OS_ReadVduVariables, IN(R0|R1), &in, &out)); - - bootconfig.display_start = out[0]; - bootconfig.display_size = out[1]; - - fatal(swix(OS_ReadModeVariable, IN(R0|R1) | OUT(R2), -1, 9, - &bootconfig.bitsperpixel)); - fatal(swix(OS_ReadModeVariable, IN(R0|R1) | OUT(R2), -1, 11, - &bootconfig.width)); - fatal(swix(OS_ReadModeVariable, IN(R0|R1) | OUT(R2), -1, 12, - &bootconfig.height)); - -/* Will the kernel support this mode ? */ - - if (bootconfig.bitsperpixel > 3) - { - swi(OS_Write0, IN(R0), - "Error: Only 1, 2, 4 or 8 bpp modes are currently supported\n\r"); - return(0); - } - -/* Get the arrangement table for the memory */ - - arrangementtable = locate_memory_blocks(); - -/* - * Ok we will support a.out files as well. This means that we need to - * identify the format. - */ - -/* Get the size of the file */ - - fatal(swix(OS_File, IN(R0|R1)|OUT(R4), 5, kernelname, &filesize)); - -/* - * Read the start of the file so that we change check for the a.out - * magic number. - */ - - swi(OS_Find, IN(R0|R1)|OUT(R0), 0x40, kernelname, &filehandle); - if (filehandle == 0) - { - uprintf("Error: Cannot read kernel file %s\n\r", kernelname); - return(0); - } - - aout.a_midmag = 0; - - fatal(swix(OS_GBPB, IN(R0|R1|R2|R3|R4), 3, filehandle, &aout, - sizeof(aout_t), 0)); - -/* Do we have an a.out file ? */ - - switch(N_GETMAGIC(aout)) { - case NMAGIC: - if (strstr(__cli, "verbose") != 0) - swi(OS_Write0, IN(R0), "Kernel binary is NMAGIC a.out format\n\r"); - kernelsize = (unsigned int)(aout.a_text + aout.a_data + aout.a_bss); - copysize = (unsigned int)(aout.a_text + aout.a_data); - break; - case OMAGIC: - if (strstr(__cli, "verbose") != 0) - swi(OS_Write0, IN(R0), "Kernel binary is OMAGIC a.out format\n\r"); - kernelsize = (unsigned int)(aout.a_text + aout.a_data + aout.a_bss); - copysize = (unsigned int)(aout.a_text + aout.a_data); - break; - case ZMAGIC: - if (strstr(__cli, "verbose") != 0) - swi(OS_Write0, IN(R0), "Kernel binary is ZMAGIC a.out format\n\r"); - kernelsize = (unsigned int)(aout.a_text + aout.a_data + aout.a_bss); - copysize = (unsigned int)(aout.a_text + aout.a_data); - break; - default: - if (strstr(__cli, "verbose") != 0) - swi(OS_Write0, IN(R0), "Kernel binary is AIF format\n\r"); - kernelsize = filesize; - copysize = filesize; - break; - } - -/* Give ourselves 16K of spare space and round off to a page */ - -/* - * This is messy. We should read the memory info first, but I have not - * changed things yet. This is part of the hack to support a.out files - * as well - */ - - kernelsize = (kernelsize + 0x4000) & ~(bootconfig.pagesize-1); - -/* Set the virtual address of the kernel in the bootconfig structure */ - - bootconfig.kernvirtualbase = KERNBASE; - bootconfig.kernsize = kernelsize; - bootconfig.argvirtualbase = bootconfig.kernvirtualbase - + bootconfig.kernsize; - bootconfig.argsize = bootconfig.pagesize; - bootconfig.scratchvirtualbase = bootconfig.argvirtualbase - + bootconfig.argsize; - bootconfig.scratchsize = SCRATCHSIZE; - - kernelsize += bootconfig.argsize; - - kernelsize += bootconfig.scratchsize; - -/* Verbose info to the user. This is mainly debugging */ - - if (strstr(__cli, "verbose") != 0) - { - uprintf("filesize = %08x\n\r", filesize); - uprintf("bootconfig.kernvirtualbase = %08x\n\r", - bootconfig.kernvirtualbase); - uprintf("bootconfig.kernsize = %08x\n\r", bootconfig.kernsize); - uprintf("bootconfig.argvirtualbase = %08x\n\r", - bootconfig.argvirtualbase); - uprintf("bootconfig.argsize = %08x\n\r", bootconfig.argsize); - uprintf("bootconfig.scratchvirtualbase = %08x\n\r", - bootconfig.scratchvirtualbase); - uprintf("bootconfig.scratchsize = %08x\n\r", bootconfig.scratchsize); - uprintf("kernelsize = %08x\n\r", kernelsize); - uprintf("copysize = %08x\n\r", copysize); - } - -# ifdef USE_MODULEAREA - -/* Allocate memory in module area to hold the data we are loading */ - - fatal(swix(OS_Module, IN(R0|R3)|OUT(R2), 6, filesize, &buffer)); - -# else - -/* Allocate memory to hold the data we are loading */ - - swix(OS_DynamicArea, IN(R0|R1), 1, LOADAREA); - - fatal(swix(OS_DynamicArea, IN(R0|R1|R2|R3|R4|R5|R6|R7|R8)|OUT(R3), 0, - LOADAREA, filesize, -1, 0x80, filesize, 0, 0, "Kate Data", &buffer)); - -# endif - -/* Load the appropriate part depending on the file type */ - - switch (N_GETMAGIC(aout)) { - case OMAGIC: - case NMAGIC: - swi(OS_GBPB, IN(R0|R1|R2|R3|R4), 3, filehandle, buffer, - filesize, sizeof(aout_t)); - break; - case ZMAGIC: - default: - swi(OS_GBPB, IN(R0|R1|R2|R3|R4), 3, filehandle, buffer, - filesize, 0); - break; - } - -/* Close the file */ - - fatal(swix(OS_Find, IN(R0|R1), 0, filehandle)); - - -/* This is redundant at the moment */ - - swix(OS_DynamicArea, IN(R0|R1), 1, KERNAREA); - - fatal(swix(OS_DynamicArea, IN(R0|R1|R2|R3|R4|R5|R6|R7|R8), 0, - KERNAREA, 0, KERNBASE, 0x80, 0x1000, 0, 0, "Kate Kernel")); - -/* Shutdown RiscOS cleanly ... */ - -/* Close all open files and shutdown filing systems */ - - swix(OS_FSControl, IN(R0), 23); - -/* Issue a pre-reset service call to reset the podules */ - - swix(OS_ServiceCall, IN(R1), 0x45); - -/* Kill the etherH module to avoid locks up on reboot */ - - swix(OS_Module, IN(R0|R1), 4, "EtherH"); - -/* More user information describing the memory found */ - - if (strstr(__cli, "verbose") != 0) - { - uprintf("DRAM bank 0a = %08x %08x\n\r", bootconfig.dram[0].address, - bootconfig.dram[0].pages * bootconfig.pagesize); - uprintf("DRAM bank 0b = %08x %08x\n\r", bootconfig.dram[1].address, - bootconfig.dram[1].pages * bootconfig.pagesize); - uprintf("DRAM bank 1a = %08x %08x\n\r", bootconfig.dram[2].address, - bootconfig.dram[2].pages * bootconfig.pagesize); - uprintf("DRAM bank 1b = %08x %08x\n\r", bootconfig.dram[3].address, - bootconfig.dram[3].pages * bootconfig.pagesize); - uprintf("VRAM bank 0 = %08x %08x\n\r", bootconfig.vram[0].address, - bootconfig.vram[0].pages * bootconfig.pagesize); - } - -/* Hack for 2 Meg VRAM until the new console code is in place */ - -/* if (strstr(__cli, "vramhack") != 0) - { - bootconfig.display_size /= 1; - bootconfig.vram[0].pages /= 2; - - uprintf("VRAM bank 0 = %08x %08x\n\r", bootconfig.vram[0].address, - bootconfig.vram[0].pages * bootconfig.pagesize); - }*/ - -/* Jump to SVC26 mode - remember we have no local vars now ! */ - - EnterOS(); - -/* Find the number of the upper most bank of DRAM available */ - - loop = 3; - while (bootconfig.dram[loop].address == 0) - --loop; - -/* Allocate the physical addresses for the kernel in this bank */ - - physical = bootconfig.dram[loop].address - kernelsize - + bootconfig.dram[loop].pages * bootconfig.pagesize; - bootconfig.kernphysicalbase = physical; - bootconfig.argphysicalbase = bootconfig.kernphysicalbase - + bootconfig.kernsize; - bootconfig.scratchphysicalbase = bootconfig.argphysicalbase - + bootconfig.argsize; - -/* Yet more debugging info */ - - if (strstr(__cli, "verbose") != 0) - { - uprintf("buffer = %08x\n\r", buffer); - uprintf("physical = %08x\n\r", physical); - uprintf("bootconfig.kernphysicalbase = %08x\n\r", - bootconfig.kernphysicalbase); - uprintf("bootconfig.argphysicalbase = %08x\n\r", - bootconfig.argphysicalbase); - uprintf("bootconfig.scratchphysicalbase = %08x\n\r", - bootconfig.scratchphysicalbase); - } - -/* - * Ok just check to see if anything is mapped where we are about to map - * the kernel. - */ - -/* - for (logical = KERNBASE; logical < KERNBASE + kernelsize; - logical += bootconfig.pagesize) - { - if (ReadWord(0x02c00000 + (logical >> 10) & 0xfffffffc) != 0) - { - uprintf("Error: Memory required for RiscBSD boot not available\n\r"); - return(0); - } - } -*/ -/* Get out clause */ - - if (strstr(__cli, "noboot") != 0) - { - ExitOS(); - return(0); - } - -/* - * Hook the physical pages to the required virtual address directly by - * writing into RiscOS's page tables. This should be done via a - * dynamic area handler but I cannot get it to work as documented. - */ - - for (logical = KERNBASE; logical < KERNBASE + kernelsize; - logical += bootconfig.pagesize) - { - WriteWord(0x02c00000 + (logical >> 10) & 0xfffffffc, - 0x00000ffe | (physical & 0xfffff000)); - physical += bootconfig.pagesize; - } - -/* Map the IO up high so we can get at it */ - - WriteWord(0x02c0c000 + (0xf6000000 >> 18) & 0xfffffffc, - 0x00000412 | (0x03200000 & 0xfffff000)); - WriteWord(0x02c0c000 + (0xf6100000 >> 18) & 0xfffffffc, - 0x00000412 | (0x03400000 & 0xfffff000)); - - memset((char *)bootconfig.display_start, 0xcc, 0x4000); - -/* Disable IRQ and FIQ interrupts */ - - SetCPSR(I32_bit | F32_bit, I32_bit | F32_bit); - - memset((char *)bootconfig.display_start + 0x4000, 0x55, 0x4000); - - memcpy((char *)bootconfig.argvirtualbase, __cli, bootconfig.argsize); - - memset((char *)bootconfig.display_start + 0x8000, 0x80, 0x4000); - - memset((char *)bootconfig.argvirtualbase, SCRATCHSIZE, 0); - - memset((char *)bootconfig.display_start + 0xC000, 0xbb, 0x4000); - - memcpy((char *)bootconfig.kernvirtualbase, buffer, copysize); - - memset((char *)bootconfig.display_start + 0x10000, 0xaa, 0x4000); - -/* Real late debugging get out clause */ - - if (strstr(__cli, "nearboot") != 0) - { - SetCPSR(I32_bit | F32_bit, 0); - ExitOS(); - return(0); - } - -/* Punch into SVC32 mode */ - - SVC32(); - -/* Point of no return */ - - switch (N_GETMAGIC(aout)) { - case OMAGIC: - case NMAGIC: - case ZMAGIC: - _bsdboot(&bootconfig, (unsigned int)aout.a_entry); - break; - default: - _bsdboot(&bootconfig, KERNBASE); - break; - } - - return(0); - } - - -/* Report an error */ - -void fatal(struct Error *error) - { - if (error) - { - swi(OS_GenerateError, IN(R0), error); - } - } - - -/* Locate all the blocks of memory in the system */ - -unsigned char *locate_memory_blocks(void) - { - int loop; - int page; - int currentpage; - int currentpages; - int currentaddr; - unsigned char *table; - unsigned int pagesize; - unsigned int tablesize; - int dramblocks = 0; - int vramblocks = 0; - -/* Get table size and page size */ - - fatal(swix(OS_Memory, IN(R0)|OUT(R1|R2), 6, &tablesize, &pagesize)); - -/* Allocate memory for table */ - -/*# ifdef USE_MODULEAREA*/ - - fatal(swix(OS_Module, IN(R0|R3)|OUT(R2), 6, tablesize, &table)); - -/*# else*/ - -/* Allocate memory to hold the data we are loading */ - -/* swix(OS_DynamicArea, IN(R0|R1), 1, TABLEAREA); - - fatal(swix(OS_DynamicArea, IN(R0|R1|R2|R3|R4|R5|R6|R7|R8)|OUT(R3), 0, - TABLEAREA, tablesize, -1, 0x80, tablesize, 0, 0, "Kate Table", &table)); - -# endif*/ - - -/* read the table */ - - fatal(swix(OS_Memory, IN(R0|R1), 7, table)); - -/* Loop round locating all the valid blocks of memory */ - - currentpage = -1; - - for (loop = 0; loop < tablesize * 2; ++loop) - { - page = table[loop / 2]; - if (loop % 2) - page = page >> 4; - - page = page & 0x07; - - if (page != currentpage) - { - switch (currentpage) - { - case 1: - bootconfig.dram[dramblocks].address = currentaddr * pagesize; - bootconfig.dram[dramblocks].pages = currentpages; - ++dramblocks; - break; - - case 2: - bootconfig.vram[vramblocks].address = currentaddr * pagesize; - bootconfig.vram[vramblocks].pages = currentpages; - ++vramblocks; - break; - - default : - break; - } - - currentpage = page; - currentaddr = loop; - currentpages = 0; - } - ++currentpages; - } - -/* Get the number of dram and vram pages */ - - fatal(swix(OS_Memory, IN(R0)|OUT(R1), 0x00000108, &bootconfig.drampages)); - fatal(swix(OS_Memory, IN(R0)|OUT(R1), 0x00000208, &bootconfig.vrampages)); - -/* Fill in more bootconfig parameters */ - - bootconfig.pagesize = pagesize; - - bootconfig.dramblocks = dramblocks; - bootconfig.vramblocks = vramblocks; - - return(table); - } - - -/* printf ... */ - -void uprintf(char *formattoken, ...) - { - va_list ap; - char temp[1024]; - - temp[0] = '\0'; - - va_start(ap, formattoken); - vsprintf(temp, formattoken, ap); - va_end(ap); - - swi(OS_Write0, IN(R0), temp); - } - -/* End of bsdbooter.c */ diff --git a/sys/arch/arm32/boot/enteros.S b/sys/arch/arm32/boot/enteros.S deleted file mode 100644 index d86ffcb513be..000000000000 --- a/sys/arch/arm32/boot/enteros.S +++ /dev/null @@ -1,62 +0,0 @@ -/* $NetBSD: enteros.S,v 1.2 1996/06/03 21:24:53 mark Exp $ */ - -/* - * Copyright (c) 1994,1995 Mark Brinicombe. - * Copyright (c) 1994 Brini. - * All rights reserved. - * - * This code is derived from software written for Brini by Mark Brinicombe - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Brini. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY BRINI ``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 REGENTS 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. - * - * RiscBSD kernel project - * - * enteros.s - * - * Created : 12/09/94 - * - * Based on kate/library/enteros.s - */ - -#include "regs.h" - -#define OS_EnterOS 0x0016 - -/* - * Enters SVC26 mode - */ - - .text - .global _EnterOS -_EnterOS: - mov r1, lr - swi OS_EnterOS - - mov r0, pc - mov pc, r1 - diff --git a/sys/arch/arm32/boot/exit.S b/sys/arch/arm32/boot/exit.S deleted file mode 100644 index 575ee47c1c38..000000000000 --- a/sys/arch/arm32/boot/exit.S +++ /dev/null @@ -1,61 +0,0 @@ -/* $NetBSD: exit.S,v 1.2 1996/06/03 21:24:54 mark Exp $ */ - -/* - * Copyright (c) 1994,1995 Mark Brinicombe. - * Copyright (c) 1994 Brini. - * All rights reserved. - * - * This code is derived from software written for Brini by Mark Brinicombe - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Brini. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY BRINI ``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 REGENTS 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. - * - * RiscBSD kernel project - * - * _exit.s - * - * Boot loader exit point - * - * Created : 12/09/94 - * - * Based on kate/boot/_exit.s - */ - -#include "regs.h" - -#define OS_Exit 0x00000011 - - .text - .global ___exit -___exit: - mov r2, r0 - ldr r1, [pc, #Lexit_word - . - 8] - mov r0, #0x00000000 - swi OS_Exit - -Lexit_word: - .word 0x58454241 diff --git a/sys/arch/arm32/boot/exitos.S b/sys/arch/arm32/boot/exitos.S deleted file mode 100644 index fb5ff79baa55..000000000000 --- a/sys/arch/arm32/boot/exitos.S +++ /dev/null @@ -1,60 +0,0 @@ -/* $NetBSD: exitos.S,v 1.2 1996/06/03 21:24:55 mark Exp $ */ - -/* - * Copyright (c) 1994,1995 Mark Brinicombe. - * Copyright (c) 1994 Brini. - * All rights reserved. - * - * This code is derived from software written for Brini by Mark Brinicombe - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Brini. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY BRINI ``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 REGENTS 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. - * - * RiscBSD kernel project - * - * exitos.s - * - * - * - * Created : 12/09/94 - * - * Based on kate/library/exitos.s - * - */ - -#include "regs.h" - -/* - * Returns from SVC26 mode to USR26 mode - */ - - .text - .global _ExitOS -_ExitOS: - mov r2, lr - bic r2, r2, #0x00000003 - movs pc, r2 diff --git a/sys/arch/arm32/boot/memcpy.S b/sys/arch/arm32/boot/memcpy.S deleted file mode 100644 index 7502a406bb96..000000000000 --- a/sys/arch/arm32/boot/memcpy.S +++ /dev/null @@ -1,110 +0,0 @@ -/* $NetBSD: memcpy.S,v 1.2 1996/06/03 21:24:56 mark Exp $ */ - -/* - * Copyright (c) 1995 Mark Brinicombe. - * Copyright (c) 1995 Brini. - * All rights reserved. - * - * This code is derived from software written for Brini by Mark Brinicombe - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Brini. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY BRINI ``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 BRINI 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. - * - * RiscBSD kernel project - * - * memset.S - * - * optimized memset function - * - * Created : 16/05/95 - */ - -sp .req r13 -lr .req r14 -pc .req r15 - -.text - .global _bcopy - .global _ovbcopy - -_bcopy: -_ovbcopy: - teq r2, #0x00000000 - moveq r0, #0x00000000 - moveq pc, lr - cmp r0, r1 - blt bcopy_back - -bcopy_loop: - ldrb r3, [r0], #0x0001 - strb r3, [r1], #0x0001 - subs r2, r2, #0x00000001 - bne bcopy_loop - - mov pc, r14 - -bcopy_back: - add r0, r0, r2 - add r1, r1, r2 - -bcopy_bloop: - ldrb r3, [r0, #-0x0001]! - strb r3, [r1, #-0x0001]! - subs r2, r2, #0x00000001 - bne bcopy_bloop - - mov pc, r14 - - - .global _memcpy - -_memcpy: - teq r2, #0x00000000 - moveq r0, #0x00000000 - moveq pc, lr - cmp r1, r0 - blt memcpy_back - -memcpy_loop: - ldrb r3, [r1], #0x0001 - strb r3, [r0], #0x0001 - subs r2, r2, #0x00000001 - bne memcpy_loop - - mov pc, r14 - -memcpy_back: - add r0, r0, r2 - add r1, r1, r2 - -memcpy_bloop: - ldrb r3, [r1, #-0x0001]! - strb r3, [r0, #-0x0001]! - subs r2, r2, #0x00000001 - bne memcpy_bloop - - mov pc, r14 diff --git a/sys/arch/arm32/boot/memset.S b/sys/arch/arm32/boot/memset.S deleted file mode 100644 index b97aa4aeceab..000000000000 --- a/sys/arch/arm32/boot/memset.S +++ /dev/null @@ -1,133 +0,0 @@ -/* $NetBSD: memset.S,v 1.2 1996/06/03 21:24:58 mark Exp $ */ - -/* - * Copyright (c) 1995 Mark Brinicombe. - * Copyright (c) 1995 Brini. - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Mark Brinicombe. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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. - * - * RiscBSD kernel project - * - * memset.S - * - * optimized memset function - * - * Created : 16/05/95 - */ - -sp .req r13 -lr .req r14 -pc .req r15 - -.text - - .global _memset - -/* Sets a block of memory to the specified value - * - * r0 - address - * r1 - byte to write - * r2 - number of bytes to write - */ - -_memset: - and r1, r1, #0x000000ff /* We write bytes */ - - cmp r2, #0x00000004 /* Do we have less than 4 bytes */ - blt memset_lessthanfour - -/* Ok first we will word align the address */ - - ands r3, r0, #0x00000003 /* Get the bottom two bits */ - beq memset_addraligned /* The address is word aligned */ - - rsb r3, r3, #0x00000004 - sub r2, r2, r3 - cmp r3, #0x00000002 - strb r1, [r0], #0x0001 /* Set 1 byte */ - strgeb r1, [r0], #0x0001 /* Set another byte */ - strgtb r1, [r0], #0x0001 /* and a third */ - - cmp r2, #0x00000004 - blt memset_lessthanfour - -/* Now we must be word aligned */ - -memset_addraligned: - - orr r3, r1, r1, lsl #8 /* Repeat the byte into a word */ - orr r3, r3, r3, lsl #16 - -/* We know we have at least 4 bytes ... */ - - cmp r2, #0x00000020 /* If less than 32 then use words */ - blt memset_lessthan32 - -/* We have at least 32 so lets use quad words */ - - stmfd sp!, {r4-r6} /* Store registers */ - mov r4, r3 /* Duplicate data */ - mov r5, r3 - mov r6, r3 - -memset_loop16: - stmia r0!, {r3-r6} /* Store 16 bytes */ - sub r2, r2, #0x00000010 /* Adjust count */ - cmp r2, #0x00000010 /* Still got at least 16 bytes ? */ - bgt memset_loop16 - - ldmfd sp!, {r4-r6} /* Restore registers */ - -/* Do we need to set some words as well ? */ - - cmp r2, #0x00000004 - blt memset_lessthanfour - -/* Have either less than 16 or less than 32 depending on route taken */ - -memset_lessthan32: - -/* We have at least 4 bytes so copy as words */ - -memset_loop4: - str r3, [r0], #0x0004 - sub r2, r2, #0x0004 - cmp r2, #0x00000004 - bge memset_loop4 - -memset_lessthanfour: - cmp r2, #0x00000000 - moveq pc, lr /* Zero length so exit */ - - cmp r2, #0x00000002 - strb r1, [r0], #0x0001 /* Set 1 byte */ - strgeb r1, [r0], #0x0001 /* Set another byte */ - strgtb r1, [r0], #0x0001 /* and a third */ - - mov pc, lr /* Exit */ diff --git a/sys/arch/arm32/boot/regs.h b/sys/arch/arm32/boot/regs.h deleted file mode 100644 index 3832c4a2b9cd..000000000000 --- a/sys/arch/arm32/boot/regs.h +++ /dev/null @@ -1,49 +0,0 @@ -/* $NetBSD: regs.h,v 1.2 1996/06/03 21:24:59 mark Exp $ */ - -/* Copyright (c) 1994,1995 Mark Brinicombe. - * Copyright (c) 1994 Brini. - * All rights reserved. - * - * This code is derived from software written for Brini by Mark Brinicombe - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Brini. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY BRINI ``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 REGENTS 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. - * - * RiscBSD kernel project - * - * regs.h - * - * Assembly register definitions - * - * Created : 14/01/96 - */ - -fp .req r11 -sl .req r12 -sp .req r13 -lr .req r14 -pc .req r15 diff --git a/sys/arch/arm32/boot/rmaouthdr b/sys/arch/arm32/boot/rmaouthdr deleted file mode 100644 index 39e09843891c..000000000000 --- a/sys/arch/arm32/boot/rmaouthdr +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -# $NetBSD: rmaouthdr,v 1.1 1996/01/31 23:18:23 mark Exp $ - -dd if=$1 of=$2 ibs=32 skip=1 obs=1024b diff --git a/sys/arch/arm32/boot/setcpsr.S b/sys/arch/arm32/boot/setcpsr.S deleted file mode 100644 index 18d457df76ac..000000000000 --- a/sys/arch/arm32/boot/setcpsr.S +++ /dev/null @@ -1,92 +0,0 @@ -/* $NetBSD: setcpsr.S,v 1.2 1996/06/03 21:25:00 mark Exp $ */ - -/* - * Copyright (c) 1994 Mark Brinicombe. - * Copyright (c) 1994 Brini. - * All rights reserved. - * - * This code is derived from software written for Brini by Mark Brinicombe - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Brini. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY BRINI ``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 BRINI 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. - * - * RiscBSD kernel project - * - * setcpsr.S - * - * Miscellaneous routines to play with the CPSR register - * - * Eventually this routine can be inline assembly. - * - * Created : 12/09/94 - * - * Based of kate/display/setcpsr.s - */ - -fp .req r11 -ip .req r12 -sp .req r13 -lr .req r14 -pc .req r15 - -.text - - .global _SetCPSR - -/* Sets and clears bits in the CPSR register - * - * r0 - bic mask - * r1 - eor mask - */ - -_SetCPSR: -/* mov ip, sp - stmfd sp!, {fp, ip, lr, pc} - sub fp, ip, #4*/ - - mrs r3, cpsr_all /* Set the CPSR */ - bic r2, r3, r0 - eor r2, r2, r1 - msr cpsr_all, r2 - - mov r0, r3 /* Return the old CPSR */ - -/* ldmea fp, {fp, sp, pc}*/ - mov pc, lr - - .global _GetCPSR - -/* Gets the CPSR register - * - * Returns the CPSR in r0 - */ - -_GetCPSR: - mrs r0, cpsr_all /* Get the CPSR */ - - mov pc, lr - diff --git a/sys/arch/arm32/boot/start.S b/sys/arch/arm32/boot/start.S deleted file mode 100644 index 3f570adb7b0f..000000000000 --- a/sys/arch/arm32/boot/start.S +++ /dev/null @@ -1,51 +0,0 @@ -/* $NetBSD: start.S,v 1.2 1996/06/03 21:25:01 mark Exp $ */ - -/* Copyright (c) 1994 Mark Brinicombe. - * Copyright (c) 1994 Brini. - * All rights reserved. - * - * This code is derived from software written for Brini by Mark Brinicombe - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Brini. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY BRINI ``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 REGENTS 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. - * - * RiscBSD kernel project - * - * _main.s - * - * Kernel entry/exit code - * - * Created : 12/09/94 - * - * Based on kate/boot/_main.s - */ - -#include "regs.h" - - .global start -start: - b ___main diff --git a/sys/arch/arm32/boot/strstr.c b/sys/arch/arm32/boot/strstr.c deleted file mode 100644 index fb42833a55aa..000000000000 --- a/sys/arch/arm32/boot/strstr.c +++ /dev/null @@ -1,68 +0,0 @@ -/* $NetBSD: strstr.c,v 1.2 1996/06/03 21:25:02 mark Exp $ */ - -/* - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Chris Torek. - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - * - * from: strstr.c,v 1.4 1995/06/15 00:08:43 jtc Exp - */ - -#include -#include - -/* - * Find the first occurrence of find in s. - */ - -char * -strstr(s, find) - register const char *s, *find; -{ - register char c, sc; - register size_t len; - - if ((c = *find++) != 0) { - len = strlen(find); - do { - do { - if ((sc = *s++) == 0) - return (NULL); - } while (sc != c); - } while (strncmp(s, find, len) != 0); - s--; - } - return ((char *)s); -} - -/* End of strstr.c */ diff --git a/sys/arch/arm32/boot/svc32.S b/sys/arch/arm32/boot/svc32.S deleted file mode 100644 index b1e88fb09060..000000000000 --- a/sys/arch/arm32/boot/svc32.S +++ /dev/null @@ -1,63 +0,0 @@ -/* $NetBSD: svc32.S,v 1.2 1996/06/03 21:25:03 mark Exp $ */ - -/* - * Copyright (c) 1994,1955 Mark Brinicombe. - * Copyright (c) 1994 Brini. - * All rights reserved. - * - * This code is derived from software written for Brini by Mark Brinicombe - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Brini. - * 4. The name of the company nor the name of the author may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY BRINI ``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 REGENTS 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. - * - * RiscBSD kernel project - * - * svc32.s - * - * Created : 12/09/94 - * - * Based on kate/library/svc32.s - */ - -#include "regs.h" -#include - -/* - * Switches from SVC26 mode to SVC32 mode - */ - - .text - .global _SVC32 -_SVC32: - mrs r1, cpsr_all - bic r1, r1, #(PSR_MODE) - orr r1, r1, #(PSR_SVC32_MODE) - msr cpsr_all, r1 - - bic lr, lr, #0xfc000000 - - mov pc, lr diff --git a/sys/arch/arm32/boot/swis.h b/sys/arch/arm32/boot/swis.h deleted file mode 100644 index fc3f614d89cb..000000000000 --- a/sys/arch/arm32/boot/swis.h +++ /dev/null @@ -1,596 +0,0 @@ -/* - Title: Swi numbers for RiscOs - Copyright (C) 1989, Acorn Computers Ltd., Cambridge, England - $Revision: 1.1 $ SWI_LIST 1.00 02-May-89 (Program generated) -*/ - -#ifndef __swis_h -#define __swis_h - -#define XOS_Bit 0x020000 - -#define OS_WriteI 0x000100 - -#define OS_WriteC 0x000000 -#define OS_WriteS 0x000001 -#define OS_Write0 0x000002 -#define OS_NewLine 0x000003 -#define OS_ReadC 0x000004 -#define OS_CLI 0x000005 -#define OS_Byte 0x000006 -#define OS_Word 0x000007 -#define OS_File 0x000008 -#define OS_Args 0x000009 -#define OS_BGet 0x00000a -#define OS_BPut 0x00000b -#define OS_GBPB 0x00000c -#define OS_Find 0x00000d -#define OS_ReadLine 0x00000e -#define OS_Control 0x00000f -#define OS_GetEnv 0x000010 -#define OS_Exit 0x000011 -#define OS_SetEnv 0x000012 -#define OS_IntOn 0x000013 -#define OS_IntOff 0x000014 -#define OS_CallBack 0x000015 -#define OS_EnterOS 0x000016 -#define OS_BreakPt 0x000017 -#define OS_BreakCtrl 0x000018 -#define OS_UnusedSWI 0x000019 -#define OS_UpdateMEMC 0x00001a -#define OS_SetCallBack 0x00001b -#define OS_Mouse 0x00001c -#define OS_Heap 0x00001d -#define OS_Module 0x00001e -#define OS_Claim 0x00001f -#define OS_Release 0x000020 -#define OS_ReadUnsigned 0x000021 -#define OS_GenerateEvent 0x000022 -#define OS_ReadVarVal 0x000023 -#define OS_SetVarVal 0x000024 -#define OS_GSInit 0x000025 -#define OS_GSRead 0x000026 -#define OS_GSTrans 0x000027 -#define OS_BinaryToDecimal 0x000028 -#define OS_FSControl 0x000029 -#define OS_ChangeDynamicArea 0x00002a -#define OS_GenerateError 0x00002b -#define OS_ReadEscapeState 0x00002c -#define OS_EvaluateExpression 0x00002d -#define OS_SpriteOp 0x00002e -#define OS_ReadPalette 0x00002f -#define OS_ServiceCall 0x000030 -#define OS_ReadVduVariables 0x000031 -#define OS_ReadPoint 0x000032 -#define OS_UpCall 0x000033 -#define OS_CallAVector 0x000034 -#define OS_ReadModeVariable 0x000035 -#define OS_RemoveCursors 0x000036 -#define OS_RestoreCursors 0x000037 -#define OS_SWINumberToString 0x000038 -#define OS_SWINumberFromString 0x000039 -#define OS_ValidateAddress 0x00003a -#define OS_CallAfter 0x00003b -#define OS_CallEvery 0x00003c -#define OS_RemoveTickerEvent 0x00003d -#define OS_InstallKeyHandler 0x00003e -#define OS_CheckModeValid 0x00003f -#define OS_ChangeEnvironment 0x000040 -#define OS_ClaimScreenMemory 0x000041 -#define OS_ReadMonotonicTime 0x000042 -#define OS_SubstituteArgs 0x000043 -#define OS_PrettyPrint 0x000044 -#define OS_Plot 0x000045 -#define OS_WriteN 0x000046 -#define OS_AddToVector 0x000047 -#define OS_WriteEnv 0x000048 -#define OS_ReadArgs 0x000049 -#define OS_ReadRAMFsLimits 0x00004a -#define OS_ClaimDeviceVector 0x00004b -#define OS_ReleaseDeviceVector 0x00004c -#define OS_DelinkApplication 0x00004d -#define OS_RelinkApplication 0x00004e -#define OS_HeapSort 0x00004f -#define OS_ExitAndDie 0x000050 -#define OS_ReadMemMapInfo 0x000051 -#define OS_ReadMemMapEntries 0x000052 -#define OS_SetMemMapEntries 0x000053 -#define OS_AddCallBack 0x000054 -#define OS_ReadDefaultHandler 0x000055 -#define OS_SetECFOrigin 0x000056 -#define OS_SerialOp 0x000057 -#define OS_ReadSysInfo 0x000058 -#define OS_Confirm 0x000059 -#define OS_ChangedBox 0x00005a -#define OS_CRC 0x00005b -#define OS_ReadDynamicArea 0x00005c -#define OS_PrintChar 0x00005d -#define OS_ChangeRedirection 0x00005e -#define OS_RemoveCallBack 0x00005f -#define OS_FindMemMapEntries 0x000060 -#define OS_SetColour 0x000061 -#define OS_ConvertStandardDateAndTime 0x0000c0 -#define OS_ConvertDateAndTime 0x0000c1 -#define OS_ConvertHex1 0x0000d0 -#define OS_ConvertHex2 0x0000d1 -#define OS_ConvertHex4 0x0000d2 -#define OS_ConvertHex6 0x0000d3 -#define OS_ConvertHex8 0x0000d4 -#define OS_ConvertCardinal1 0x0000d5 -#define OS_ConvertCardinal2 0x0000d6 -#define OS_ConvertCardinal3 0x0000d7 -#define OS_ConvertCardinal4 0x0000d8 -#define OS_ConvertInteger1 0x0000d9 -#define OS_ConvertInteger2 0x0000da -#define OS_ConvertInteger3 0x0000db -#define OS_ConvertInteger4 0x0000dc -#define OS_ConvertBinary1 0x0000dd -#define OS_ConvertBinary2 0x0000de -#define OS_ConvertBinary3 0x0000df -#define OS_ConvertBinary4 0x0000e0 -#define OS_ConvertSpacedCardinal1 0x0000e1 -#define OS_ConvertSpacedCardinal2 0x0000e2 -#define OS_ConvertSpacedCardinal3 0x0000e3 -#define OS_ConvertSpacedCardinal4 0x0000e4 -#define OS_ConvertSpacedInteger1 0x0000e5 -#define OS_ConvertSpacedInteger2 0x0000e6 -#define OS_ConvertSpacedInteger3 0x0000e7 -#define OS_ConvertSpacedInteger4 0x0000e8 -#define OS_ConvertFixedNetStation 0x0000e9 -#define OS_ConvertNetStation 0x0000ea -#define OS_ConvertFixedFileSize 0x0000eb -#define OS_ConvertFileSize 0x0000ec -#define IIC_Control 0x000240 -#define Cache_Control 0x000280 -#define Cache_Cacheable 0x000281 -#define Cache_Updateable 0x000282 -#define Cache_Disruptive 0x000283 -#define Cache_Flush 0x000284 -#define Trace_R0 0x00bf00 -#define Trace_R1 0x00bf01 -#define Trace_R2 0x00bf02 -#define Trace_R3 0x00bf03 -#define Trace_R4 0x00bf04 -#define Trace_R5 0x00bf05 -#define Trace_R6 0x00bf06 -#define Trace_R7 0x00bf07 -#define Trace_R8 0x00bf08 -#define Trace_R9 0x00bf09 -#define Trace_R10 0x00bf0a -#define Trace_R11 0x00bf0b -#define Trace_R12 0x00bf0c -#define Trace_R13 0x00bf0d -#define Trace_R14 0x00bf0e -#define Trace_R15 0x00bf0f -#define Trace_Regs 0x00bf10 -#define Trace_WriteC 0x00bf11 -#define Trace_NewLine 0x00bf12 -#define Trace_WriteS 0x00bf13 -#define Trace_Write0 0x00bf14 -#define Font_CacheAddr 0x040080 -#define Font_FindFont 0x040081 -#define Font_LoseFont 0x040082 -#define Font_ReadDefn 0x040083 -#define Font_ReadInfo 0x040084 -#define Font_StringWidth 0x040085 -#define Font_Paint 0x040086 -#define Font_Caret 0x040087 -#define Font_ConverttoOS 0x040088 -#define Font_Converttopoints 0x040089 -#define Font_SetFont 0x04008a -#define Font_CurrentFont 0x04008b -#define Font_FutureFont 0x04008c -#define Font_FindCaret 0x04008d -#define Font_CharBBox 0x04008e -#define Font_ReadScaleFactor 0x04008f -#define Font_SetScaleFactor 0x040090 -#define Font_ListFonts 0x040091 -#define Font_SetFontColours 0x040092 -#define Font_SetPalette 0x040093 -#define Font_ReadThresholds 0x040094 -#define Font_SetThresholds 0x040095 -#define Font_FindCaretJ 0x040096 -#define Font_StringBBox 0x040097 -#define Font_ReadColourTable 0x040098 -#define Font_MakeBitmap 0x040099 -#define Font_UnCacheFile 0x04009a -#define Font_SetFontMax 0x04009b -#define Font_ReadFontMax 0x04009c -#define Font_ReadFontPrefix 0x04009d -#define Font_SwitchOutputToBuffer 0x04009e -#define Font_ReadFontMetrics 0x04009f -#define Font_DecodeMenu 0x0400a0 -#define Font_ScanString 0x0400a1 -#define Font_SetColourTable 0x0400a2 -#define Font_CurrentRGB 0x0400a3 -#define Font_FutureRGB 0x0400a4 -#define Font_ReadEncodingFilename 0x0400a5 -#define Font_FindField 0x0400a6 -#define Font_ApplyFields 0x0400a7 -#define Font_LookupFont 0x0400a8 -#define Wimp_Initialise 0x0400c0 -#define Wimp_CreateWindow 0x0400c1 -#define Wimp_CreateIcon 0x0400c2 -#define Wimp_DeleteWindow 0x0400c3 -#define Wimp_DeleteIcon 0x0400c4 -#define Wimp_OpenWindow 0x0400c5 -#define Wimp_CloseWindow 0x0400c6 -#define Wimp_Poll 0x0400c7 -#define Wimp_RedrawWindow 0x0400c8 -#define Wimp_UpdateWindow 0x0400c9 -#define Wimp_GetRectangle 0x0400ca -#define Wimp_GetWindowState 0x0400cb -#define Wimp_GetWindowInfo 0x0400cc -#define Wimp_SetIconState 0x0400cd -#define Wimp_GetIconState 0x0400ce -#define Wimp_GetPointerInfo 0x0400cf -#define Wimp_DragBox 0x0400d0 -#define Wimp_ForceRedraw 0x0400d1 -#define Wimp_SetCaretPosition 0x0400d2 -#define Wimp_GetCaretPosition 0x0400d3 -#define Wimp_CreateMenu 0x0400d4 -#define Wimp_DecodeMenu 0x0400d5 -#define Wimp_WhichIcon 0x0400d6 -#define Wimp_SetExtent 0x0400d7 -#define Wimp_SetPointerShape 0x0400d8 -#define Wimp_OpenTemplate 0x0400d9 -#define Wimp_CloseTemplate 0x0400da -#define Wimp_LoadTemplate 0x0400db -#define Wimp_ProcessKey 0x0400dc -#define Wimp_CloseDown 0x0400dd -#define Wimp_StartTask 0x0400de -#define Wimp_ReportError 0x0400df -#define Wimp_GetWindowOutline 0x0400e0 -#define Wimp_PollIdle 0x0400e1 -#define Wimp_PlotIcon 0x0400e2 -#define Wimp_SetMode 0x0400e3 -#define Wimp_SetPalette 0x0400e4 -#define Wimp_ReadPalette 0x0400e5 -#define Wimp_SetColour 0x0400e6 -#define Wimp_SendMessage 0x0400e7 -#define Wimp_CreateSubMenu 0x0400e8 -#define Wimp_SpriteOp 0x0400e9 -#define Wimp_BaseOfSprites 0x0400ea -#define Wimp_BlockCopy 0x0400eb -#define Wimp_SlotSize 0x0400ec -#define Wimp_ReadPixTrans 0x0400ed -#define Wimp_ClaimFreeMemory 0x0400ee -#define Wimp_CommandWindow 0x0400ef -#define Wimp_TextColour 0x0400f0 -#define Wimp_TransferBlock 0x0400f1 -#define Wimp_ReadSysInfo 0x0400f2 -#define Wimp_SetFontColours 0x0400f3 -#define Wimp_GetMenuState 0x0400f4 -#define Wimp_RegisterFilter 0x0400f5 -#define Wimp_AddMessages 0x0400f6 -#define Wimp_RemoveMessages 0x0400f7 -#define Wimp_SetColourMapping 0x0400f8 -#define Sound_Configure 0x040140 -#define Sound_Enable 0x040141 -#define Sound_Stereo 0x040142 -#define Sound_Speaker 0x040143 -#define Sound_Volume 0x040180 -#define Sound_SoundLog 0x040181 -#define Sound_LogScale 0x040182 -#define Sound_InstallVoice 0x040183 -#define Sound_RemoveVoice 0x040184 -#define Sound_AttachVoice 0x040185 -#define Sound_ControlPacked 0x040186 -#define Sound_Tuning 0x040187 -#define Sound_Pitch 0x040188 -#define Sound_Control 0x040189 -#define Sound_AttachNamedVoice 0x04018a -#define Sound_ReadControlBlock 0x04018b -#define Sound_WriteControlBlock 0x04018c -#define Sound_QInit 0x0401c0 -#define Sound_QSchedule 0x0401c1 -#define Sound_QRemove 0x0401c2 -#define Sound_QFree 0x0401c3 -#define Sound_QSDispatch 0x0401c4 -#define Sound_QTempo 0x0401c5 -#define Sound_QBeat 0x0401c6 -#define Sound_QInterface 0x0401c7 -#define ADFS_DiscOp 0x040240 -#define ADFS_HDC 0x040241 -#define ADFS_Drives 0x040242 -#define ADFS_FreeSpace 0x040243 -#define ADFS_Retries 0x040244 -#define ADFS_DescribeDisc 0x040245 -#define ADFS_VetFormat 0x040246 -#define ADFS_FlpProcessDCB 0x040247 -#define ADFS_ControllerType 0x040248 -#define ADFS_PowerControl 0x040249 -#define ADFS_SetIDEController 0x04024a -#define ADFS_IDEUserOp 0x04024b -#define ADFS_MiscOp 0x04024c -#define ADFS_ECCSAndRetries 0x040250 -#define Podule_ReadID 0x040280 -#define Podule_ReadHeader 0x040281 -#define Podule_EnumerateChunks 0x040282 -#define Podule_ReadChunk 0x040283 -#define Podule_ReadBytes 0x040284 -#define Podule_WriteBytes 0x040285 -#define Podule_CallLoader 0x040286 -#define Podule_RawRead 0x040287 -#define Podule_RawWrite 0x040288 -#define Podule_HardwareAddress 0x040289 -#define Podule_EnumerateChunksWithInfo 0x04028a -#define Podule_HardwareAddresses 0x04028b -#define Podule_ReturnNumber 0x04028c -#define PCEmMod_KeyEvent_Init 0x0402c0 -#define PCEmMod_KeyEvent_Info 0x0402c1 -#define PCEmMod_KeyEvent_Accept 0x0402c2 -#define PCEmMod_KeyEvent_Ignore 0x0402c3 -#define PCEmMod_KeyEvent_Check 0x0402c4 -#define PCEmMod_KeyEvent_Get 0x0402c5 -#define PCEmMod_KeyEvent_Put 0x0402c6 -#define PCEmMod_MicroTimer_Get 0x0402c7 -#define PCEmMod_PCEvent_Init 0x0402c8 -#define PCEmMod_PCEvent_Accept 0x0402c9 -#define PCEmMod_PCEvent_Ignore 0x0402ca -#define PCEmMod_PCEvent_Check 0x0402cb -#define PCEmMod_PCEvent_Get 0x0402cc -#define PCEmMod_DelayFor 0x0402cd -#define PCEmMod_CodeBase 0x0402ce -#define PCEmMod_Profile_Init 0x0402cf -#define PCEmMod_Profile_On 0x0402d0 -#define PCEmMod_Profile_Off 0x0402d1 -#define PCEmMod_Profile_Write 0x0402d2 -#define PCEmMod_InterceptMouse 0x0402d3 -#define PCEmMod_RestoreMouse 0x0402d4 -#define PCEmMod_ReadMouse 0x0402d5 -#define Debugger_Disassemble 0x040380 -#define SCSI_Version 0x0403c0 -#define SCSI_Initialise 0x0403c1 -#define SCSI_Control 0x0403c2 -#define SCSI_Op 0x0403c3 -#define SCSI_Status 0x0403c4 -#define SCSI_Reserve 0x0403c7 -#define SCSI_List 0x0403c8 -#define FPEmulator_Version 0x040480 -#define FileCore_DiscOp 0x040540 -#define FileCore_Create 0x040541 -#define FileCore_Drives 0x040542 -#define FileCore_FreeSpace 0x040543 -#define FileCore_FloppyStructure 0x040544 -#define FileCore_DescribeDisc 0x040545 -#define FileCore_DiscardReadSectorsCache 0x040546 -#define FileCore_DiscFormat 0x040547 -#define FileCore_LayoutStructure 0x040548 -#define FileCore_MiscOp 0x040549 -#define Shell_Create 0x0405c0 -#define Shell_Destroy 0x0405c1 -#define Hourglass_On 0x0406c0 -#define Hourglass_Off 0x0406c1 -#define Hourglass_Smash 0x0406c2 -#define Hourglass_Start 0x0406c3 -#define Hourglass_Percentage 0x0406c4 -#define Hourglass_LEDs 0x0406c5 -#define Hourglass_Colours 0x0406c6 -#define Draw_ProcessPath 0x040700 -#define Draw_ProcessPathFP 0x040701 -#define Draw_Fill 0x040702 -#define Draw_FillFP 0x040703 -#define Draw_Stroke 0x040704 -#define Draw_StrokeFP 0x040705 -#define Draw_StrokePath 0x040706 -#define Draw_StrokePathFP 0x040707 -#define Draw_FlattenPath 0x040708 -#define Draw_FlattenPathFP 0x040709 -#define Draw_TransformPath 0x04070a -#define Draw_TransformPathFP 0x04070b -#define ColourTrans_SelectTable 0x040740 -#define ColourTrans_SelectGCOLTable 0x040741 -#define ColourTrans_ReturnGCOL 0x040742 -#define ColourTrans_SetGCOL 0x040743 -#define ColourTrans_ReturnColourNumber 0x040744 -#define ColourTrans_ReturnGCOLForMode 0x040745 -#define ColourTrans_ReturnColourNumberForMode 0x040746 -#define ColourTrans_ReturnOppGCOL 0x040747 -#define ColourTrans_SetOppGCOL 0x040748 -#define ColourTrans_ReturnOppColourNumber 0x040749 -#define ColourTrans_ReturnOppGCOLForMode 0x04074a -#define ColourTrans_ReturnOppColourNumberForMode 0x04074b -#define ColourTrans_GCOLToColourNumber 0x04074c -#define ColourTrans_ColourNumberToGCOL 0x04074d -#define ColourTrans_ReturnFontColours 0x04074e -#define ColourTrans_SetFontColours 0x04074f -#define ColourTrans_InvalidateCache 0x040750 -#define ColourTrans_SetCalibration 0x040751 -#define ColourTrans_ReadCalibration 0x040752 -#define ColourTrans_ConvertDeviceColour 0x040753 -#define ColourTrans_ConvertDevicePalette 0x040754 -#define ColourTrans_ConvertRGBToCIE 0x040755 -#define ColourTrans_ConvertCIEToRGB 0x040756 -#define ColourTrans_WriteCalibrationToFile 0x040757 -#define ColourTrans_ConvertRGBToHSV 0x040758 -#define ColourTrans_ConvertHSVToRGB 0x040759 -#define ColourTrans_ConvertRGBToCMYK 0x04075a -#define ColourTrans_ConvertCMYKToRGB 0x04075b -#define ColourTrans_ReadPalette 0x04075c -#define ColourTrans_WritePalette 0x04075d -#define ColourTrans_SetColour 0x04075e -#define ColourTrans_MiscOp 0x04075f -#define ColourTrans_WriteLoadingsToFile 0x040760 -#define ColourTrans_SetTextColour 0x040761 -#define ColourTrans_SetOppTextColour 0x040762 -#define ColourTrans_GenerateTable 0x040763 -#define SCSIFS_DiscOp 0x040980 -#define SCSIFS_Drives 0x040982 -#define SCSIFS_FreeSpace 0x040983 -#define SCSIFS_DescribeDisc 0x040985 -#define SCSIFS_TestReady 0x040986 -#define Super_Sample90 0x040d80 -#define Super_Sample45 0x040d81 -#define FilerAction_SendSelectedDirectory 0x040f80 -#define FilerAction_SendSelectedFile 0x040f81 -#define FilerAction_SendStartOperation 0x040f82 -#define SCSI_LogVersion 0x041080 -#define SCSI_LogList 0x041081 -#define MessageTrans_FileInfo 0x041500 -#define MessageTrans_OpenFile 0x041501 -#define MessageTrans_Lookup 0x041502 -#define MessageTrans_MakeMenus 0x041503 -#define MessageTrans_CloseFile 0x041504 -#define MessageTrans_EnumerateTokens 0x041505 -#define MessageTrans_ErrorLookup 0x041506 -#define MessageTrans_GSLookup 0x041507 -#define MessageTrans_CopyError 0x041508 -#define PDumper_Info 0x041b00 -#define PDumper_Claim 0x041b01 -#define PDumper_Free 0x041b02 -#define PDumper_Find 0x041b03 -#define PDumper_StartJob 0x041b04 -#define PDumper_TidyJob 0x041b05 -#define PDumper_SetColour 0x041b06 -#define PDumper_PrepareStrip 0x041b07 -#define PDumper_LookupError 0x041b08 -#define PDumper_CopyFilename 0x041b09 -#define ResourceFS_RegisterFiles 0x041b40 -#define ResourceFS_DeregisterFiles 0x041b41 -#define DragASprite_Start 0x042400 -#define DragASprite_Stop 0x042401 -#define DDEUtils_Prefix 0x042580 -#define DDEUtils_SetCLSize 0x042581 -#define DDEUtils_SetCL 0x042582 -#define DDEUtils_GetCLSize 0x042583 -#define DDEUtils_GetCl 0x042584 -#define DDEUtils_ThrowbackRegister 0x042585 -#define DDEUtils_ThrowbackUnRegister 0x042586 -#define DDEUtils_ThrowbackStart 0x042587 -#define DDEUtils_ThrowbackSend 0x042588 -#define DDEUtils_ThrowbackEnd 0x042589 -#define Filter_RegisterPreFilter 0x042640 -#define Filter_RegisterPostFilter 0x042641 -#define Filter_DeRegisterPreFilter 0x042642 -#define Filter_DeRegisterPostFilter 0x042643 -#define TaskManager_TaskNameFromHandle 0x042680 -#define TaskManager_EnumerateTasks 0x042681 -#define TaskManager_Shutdown 0x042682 -#define Squash_Compress 0x042700 -#define Squash_Decompress 0x042701 -#define DeviceFS_Register 0x042740 -#define DeviceFS_Deregister 0x042741 -#define DeviceFS_RegisterObjects 0x042742 -#define DeviceFS_DeregisterObjects 0x042743 -#define DeviceFS_CallDevice 0x042744 -#define DeviceFS_Threshold 0x042745 -#define DeviceFS_ReceivedCharacter 0x042746 -#define DeviceFS_TransmitCharacter 0x042747 -#define Impulse_Initialise 0x0428c0 -#define Impulse_Decode 0x0428c1 -#define Impulse_SendMessage 0x0428c2 -#define Impulse_TransmitData 0x0428c3 -#define Impulse_FetchData 0x0428c4 -#define Impulse_CloseDown 0x0428c5 -#define Impulse_DeferReply 0x0428c6 -#define Buffer_Create 0x042940 -#define Buffer_Remove 0x042941 -#define Buffer_Register 0x042942 -#define Buffer_Deregister 0x042943 -#define Buffer_ModifyFlags 0x042944 -#define Buffer_LinkDevice 0x042945 -#define Buffer_UnlinkDevice 0x042946 -#define Buffer_GetInfo 0x042947 -#define Buffer_Threshold 0x042948 -#define BASICTrans_HELP 0x042c80 -#define BASICTrans_Error 0x042c81 -#define BASICTrans_Message 0x042c82 -#define Parallel_HardwareAddress 0x042ec0 -#define Parallel_Op 0x042ec1 -#define Territory_Number 0x043040 -#define Territory_Register 0x043041 -#define Territory_Deregister 0x043042 -#define Territory_NumberToName 0x043043 -#define Territory_Exists 0x043044 -#define Territory_AlphabetNumberToName 0x043045 -#define Territory_SelectAlphabet 0x043046 -#define Territory_SetTime 0x043047 -#define Territory_ReadCurrentTimeZone 0x043048 -#define Territory_ConvertTimeToUTCOrdinals 0x043049 -#define Territory_ReadTimeZones 0x04304a -#define Territory_ConvertDateAndTime 0x04304b -#define Territory_ConvertStandardDateAndTime 0x04304c -#define Territory_ConvertStandardDate 0x04304d -#define Territory_ConvertStandardTime 0x04304e -#define Territory_ConvertTimeToOrdinals 0x04304f -#define Territory_ConvertTimeStringToOrdinals 0x043050 -#define Territory_ConvertOrdinalsToTime 0x043051 -#define Territory_Alphabet 0x043052 -#define Territory_AlphabetIdentifier 0x043053 -#define Territory_SelectKeyboardHandler 0x043054 -#define Territory_WriteDirection 0x043055 -#define Territory_CharacterPropertyTable 0x043056 -#define Territory_LowerCaseTable 0x043057 -#define Territory_UpperCaseTable 0x043058 -#define Territory_ControlTable 0x043059 -#define Territory_PlainTable 0x04305a -#define Territory_ValueTable 0x04305b -#define Territory_RepresentationTable 0x04305c -#define Territory_Collate 0x04305d -#define Territory_ReadSymbols 0x04305e -#define Territory_ReadCalendarInformation 0x04305f -#define Territory_NameToNumber 0x043060 -#define Territory_TransformString 0x043061 -#define Territory_Reserved1 0x043062 -#define Territory_Reserved2 0x043063 -#define Territory_Reserved3 0x043064 -#define Territory_Reserved4 0x043065 -#define Territory_Reserved5 0x043066 -#define Territory_Reserved6 0x043067 -#define Territory_Reserved7 0x043068 -#define Territory_Reserved8 0x043069 -#define Territory_Reserved9 0x04306a -#define Territory_Reserved10 0x04306b -#define Territory_Reserved11 0x04306c -#define Territory_Reserved12 0x04306d -#define Territory_Reserved13 0x04306e -#define Territory_Reserved14 0x04306f -#define Territory_Reserved15 0x043070 -#define Territory_Reserved16 0x043071 -#define Territory_Reserved17 0x043072 -#define Territory_Reserved18 0x043073 -#define Territory_Reserved19 0x043074 -#define Territory_ConvertTextToString 0x043075 -#define ScreenBlanker_Control 0x043100 -#define TaskWindow_TaskInfo 0x043380 -#define Free_Register 0x0444c0 -#define Free_DeRegister 0x0444c1 -#define DOSFS_DiscFormat 0x044b00 -#define DOSFS_LayoutStructure 0x044b01 -#define PDriver_Info 0x080140 -#define PDriver_SetInfo 0x080141 -#define PDriver_CheckFeatures 0x080142 -#define PDriver_PageSize 0x080143 -#define PDriver_SetPageSize 0x080144 -#define PDriver_SelectJob 0x080145 -#define PDriver_CurrentJob 0x080146 -#define PDriver_FontSWI 0x080147 -#define PDriver_EndJob 0x080148 -#define PDriver_AbortJob 0x080149 -#define PDriver_Reset 0x08014a -#define PDriver_GiveRectangle 0x08014b -#define PDriver_DrawPage 0x08014c -#define PDriver_GetRectangle 0x08014d -#define PDriver_CancelJob 0x08014e -#define PDriver_ScreenDump 0x08014f -#define PDriver_EnumerateJobs 0x080150 -#define PDriver_SetPrinter 0x080151 -#define PDriver_CancelJobWithError 0x080152 -#define PDriver_SelectIllustration 0x080153 -#define PDriver_InsertIllustration 0x080154 -#define PDriver_DeclareFont 0x080155 -#define PDriver_DeclareDriver 0x080156 -#define PDriver_RemoveDriver 0x080157 -#define PDriver_SelectDriver 0x080158 -#define PDriver_EnumerateDrivers 0x080159 -#define PDriver_MiscOp 0x08015a -#define PDriver_MiscOpForDriver 0x08015b -#define PDriver_SetDriver 0x08015c -#define SharedCLibrary_LibInitAPCS_A 0x080680 -#define SharedCLibrary_LibInitAPCS_R 0x080681 -#define SharedCLibrary_LibInitModule 0x080682 -#define FrontEnd_ExtendedCmdLine 0x081400 -#define FrontEnd_FreeCmdLine 0x081401 - -#endif diff --git a/sys/arch/arm32/boot/swiv.S b/sys/arch/arm32/boot/swiv.S deleted file mode 100644 index 6e42afaa9d51..000000000000 --- a/sys/arch/arm32/boot/swiv.S +++ /dev/null @@ -1,80 +0,0 @@ -#include "regs.h" - - .text - -SWIReturnInst: - ldr pc, [sp, #0*4] - - .global _swix -_swix: - orr r0, r0, #0x20000 - - .global _swi -_swi: - -/* - * Construct a stack frame that looks something like this: - * returnval - * LDMIA r12!, {r0..rn} - * SWI xxxxxx - * LDR pc, [sp] - * saved r4-r11,lr - * saved r1 - * saved input values (r2...rn) - */ - - mov pc, lr - - stmfd sp!, {r1-r3} /* Save r1 and put 1st two variadic args on stack */ - bic r2, r0, #0xff000000 - orr r2, r2, #0xef000000 /* Construct SWI instruction */ - adr r0, SWIReturn - tst r1, #0x20000 /* bit for write flags */ - adrne r0, SWIReturnFlags - bic r1, r1, #0xff000000 /* Construct LDMIA R12!, {regs} instruction, if */ - bics r1, r1, #0x00ff0000 /* {regs} = {} (IE no input regs) we must not */ - orrne r1, r1, #0xe8000000 /* use an LDMIA R12!, {} instruction as this is an */ - orrne r1, r1, #0x00bc0000 /* invalid instruction, we use a suitable NOP instead */ - moveq r1, #0 /* 0 = opcode for ANDEQ r0, r0, r0 (a suitable NOP) */ - ldr r3, SWIReturnInst - stmfd sp!, {r0-r9, r11, lr} /* Save regs and set up SWI call routine (in R0-R3) */ - add r12, sp, #(12+1)*4 /* Point R12 at input regs on stack. */ - add pc, sp, #4 /* Call routine on stack */ -SWIReturnFlags: - ldr r11, [r12], #4 - str pc, [r11] /* write flags */ -SWIReturn: - ldr lr, [sp, #(12+0)*4] /* Fetch reg mask again */ - movs lr, lr, asl #1 /* Shift out setting C if R0 to be written, N */ - ldrcs r11, [r12], #4 /* if R1 to be written. */ - strcs r0, [r11] - ldrmi r11, [r12], #4 - strmi r1, [r11] - movs lr, lr, asl #2 /* Shift 2 bits each time for the next 2 regs */ - ldrcs r11, [r12], #4 - strcs r2, [r11] - ldrmi r11, [r12], #4 - strmi r3, [r11] - movs lr, lr, asl #2 - ldrcs r11, [r12], #4 - strcs r4, [r11] - ldrmi r11, [r12], #4 - strmi r5, [r11] - movs lr, lr, asl #2 - ldrcs r11, [r12], #4 - strcs r6, [r11] - ldrmi r11, [r12], #4 - strmi r7, [r11] - movs lr, lr, asl #2 - ldrcs r11, [r12], #4 - strcs r8, [r11] - ldrmi r11, [r12], #4 - strmi r9, [r11] - ldr r1, [sp, #2*4] - tst r1, #0x20000 /* X-bit clear */ - cmpeq pc, #0x80000000 /* SET V flag if so, so R0 not cleared */ - movvc r0, #0 /* Clear R0 if no error (or X-bit clear) */ - add sp, sp, #4*4 /* Drop SWI call routine */ - ldmia sp!, {r4-r9,r11,lr} - add sp, sp, #3*4 /* Drop saved R1 and 1st two variadic args. */ - movs pc, lr diff --git a/sys/arch/arm32/boot/swiv.h b/sys/arch/arm32/boot/swiv.h deleted file mode 100644 index d60ee2e546a3..000000000000 --- a/sys/arch/arm32/boot/swiv.h +++ /dev/null @@ -1,80 +0,0 @@ -/* SWI veneers: - * Written by Edward Nevill and Jonathan Roach in an idle moment between projects. - * Hacked by BDB to add flag returning - */ - -/* Anonymous Error type */ - -struct Error { int num; char msg[4]; }; - -typedef struct Error Error; - -/* Generic SWI interface - * swi(swino,mask,regs...) - * swino = SWI number to call as defined in h.swis, X bit set if you wish the - * X form of the SWI to be called, clear if you want the non X form. - * reg_mask = mask of in / out registers - * bits 0-9: Bit N set => Register N specified on input - * Bit N clear => Register N unspecified on input - * bits 22-31: Bit N set => Register N-22 on output stored - * in address specified in varargs list. - * ... In order, input registers followed by output registers, - * starting at r0 and going up. - * returns 0 or errorblock pointer if X-bit set - * returns r0 if X-bit clear - * swix(swino,mask,regs...) - * This behaves identically to 'swi' except that it always calls the X form. - * - * Eg: - * swi(OS_SWINumberToString, IN(R0|R1|R2), n, buf, 255); - * e = swi(XOS_SWINumberFromString, IN(R1)|OUT(R0), str, &n); - * - Error block pointer (or 0) is returned so must get returned R0 - * - via argument list. - * e = swix(OS_SWINumberFromString, IN(R1)|OUT(R0), str, &n); - * - As above but uses the swix function rather that setting the X bit - * explicitly (saves one instruction on SWI call). - * e = swi(OS_File, IN(R0|R1|R2|R3)|OUT(R4), 255, name, buff, 0, &len); - * - We don't care about the load, exec or attrs so don't specify - * them in the output registers. - */ - -extern Error *swix(int swino, int reg_mask, ...); -extern int swi(int swino, int reg_mask, ...); - -/* Register mask macros - * The bits in the register mask are arranged as follows: - * 31 30 29 ... 22 ... 8 ... 2 1 0 - * O0 O1 O2 ... O9 I9 ... I2 I1 I0 I(N) = bit set if R(N) used on entry - * O(N) = bit set if R(N) written on exit - * The bits are arranged like this to optimise the case where a SWI is being - * called with a small number of input and output registers. For example, a SWI - * call which uses R0-R5 on entry and R0-R1 on exit will have a register mask - * of 0xC000003f which can be loaded into an ARM register in one instruction - * (the compiler performs this optimisation, even when the constant wraps - * around between bits 0 and 31). Using the more obvious coding of I0-I9 in bits - * 0 - 9 and O0-O9 in bits 16-23 leads to a constant of 0x0003003f which require - * two instructions. - */ -#define IN(m) (m) -/* old, incorrect version -#define OUT(m) ((unsigned)(m&1)<<31|(m&2)<<29|(m&4)<<27|(m&8)<<25|(m&16)<<23|\ - (m&32)<<21|(m&64)<<19|(m&128)<<17|(m&256)<<15|(m&512)<<13) -*/ -#define OUT(m) ((unsigned)((m)&1)<<31|((m)&2)<<29|((m)&4)<<27|\ - ((m)&8)<<25|((m)&16)<<23|((m)&32)<<21|((m)&64)<<19|\ - ((m)&128)<<17|((m)&256)<<15|((m)&512)<<13|((m)&1024)<<11) - -/* The register names - * Change these to use different names if you use R0 - R9 elsewhere in your program - */ -#define PSW 0x400 /* Use only in OUT, orders BEFORE others */ -#define R0 0x001 -#define R1 0x002 -#define R2 0x004 -#define R3 0x008 -#define R4 0x010 -#define R5 0x020 -#define R6 0x040 -#define R7 0x080 -#define R8 0x100 -#define R9 0x200 diff --git a/sys/arch/arm32/boot/vsprintf.c b/sys/arch/arm32/boot/vsprintf.c deleted file mode 100644 index 3e6e9ffb28a7..000000000000 --- a/sys/arch/arm32/boot/vsprintf.c +++ /dev/null @@ -1,275 +0,0 @@ -#include -#include - -# define toupper(x) ((x >= 'a' && x <= 'z') ? (x & 0xdf) : x) -/*# define tolower(x) ((x >= 'A' && x <= 'Z') ? (x | 0x20) : x)*/ -# define islower(x) ((x >= 'a' && x <= 'z') ? 1 : 0) -# define isdigit(x) ((x >= '0' && x <= '9') ? 1 : 0) -# define isxdigit(x) (((x >= '0' && x <= '9') || (x >= 'a' && x <= 'f') || (x >= 'A' && x <= 'F')) ? 1 : 0) - -unsigned long simple_strtoul(const char *cp,char **endp,unsigned int base) -{ - unsigned long result = 0,value; - - if (!base) { - base = 10; - if (*cp == '0') { - base = 8; - cp++; - if ((*cp == 'x') && isxdigit(cp[1])) { - cp++; - base = 16; - } - } - } - while (isxdigit(*cp) && (value = isdigit(*cp) ? *cp-'0' : (islower(*cp) - ? toupper(*cp) : *cp)-'A'+10) < base) { - result = result*base + value; - cp++; - } - if (endp) - *endp = (char *)cp; - return result; -} - -/* we use this so that we can do without the ctype library */ -#define is_digit(c) ((c) >= '0' && (c) <= '9') - -static int skip_atoi(const char **s) -{ - int i=0; - - while (is_digit(**s)) - i = i*10 + *((*s)++) - '0'; - return i; -} - -#define ZEROPAD 1 /* pad with zero */ -#define SIGN 2 /* unsigned/signed long */ -#define PLUS 4 /* show plus */ -#define SPACE 8 /* space if plus */ -#define LEFT 16 /* left justified */ -#define SPECIAL 32 /* 0x */ -#define SMALL 64 /* use 'abcdef' instead of 'ABCDEF' */ - -static unsigned int do_div(unsigned int *n, unsigned int base) - { - unsigned int d; - - d = *n % base; - *n /= base; - - return(d); - } - -static char * number(char * str, int num, int base, int size, int precision - ,int type) -{ - char c,sign,tmp[36]; - const char *digits="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - int i; - - if (type&SMALL) digits="0123456789abcdefghijklmnopqrstuvwxyz"; - if (type&LEFT) type &= ~ZEROPAD; - if (base<2 || base>36) - return 0; - c = (type & ZEROPAD) ? '0' : ' ' ; - if (type&SIGN && num<0) { - sign='-'; - num = -num; - } else - sign=(type&PLUS) ? '+' : ((type&SPACE) ? ' ' : 0); - if (sign) size--; - if (type&SPECIAL) { - if (base==16) size -= 2; - else if (base==8) size--; - } - i=0; - if (num==0) - tmp[i++]='0'; - else while (num!=0) - tmp[i++]=digits[do_div((unsigned int *)&num,base)]; - if (i>precision) precision=i; - size -= precision; - if (!(type&(ZEROPAD+LEFT))) - while(size-->0) - *str++ = ' '; - if (sign) - *str++ = sign; - if (type&SPECIAL) { - if (base==8) - *str++ = '0'; - else if (base==16) { - *str++ = '0'; - *str++ = digits[33]; - } - } - if (!(type&LEFT)) - while(size-->0) - *str++ = c; - while(i0) - *str++ = tmp[i]; - while(size-->0) - *str++ = ' '; - return str; -} - -int vsprintf(char *buf, const char *fmt, va_list args) -{ - int len; - int i; - char * str; - char *s; - int *ip; - - int flags; /* flags to number() */ - - int field_width; /* width of output field */ - int precision; /* min. # of digits for integers; max - number of chars for from string */ - int qualifier; /* 'h', 'l', or 'L' for integer fields */ - - for (str=buf ; *fmt ; ++fmt) { - if (*fmt != '%') { - *str++ = *fmt; - continue; - } - - /* process flags */ - flags = 0; - repeat: - ++fmt; /* this also skips first '%' */ - switch (*fmt) { - case '-': flags |= LEFT; goto repeat; - case '+': flags |= PLUS; goto repeat; - case ' ': flags |= SPACE; goto repeat; - case '#': flags |= SPECIAL; goto repeat; - case '0': flags |= ZEROPAD; goto repeat; - } - - /* get field width */ - field_width = -1; - if (is_digit(*fmt)) - field_width = skip_atoi(&fmt); - else if (*fmt == '*') { - /* it's the next argument */ - field_width = va_arg(args, int); - if (field_width < 0) { - field_width = -field_width; - flags |= LEFT; - } - } - - /* get the precision */ - precision = -1; - if (*fmt == '.') { - ++fmt; - if (is_digit(*fmt)) - precision = skip_atoi(&fmt); - else if (*fmt == '*') { - /* it's the next argument */ - precision = va_arg(args, int); - } - if (precision < 0) - precision = 0; - } - - /* get the conversion qualifier */ - qualifier = -1; - if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L') { - qualifier = *fmt; - ++fmt; - } - - switch (*fmt) { - case 'c': - if (!(flags & LEFT)) - while (--field_width > 0) - *str++ = ' '; - *str++ = (unsigned char) va_arg(args, int); - while (--field_width > 0) - *str++ = ' '; - break; - - case 's': - s = va_arg(args, char *); - if (!s) - s = ""; - len = strlen(s); - if (precision < 0) - precision = len; - else if (len > precision) - len = precision; - - if (!(flags & LEFT)) - while (len < field_width--) - *str++ = ' '; - for (i = 0; i < len; ++i) - *str++ = *s++; - while (len < field_width--) - *str++ = ' '; - break; - - case 'o': - str = number(str, va_arg(args, unsigned long), 8, - field_width, precision, flags); - break; - - case 'p': - if (field_width == -1) { - field_width = 8; - flags |= ZEROPAD; - } - str = number(str, - (unsigned long) va_arg(args, void *), 16, - field_width, precision, flags); - break; - - case 'x': - flags |= SMALL; - case 'X': - str = number(str, va_arg(args, unsigned long), 16, - field_width, precision, flags); - break; - - case 'd': - case 'i': - flags |= SIGN; - case 'u': - str = number(str, va_arg(args, unsigned long), 10, - field_width, precision, flags); - break; - - case 'n': - ip = va_arg(args, int *); - *ip = (str - buf); - break; - - default: - if (*fmt != '%') - *str++ = '%'; - if (*fmt) - *str++ = *fmt; - else - --fmt; - break; - } - } - *str = '\0'; - return str-buf; -} - - -int sprintf(char * buf, const char *fmt, ...) -{ - va_list args; - int i; - - va_start(args, fmt); - i=vsprintf(buf,fmt,args); - va_end(args); - return i; -} -