source: rtems/c/src/lib/libbsp/sparc/leon3/include/bsp.h @ 4cb04f2

4.104.114.84.9
Last change on this file since 4cb04f2 was 4cb04f2, checked in by Joel Sherrill <joel.sherrill@…>, on Sep 6, 2007 at 12:03:16 AM

2007-09-05 Daniel Hellstrom <daniel@…>

  • include/bsp.h, startup/bspstart.c: LEON2 and LEON3 Data cache snooping detection on startup, for drivers. (LEON2,3 are configurable processors, they can be with or without DCache snooping. Caches without snooping needs the drivers to flush cache or use the sparc instruction lda to force cache miss...)
  • Property mode set to 100644
File size: 3.2 KB
Line 
1/*  bsp.h
2 *
3 *  This include file contains all SPARC simulator definitions.
4 *
5 *  COPYRIGHT (c) 1989-1998.
6 *  On-Line Applications Research Corporation (OAR).
7 *
8 *  The license and distribution terms for this file may be
9 *  found in the file LICENSE in this distribution or at
10 *  http://www.rtems.com/license/LICENSE.
11 *
12 *  Ported to ERC32 implementation of the SPARC by On-Line Applications
13 *  Research Corporation (OAR) under contract to the European Space
14 *  Agency (ESA).
15 *
16 *  ERC32 modifications of respective RTEMS file: COPYRIGHT (c) 1995.
17 *  European Space Agency.
18 *
19 *  $Id$
20 */
21
22#ifndef _BSP_H
23#define _BSP_H
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29#include <bspopts.h>
30
31#include <rtems.h>
32#include <leon.h>
33#include <rtems/clockdrv.h>
34#include <rtems/console.h>
35
36/* SPARC CPU variant: LEON3 */
37#define LEON3 1
38
39/*
40 *  confdefs.h overrides for this BSP:
41 *   - two termios serial ports
42 *   - Interrupt stack space is not minimum if defined.
43 */
44
45#define CONFIGURE_NUMBER_OF_TERMIOS_PORTS 2
46#define CONFIGURE_INTERRUPT_STACK_MEMORY  (16 * 1024)
47
48/*
49 * Network driver configuration
50 */
51
52struct rtems_bsdnet_ifconfig;
53extern int rtems_leon_open_eth_driver_attach(
54  struct rtems_bsdnet_ifconfig *config,
55  int attach
56);
57extern int rtems_smc91111_driver_attach_leon3(
58  struct rtems_bsdnet_ifconfig *config,
59  int attach
60);
61extern int rtems_leon_greth_driver_attach(
62  struct rtems_bsdnet_ifconfig *config,
63  int attach
64);
65
66#define RTEMS_BSP_NETWORK_DRIVER_NAME_OPENETH   "open_eth1"
67#define RTEMS_BSP_NETWORK_DRIVER_ATTACH_OPENETH  rtems_leon_open_eth_driver_attach
68#define RTEMS_BSP_NETWORK_DRIVER_NAME_SMC91111  "smc_eth1"
69#define RTEMS_BSP_NETWORK_DRIVER_ATTACH_SMC91111 rtems_smc91111_driver_attach_leon3
70#define RTEMS_BSP_NETWORK_DRIVER_NAME_GRETH      "gr_eth1"
71#define RTEMS_BSP_NETWORK_DRIVER_ATTACH_GRETH    rtems_leon_greth_driver_attach
72
73#ifndef RTEMS_BSP_NETWORK_DRIVER_NAME
74#define RTEMS_BSP_NETWORK_DRIVER_NAME   RTEMS_BSP_NETWORK_DRIVER_NAME_GRETH
75#define RTEMS_BSP_NETWORK_DRIVER_ATTACH RTEMS_BSP_NETWORK_DRIVER_ATTACH_GRETH
76#endif
77
78/*
79 *  Simple spin delay in microsecond units for device drivers.
80 *  This is very dependent on the clock speed of the target.
81 */
82
83extern void Clock_delay(uint32_t microseconds);
84
85#define delay( microseconds ) Clock_delay(microseconds)
86extern int   CPU_SPARC_HAS_SNOOPING;
87
88
89/* Constants */
90
91/*
92 *  Information placed in the linkcmds file.
93 */
94
95extern int   RAM_START;
96extern int   RAM_END;
97extern int   RAM_SIZE;
98 
99extern int   PROM_START;
100extern int   PROM_END;
101extern int   PROM_SIZE;
102
103extern int   CLOCK_SPEED;
104 
105extern int   end;        /* last address in the program */
106
107/* miscellaneous stuff assumed to exist */
108
109void bsp_cleanup( void );
110
111void bsp_start( void );
112
113rtems_isr_entry set_vector(                     /* returns old vector */
114    rtems_isr_entry     handler,                /* isr routine        */
115    rtems_vector_number vector,                 /* vector number      */
116    int                 type                    /* RTEMS or RAW intr  */
117);
118
119void BSP_fatal_return( void );
120
121void bsp_spurious_initialize( void );
122
123extern rtems_configuration_table BSP_Configuration;     /* owned by BSP */
124
125extern rtems_cpu_table           Cpu_table;             /* owned by BSP */
126
127#ifdef __cplusplus
128}
129#endif
130
131#endif
132
133
Note: See TracBrowser for help on using the repository browser.