source: rtems/bsps/mips/include/libcpu/tx4938.h @ 508f319e

5
Last change on this file since 508f319e was 2afb22b, checked in by Chris Johns <chrisj@…>, on 12/23/17 at 07:18:56

Remove make preinstall

A speciality of the RTEMS build system was the make preinstall step. It
copied header files from arbitrary locations into the build tree. The
header files were included via the -Bsome/build/tree/path GCC command
line option.

This has at least seven problems:

  • The make preinstall step itself needs time and disk space.
  • Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error.
  • There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult.
  • The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit.
  • An introduction of a new build system is difficult.
  • Include paths specified by the -B option are system headers. This may suppress warnings.
  • The parallel build had sporadic failures on some hosts.

This patch removes the make preinstall step. All installed header
files are moved to dedicated include directories in the source tree.
Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc,
etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g.
erc32, imx, qoriq, etc.

The new cpukit include directories are:

  • cpukit/include
  • cpukit/score/cpu/@RTEMS_CPU@/include
  • cpukit/libnetworking

The new BSP include directories are:

  • bsps/include
  • bsps/@RTEMS_CPU@/include
  • bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include

There are build tree include directories for generated files.

The include directory order favours the most general header file, e.g.
it is not possible to override general header files via the include path
order.

The "bootstrap -p" option was removed. The new "bootstrap -H" option
should be used to regenerate the "headers.am" files.

Update #3254.

  • Property mode set to 100644
File size: 6.7 KB
Line 
1/**
2 *  @file
3 * 
4 *  MIPS Tx4938 specific information
5 */
6
7/*
8 *  COPYRIGHT (c) 1989-2012.
9 *  On-Line Applications Research Corporation (OAR).
10 *
11 *  The license and distribution terms for this file may be
12 *  found in the file LICENSE in this distribution or at
13 *  http://www.rtems.org/license/LICENSE.
14 */
15
16#ifndef __TX4938_h
17#define __TX4938_h
18
19#define TX4938_REG_BASE 0xFF1F0000
20
21/* PCI1 Registers */
22#define TX4938_PCI1_PCIID       0x7000
23#define TX4938_PCI1_PCISTATUS   0x7004
24#define TX4938_PCI1_PCICFG1     0x700c
25#define TX4938_PCI1_P2GM1PLBASE 0x7018
26#define TX4938_PCI1_P2GCFG      0x7090
27#define TX4938_PCI1_PBAREQPORT  0x7100
28#define TX4938_PCI1_PBACFG      0x7104
29#define TX4938_PCI1_G2PM0GBASE  0x7120
30#define TX4938_PCI1_G2PIOGBASE  0x7138
31#define TX4938_PCI1_G2PM0MASK   0x7140
32#define TX4938_PCI1_G2PIOMASK   0x714c
33#define TX4938_PCI1_G2PM0PBASE  0x7150
34#define TX4938_PCI1_G2PIOPBASE  0x7168
35#define TX4938_PCI1_PCICCFG     0x7170
36#define TX4938_PCI1_PCICSTATUS  0x7174
37#define TX4938_PCI1_P2GM1GBASE  0x7188
38#define TX4938_PCI1_G2PCFGADRS  0x71a0
39#define TX4938_PCI1_G2PCFGDATA  0x71a4
40
41/*
42 *  Configuration Registers
43 */
44#define TX4938_CFG_CCFG 0xE000          /* Chip Configuration Register */
45#define TX4938_CFG_REVID 0xE008         /* Chip Revision ID Register */
46#define TX4938_CFG_PCFG 0xE010          /* Pin Configuration Register */
47#define TX4938_CFG_TOEA 0xE018          /* TimeOut Error Access Address Register */
48#define TX4938_CFG_CLKCTR 0xE020                /* Clock Control Register */
49#define TX4938_CFG_GARBC 0xE030         /* GBUS Arbiter Control Register */
50#define TX4938_CFG_RAMP 0xE048          /* Register Address Mapping Register */
51
52/* Pin Configuration register bits */
53#define SELCHI  0x00100000
54#define SELTMR0 0x00000200
55
56
57/*
58 *  Timer Registers
59 */
60
61#define TX4938_TIMER0_BASE 0xF000
62#define TX4938_TIMER1_BASE 0xF100
63#define TX4938_TIMER2_BASE 0xF200
64
65#define TX4938_TIMER_TCR  0x00                  /* Timer Control Register */
66#define TX4938_TIMER_TISR 0x04                  /* Timer Interrupt Status Register */
67#define TX4938_TIMER_CPRA 0x08                  /* Compare Register A */
68#define TX4938_TIMER_CPRB 0x0C                  /* Compare Register B */
69#define TX4938_TIMER_ITMR 0x10                  /* Interval Timer Mode Register */
70#define TX4938_TIMER_CCDR 0x20                  /* Divide Cycle Register */
71#define TX4938_TIMER_PGMR 0x30                  /* Pulse Generator Mode Register */
72#define TX4938_TIMER_WTMR 0x40                  /* Reserved Register */
73#define TX4938_TIMER_TRR  0xF0                  /* Timer Read Register */
74
75/* ITMR register bits */
76#define TIMER_CLEAR_ENABLE_MASK         0x1
77#define TIMER_INT_ENABLE_MASK   0x8000
78
79/* PGMR register bits */
80#define FFI                     0x1
81#define TPIAE           0x4000
82#define TPIBE           0x8000
83
84/* TISR register bits */
85#define TIIS    0x1
86#define TPIAS   0x2
87#define TPIBS   0x4
88#define TWIS    0x8
89
90
91/*
92 *      Interrupt Controller Registers
93 */
94#define TX4938_IRQCTL_DEN 0xF600                /* Interrupt Detection Enable Register */
95#define TX4938_IRQCTL_DM0 0xF604                /* Interrupt Detection Mode Register 0 */
96#define TX4938_IRQCTL_DM1 0xF608                /* Interrupt Detection Mode Register 1 */
97#define TX4938_IRQCTL_LVL0 0xF610               /* Interrupt Level Register 0 */
98#define TX4938_IRQCTL_LVL1 0xF614               /* Interrupt Level Register 1 */
99#define TX4938_IRQCTL_LVL2 0xF618               /* Interrupt Level Register 2 */
100#define TX4938_IRQCTL_LVL3 0xF61C               /* Interrupt Level Register 3 */
101#define TX4938_IRQCTL_LVL4 0xF620               /* Interrupt Level Register 4 */
102#define TX4938_IRQCTL_LVL5 0xF624               /* Interrupt Level Register 5 */
103#define TX4938_IRQCTL_LVL6 0xF628               /* Interrupt Level Register 6 */
104#define TX4938_IRQCTL_LVL7 0xF62C               /* Interrupt Level Register 7 */
105#define TX4938_IRQCTL_MSK 0xF640                /* Interrupt Mask Register */
106#define TX4938_IRQCTL_EDC 0xF660                /* Interrupt Edge Detection Clear Register */
107#define TX4938_IRQCTL_PND 0xF680                /* Interrupt Pending Register */
108#define TX4938_IRQCTL_CS 0xF6A0                 /* Interrupt Current Status Register */
109#define TX4938_IRQCTL_FLAG0 0xF510              /* Interrupt Request Flag Register 0 */
110#define TX4938_IRQCTL_FLAG1 0xF514              /* Interrupt Request Flag Register 1 */
111#define TX4938_IRQCTL_POL 0xF518                /* Interrupt Request Polarity Control Register */
112#define TX4938_IRQCTL_RCNT 0xF51C               /* Interrupt Request Control Register */
113#define TX4938_IRQCTL_MASKINT 0xF520    /* Interrupt Request Internal Interrupt Mask Register */
114#define TX4938_IRQCTL_MASKEXT 0xF524    /* Interrupt Request External Interrupt Mask Register */
115
116#define TX4938_REG_READ( _base, _register ) \
117  *((volatile uint32_t *)((_base) + (_register)))
118
119#define TX4938_REG_WRITE( _base, _register, _value ) \
120  *((volatile uint32_t *)((_base) + (_register))) = (_value)
121
122/************************************************************************
123 *      TX49 Register field encodings
124*************************************************************************/
125/******** reg: CCFG ********/
126/* field: PCIDIVMODE */
127#define TX4938_CCFG_SYSSP_SHF  6
128#define TX4938_CCFG_SYSSP_MSK  (MSK(2) << TX4938_CCFG_SYSSP_SHF)
129
130/* field: PCI1DMD */
131#define TX4938_CCFG_PCI1DMD_SHF  8
132#define TX4938_CCFG_PCI1DMD_MSK  (MSK(1) << TX4938_CCFG_PCI1DMD_SHF)
133
134/* field: PCIDIVMODE */
135#define TX4938_CCFG_PCIDIVMODE_SHF  10
136#define TX4938_CCFG_PCIDIVMODE_MSK  (MSK(3) << TX4938_CCFG_PCIDIVMODE_SHF)
137
138/* field: PCI1-66 */
139#define TX4938_CCFG_PCI166_SHF  21
140#define TX4938_CCFG_PCI166_MSK  ((UINT64)MSK(1) << TX4938_CCFG_PCI166_SHF)
141
142/* field: PCIMODE */
143#define TX4938_CCFG_PCIMODE_SHF  22
144#define TX4938_CCFG_PCIMODE_MSK  ((UINT64)MSK(1) << TX4938_CCFG_PCIMODE_SHF)
145
146/* field: BRDTY */
147#define TX4938_CCFG_BRDTY_SHF  36
148#define TX4938_CCFG_RRDTY_MSK  ((UINT64)MSK(4) << TX4938_CCFG_BRDTY_SHF)
149
150/* field: BRDRV */
151#define TX4938_CCFG_BRDRV_SHF  32
152#define TX4938_CCFG_BRDRV_MSK  ((UINT64)MSK(4) << TX4938_CCFG_BRDRV_SHF)
153
154/******** reg: CLKCTR ********/
155/* field: PCIC1RST */
156#define TX4938_CLKCTR_PCIC1RST_SHF  11
157#define TX4938_CLKCTR_PCIC1RST_MSK  (MSK(1) << TX4938_CLKCTR_PCIC1RST_SHF)
158
159/******** reg: PCISTATUS ********/
160/* field: MEMSP */
161#define TX4938_PCI_PCISTATUS_MEMSP_SHF 1
162#define TX4938_PCI_PCISTATUS_MEMSP_MSK (MSK(1) << TX4938_PCI_PCISTATUS_MEMSP_SHF)
163
164/* field: BM */
165#define TX4938_PCI_PCISTATUS_BM_SHF    2
166#define TX4938_PCI_PCISTATUS_BM_MSK    (MSK(1) << TX4938_PCI_PCISTATUS_BM_SHF)
167
168/******** reg: PBACFG ********/
169/* field: RPBA */
170#define TX4938_PCI_PBACFG_RPBA_SHF     2
171#define TX4938_PCI_PBACFG_RPBA_MSK    (MSK(1) << TX4938_PCI_PBACFG_RPBA_SHF)
172
173/* field: PBAEN */
174#define TX4938_PCI_PBACFG_PBAEN_SHF    1
175#define TX4938_PCI_PBACFG_PBAEN_MSK   (MSK(1) << TX4938_PCI_PBACFG_PBAEN_SHF)
176
177/******** reg: PCICFG ********/
178/* field: G2PM0EN */
179#define TX4938_PCI_PCICFG_G2PM0EN_SHF  6
180#define TX4938_PCI_PCICFG_G2PM0EN_MSK (MSK(1) << TX4938_PCI_PCICFG_G2PM0EN_SHF)
181
182/* field: G2PIOEN */
183#define TX4938_PCI_PCICFG_G2PIOEN_SHF  5
184#define TX4938_PCI_PCICFG_G2PIOEN_MSK (MSK(1) << TX4938_PCI_PCICFG_G2PIOEN_SHF)
185
186/* field: TCAR */
187#define TX4938_PCI_PCICFG_TCAR_SHF  4
188#define TX4938_PCI_PCICFG_TCAR_MSK (MSK(1) << TX4938_PCI_PCICFG_TCAR_SHF)
189
190
191#endif
Note: See TracBrowser for help on using the repository browser.