diff options
author | Roland McGrath <roland@gnu.org> | 2004-10-24 19:23:43 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2004-10-24 19:23:43 +0000 |
commit | 89c235754c8986b6394a969e92f75ba63ecbbf7c (patch) | |
tree | 880ae7f5c447ad63bc171148fc4b90ff102eecb2 /sysdeps/standalone/i960 | |
parent | 8aeb5058b6457cf9ca8d76026cbb60ca07015570 (diff) | |
download | glibc-89c235754c8986b6394a969e92f75ba63ecbbf7c.tar.gz glibc-89c235754c8986b6394a969e92f75ba63ecbbf7c.tar.xz glibc-89c235754c8986b6394a969e92f75ba63ecbbf7c.zip |
Ancient files moved to ports repository
Diffstat (limited to 'sysdeps/standalone/i960')
-rw-r--r-- | sysdeps/standalone/i960/Dist | 1 | ||||
-rw-r--r-- | sysdeps/standalone/i960/i960ca.h | 206 | ||||
-rw-r--r-- | sysdeps/standalone/i960/nindy960/Makefile | 24 | ||||
-rw-r--r-- | sysdeps/standalone/i960/nindy960/_exit.c | 55 | ||||
-rw-r--r-- | sysdeps/standalone/i960/nindy960/brdinit.c | 64 | ||||
-rw-r--r-- | sysdeps/standalone/i960/nindy960/console.c | 76 | ||||
-rw-r--r-- | sysdeps/standalone/i960/start.S | 152 |
7 files changed, 0 insertions, 578 deletions
diff --git a/sysdeps/standalone/i960/Dist b/sysdeps/standalone/i960/Dist deleted file mode 100644 index e1747ef91e..0000000000 --- a/sysdeps/standalone/i960/Dist +++ /dev/null @@ -1 +0,0 @@ -i960ca.h diff --git a/sysdeps/standalone/i960/i960ca.h b/sysdeps/standalone/i960/i960ca.h deleted file mode 100644 index 0dcf5c374a..0000000000 --- a/sysdeps/standalone/i960/i960ca.h +++ /dev/null @@ -1,206 +0,0 @@ -/* Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil), - On-Line Applications Research Corporation. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* i960ca.h - * - * This file contains macros which are used to access i80960CA - * registers which are not addressable by C. The functions - * in this file should be useful to the developer of target - * specific code. - */ - -#ifndef i960ca_h__ -#define i960ca_h__ - -typedef unsigned char unsigned8; -typedef unsigned short unsigned16; -typedef unsigned int unsigned32; - -/* - * Intel i80960CA Processor Control Block - */ - -struct i80960ca_prcb { - unsigned32 *fault_tbl; /* fault table base address */ - struct i80960ca_ctltbl - *control_tbl; /* control table base address */ - unsigned32 initial_ac; /* AC register initial value */ - unsigned32 fault_config; /* fault configuration word */ - void *intr_tbl; /* interrupt table base address */ - void *sys_proc_tbl; /* system procedure table */ - /* base address */ - unsigned32 reserved; /* reserved */ - unsigned32 *intr_stack; /* interrupt stack pointer */ - unsigned32 ins_cache_cfg; /* instruction cache */ - /* configuration word */ - unsigned32 reg_cache_cfg; /* register cache */ - /* configuration word */ -}; - -/* - * Intel i80960CA Control Table - */ - -struct i80960ca_ctltbl { - /* Control Group 0 */ - unsigned32 ipb0; /* IP breakpoint 0 */ - unsigned32 ipb1; /* IP breakpoint 1 */ - unsigned32 dab0; /* data address breakpoint 0 */ - unsigned32 dab1; /* data address breakpoint 1 */ - /* Control Group 1 */ - unsigned32 imap0; /* interrupt map 0 */ - unsigned32 imap1; /* interrupt map 1 */ - unsigned32 imap2; /* interrupt map 2 */ - unsigned32 icon; /* interrupt control */ - /* Control Group 2 */ - unsigned32 mcon0; /* memory region 0 configuration */ - unsigned32 mcon1; /* memory region 1 configuration */ - unsigned32 mcon2; /* memory region 2 configuration */ - unsigned32 mcon3; /* memory region 3 configuration */ - /* Control Group 3 */ - unsigned32 mcon4; /* memory region 4 configuration */ - unsigned32 mcon5; /* memory region 5 configuration */ - unsigned32 mcon6; /* memory region 6 configuration */ - unsigned32 mcon7; /* memory region 7 configuration */ - /* Control Group 4 */ - unsigned32 mcon8; /* memory region 8 configuration */ - unsigned32 mcon9; /* memory region 9 configuration */ - unsigned32 mcon10; /* memory region 10 configuration */ - unsigned32 mcon11; /* memory region 11 configuration */ - /* Control Group 5 */ - unsigned32 mcon12; /* memory region 12 configuration */ - unsigned32 mcon13; /* memory region 13 configuration */ - unsigned32 mcon14; /* memory region 14 configuration */ - unsigned32 mcon15; /* memory region 15 configuration */ - /* Control Group 6 */ - unsigned32 bpcon; /* breakpoint control */ - unsigned32 tc; /* trace control */ - unsigned32 bcon; /* bus configuration control */ - unsigned32 reserved; /* reserved */ -}; - -#define disable_intr( oldlevel ) \ - { (oldlevel) = 0x1f0000; \ - asm volatile ( "modpc 0,%1,%1" \ - : "=d" ((oldlevel)) \ - : "0" ((oldlevel)) ); \ - } - -#define enable_intr( oldlevel ) \ - { unsigned32 _mask = 0x1f0000; \ - asm volatile ( "modpc 0,%0,%1" \ - : "=d" (_mask), "=d" ((oldlevel)) \ - : "0" (_mask), "1" ((oldlevel)) ); \ - } - -#define flash_intr( oldlevel ) \ - { unsigned32 _mask = 0x1f0000; \ - asm volatile ( "modpc 0,%0,%1 ; \ - mov %0,%1 ; \ - modpc 0,%0,%1" \ - : "=d" (_mask), "=d" ((oldlevel)) \ - : "0" (_mask), "1" ((oldlevel)) ); \ - } - -#define atomic_modify( mask, addr, prev ) \ - { register unsigned32 _mask = (mask); \ - register unsigned32 *_addr = (unsigned32 *)(addr); \ - asm volatile( "atmod %0,%1,%1" \ - : "=d" (_addr), "=d" (_mask) \ - : "0" (_addr), "1" (_mask) ); \ - (prev) = _mask; \ - } - -#define delay( microseconds ) \ - { register unsigned32 _delay=(microseconds); \ - register unsigned32 _tmp; \ - asm volatile( "delay0: \ - remo 3,31,%0 ; \ - cmpo 0,%0 ; \ - subo 1,%1,%1 ; \ - cmpobne.t 0,%1,delay0 " \ - : "=d" (_tmp), "=d" (_delay) \ - : "0" (_tmp), "1" (_delay) ); \ - } - -#define enable_tracing() \ - { register unsigned32 _pc = 0x1; \ - asm volatile( "modpc 0,%0,%0" : "=d" (_pc) : "0" (_pc) ); \ - } - -#define unmask_intr( xint ) \ - { register unsigned32 _mask= (1<<(xint)); \ - asm volatile( "or sf1,%0,sf1" : "=d" (_mask) : "0" (_mask) ); \ - } - -#define mask_intr( xint ) \ - { register unsigned32 _mask= (1<<(xint)); \ - asm volatile( "andnot %0,sf1,sf1" : "=d" (_mask) : "0" (_mask) ); \ - } - -#define clear_intr( xint ) \ - { register unsigned32 _xint=(xint); \ - asm volatile( "loop_til_cleared:" \ - " clrbit %0,sf0,sf0 ;" \ - " bbs %0,sf0,loop_til_cleared" \ - : "=d" (_xint) : "0" (_xint) ); \ - } - -#define reload_ctl_group( group ) \ - { register int _cmd = ((group)|0x400) ; \ - asm volatile( "sysctl %0,%0,%0" : "=d" (_cmd) : "0" (_cmd) ); \ - } - -#define cause_intr( intr ) \ - { register int _intr = (intr); \ - asm volatile( "sysctl %0,%0,%0" : "=d" (_intr) : "0" (_intr) ); \ - } - -#define soft_reset( prcb ) \ - { register struct i80960ca_prcb *_prcb = (prcb); \ - register unsigned32 *_next=0; \ - register unsigned32 _cmd = 0x30000; \ - asm volatile( "lda next,%1; \ - sysctl %0,%1,%2; \ - next: mov g0,g0" \ - : "=d" (_cmd), "=d" (_next), "=d" (_prcb) \ - : "0" (_cmd), "1" (_next), "2" (_prcb) ); \ - } - -static inline unsigned32 pend_intrs() -{ register unsigned32 _intr=0; - asm volatile( "mov sf0,%0" : "=d" (_intr) : "0" (_intr) ); - return ( _intr ); -} - -static inline unsigned32 mask_intrs() -{ register unsigned32 _intr=0; - asm volatile( "mov sf1,%0" : "=d" (_intr) : "0" (_intr) ); - return( _intr ); -} - -static inline unsigned32 get_fp() -{ register unsigned32 _fp=0; - asm volatile( "mov fp,%0" : "=d" (_fp) : "0" (_fp) ); - return ( _fp ); -} - -#endif -/* end of include file */ diff --git a/sysdeps/standalone/i960/nindy960/Makefile b/sysdeps/standalone/i960/nindy960/Makefile deleted file mode 100644 index 40ead970ad..0000000000 --- a/sysdeps/standalone/i960/nindy960/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright (C) 1993, 1997 Free Software Foundation, Inc. -# This file is part of the GNU C Library. -# Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil), -# On-Line Applications Research Corporation. - -# The GNU C Library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. - -# The GNU C Library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. - -# You should have received a copy of the GNU Lesser General Public -# License along with the GNU C Library; if not, write to the Free -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -# 02111-1307 USA. - - -# The nindy960 support has only been tested on the following boards: -# -# + Cyclone CVME961 VMEbus single board computer. diff --git a/sysdeps/standalone/i960/nindy960/_exit.c b/sysdeps/standalone/i960/nindy960/_exit.c deleted file mode 100644 index 9cd3f8519e..0000000000 --- a/sysdeps/standalone/i960/nindy960/_exit.c +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright (C) 1991, 1997, 1999 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil), - On-Line Applications Research Corporation. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <unistd.h> -#include <stdlib.h> - -/* The function `_exit' should take a status argument and simply - terminate program execution, using the low-order 8 bits of the - given integer as status. */ - -/* This returns control to Nindy. */ -/* XXX where is __NORETURN ? */ -__NORETURN void -_exit (status) - int status; -{ - /* status is ignored */ - - asm volatile( "mov 0,g0; \ - fmark ; \ - syncf ; \ - .word 0xfeedface ; \ - bx start" : : ); - /* The constant 0xfeedface is a magic word for break which - * is defined by NINDY. The branch extended restarts the - * application if the user types "go". - */ -} -weak_alias (_exit, _Exit) - - -#ifdef HAVE_GNU_LD - -#include <gnu-stabs.h> - -stub_warning(_exit); - -#endif /* GNU stabs. */ diff --git a/sysdeps/standalone/i960/nindy960/brdinit.c b/sysdeps/standalone/i960/nindy960/brdinit.c deleted file mode 100644 index 9985a9930e..0000000000 --- a/sysdeps/standalone/i960/nindy960/brdinit.c +++ /dev/null @@ -1,64 +0,0 @@ -/* Copyright (C) 1994, 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil), - On-Line Applications Research Corporation. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <standalone.h> -#include "i960ca.h" - -/* _Board_Initialize() - -This routine initializes the board. - -NOTE: Only tested on a Cyclone CVME961 but should be OK on any i960ca board. */ - -void -_Board_Initialize () -{ - struct i80960ca_prcb *prcb; /* ptr to processor control block */ - struct i80960ca_ctltbl *ctl_tbl; /* ptr to control table */ - - static inline struct i80960ca_prcb *get_prcb() - { register struct i80960ca_prcb *_prcb = 0; - asm volatile( "calls 5; \ - mov g0,%0" \ - : "=d" (_prcb) \ - : "0" (_prcb) ); - return ( _prcb ); - } - - prcb = get_prcb (); - ctl_tbl = prcb->control_tbl; - - /* The following configures the data breakpoint (which must be set - * before this is executed) to break on writes only. - */ - - ctl_tbl->bpcon &= ~0x00cc0000; - reload_ctl_group (6); - - /* bit 31 of the Register Cache Control can be set to - * enable an alternative caching algorithm. It does - * not appear to help our applications. - */ - - /* Configure Number of Register Caches */ - - prcb->reg_cache_cfg = 8; - soft_reset (prcb); -} diff --git a/sysdeps/standalone/i960/nindy960/console.c b/sysdeps/standalone/i960/nindy960/console.c deleted file mode 100644 index b062d9215b..0000000000 --- a/sysdeps/standalone/i960/nindy960/console.c +++ /dev/null @@ -1,76 +0,0 @@ -/* Copyright (C) 1994, 1997 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil), - On-Line Applications Research Corporation. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#include <standalone.h> -#include "i960ca.h" - -/* Console IO routines for a NINDY960 board. */ - -/* - * NINDY_IO( ... ) - * - * Interface to NINDY. - */ - -#define NINDY_INPUT 0 -#define NINDY_OUTPUT 1 - -void ___NINDY_IO_WRAPPER( void ) /* never called */ -{ - asm volatile ( " .text" ); - asm volatile ( " .align 4" ); - asm volatile ( " .globl _NINDY_IO" ); - asm volatile ( "_NINDY_IO:" ); - asm volatile ( " calls 0 /* call console routines */" ); - asm volatile ( " ret" ); -} - -/***** !!!! HOW DO I EXFUN NINDY_IO? !!!! *****/ - -/* _Console_Putc - -This routine transmits a character using NINDY. */ - -int -_Console_Putc (ch) - char ch; -{ - NINDY_IO( NINDY_OUTPUT, ch ); - return( 0 ); -} - -/* _Console_Getc - -This routine reads a character from NINDY and returns it. */ - -int -_Console_Getc (poll) - int poll; -{ - char ch; - - if ( poll ) { - /* I don't know how to poll with NINDY */ - return -1; - } else { - NINDY_IO( NINDY_INPUT, &ch ); - return ch; - } -} diff --git a/sysdeps/standalone/i960/start.S b/sysdeps/standalone/i960/start.S deleted file mode 100644 index 579beb77fb..0000000000 --- a/sysdeps/standalone/i960/start.S +++ /dev/null @@ -1,152 +0,0 @@ -/* Copyright (C) 1994, 1997 Free Software Foundation, Inc. - Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil), - On-Line Applications Research Corporation. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - In addition to the permissions in the GNU Lesser General Public - License, the Free Software Foundation gives you unlimited - permission to link the compiled version of this file with other - programs, and to distribute those programs without any restriction - coming from the use of this file. (The GNU Lesser General Public - License restrictions do apply in other respects; for example, they - cover modification of the file, and distribution when not linked - into another program.) - - Note that people who make modified versions of this file are not - obligated to grant this special exception for their modified - versions; it is their choice whether to do so. The GNU Lesser - General Public License gives permission to release a modified - version without this exception; this exception also makes it - possible to release a modified version which carries forward this - exception. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -/* entry.s - * - * This file contains the entry point for the application. - * The name of this entry point is compiler dependent. - * It jumps to the BSP which is responsible for performing - * all initialization. - * - */ - - .text - .globl start # GNU960 default entry point - -start: - mov 3, r12 - modpc r12, r12, r12 # enable tracing/trace faults - mov g5, g5 # NOP - mov 0, g14 # initialize constant for C - - /* - * zero out uninitialized data area - */ -zerobss: - lda _end, r4 /* find end of .bss */ - lda _bss_start, r5 /* find beginning of .bss */ - ldconst 0, r6 - -loop: st r6, (r5) /* to zero out uninitialized */ - addo 4, r5, r5 /* data area */ - cmpobl r5, r4, loop /* loop until _end reached */ - - - lda heap_memory, r12 /* tell C lib where heap is */ - st r12,___C_heap_start - lda heap_size, r12 /* tell C lib how big heap is */ - st r12,___C_heap_size - lda stack_memory,r12 /* set up stack pointer: */ - mov r12, sp - mov 0, g14 /* initialize constant for C */ - - call init_frames - ret /* return to monitor */ - -init_frames: - ldconst 0x3b001000, g0 - ldconst 0x00009107, g1 - modac g1, g0, g0 /* set AC controls */ - - /* - * Call application mainline. - * Someday, real values of argc and argv will be set up. - * For now, they are set to 0. - */ - - callx __Board_Initialize /* Initialize the board */ - - ldconst 0,g0 - ldconst 0,g1 - ldconst 0,g2 - callx ___libc_init /* initialize the library and */ - /* call main */ - /* - * if we return from main, we have "fallen" off the end - * of the program, therefore status is 0 - * so move 0 to g0 (exit parameter) - */ - - mov 0, g0 - callx __exit - ret - - -/* - * Data Declarations. Start with a macro which helps declare space. - */ - -#define DECLARE_SPACE(_name,_space,_align) \ - .globl _name ; \ - .align _align ; \ -.comm _name##,_space - -#define DECLARE_LABEL(_name) \ - .globl _name ; \ -_name##: - -#define DECLARE_PTR(_name) DECLARE_SPACE(_name,4,2) -#define DECLARE_U32(_name) DECLARE_SPACE(_name,4,2) -#define DECLARE_U16(_name) DECLARE_SPACE(_name,2,1) - -/* - * Require environment stuff - */ - -DECLARE_LABEL(_environ) -DECLARE_PTR(environ) - -DECLARE_LABEL(_errno) -DECLARE_U32(errno) - -/* - * Stack Size and Space - */ - - .set stack_size, 0x20000 - -DECLARE_SPACE(stack_memory,stack_size,4) -DECLARE_LABEL(stack_end) - -/* - * Heap Size and Space - */ - - .set heap_size, 0x20000 - -DECLARE_SPACE(heap_memory,heap_size,4) -DECLARE_LABEL(heap_end) |