RTEMS 6.1-rc7
Loading...
Searching...
No Matches
bsp.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-2-Clause */
2
11/*
12 * COPYRIGHT (c) 1989-2012.
13 * On-Line Applications Research Corporation (OAR).
14 *
15 * Redistribution and use in source and binary forms, with or without
16 * modification, are permitted provided that the following conditions
17 * are met:
18 * 1. Redistributions of source code must retain the above copyright
19 * notice, this list of conditions and the following disclaimer.
20 * 2. Redistributions in binary form must reproduce the above copyright
21 * notice, this list of conditions and the following disclaimer in the
22 * documentation and/or other materials provided with the distribution.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
28 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 * POSSIBILITY OF SUCH DAMAGE.
35 */
36
37#ifndef LIBBSP_MIPS_HURRICANE_BSP_H
38#define LIBBSP_MIPS_HURRICANE_BSP_H
39
50#ifndef ASM
51
52#include <bspopts.h>
54
55#include <rtems.h>
56#include <libcpu/rm5231.h>
57
58#ifdef __cplusplus
59extern "C" {
60#endif
61
62extern void WriteDisplay( char * string );
63
64extern uint32_t mips_get_timer( void );
65
66#define BSP_FEATURE_IRQ_EXTENSION
67#define BSP_SHARED_HANDLER_SUPPORT 1
68
69#define CPU_CLOCK_RATE_MHZ (200)
70#define CLOCKS_PER_MICROSECOND ( CPU_CLOCK_RATE_MHZ ) /* equivalent to CPU clock speed in MHz */
71
72/*
73 * Simple spin delay in microsecond units for device drivers.
74 * This is very dependent on the clock speed of the target.
75 *
76 * NOTE: This macro generates a warning like "integer constant out
77 * of range" which is safe to ignore. In 64 bit mode, unsigned32
78 * types are actually 64 bits long so that comparisons between
79 * unsigned32 types and pointers are valid. The warning is caused
80 * by code in the delay macro that is necessary for 64 bit mode.
81 */
82
83#define rtems_bsp_delay( microseconds ) \
84 { \
85 uint32_t _end_clock = \
86 mips_get_timer() + microseconds * CLOCKS_PER_MICROSECOND; \
87 _end_clock %= 0x100000000; /* make sure result is 32 bits */ \
88 \
89 /* handle timer overflow, if necessary */ \
90 while ( _end_clock < mips_get_timer() ); \
91 \
92 while ( _end_clock > mips_get_timer() ); \
93 }
94
95/* Constants */
96
97#define RAM_START 0
98#define RAM_END 0x100000
99
100/*
101 * Prototypes for methods called from .S for dependency tracking
102 */
103void init_tlb(void);
104void resettlb(int i);
105
106#ifdef __cplusplus
107}
108#endif
109
110#endif /* !ASM */
111
114#endif /* __HURRICANE_BSP_h */
This header file provides the default definition of BSP_INITIAL_EXTENSION.
This header file defines the RTEMS Classic API.