source: rtems/c/src/lib/libbsp/powerpc/mvme5500/include/bsp.h @ 0659b5de

4.115
Last change on this file since 0659b5de was 0659b5de, checked in by Joel Sherrill <joel.sherrill@…>, on 10/16/14 at 21:20:22

powerpc/mvme5500: Fix warnings

  • Property mode set to 100644
File size: 5.3 KB
Line 
1/*
2 *  Copyright (C) 1999 Eric Valette. valette@crf.canon.fr
3 *
4 *  The license and distribution terms for this file may be
5 *  found in the file LICENSE in this distribution or at
6 *  http://www.rtems.org/license/LICENSE.
7 *
8 *  (C) S. Kate Feng 2003-2007 : Modified it to support the mvme5500 BSP.
9 */
10
11#ifndef _BSP_H
12#define _BSP_H
13
14#ifndef ASM
15
16#include <bspopts.h>
17#include <bsp/default-initial-extension.h>
18
19#include <rtems.h>
20#include <rtems/console.h>
21#include <rtems/clockdrv.h>
22#include <libcpu/io.h>
23#include <bsp/vectors.h>
24
25/* Board type */
26typedef enum {
27  undefined = 0,
28  MVME5500,
29  MVME6100
30} BSP_BoardTypes;
31
32BSP_BoardTypes BSP_getBoardType(void);
33
34/* Board type */
35typedef enum {
36  Undefined,
37  UNIVERSE2,
38  TSI148,
39} BSP_VMEchipTypes;
40
41BSP_VMEchipTypes BSP_getVMEchipType(void);
42
43/* The version of Discovery system controller */
44
45typedef enum {
46  notdefined,
47  GT64260A,
48  GT64260B,
49  MV64360,
50} DiscoveryChipVersion;
51
52DiscoveryChipVersion BSP_getDiscoveryChipVersion(void);
53
54#define _256M           0x10000000
55#define _512M           0x20000000
56
57#define GT64x60_REG_BASE        0xf1000000  /* Base of GT64260 Reg Space */
58#define GT64x60_REG_SPACE_SIZE  0x10000     /* 64Kb Internal Reg Space */
59
60#define GT64x60_DEV1_BASE       0xf1100000  /* Device bank1(chip select 1) base
61                                             */
62#define GT64260_DEV1_SIZE       0x00100000 /* Device bank size */
63
64/* fundamental addresses for this BSP (PREPxxx are from libcpu/io.h) */
65#define _IO_BASE GT64x60_REG_BASE
66
67#define BSP_NVRAM_BASE_ADDR     0xf1110000
68
69#define BSP_RTC_INTA_REG        0x7ff0
70#define BSP_RTC_SECOND          0x7ff2
71#define BSP_RTC_MINUTE          0x7ff3
72#define BSP_RTC_HOUR            0x7ff4
73#define BSP_RTC_DATE            0x7ff5
74#define BSP_RTC_INTERRUPTS      0x7ff6
75#define BSP_RTC_WATCHDOG        0x7ff7
76
77/* PCI0 Domain I/O space */
78#define PCI0_IO_BASE            0xf0000000
79#define PCI1_IO_BASE            0xf0800000
80
81/* PCI 0 memory space as seen from the CPU */
82#define PCI0_MEM_BASE                  0x80000000
83#define PCI_MEM_BASE                   0  /* glue for vmeUniverse */
84#define PCI_MEM_BASE_ADJUSTMENT        0
85
86/* address of our ram on the PCI bus */
87#define  PCI_DRAM_OFFSET          0
88
89/* PCI 1 memory space as seen from the CPU */
90#define PCI1_MEM_BASE           0xe0000000
91#define PCI1_MEM_SIZE           0x10000000
92
93/* Needed for hot adding via PMCspan on the PCI0 local bus.
94 * This is board dependent, only because mvme5500
95 * supports hot adding and has more than one local PCI
96 * bus.
97 */
98#define BSP_MAX_PCI_BUS_ON_PCI0 8
99#define BSP_MAX_PCI_BUS_ON_PCI1 2
100#define BSP_MAX_PCI_BUS  (BSP_MAX_PCI_BUS_ON_PCI0+BSP_MAX_PCI_BUS_ON_PCI1)
101
102
103/* The glues to Till's vmeUniverse, although the name does not
104 * actually reflect the relevant architect of the MVME5500.
105 */
106#define BSP_PCI_IRQ0 BSP_GPP_IRQ_LOWEST_OFFSET
107
108/*
109 *  confdefs.h overrides for this BSP:
110 *   - Interrupt stack space is not minimum if defined.
111 */
112#define BSP_INTERRUPT_STACK_SIZE  (16 * 1024) /* <skf> 2/09 wants it to be adjustable by BSP */
113
114/* uart.c uses out_8 instead of outb  */
115#define BSP_UART_IOBASE_COM1  GT64x60_DEV1_BASE + 0x20000
116#define BSP_UART_IOBASE_COM2  GT64x60_DEV1_BASE + 0x21000
117
118#define BSP_CONSOLE_PORT    BSP_UART_COM1  /* console */
119#define BSP_UART_BAUD_BASE    115200
120
121/*
122 * Total memory using RESIDUAL DATA
123 */
124extern unsigned int BSP_mem_size;
125/*
126 * PCI Bus Frequency
127 */
128extern unsigned int BSP_bus_frequency;
129/*
130 * processor clock frequency
131 */
132extern unsigned int BSP_processor_frequency;
133/*
134 * Time base divisior (how many tick for 1 second).
135 */
136extern unsigned int BSP_time_base_divisor;
137
138#define BSP_Convert_decrementer( _value ) \
139  ((unsigned long long) ((((unsigned long long)BSP_time_base_divisor) * 1000000ULL) /((unsigned long long) BSP_bus_frequency)) * ((unsigned long long) (_value)))
140
141extern void BSP_panic(char *s);
142extern void bsp_reset(void);
143/* extern int printk(const char *, ...) __attribute__((format(printf, 1, 2))); */
144extern int BSP_disconnect_clock_handler(void);
145extern int BSP_connect_clock_handler(void);
146
147unsigned long _BSP_clear_hostbridge_errors(int enableMCP, int quiet);
148
149/*
150 * Prototypes for methods called only from .S for dependency tracking
151 */
152char *save_boot_params(
153  void *r3,
154  void *r4,
155  void *r5,
156  char *cmdline_start,
157  char *cmdline_end
158);
159void zero_bss(void);
160
161/*
162 * Prototypes for methods in the BSP that cross file boundaries
163 */
164uint32_t probeMemoryEnd(void);
165void     pci_interface(void);
166void     BSP_printPicIsrTbl(void);
167int I2Cread_eeprom(
168  unsigned char  I2cBusAddr,
169  uint32_t       devA2A1A0,
170  uint32_t       AddrBytes,
171  unsigned char *pBuff,
172  uint32_t       numBytes
173);
174
175#if 0
176#define RTEMS_BSP_NETWORK_DRIVER_NAME  "gt1"
177#define RTEMS_BSP_NETWORK_DRIVER_ATTACH  rtems_GT64260eth_driver_attach
178#else
179#define RTEMS_BSP_NETWORK_DRIVER_NAME  "wmG1"
180#define RTEMS_BSP_NETWORK_DRIVER_ATTACH  rtems_i82544EI_driver_attach
181#endif
182
183extern int RTEMS_BSP_NETWORK_DRIVER_ATTACH();
184
185#define gccMemBar() RTEMS_COMPILER_MEMORY_BARRIER()
186
187static inline void lwmemBar(void)
188{
189    __asm__ volatile("lwsync":::"memory");
190}
191
192static inline void io_flush(void)
193{
194    __asm__ volatile("isync":::"memory");
195}
196
197static inline void memBar(void)
198{
199    __asm__ volatile("sync":::"memory");
200}
201
202static inline void ioBar(void)
203{
204    __asm__ volatile("eieio":::"memory");
205}
206
207#endif
208
209#endif /* !ASM */
Note: See TracBrowser for help on using the repository browser.