From 979657d21638fca5f19ba670ca5f71e0cd10cd9b Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 26 Nov 2001 18:16:24 +0000 Subject: 2001-11-20 Joel Sherrill * acinclude.m4: papyrus reference removed. * papyrus/.cvsignore, papyrus/ChangeLog, papyrus/Makefile.am, papyrus/README, papyrus/bsp_specs, papyrus/configure.ac, papyrus/times, papyrus/dlentry/.cvsignore, papyrus/dlentry/Makefile.am, papyrus/dlentry/dlentry.S, papyrus/flashentry/.cvsignore, papyrus/flashentry/Makefile.am, papyrus/flashentry/flashentry.S, papyrus/include/.cvsignore, papyrus/include/Makefile.am, papyrus/include/bsp.h, papyrus/include/coverhd.h, papyrus/startup/.cvsignore, papyrus/startup/Makefile.am, papyrus/startup/bspclean.c, papyrus/startup/bspstart.c, papyrus/startup/linkcmds, papyrus/startup/setvec.c, papyrus/wrapup/.cvsignore, papyrus/wrapup/Makefile.am: Deleted. --- c/src/lib/libbsp/powerpc/ChangeLog | 15 ++ c/src/lib/libbsp/powerpc/acinclude.m4 | 2 - c/src/lib/libbsp/powerpc/papyrus/.cvsignore | 14 - c/src/lib/libbsp/powerpc/papyrus/ChangeLog | 59 ----- c/src/lib/libbsp/powerpc/papyrus/Makefile.am | 17 -- c/src/lib/libbsp/powerpc/papyrus/README | 50 ---- c/src/lib/libbsp/powerpc/papyrus/bsp_specs | 26 -- c/src/lib/libbsp/powerpc/papyrus/configure.ac | 38 --- .../lib/libbsp/powerpc/papyrus/dlentry/.cvsignore | 2 - .../lib/libbsp/powerpc/papyrus/dlentry/Makefile.am | 33 --- c/src/lib/libbsp/powerpc/papyrus/dlentry/dlentry.S | 257 ------------------ .../libbsp/powerpc/papyrus/flashentry/.cvsignore | 2 - .../libbsp/powerpc/papyrus/flashentry/Makefile.am | 33 --- .../libbsp/powerpc/papyrus/flashentry/flashentry.S | 295 --------------------- .../lib/libbsp/powerpc/papyrus/include/.cvsignore | 6 - .../lib/libbsp/powerpc/papyrus/include/Makefile.am | 20 -- c/src/lib/libbsp/powerpc/papyrus/include/bsp.h | 134 ---------- c/src/lib/libbsp/powerpc/papyrus/include/coverhd.h | 134 ---------- .../lib/libbsp/powerpc/papyrus/startup/.cvsignore | 2 - .../lib/libbsp/powerpc/papyrus/startup/Makefile.am | 40 --- .../lib/libbsp/powerpc/papyrus/startup/bspclean.c | 43 --- .../lib/libbsp/powerpc/papyrus/startup/bspstart.c | 132 --------- c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds | 159 ----------- c/src/lib/libbsp/powerpc/papyrus/startup/setvec.c | 57 ---- c/src/lib/libbsp/powerpc/papyrus/times | 197 -------------- c/src/lib/libbsp/powerpc/papyrus/wrapup/.cvsignore | 2 - .../lib/libbsp/powerpc/papyrus/wrapup/Makefile.am | 38 --- 27 files changed, 15 insertions(+), 1792 deletions(-) delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/.cvsignore delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/ChangeLog delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/Makefile.am delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/README delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/bsp_specs delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/configure.ac delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/dlentry/.cvsignore delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/dlentry/Makefile.am delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/dlentry/dlentry.S delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/flashentry/.cvsignore delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/flashentry/Makefile.am delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/flashentry/flashentry.S delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/include/.cvsignore delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/include/Makefile.am delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/include/bsp.h delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/include/coverhd.h delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/startup/.cvsignore delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/startup/Makefile.am delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/startup/bspclean.c delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/startup/bspstart.c delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/startup/setvec.c delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/times delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/wrapup/.cvsignore delete mode 100644 c/src/lib/libbsp/powerpc/papyrus/wrapup/Makefile.am (limited to 'c/src/lib') diff --git a/c/src/lib/libbsp/powerpc/ChangeLog b/c/src/lib/libbsp/powerpc/ChangeLog index a0cd5d9890..9e4b52f28e 100644 --- a/c/src/lib/libbsp/powerpc/ChangeLog +++ b/c/src/lib/libbsp/powerpc/ChangeLog @@ -1,3 +1,18 @@ +2001-11-20 Joel Sherrill + + * acinclude.m4: papyrus reference removed. + * papyrus/.cvsignore, papyrus/ChangeLog, papyrus/Makefile.am, + papyrus/README, papyrus/bsp_specs, papyrus/configure.ac, papyrus/times, + papyrus/dlentry/.cvsignore, papyrus/dlentry/Makefile.am, + papyrus/dlentry/dlentry.S, papyrus/flashentry/.cvsignore, + papyrus/flashentry/Makefile.am, papyrus/flashentry/flashentry.S, + papyrus/include/.cvsignore, papyrus/include/Makefile.am, + papyrus/include/bsp.h, papyrus/include/coverhd.h, + papyrus/startup/.cvsignore, papyrus/startup/Makefile.am, + papyrus/startup/bspclean.c, papyrus/startup/bspstart.c, + papyrus/startup/linkcmds, papyrus/startup/setvec.c, + papyrus/wrapup/.cvsignore, papyrus/wrapup/Makefile.am: Deleted. + 2001-11-20 Joel Sherrill * support/new_exception_processing/configure.ac, diff --git a/c/src/lib/libbsp/powerpc/acinclude.m4 b/c/src/lib/libbsp/powerpc/acinclude.m4 index ad18d2843f..ac2d45ac28 100644 --- a/c/src/lib/libbsp/powerpc/acinclude.m4 +++ b/c/src/lib/libbsp/powerpc/acinclude.m4 @@ -17,8 +17,6 @@ AC_DEFUN([RTEMS_CHECK_BSPDIR], AC_CONFIG_SUBDIRS([motorola_powerpc]);; mpc8260ads ) AC_CONFIG_SUBDIRS([mpc8260ads]);; - papyrus ) - AC_CONFIG_SUBDIRS([papyrus]);; ppcn_60x ) AC_CONFIG_SUBDIRS([ppcn_60x]);; psim ) diff --git a/c/src/lib/libbsp/powerpc/papyrus/.cvsignore b/c/src/lib/libbsp/powerpc/papyrus/.cvsignore deleted file mode 100644 index d29e5050f5..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/.cvsignore +++ /dev/null @@ -1,14 +0,0 @@ -Makefile -Makefile.in -aclocal.m4 -autom4te.cache -config.cache -config.guess -config.log -config.status -config.sub -configure -depcomp -install-sh -missing -mkinstalldirs diff --git a/c/src/lib/libbsp/powerpc/papyrus/ChangeLog b/c/src/lib/libbsp/powerpc/papyrus/ChangeLog deleted file mode 100644 index 63f9ce28cd..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/ChangeLog +++ /dev/null @@ -1,59 +0,0 @@ -2001-10-25 Joel Sherrill - - * startup/linkcmds: Added _init and _fini. - -2001-10-11 Ralf Corsepius - - * .cvsignore: Add autom4te.cache for autoconf > 2.52. - * configure.in: Remove. - * configure.ac: New file, generated from configure.in by autoupdate. - -2001-09-27 Ralf Corsepius - - * include/Makefile.am: Use 'TMPINSTALL_FILES ='. - -2001-05-26 Ralf Corsepius - - * configure.in: Add bspopts.h. - * include/.cvsignore: Add bspopts.h*, stamp-h*. - * include/Makefile.am: Use *_HEADERS instead of *H_FILES. - * include/bsp.h: Include bspopts.h. - -2001-05-10 Ralf Corsepius - - * configure.in: Use RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm]). - -2000-11-09 Ralf Corsepius - - * Makefile.am: Use ... instead of RTEMS_TOPdir in ACLOCAL_AMFLAGS. - -2000-11-02 Ralf Corsepius - - * Makefile.am: Switch to ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal. - -2000-11-01 Joel Sherrill - - * startup/bspstart.c: assoc.h, error.h, libio_.h, libio.h, - and libcsupport.h moved from libc to lib/include/rtems and - now must be referenced as . Header file order - was cleaned up while doing this. - -2000-10-27 Ralf Corsepius - - * Makefile.am: ACLOCAL_AMFLAGS= -I $(RTEMS_TOPdir)/macros. - Switch to GNU canonicalization. - -2000-09-29 Charles-Antoine Gauthier - - * startup/linkcmds: Added lines so DWARF debug information - would be available. Otherwise gdb complains that the offsets - for the debug info are incorrect and doesn't load the files. - -2000-09-04 Ralf Corsepius - - * dlentry/Makefile.am, flashentry/Makefile.am, startup/Makefile.am, - wrapup/Makefile.am: Include compile.am - -2000-08-10 Joel Sherrill - - * ChangeLog: New file. diff --git a/c/src/lib/libbsp/powerpc/papyrus/Makefile.am b/c/src/lib/libbsp/powerpc/papyrus/Makefile.am deleted file mode 100644 index 206a91b8b5..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -## -## $Id$ -## - -AUTOMAKE_OPTIONS = foreign 1.4 -ACLOCAL_AMFLAGS = -I ../../../../../../aclocal - -# wrapup is the one that actually builds and installs the library -# from the individual .rel files built in other directories -SUBDIRS = include dlentry flashentry startup wrapup - -include $(top_srcdir)/../../bsp.am - -EXTRA_DIST = bsp_specs times - -include $(top_srcdir)/../../../../../../automake/subdirs.am -include $(top_srcdir)/../../../../../../automake/local.am diff --git a/c/src/lib/libbsp/powerpc/papyrus/README b/c/src/lib/libbsp/powerpc/papyrus/README deleted file mode 100644 index 9d3e20b592..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/README +++ /dev/null @@ -1,50 +0,0 @@ -# -# $Id$ -# - -BSP NAME: papyrus -BOARD: i cubed, papyrus development board -BUS: N/A -CPU FAMILY: ppc -CPU: PowerPC 403GA -COPROCESSORS: N/A -MODE: 32 bit mode - -DEBUG MONITOR: Modified IBM OpenBios - -PERIPHERALS -=========== -TIMERS: 403GA internal - RESOLUTION: .1 microseconds -SERIAL PORTS: 403GA internal with extra lines -REAL-TIME CLOCK: 403GA internal -DMA: 403GA internal -VIDEO: Laser Printer -SCSI: none -NETWORKING: AMD PCNet32 - -DRIVER INFORMATION -================== -CLOCK DRIVER: 403GA internal -IOSUPP DRIVER: N/A -SHMSUPP: N/A -TIMER DRIVER: 403GA internal -TTY DRIVER: 403GA internal - -STDIO -===== -PORT: Console port 0 -ELECTRICAL: RS-232 -BAUD: 9600 -BITS PER CHARACTER: 8 -PARITY: None -STOP BITS: 1 - -Notes -===== - -Papyrus only supports single processor operations. - -The code under c/src/lib/libbsp/ppc/papyrus only really supports -the PowerOpen ABI with an ELF assembler. - diff --git a/c/src/lib/libbsp/powerpc/papyrus/bsp_specs b/c/src/lib/libbsp/powerpc/papyrus/bsp_specs deleted file mode 100644 index 8c64a8c68b..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/bsp_specs +++ /dev/null @@ -1,26 +0,0 @@ -%rename cpp old_cpp -%rename lib old_lib -%rename endfile old_endfile -%rename startfile old_startfile -%rename link old_link - -*cpp: -%(old_cpp) %{qrtems: -D__embedded__} -Asystem(embedded) - -*lib: -%{!qrtems: %(old_lib)} %{qrtems: ecrti%O%s --start-group \ -%{!qrtems_debug: -lrtemsall} %{qrtems_debug: -lrtemsall_g} \ --lc -lgcc --end-group \ -%{!qnolinkcmds: -T linkcmds%s}} - -*startfile: -%{!qrtems: %(old_startfile)} %{qrtems: \ -%{!qrtems_debug: } \ -%{qrtems_debug: }} - -*endfile: -%{!qrtems: %(old_endfile)} %{qrtems: ecrtn%O%s} - -*link: -%{!qrtems: %(old_link)} %{qrtems: -dc -dp -u __vectors -u download_entry -N } - diff --git a/c/src/lib/libbsp/powerpc/papyrus/configure.ac b/c/src/lib/libbsp/powerpc/papyrus/configure.ac deleted file mode 100644 index 209307f3b9..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/configure.ac +++ /dev/null @@ -1,38 +0,0 @@ -## Process this file with autoconf to produce a configure script. -## -## $Id$ - -AC_PREREQ(2.52) -AC_INIT -AC_CONFIG_SRCDIR([bsp_specs]) -RTEMS_TOP(../../../../../..) -AC_CONFIG_AUX_DIR(../../../../../..) - -RTEMS_CANONICAL_TARGET_CPU -AM_INIT_AUTOMAKE(rtems-c-src-lib-libbsp-powerpc-papyrus,$RTEMS_VERSION,no) -AM_MAINTAINER_MODE - -RTEMS_PROG_CC_FOR_TARGET([-ansi -fasm]) -RTEMS_CANONICALIZE_TOOLS -RTEMS_ENABLE_NETWORKING - -RTEMS_ENV_RTEMSBSP -RTEMS_CHECK_CUSTOM_BSP(RTEMS_BSP) -RTEMS_CHECK_BSP_CACHE(RTEMS_BSP) -RTEMS_CHECK_NETWORKING -RTEMS_CANONICAL_HOST - -AM_CONDITIONAL(HAS_NETWORKING,test "$HAS_NETWORKING" = "yes") - -AM_CONFIG_HEADER(include/bspopts.h) -RTEMS_PROJECT_ROOT - -# Explicitly list all Makefiles here -AC_CONFIG_FILES([Makefile -dlentry/Makefile -flashentry/Makefile -include/Makefile -startup/Makefile -wrapup/Makefile]) -AC_OUTPUT - diff --git a/c/src/lib/libbsp/powerpc/papyrus/dlentry/.cvsignore b/c/src/lib/libbsp/powerpc/papyrus/dlentry/.cvsignore deleted file mode 100644 index 282522db03..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/dlentry/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/c/src/lib/libbsp/powerpc/papyrus/dlentry/Makefile.am b/c/src/lib/libbsp/powerpc/papyrus/dlentry/Makefile.am deleted file mode 100644 index 62d8995315..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/dlentry/Makefile.am +++ /dev/null @@ -1,33 +0,0 @@ -## -## $Id$ -## - -AUTOMAKE_OPTIONS = foreign 1.4 - -PGM = $(ARCH)/dlentry.rel - -S_FILES = dlentry.S -S_O_FILES = $(S_FILES:%.S=$(ARCH)/%.o) - -OBJS = $(S_O_FILES) - -include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg -include $(top_srcdir)/../../../../../../automake/compile.am -include $(top_srcdir)/../../../../../../automake/lib.am - -# -# (OPTIONAL) Add local stuff here using += -# - -$(PGM): $(OBJS) - $(make-rel) - -# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile - -all-local: $(ARCH) $(OBJS) $(PGM) - -.PRECIOUS: $(PGM) - -EXTRA_DIST = dlentry.S - -include $(top_srcdir)/../../../../../../automake/local.am diff --git a/c/src/lib/libbsp/powerpc/papyrus/dlentry/dlentry.S b/c/src/lib/libbsp/powerpc/papyrus/dlentry/dlentry.S deleted file mode 100644 index 399d2c2072..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/dlentry/dlentry.S +++ /dev/null @@ -1,257 +0,0 @@ -/* dlentry.s 1.0 - 95/08/08 - * - * This file contains the entry veneer for RTEMS programs - * downloaded to Papyrus. - * - * Author: Andrew Bray - * - * COPYRIGHT (c) 1995 by i-cubed ltd. - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of i-cubed limited not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * i-cubed limited makes no representations about the suitability - * of this software for any purpose. - * - * $Id$ - */ - -#include "asm.h" - -/* - * The Papyrus ELF link scripts support three special sections: - * .entry The actual entry point, this must contain less - * than 256 bytes of code/data to fit below the - * .vectors section. This always preceeds any other - * code or data. - * .vectors The section containing the interrupt entry veneers. - * .entry2 Any code overflowing from .entry - * .descriptors The PowerOpen function indirection blocks. - */ - -/* - * Downloaded code loads the vectors separately to 0x00000100, - * so .entry can be over 256 bytes. - * - * The other sections are linked in the following order: - * .entry - * .entry2 - * .text - * .descriptors - * .data - * .bss - * usually starting from 0x00020000. - * - * The initial stack is set to run BELOW the code base address. - * - * All the entry veneer has to do is to clear the BSS. - */ - -/* - * GDB likes to have debugging information for the entry veneer. - * Here is some DWARF information. - */ - -#if PPC_ASM == PPC_ASM_ELF - .section .entry,"ax",@progbits -.L_text_b: -.L_LC1: - .previous - -.section .debug_sfnames -.L_sfnames_b: - .byte "/home/andy/powerpc/rtems-3.2.0/c/src/lib/libcpu/ppc/ppc403/dlentry/" - .byte 0 -.L_F0: - .byte "dlentry.s" - .byte 0 - .previous - -.section .line -.L_line_b: - .4byte .L_line_e-.L_line_b - .4byte .L_text_b -.L_LE1: -.L_line_last: - .4byte 0x0 - .2byte 0xffff - .4byte .L_text_e-.L_text_b -.L_line_e: - .previous - -.section .debug_srcinfo -.L_srcinfo_b: - .4byte .L_line_b - .4byte .L_sfnames_b - .4byte .L_text_b - .4byte .L_text_e - .4byte 0xffffffff - .4byte .L_LE1-.L_line_b - .4byte .L_F0-.L_sfnames_b - .4byte .L_line_last-.L_line_b - .4byte 0xffffffff - .previous - -.section .debug_pubnames - .4byte .L_debug_b - .4byte .L_P0 - .byte "download_entry" - .byte 0 - .4byte 0x0 - .byte 0 - .previous - -.section .debug_aranges - .4byte .L_debug_b - .4byte .L_text_b - .4byte .L_text_e-.L_text_b - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0x0 - .4byte 0x0 - .previous - -.section .debug -.L_debug_b: -.L_D1: - .4byte .L_D1_e-.L_D1 - .2byte 0x11 /* TAG_compile_unit */ - .2byte 0x12 /* AT_sibling */ - .4byte .L_D2 - .2byte 0x38 /* AT_name */ - .byte "dlentry.s" - .byte 0 - .2byte 0x258 /* AT_producer */ - .byte "GAS 2.5.2" - .byte 0 - .2byte 0x111 /* AT_low_pc */ - .4byte .L_text_b - .2byte 0x121 /* AT_high_pc */ - .4byte .L_text_e - .2byte 0x106 /* AT_stmt_list */ - .4byte .L_line_b - .2byte 0x1b8 /* AT_comp_dir */ - .byte "/home/andy/powerpc/rtems-3.2.0/c/src/lib/libcpu/ppc/ppc403/dlentry/" - .byte 0 - .2byte 0x8006 /* AT_sf_names */ - .4byte .L_sfnames_b - .2byte 0x8016 /* AT_src_info */ - .4byte .L_srcinfo_b -.L_D1_e: -.L_P0: -.L_D3: - .4byte .L_D3_e-.L_D3 - .2byte 0x6 /* TAG_global_subroutine */ - .2byte 0x12 /* AT_sibling */ - .4byte .L_D4 - .2byte 0x38 /* AT_name */ - .byte "download_entry" - .byte 0 - .2byte 0x278 /* AT_prototyped */ - .byte 0 - .2byte 0x111 /* AT_low_pc */ - .4byte .L_text_b - .2byte 0x121 /* AT_high_pc */ - .4byte .L_text_e - .2byte 0x8041 /* AT_body_begin */ - .4byte .L_text_b - .2byte 0x8051 /* AT_body_end */ - .4byte .L_text_e -.L_D3_e: - -.L_D4: - .4byte .L_D4_e-.L_D4 - .align 2 -.L_D4_e: -.L_D2: - .previous -#endif - -/*------------------------------------------------------------------------------- - * ROM Vector area. - *------------------------------------------------------------------------------*/ -#if PPC_ASM == PPC_ASM_ELF - .section .entry -#else - .csect .text[PR] -#endif - - PUBLIC_VAR (download_entry) -SYM(download_entry): - bl .startup -base_addr: - -/*------------------------------------------------------------------------------- - * Parameters from linker - *------------------------------------------------------------------------------*/ -toc_pointer: -#if PPC_ASM == PPC_ASM_ELF - .long s.got -#else - .long TOC[tc0] -#endif -bss_length: - .long bss.size -bss_addr: - .long bss.start -/*------------------------------------------------------------------------------- - * Reset_entry. - *------------------------------------------------------------------------------*/ -.startup: - /* Get start address, stack grows down from here... */ - mflr r1 - - /* Assume Bank regs set up..., cache etc. */ - bl bssclr - - /*----------------------------------------------------------------------- - * C_setup. - *----------------------------------------------------------------------*/ - lwz r2,toc_pointer-base_addr(r1) /* set r2 to toc */ - addi r1,r1,-56-4 /* start stack at text_addr - 56 */ - addi r3,r0,0x0 /* clear r3 */ - stw r3, 0(r1) /* Clear stack chain */ - stw r3, 4(r1) - stw r3, 8(r1) - stw r3, 12(r1) - lis r5,environ@ha - la r5,environ@l(r5) /* environp */ - li r4, 0 /* argv */ - li r3, 0 /* argc */ - .extern SYM (boot_card) - b SYM (boot_card) /* call the first C routine */ - -/*------------------------------------------------------------------------------- - * bssclr. - *------------------------------------------------------------------------------*/ -bssclr: - /*----------------------------------------------------------------------- - * Data move finished, zero out bss. - *----------------------------------------------------------------------*/ - lwz r2,bss_addr-base_addr(r1) /* start of bss set by loader */ - lwz r3,bss_length-base_addr(r1) /* bss length */ - rlwinm. r3,r3,30,0x3FFFFFFF /* form length/4 */ - beqlr /* no bss */ - mtctr r3 /* set ctr reg */ - xor r6,r6,r6 /* r6 = 0 */ -clear_bss: - stswi r6,r2,0x4 /* store r6 */ - addi r2,r2,0x4 /* update r2 */ - bdnz clear_bss /* decrement counter and loop */ - blr /* return */ -.L_text_e: - -#if PPC_ABI == PPC_ABI_POWEROPEN - DESCRIPTOR (startup) -#endif - - .comm environ,4,4 diff --git a/c/src/lib/libbsp/powerpc/papyrus/flashentry/.cvsignore b/c/src/lib/libbsp/powerpc/papyrus/flashentry/.cvsignore deleted file mode 100644 index 282522db03..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/flashentry/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/c/src/lib/libbsp/powerpc/papyrus/flashentry/Makefile.am b/c/src/lib/libbsp/powerpc/papyrus/flashentry/Makefile.am deleted file mode 100644 index 8b9a940038..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/flashentry/Makefile.am +++ /dev/null @@ -1,33 +0,0 @@ -## -## $Id$ -## - -AUTOMAKE_OPTIONS = foreign 1.4 - -PGM = $(ARCH)/flashentry.rel - -S_FILES = flashentry.S -S_O_FILES = $(S_FILES:%.S=$(ARCH)/%.o) - -OBJS = $(S_O_FILES) - -include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg -include $(top_srcdir)/../../../../../../automake/compile.am -include $(top_srcdir)/../../../../../../automake/lib.am - -# -# (OPTIONAL) Add local stuff here using += -# - -$(PGM): $(OBJS) - $(make-rel) - -# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile - -all-local: $(ARCH) $(OBJS) $(PGM) - -.PRECIOUS: $(PGM) - -EXTRA_DIST = flashentry.S - -include $(top_srcdir)/../../../../../../automake/local.am diff --git a/c/src/lib/libbsp/powerpc/papyrus/flashentry/flashentry.S b/c/src/lib/libbsp/powerpc/papyrus/flashentry/flashentry.S deleted file mode 100644 index 60339decda..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/flashentry/flashentry.S +++ /dev/null @@ -1,295 +0,0 @@ -/* dlentry.s 1.0 - 95/08/08 - * - * This file contains the entry veneer for RTEMS programs - * stored in Papyrus' flash ROM. - * - * Author: Andrew Bray - * - * COPYRIGHT (c) 1995 by i-cubed ltd. - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of i-cubed limited not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * i-cubed limited makes no representations about the suitability - * of this software for any purpose. - * - * $Id$ - */ - -#include "asm.h" - -/* - * The Papyrus ELF link scripts support three special sections: - * .entry The actual entry point, this must contain less - * than 256 bytes of code/data to fit below the - * .vectors section. This always preceeds any other - * code or data. - * .vectors The section containing the interrupt entry veneers. - * .entry2 Any code overflowing from .entry - * .descriptors The PowerOpen function indirection blocks. - */ - -/* - * Flash sections are linked in the following order: - * .entry - * .vectors - * .entry2 - * .text - * .descriptors - * .data - * .bss - * usually starting from 0xFFF00000. - * - * The initial stack is set to run BELOW the final location of - * the initialised data. - * - * All the entry veneer has to do is to copy the initialised data - * to its final location and clear the BSS. - */ - -/* - * GDB likes to have debugging information for the entry veneer. - * Here is some DWARF information. - */ - -#if PPC_ASM == PPC_ASM_ELF - .section .entry,"ax",@progbits -.L_text_b: -.L_LC1: - .previous - -.section .debug_sfnames -.L_sfnames_b: - .byte "/home/andy/powerpc/rtems-3.2.0/c/src/lib/libcpu/ppc/ppc403/flashentry/" - .byte 0 -.L_F0: - .byte "flashentry.s" - .byte 0 - .previous - -.section .line -.L_line_b: - .4byte .L_line_e-.L_line_b - .4byte .L_text_b -.L_LE1: -.L_line_last: - .4byte 0x0 - .2byte 0xffff - .4byte .L_text_e-.L_text_b -.L_line_e: - .previous - -.section .debug_srcinfo -.L_srcinfo_b: - .4byte .L_line_b - .4byte .L_sfnames_b - .4byte .L_text_b - .4byte .L_text_e - .4byte 0xffffffff - .4byte .L_LE1-.L_line_b - .4byte .L_F0-.L_sfnames_b - .4byte .L_line_last-.L_line_b - .4byte 0xffffffff - .previous - -.section .debug_pubnames - .4byte .L_debug_b - .4byte .L_P0 - .byte "flash_entry" - .byte 0 - .4byte 0x0 - .byte 0 - .previous - -.section .debug_aranges - .4byte .L_debug_b - .4byte .L_text_b - .4byte .L_text_e-.L_text_b - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0 - .4byte 0x0 - .4byte 0x0 - .previous - -.section .debug -.L_debug_b: -.L_D1: - .4byte .L_D1_e-.L_D1 - .2byte 0x11 /* TAG_compile_unit */ - .2byte 0x12 /* AT_sibling */ - .4byte .L_D2 - .2byte 0x38 /* AT_name */ - .byte "flashentry.s" - .byte 0 - .2byte 0x258 /* AT_producer */ - .byte "GAS 2.5.2" - .byte 0 - .2byte 0x111 /* AT_low_pc */ - .4byte .L_text_b - .2byte 0x121 /* AT_high_pc */ - .4byte .L_text_e - .2byte 0x106 /* AT_stmt_list */ - .4byte .L_line_b - .2byte 0x1b8 /* AT_comp_dir */ - .byte "/home/andy/powerpc/rtems-3.2.0/c/src/lib/libcpu/ppc/ppc403/dlentry/" - .byte 0 - .2byte 0x8006 /* AT_sf_names */ - .4byte .L_sfnames_b - .2byte 0x8016 /* AT_src_info */ - .4byte .L_srcinfo_b -.L_D1_e: -.L_P0: -.L_D3: - .4byte .L_D3_e-.L_D3 - .2byte 0x6 /* TAG_global_subroutine */ - .2byte 0x12 /* AT_sibling */ - .4byte .L_D4 - .2byte 0x38 /* AT_name */ - .byte "flash_entry" - .byte 0 - .2byte 0x278 /* AT_prototyped */ - .byte 0 - .2byte 0x111 /* AT_low_pc */ - .4byte .L_text_b - .2byte 0x121 /* AT_high_pc */ - .4byte .L_text_e - .2byte 0x8041 /* AT_body_begin */ - .4byte .L_text_b - .2byte 0x8051 /* AT_body_end */ - .4byte .L_text_e -.L_D3_e: - -.L_D4: - .4byte .L_D4_e-.L_D4 - .align 2 -.L_D4_e: -.L_D2: - .previous -#endif - -/*------------------------------------------------------------------------------- - * ROM Vector area. - *------------------------------------------------------------------------------*/ -#if PPC_ASM == PPC_ASM_ELF - .section .entry -#else - .csect .text[PR] -#endif - PUBLIC_VAR (flash_entry) -SYM (flash_entry): - bl .startup -base_addr: - -/*------------------------------------------------------------------------------- - * Parameters from linker - *------------------------------------------------------------------------------*/ -toc_pointer: -#if PPC_ASM == PPC_ASM_ELF - .long s.got -#else - .long TOC[tc0] -#endif -text_length: - .long t.size -text_addr: - .long t.start -data_length: - .long copy.size -data_addr: - .long copy.dest -bss_length: - .long bss.size -bss_addr: - .long bss.start - -/*------------------------------------------------------------------------------- - * Reset_entry. - *------------------------------------------------------------------------------*/ -.startup: - /* Get start address */ - mflr r1 - - /* Assume Bank regs set up..., cache etc. */ - - /*----------------------------------------------------------------------- - * Check the DRAM where STACK+ DATA+ BBS will be placed. If this is OK - * we will return here. - *----------------------------------------------------------------------*/ - bl rom2ram - /*----------------------------------------------------------------------- - * Enable two 128MB cachable regions. - *----------------------------------------------------------------------*/ - addis r2,r0,0x8000 - addi r2,r2,0x0001 - - mtspr 0x3fb, r2 /* ICCR */ - mtspr 0x3fa, r2 /* DCCR */ - - /*----------------------------------------------------------------------- - * C_setup. - *----------------------------------------------------------------------*/ - lwz r2,toc_pointer-base_addr(r1) /* set r2 to toc */ - lwz r1,data_addr-base_addr(r1) /* set r1 to data_addr */ - addi r1,r1,-56 /* start stack at data_addr - 56 */ - addi r3,r0,0x0 /* clear r3 */ - stw r3, 0(r1) /* Clear stack chain */ - stw r3, 4(r1) - stw r3, 8(r1) - stw r3, 12(r1) - lis r5,environ@ha - la r5,environ@l(r5) /* environp */ - li r4, 0 /* argv */ - li r3, 0 /* argc */ - .extern SYM (boot_card) - b SYM (boot_card) /* call the first C routine */ - -/*------------------------------------------------------------------------------- - * Rom2ram. - *------------------------------------------------------------------------------*/ -rom2ram: - lwz r2,data_addr-base_addr(r1) /* start of data set by loader */ - lwz r3,data_length-base_addr(r1) /* data length */ - rlwinm r3,r3,30,0x3FFFFFFF /* form length/4 */ - mtctr r3 /* set ctr reg */ - /*----------------------------------------------------------------------- - * Calculate offset of data in image. - *----------------------------------------------------------------------*/ - lwz r5,text_length-base_addr(r1) /* get text length */ - lwz r4,text_addr-base_addr(r1) /* get text length */ - add r4,r4,r5 /* r4 = data pointer */ -move_data: - lswi r6,r4,0x4 /* load r6 */ - stswi r6,r2,0x4 /* store r6 */ - addi r4,r4,0x4 /* update r4 */ - addi r2,r2,0x4 /* update r2 */ - bdnz move_data /* decrement counter and loop */ - /*----------------------------------------------------------------------- - * Data move finished, zero out bss. - *----------------------------------------------------------------------*/ - lwz r2,bss_addr-base_addr(r1) /* start of bss set by loader */ - lwz r3,bss_length-base_addr(r1) /* bss length */ - rlwinm. r3,r3,30,0x3FFFFFFF /* form length/4 */ - beqlr /* no bss */ - mtctr r3 /* set ctr reg */ - xor r6,r6,r6 /* r6 = 0 */ -clear_bss: - stswi r6,r2,0x4 /* store r6 */ - addi r2,r2,0x4 /* update r2 */ - bdnz clear_bss /* decrement counter and loop */ - blr /* return */ -.L_text_e: - -#if PPC_ABI == PPC_ABI_POWEROPEN - DESCRIPTOR (startup) -#endif - - .comm environ,4,4 diff --git a/c/src/lib/libbsp/powerpc/papyrus/include/.cvsignore b/c/src/lib/libbsp/powerpc/papyrus/include/.cvsignore deleted file mode 100644 index b0be3c54e6..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/include/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -Makefile -Makefile.in -bspopts.h -bspopts.h.in -stamp-h -stamp-h.in diff --git a/c/src/lib/libbsp/powerpc/papyrus/include/Makefile.am b/c/src/lib/libbsp/powerpc/papyrus/include/Makefile.am deleted file mode 100644 index 60bd763d9b..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/include/Makefile.am +++ /dev/null @@ -1,20 +0,0 @@ -## -## $Id$ -## - -AUTOMAKE_OPTIONS = foreign 1.4 - -include_HEADERS = bsp.h coverhd.h bspopts.h - -$(PROJECT_INCLUDE): - $(mkinstalldirs) $@ - -$(PROJECT_INCLUDE)/%.h: %.h - $(INSTALL_DATA) $< $@ - -TMPINSTALL_FILES = $(PROJECT_INCLUDE) \ - $(include_HEADERS:%=$(PROJECT_INCLUDE)/%) - -all-local: $(TMPINSTALL_FILES) - -include $(top_srcdir)/../../../../../../automake/local.am diff --git a/c/src/lib/libbsp/powerpc/papyrus/include/bsp.h b/c/src/lib/libbsp/powerpc/papyrus/include/bsp.h deleted file mode 100644 index ccbf762a06..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/include/bsp.h +++ /dev/null @@ -1,134 +0,0 @@ -/* bsp.h - * - * This include file contains all Papyrus board IO definitions. - * - * Author: Andrew Bray - * - * COPYRIGHT (c) 1995 by i-cubed ltd. - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of i-cubed limited not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * i-cubed limited makes no representations about the suitability - * of this software for any purpose. - * - * Derived from c/src/lib/libbsp/no_cpu/no_bsp/include/bsp.h - * - * COPYRIGHT (c) 1989-1999. - * On-Line Applications Research Corporation (OAR). - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#ifndef __PAPYRUS_h -#define __PAPYRUS_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -/* - * confdefs.h overrides for this BSP: - * - number of termios serial ports (defaults to 1) - * - Interrupt stack space is not minimum if defined. - */ - -/* #define CONFIGURE_NUMBER_OF_TERMIOS_PORTS 2 */ -#define CONFIGURE_INTERRUPT_STACK_MEMORY (4 * 1024) - -#ifdef ASM -/* Definition of where to store registers in alignment handler */ -#define ALIGN_REGS 0x0140 - -#else -#include -#include -#include -#include -#include - -/* - * Define the time limits for RTEMS Test Suite test durations. - * Long test and short test duration limits are provided. These - * values are in seconds and need to be converted to ticks for the - * application. - * - */ - -#define MAX_LONG_TEST_DURATION 300 /* 5 minutes = 300 seconds */ -#define MAX_SHORT_TEST_DURATION 3 /* 3 seconds */ - - -/* - * Stuff for Time Test 27 - */ - -#define MUST_WAIT_FOR_INTERRUPT 0 - -#define Install_tm27_vector( handler ) set_vector( (handler), PPC_IRQ_SCALL, 1 ) - -#define Cause_tm27_intr() asm volatile ("sc") - -#define Clear_tm27_intr() - -#define Lower_tm27_intr() - -/* Constants */ - -#define RAM_START 0 -#define RAM_END 0x00200000 - - -/* Some useful LED debugging bits */ -/* LED numbers are from 0-2 */ -#define __led_base ((volatile int *)0x7F200000) - -/* Turn a LED on */ -#define led_on(n) (__led_base[n] = 0) - -/* Turn a LED off */ -#define led_off(n) (__led_base[n] = 1) - -/* miscellaneous stuff assumed to exist */ - -extern rtems_configuration_table BSP_Configuration; /* owned by BSP */ -extern rtems_cpu_table Cpu_table; /* owned by BSP */ - -/* - * Device Driver Table Entries - */ - -/* - * NOTE: Use the standard Console driver entry - */ - -/* - * NOTE: Use the standard Clock driver entry - */ - -/* functions */ - -rtems_isr_entry set_vector( /* returns old vector */ - rtems_isr_entry handler, /* isr routine */ - rtems_vector_number vector, /* vector number */ - int type /* RTEMS or RAW intr */ -); -#endif /* ASM */ - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/powerpc/papyrus/include/coverhd.h b/c/src/lib/libbsp/powerpc/papyrus/include/coverhd.h deleted file mode 100644 index deac9b55ff..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/include/coverhd.h +++ /dev/null @@ -1,134 +0,0 @@ -/* coverhd.h - * - * This include file has defines to represent the overhead associated - * with calling a particular directive from C. These are used in the - * Timing Test Suite to ignore the overhead required to pass arguments - * to directives. On some CPUs and/or target boards, this overhead - * is significant and makes it difficult to distinguish internal - * RTEMS execution time from that used to call the directive. - * This file should be updated after running the C overhead timing - * test. Once this update has been performed, the RTEMS Time Test - * Suite should be rebuilt to account for these overhead times in the - * timing results. - * - * NOTE: If these are all zero, then the times reported include - * all calling overhead including passing of arguments. - * - * COPYRIGHT (c) 1989-1999. - * On-Line Applications Research Corporation (OAR). - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -/* - * Updated for a 25MHz Papyrus by Andrew Bray - * - * Units are 100ns. - * - * These numbers are of questionable use, as they are developed by calling - * the routine many times, thus getting its entry veneer into the (small) - * cache on the 403GA. This in general is not true of the RTEMS timing - * tests, which usually call a routine only once, thus having no cache loaded - * advantage. - * - * Whether the directive times are useful after deducting the function call - * overhead is also questionable. The user is more interested generally - * in the total cost of a directive, not the cost if the procedure call - * is inlined! (In general this is not true). - * - * Andrew Bray 18/08/1995 - * - */ - -#ifndef __COVERHD_h -#define __COVERHD_h - -#ifdef __cplusplus -extern "C" { -#endif - -#define CALLING_OVERHEAD_INITIALIZE_EXECUTIVE 1 -#define CALLING_OVERHEAD_SHUTDOWN_EXECUTIVE 1 -#define CALLING_OVERHEAD_TASK_CREATE 3 -#define CALLING_OVERHEAD_TASK_IDENT 1 -#define CALLING_OVERHEAD_TASK_START 1 -#define CALLING_OVERHEAD_TASK_RESTART 1 -#define CALLING_OVERHEAD_TASK_DELETE 1 -#define CALLING_OVERHEAD_TASK_SUSPEND 1 -#define CALLING_OVERHEAD_TASK_RESUME 1 -#define CALLING_OVERHEAD_TASK_SET_PRIORITY 1 -#define CALLING_OVERHEAD_TASK_MODE 1 -#define CALLING_OVERHEAD_TASK_GET_NOTE 1 -#define CALLING_OVERHEAD_TASK_SET_NOTE 1 -#define CALLING_OVERHEAD_TASK_WAKE_WHEN 4 -#define CALLING_OVERHEAD_TASK_WAKE_AFTER 1 -#define CALLING_OVERHEAD_INTERRUPT_CATCH 1 -#define CALLING_OVERHEAD_CLOCK_GET 4 -#define CALLING_OVERHEAD_CLOCK_SET 3 -#define CALLING_OVERHEAD_CLOCK_TICK 1 - -#define CALLING_OVERHEAD_TIMER_CREATE 1 -#define CALLING_OVERHEAD_TIMER_IDENT 1 -#define CALLING_OVERHEAD_TIMER_DELETE 1 -#define CALLING_OVERHEAD_TIMER_FIRE_AFTER 2 -#define CALLING_OVERHEAD_TIMER_FIRE_WHEN 5 -#define CALLING_OVERHEAD_TIMER_RESET 1 -#define CALLING_OVERHEAD_TIMER_CANCEL 1 -#define CALLING_OVERHEAD_SEMAPHORE_CREATE 2 -#define CALLING_OVERHEAD_SEMAPHORE_IDENT 1 -#define CALLING_OVERHEAD_SEMAPHORE_DELETE 1 -#define CALLING_OVERHEAD_SEMAPHORE_OBTAIN 1 -#define CALLING_OVERHEAD_SEMAPHORE_RELEASE 1 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_CREATE 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_IDENT 1 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_DELETE 1 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_SEND 1 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_URGENT 1 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_BROADCAST 1 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_RECEIVE 2 -#define CALLING_OVERHEAD_MESSAGE_QUEUE_FLUSH 1 - -#define CALLING_OVERHEAD_EVENT_SEND 1 -#define CALLING_OVERHEAD_EVENT_RECEIVE 2 -#define CALLING_OVERHEAD_SIGNAL_CATCH 1 -#define CALLING_OVERHEAD_SIGNAL_SEND 1 -#define CALLING_OVERHEAD_PARTITION_CREATE 3 -#define CALLING_OVERHEAD_PARTITION_IDENT 1 -#define CALLING_OVERHEAD_PARTITION_DELETE 1 -#define CALLING_OVERHEAD_PARTITION_GET_BUFFER 1 -#define CALLING_OVERHEAD_PARTITION_RETURN_BUFFER 1 -#define CALLING_OVERHEAD_REGION_CREATE 3 -#define CALLING_OVERHEAD_REGION_IDENT 1 -#define CALLING_OVERHEAD_REGION_DELETE 1 -#define CALLING_OVERHEAD_REGION_GET_SEGMENT 2 -#define CALLING_OVERHEAD_REGION_RETURN_SEGMENT 1 -#define CALLING_OVERHEAD_PORT_CREATE 2 -#define CALLING_OVERHEAD_PORT_IDENT 1 -#define CALLING_OVERHEAD_PORT_DELETE 1 -#define CALLING_OVERHEAD_PORT_EXTERNAL_TO_INTERNAL 1 -#define CALLING_OVERHEAD_PORT_INTERNAL_TO_EXTERNAL 2 - -#define CALLING_OVERHEAD_IO_INITIALIZE 2 -#define CALLING_OVERHEAD_IO_OPEN 2 -#define CALLING_OVERHEAD_IO_CLOSE 2 -#define CALLING_OVERHEAD_IO_READ 2 -#define CALLING_OVERHEAD_IO_WRITE 2 -#define CALLING_OVERHEAD_IO_CONTROL 2 -#define CALLING_OVERHEAD_FATAL_ERROR_OCCURRED 1 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CREATE 1 -#define CALLING_OVERHEAD_RATE_MONOTONIC_IDENT 1 -#define CALLING_OVERHEAD_RATE_MONOTONIC_DELETE 1 -#define CALLING_OVERHEAD_RATE_MONOTONIC_CANCEL 1 -#define CALLING_OVERHEAD_RATE_MONOTONIC_PERIOD 1 -#define CALLING_OVERHEAD_MULTIPROCESSING_ANNOUNCE 1 - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ diff --git a/c/src/lib/libbsp/powerpc/papyrus/startup/.cvsignore b/c/src/lib/libbsp/powerpc/papyrus/startup/.cvsignore deleted file mode 100644 index 282522db03..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/startup/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/c/src/lib/libbsp/powerpc/papyrus/startup/Makefile.am b/c/src/lib/libbsp/powerpc/papyrus/startup/Makefile.am deleted file mode 100644 index cdcfce5de5..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/startup/Makefile.am +++ /dev/null @@ -1,40 +0,0 @@ -## -## $Id$ -## - -AUTOMAKE_OPTIONS = foreign 1.4 - -VPATH = @srcdir@:@srcdir@/../../../shared - -PGM = $(ARCH)/startup.rel - -C_FILES = bspclean.c bsplibc.c bsppost.c bspstart.c bootcard.c main.c sbrk.c \ - setvec.c gnatinstallhandler.c -C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.o) - -OBJS = $(C_O_FILES) - -include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg -include $(top_srcdir)/../../../../../../automake/compile.am -include $(top_srcdir)/../../../../../../automake/lib.am - -# -# (OPTIONAL) Add local stuff here using += -# - -$(PGM): $(OBJS) - $(make-rel) - -$(PROJECT_RELEASE)/lib/linkcmds: linkcmds - $(INSTALL_DATA) $< $@ - -# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile -TMPINSTALL_FILES += $(PROJECT_RELEASE)/lib/linkcmds - -all-local: $(ARCH) $(OBJS) $(PGM) $(TMPINSTALL_FILES) - -.PRECIOUS: $(PGM) - -EXTRA_DIST = bspclean.c bspstart.c linkcmds setvec.c - -include $(top_srcdir)/../../../../../../automake/local.am diff --git a/c/src/lib/libbsp/powerpc/papyrus/startup/bspclean.c b/c/src/lib/libbsp/powerpc/papyrus/startup/bspclean.c deleted file mode 100644 index bc4613629f..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/startup/bspclean.c +++ /dev/null @@ -1,43 +0,0 @@ -/* bsp_cleanup() - * - * This routine normally is part of start.s and usually returns - * control to a monitor. - * - * INPUT: NONE - * - * OUTPUT: NONE - * - * Author: Andrew Bray - * - * COPYRIGHT (c) 1995 by i-cubed ltd. - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of i-cubed limited not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * i-cubed limited makes no representations about the suitability - * of this software for any purpose. - * - * Derived from c/src/lib/libbsp/no_cpu/no_bsp/startup/bspclean.c: - * - * COPYRIGHT (c) 1989-1999. - * On-Line Applications Research Corporation (OAR). - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include -#include - -void bsp_cleanup( void ) -{ - rtems_fatal_error_occurred(0); -} diff --git a/c/src/lib/libbsp/powerpc/papyrus/startup/bspstart.c b/c/src/lib/libbsp/powerpc/papyrus/startup/bspstart.c deleted file mode 100644 index 8d603e4b34..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/startup/bspstart.c +++ /dev/null @@ -1,132 +0,0 @@ -/* - * - * This routine starts the application. It includes application, - * board, and monitor specific initialization and configuration. - * The generic CPU dependent initialization has been performed - * before this routine is invoked. - * - * Author: Andrew Bray - * - * COPYRIGHT (c) 1995 by i-cubed ltd. - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of i-cubed limited not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * i-cubed limited makes no representations about the suitability - * of this software for any purpose. - * - * Derived from c/src/lib/libbsp/no_cpu/no_bsp/startup/bspstart.c: - * - * COPYRIGHT (c) 1989-1999. - * On-Line Applications Research Corporation (OAR). - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include - -#include -#include -#include - -/* - * The original table from the application and our copy of it with - * some changes. - */ - -extern rtems_configuration_table Configuration; - -rtems_configuration_table BSP_Configuration; - -rtems_cpu_table Cpu_table; - -char *rtems_progname; - -/* - * Use the shared implementations of the following routines - */ - -void bsp_postdriver_hook(void); -void bsp_libc_init( void *, unsigned32, int ); - -/* - * Function: bsp_pretasking_hook - * Created: 95/03/10 - * - * Description: - * BSP pretasking hook. Called just before drivers are initialized. - * Used to setup libc and install any BSP extensions. - * - * NOTES: - * Must not use libc (to do io) from here, since drivers are - * not yet initialized. - * - */ - -void bsp_pretasking_hook(void) -{ - extern int _end; - rtems_unsigned32 heap_start; - - heap_start = (rtems_unsigned32) &_end; - if (heap_start & (CPU_ALIGNMENT-1)) - heap_start = (heap_start + CPU_ALIGNMENT) & ~(CPU_ALIGNMENT-1); - - bsp_libc_init((void *) heap_start, 64 * 1024, 0); - -#ifdef RTEMS_DEBUG - rtems_debug_enable( RTEMS_DEBUG_ALL_MASK ); -#endif -} - -/* - * bsp_start - * - * This routine does the bulk of the system initialization. - */ - -void bsp_start( void ) -{ - /* - * Allocate the memory for the RTEMS Work Space. This can come from - * a variety of places: hard coded address, malloc'ed from outside - * RTEMS world (e.g. simulator or primitive memory manager), or (as - * typically done by stock BSPs) by subtracting the required amount - * of work space from the last physical address on the CPU board. - */ - - /* - * Need to "allocate" the memory for the RTEMS Workspace and - * tell the RTEMS configuration where it is. This memory is - * not malloc'ed. It is just "pulled from the air". - */ - - BSP_Configuration.work_space_start = (void *) - RAM_END - BSP_Configuration.work_space_size; - - /* - * initialize the CPU table for this BSP - */ - - Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc. */ - Cpu_table.postdriver_hook = bsp_postdriver_hook; - Cpu_table.interrupt_stack_size = CONFIGURE_INTERRUPT_STACK_MEMORY; - - Cpu_table.clicks_per_usec = 10; - Cpu_table.serial_per_sec = 10000000; - Cpu_table.serial_external_clock = 1; - Cpu_table.serial_xon_xoff = 0; - Cpu_table.serial_cts_rts = 1; - Cpu_table.serial_rate = 9600; - Cpu_table.timer_average_overhead = 2; - Cpu_table.timer_least_valid = 3; -} diff --git a/c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds b/c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds deleted file mode 100644 index a011ed5253..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/startup/linkcmds +++ /dev/null @@ -1,159 +0,0 @@ -/* - * This file contains directives for the GNU linker which are specific - * to the Papyrus. - * - * $Id$ - */ - -OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc", - "elf32-powerpc") -OUTPUT_ARCH(powerpc) - SEARCH_DIR(/usr/local/powerpc-rtems/lib); - -ENTRY(download_entry) - -MEMORY - { - RAM : ORIGIN = 0, LENGTH = 4M - FLASH : ORIGIN = 0xFF000000, LENGTH = 0x80000 - EPROM : ORIGIN = 0xFFFE0000, LENGTH = 0x20000 - } - -/* Do we need any of these for elf? - __DYNAMIC = 0; */ - -SECTIONS -{ - .vectors 0x0100 : - { - *(.vectors) - } - - .text 0x20000 : - { - *(.entry) - *(.entry2) - *(.text) - *(.rodata) - *(.gnu.linkonce.r*) - *(.rodata1) - *(.descriptors) - *(rom_ver) - etext = ALIGN(0x10); - _etext = .; - - __CTOR_LIST__ = .; - LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) - *(.ctors) - LONG(0) - __CTOR_END__ = .; - - __DTOR_LIST__ = .; - LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) - *(.dtors) - LONG(0) - __DTOR_END__ = .; - - *(.lit) - *(.shdata) - _init = .; *(.init) - _fini = .; *(.fini) - _endtext = .; - } > RAM - - /* R/W Data */ - .data : - { - *(.data) - *(.data1) - PROVIDE (__SDATA_START__ = .); - *(.sdata) - } > RAM - - PROVIDE (__EXCEPT_START__ = .); - .gcc_except_table : { *(.gcc_except_table) } >RAM - PROVIDE (__EXCEPT_END__ = .); - __GOT_START__ = .; - .got : - { - s.got = .; - *(.got.plt) *(.got) - } > RAM - __GOT_END__ = .; - - .got1 : { *(.got1) } >RAM - PROVIDE (__GOT2_START__ = .); - PROVIDE (_GOT2_START_ = .); - .got2 : { *(.got2) } >RAM - PROVIDE (__GOT2_END__ = .); - PROVIDE (_GOT2_END_ = .); - - PROVIDE (__FIXUP_START__ = .); - PROVIDE (_FIXUP_START_ = .); - .fixup : { *(.fixup) } >RAM - PROVIDE (_FIXUP_END_ = .); - PROVIDE (__FIXUP_END__ = .); - - PROVIDE (__SDATA2_START__ = .); - .sdata2 : { *(.sdata2) } >RAM - .sbss2 : { *(.sbss2) } >RAM - PROVIDE (__SBSS2_END__ = .); - - .sbss2 : { *(.sbss2) } >RAM - PROVIDE (__SBSS2_END__ = .); - - __SBSS_START__ = .; - .bss : - { - bss.start = .; - *(.bss) *(.sbss) *(COMMON) - bss.end = ALIGN(4); - } > RAM - __SBSS_END__ = .; - - bss.size = bss.end - bss.start; - PROVIDE(_end = bss.end); - - - /* Stabs debugging sections. */ - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - - /* SGI/MIPS DWARF 2 extensions */ - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } - /* These must appear regardless of . */ -} - - diff --git a/c/src/lib/libbsp/powerpc/papyrus/startup/setvec.c b/c/src/lib/libbsp/powerpc/papyrus/startup/setvec.c deleted file mode 100644 index 77c1ae3236..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/startup/setvec.c +++ /dev/null @@ -1,57 +0,0 @@ -/* set_vector - * - * This routine installs an interrupt vector on the target Board/CPU. - * This routine is allowed to be as board dependent as necessary. - * - * INPUT: - * handler - interrupt handler entry point - * vector - vector number - * type - 0 indicates raw hardware connect - * 1 indicates RTEMS interrupt connect - * - * RETURNS: - * address of previous interrupt handler - * - * Author: Andrew Bray - * - * COPYRIGHT (c) 1995 by i-cubed ltd. - * - * To anyone who acknowledges that this file is provided "AS IS" - * without any express or implied warranty: - * permission to use, copy, modify, and distribute this file - * for any purpose is hereby granted without fee, provided that - * the above copyright notice and this notice appears in all - * copies, and that the name of i-cubed limited not be used in - * advertising or publicity pertaining to distribution of the - * software without specific, written prior permission. - * i-cubed limited makes no representations about the suitability - * of this software for any purpose. - * - * Derived from c/src/lib/libbsp/no_cpu/no_bsp/startup/setvec.c: - * - * COPYRIGHT (c) 1989-1999. - * On-Line Applications Research Corporation (OAR). - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#include -#include - -rtems_isr_entry set_vector( /* returns old vector */ - rtems_isr_entry handler, /* isr routine */ - rtems_vector_number vector, /* vector number */ - int type /* RTEMS or RAW intr */ -) -{ - rtems_isr_entry previous_isr; - - rtems_interrupt_catch( handler, vector, (rtems_isr_entry *) &previous_isr ); - - return previous_isr; -} - diff --git a/c/src/lib/libbsp/powerpc/papyrus/times b/c/src/lib/libbsp/powerpc/papyrus/times deleted file mode 100644 index da260853bf..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/times +++ /dev/null @@ -1,197 +0,0 @@ -# -# Timing Test Suite Results for the Papyrus BSP -# -# NOTE: The Papyrus is a proprietary PPC403 based board. But it is the -# only BSP currently available for the PowerPC family. -# -# $Id$ -# - -NOTE: This BSP is user submitted and no timing information - is currently avaiable. - -Board: Papyrus -CPU: IBM 403GA -Clock Speed: 33 Mhz -Memory Configuration: SRAM, DRAM, cache, etc -Wait States: - -Times Reported in: cycles, microseconds, etc -Timer Source: Count Down Timer, on-CPU cycle counter, etc - -Column A: unused -Column B: unused - -# DESCRIPTION A B -== ================================================================= ==== ==== - 1 rtems_semaphore_create 20 - rtems_semaphore_delete 21 - rtems_semaphore_obtain: available 15 - rtems_semaphore_obtain: not available -- NO_WAIT 15 - rtems_semaphore_release: no waiting tasks 16 - - 2 rtems_semaphore_obtain: not available -- caller blocks 62 - - 3 rtems_semaphore_release: task readied -- preempts caller 55 - - 4 rtems_task_restart: blocked task -- preempts caller 77 - rtems_task_restart: ready task -- preempts caller 70 - rtems_semaphore_release: task readied -- returns to caller 25 - rtems_task_create 57 - rtems_task_start 31 - rtems_task_restart: suspended task -- returns to caller 36 - rtems_task_delete: suspended task 47 - rtems_task_restart: ready task -- returns to caller 37 - rtems_task_restart: blocked task -- returns to caller 46 - rtems_task_delete: blocked task 50 - - 5 rtems_task_suspend: calling task 51 - rtems_task_resume: task readied -- preempts caller 49 - - 6 rtems_task_restart: calling task 59 - rtems_task_suspend: returns to caller 18 - rtems_task_resume: task readied -- returns to caller 19 - rtems_task_delete: ready task 50 - - 7 rtems_task_restart: suspended task -- preempts caller 70 - - 8 rtems_task_set_priority: obtain current priority 12 - rtems_task_set_priority: returns to caller 27 - rtems_task_mode: obtain current mode 5 - rtems_task_mode: no reschedule 5 - rtems_task_mode: reschedule -- returns to caller 8 - rtems_task_mode: reschedule -- preempts caller 39 - rtems_task_set_note 13 - rtems_task_get_note 13 - rtems_clock_set 33 - rtems_clock_get 3 - - 9 rtems_message_queue_create 110 - rtems_message_queue_send: no waiting tasks 37 - rtems_message_queue_urgent: no waiting tasks 37 - rtems_message_queue_receive: available 31 - rtems_message_queue_flush: no messages flushed 12 - rtems_message_queue_flush: messages flushed 16 - rtems_message_queue_delete 26 - -10 rtems_message_queue_receive: not available -- NO_WAIT 15 - rtems_message_queue_receive: not available -- caller blocks 62 - -11 rtems_message_queue_send: task readied -- preempts caller 72 - -12 rtems_message_queue_send: task readied -- returns to caller 39 - -13 rtems_message_queue_urgent: task readied -- preempts caller 72 - -14 rtems_message_queue_urgent: task readied -- returns to caller 39 - -15 rtems_event_receive: obtain current events 1 - rtems_event_receive: not available -- NO_WAIT 12 - rtems_event_receive: not available -- caller blocks 56 - rtems_event_send: no task readied 12 - rtems_event_receive: available 12 - rtems_event_send: task readied -- returns to caller 24 - -16 rtems_event_send: task readied -- preempts caller 55 - -17 rtems_task_set_priority: preempts caller 62 - -18 rtems_task_delete: calling task 83 - -19 rtems_signal_catch 9 - rtems_signal_send: returns to caller 15 - rtems_signal_send: signal to self 18 - exit ASR overhead: returns to calling task 22 - exit ASR overhead: returns to preempting task 49 - -20 rtems_partition_create 35 - rtems_region_create 23 - rtems_partition_get_buffer: available 15 - rtems_partition_get_buffer: not available 13 - rtems_partition_return_buffer 18 - rtems_partition_delete 16 - rtems_region_get_segment: available 22 - rtems_region_get_segment: not available -- NO_WAIT 21 - rtems_region_return_segment: no waiting tasks 19 - rtems_region_get_segment: not available -- caller blocks 64 - rtems_region_return_segment: task readied -- preempts caller 74 - rtems_region_return_segment: task readied -- returns to caller 44 - rtems_region_delete 16 - rtems_io_initialize 2 - rtems_io_open 1 - rtems_io_close 1 - rtems_io_read 1 - rtems_io_write 1 - rtems_io_control 1 - -21 rtems_task_ident 149 - rtems_message_queue_ident 145 - rtems_semaphore_ident 156 - rtems_partition_ident 145 - rtems_region_ident 148 - rtems_port_ident 145 - rtems_timer_ident 145 - rtems_rate_monotonic_ident 145 - -22 rtems_message_queue_broadcast: task readied -- returns to caller 42 - rtems_message_queue_broadcast: no waiting tasks 17 - rtems_message_queue_broadcast: task readied -- preempts caller 78 - -23 rtems_timer_create 14 - rtems_timer_fire_after: inactive 22 - rtems_timer_fire_after: active 24 - rtems_timer_cancel: active 15 - rtems_timer_cancel: inactive 13 - rtems_timer_reset: inactive 21 - rtems_timer_reset: active 23 - rtems_timer_fire_when: inactive 34 - rtems_timer_fire_when: active 34 - rtems_timer_delete: active 19 - rtems_timer_delete: inactive 17 - rtems_task_wake_when 69 - -24 rtems_task_wake_after: yield -- returns to caller 9 - rtems_task_wake_after: yields -- preempts caller 45 - -25 rtems_clock_tick 4 - -26 _ISR_Disable 0 - _ISR_Flash 1 - _ISR_Enable 1 - _Thread_Disable_dispatch 0 - _Thread_Enable_dispatch 7 - _Thread_Set_state 11 - _Thread_Disptach (NO FP) 31 - context switch: no floating point contexts 21 - context switch: self 10 - context switch: to another task 10 - context switch: restore 1st FP task 25 - fp context switch: save idle, restore idle 31 - fp context switch: save idle, restore initialized 19 - fp context switch: save initialized, restore initialized 20 - _Thread_Resume 7 - _Thread_Unblock 7 - _Thread_Ready 9 - _Thread_Get 4 - _Semaphore_Get 2 - _Thread_Get: invalid id 0 - -27 interrupt entry overhead: returns to interrupted task 6 - interrupt exit overhead: returns to interrupted task 6 - interrupt entry overhead: returns to nested interrupt 6 - interrupt exit overhead: returns to nested interrupt 5 - interrupt entry overhead: returns to preempting task 7 - interrupt exit overhead: returns to preempting task 36 - -28 rtems_port_create 16 - rtems_port_external_to_internal 11 - rtems_port_internal_to_external 11 - rtems_port_delete 16 - -29 rtems_rate_monotonic_create 15 - rtems_rate_monotonic_period: initiate period -- returns to caller 21 - rtems_rate_monotonic_period: obtain status 13 - rtems_rate_monotonic_cancel 16 - rtems_rate_monotonic_delete: inactive 18 - rtems_rate_monotonic_delete: active 20 - rtems_rate_monotonic_period: conclude periods -- caller blocks 53 diff --git a/c/src/lib/libbsp/powerpc/papyrus/wrapup/.cvsignore b/c/src/lib/libbsp/powerpc/papyrus/wrapup/.cvsignore deleted file mode 100644 index 282522db03..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/wrapup/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/c/src/lib/libbsp/powerpc/papyrus/wrapup/Makefile.am b/c/src/lib/libbsp/powerpc/papyrus/wrapup/Makefile.am deleted file mode 100644 index 5a09259320..0000000000 --- a/c/src/lib/libbsp/powerpc/papyrus/wrapup/Makefile.am +++ /dev/null @@ -1,38 +0,0 @@ -## -## $Id$ -## - -AUTOMAKE_OPTIONS = foreign 1.4 - -BSP_PIECES = startup dlentry flashentry -# pieces to pick up out of libcpu/ppc -CPU_PIECES = clock timer console vectors ictrl - -# bummer; have to use $foreach since % pattern subst rules only replace 1x -OBJS = $(foreach piece, $(BSP_PIECES), $(wildcard ../$(piece)/$(ARCH)/*.o)) \ - $(wildcard ../../../../libcpu/powerpc/old_exception_processing/$(ARCH)/*.rel) \ - $(foreach piece, $(CPU_PIECES), ../../../../libcpu/$(RTEMS_CPU)/$(RTEMS_CPU_MODEL)/$(piece)/$(ARCH)/$(piece).rel) - -LIB = $(ARCH)/libbsp.a - -include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg -include $(top_srcdir)/../../../../../../automake/compile.am -include $(top_srcdir)/../../../../../../automake/lib.am - -# -# (OPTIONAL) Add local stuff here using += -# - -$(LIB): $(OBJS) - $(make-library) - -$(PROJECT_RELEASE)/lib/libbsp$(LIB_VARIANT).a: $(LIB) - $(INSTALL_DATA) $< $@ - -TMPINSTALL_FILES += $(PROJECT_RELEASE)/lib/libbsp$(LIB_VARIANT).a - -all-local: $(ARCH) $(OBJS) $(LIB) $(TMPINSTALL_FILES) - -.PRECIOUS: $(LIB) - -include $(top_srcdir)/../../../../../../automake/local.am -- cgit v1.2.3