mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-26 22:48:23 +00:00
code in each BSP's bspstart.c. These changes were: + confdefs.h now knows libio's semaphore requirements + shared/main.c now copies Configuration to BSP_Configuration + shared/main.c fills in the Cpu_table with default values This removed the need for rtems_libio_config() and the constant BSP_LIBIO_MAX_FDS in every BSP. Plus now the maximum number of open files can now be set on the gcc command line.
157 lines
3.7 KiB
C
157 lines
3.7 KiB
C
/* bsp.h
|
|
*
|
|
* This include file contains all Papyrus board IO definitions.
|
|
*
|
|
* Author: Andrew Bray <andy@i-cubed.co.uk>
|
|
*
|
|
* 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-1998.
|
|
* On-Line Applications Research Corporation (OAR).
|
|
* Copyright assigned to U.S. Government, 1994.
|
|
*
|
|
* The license and distribution terms for this file may be
|
|
* found in 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
|
|
|
|
#ifdef ASM
|
|
/* Definition of where to store registers in alignment handler */
|
|
#define ALIGN_REGS 0x0140
|
|
|
|
#else
|
|
#include <rtems.h>
|
|
#include <console.h>
|
|
#include <clockdrv.h>
|
|
#include <console.h>
|
|
#include <iosupp.h>
|
|
|
|
/*
|
|
* 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 1
|
|
|
|
#define Install_tm27_vector( _handler ) \
|
|
set_vector( (_handler), PPC_IRQ_DECREMENTER, 1 )
|
|
|
|
#define Cause_tm27_intr() \
|
|
do { \
|
|
unsigned32 _clicks = 1; \
|
|
asm volatile( "mtdec %0" : "=r" ((_clicks)) : "r" ((_clicks)) ); \
|
|
} while (0)
|
|
|
|
|
|
#define Clear_tm27_intr() \
|
|
do { \
|
|
unsigned32 _clicks = 0xffffffff; \
|
|
asm volatile( "mtdec %0" : "=r" ((_clicks)) : "r" ((_clicks)) ); \
|
|
} while (0)
|
|
|
|
#define Lower_tm27_intr() \
|
|
do { \
|
|
unsigned32 _msr = 0; \
|
|
_ISR_Set_level( 0 ); \
|
|
asm volatile( "mfmsr %0 ;" : "=r" (_msr) : "r" (_msr) ); \
|
|
_msr |= 0x8002; \
|
|
asm volatile( "mtmsr %0 ;" : "=r" (_msr) : "r" (_msr) ); \
|
|
} while (0)
|
|
|
|
/* Constants */
|
|
|
|
/*
|
|
* Device Driver Table Entries
|
|
*/
|
|
|
|
/*
|
|
* NOTE: Use the standard Console driver entry
|
|
*/
|
|
|
|
/*
|
|
* NOTE: Use the standard Clock driver entry
|
|
*/
|
|
|
|
|
|
/*
|
|
* Information placed in the linkcmds file.
|
|
*/
|
|
|
|
extern int RAM_START;
|
|
extern int RAM_END;
|
|
extern int RAM_SIZE;
|
|
|
|
extern int PROM_START;
|
|
extern int PROM_END;
|
|
extern int PROM_SIZE;
|
|
|
|
extern int CLOCK_SPEED;
|
|
|
|
extern int end; /* last address in the program */
|
|
|
|
/* functions */
|
|
|
|
void bsp_start( void );
|
|
|
|
void bsp_cleanup( void );
|
|
|
|
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 */
|
|
);
|
|
|
|
void DEBUG_puts( char *string );
|
|
|
|
void BSP_fatal_return( void );
|
|
|
|
void bsp_spurious_initialize( void );
|
|
|
|
extern rtems_configuration_table BSP_Configuration; /* owned by BSP */
|
|
|
|
extern rtems_cpu_table Cpu_table; /* owned by BSP */
|
|
|
|
extern rtems_unsigned32 bsp_isr_level;
|
|
|
|
#endif /* ASM */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
/* end of include file */
|