source: rtems/bsps/arm/altera-cyclone-v/include/bsp/alt_clock_group.h @ 2afb22b

5
Last change on this file since 2afb22b 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: 4.1 KB
Line 
1/******************************************************************************
2 *
3 * Copyright 2013 Altera Corporation. All Rights Reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 *
8 * 1. Redistributions of source code must retain the above copyright notice,
9 * this list of conditions and the following disclaimer.
10 *
11 * 2. Redistributions in binary form must reproduce the above copyright notice,
12 * this list of conditions and the following disclaimer in the documentation
13 * and/or other materials provided with the distribution.
14 *
15 * 3. The name of the author may not be used to endorse or promote products
16 * derived from this software without specific prior written permission.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER "AS IS" AND ANY EXPRESS OR
19 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. IN NO
21 * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
23 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
26 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
27 * OF SUCH DAMAGE.
28 *
29 ******************************************************************************/
30
31/*!
32 * \file
33 *
34 * Contains the definition of an opaque data structure that contains raw
35 * configuration information for a clock group.
36 */
37
38#ifndef __ALT_CLK_GRP_H__
39#define __ALT_CLK_GRP_H__
40
41#include "hwlib.h"
42#include "socal/alt_clkmgr.h"
43
44#ifdef __cplusplus
45extern "C"
46{
47#endif  /* __cplusplus */
48
49/*!
50 * This type definition enumerates the clock groups
51 */
52typedef enum ALT_CLK_GRP_e
53{
54    ALT_MAIN_PLL_CLK_GRP,        /*!< Main PLL clock group */
55
56    ALT_PERIPH_PLL_CLK_GRP,      /*!< Peripheral PLL clock group */
57
58    ALT_SDRAM_PLL_CLK_GRP        /*!< SDRAM PLL clock group */
59
60} ALT_CLK_GRP_t;
61
62/*!
63 * This type definition defines an opaque data structure for holding the
64 * configuration settings for a complete clock group.
65 */
66typedef struct ALT_CLK_GROUP_RAW_CFG_s
67{
68    uint32_t      verid;     /*!< SoC FPGA version identifier. This field
69                              *   encapsulates the silicon identifier and
70                              *   version information associated with this
71                              *   clock group configuration. It is used to
72                              *   assert that this clock group configuration
73                              *   is valid for this device. */
74
75    uint32_t      siliid2;   /*!< Reserved register - reserved for future
76                              *   device IDs or capability flags. */
77
78    ALT_CLK_GRP_t clkgrpsel; /*!< Clock group union discriminator. */
79
80    /*!
81     * This union holds the register values for configuration of the set of
82     * possible clock groups on the SoC FPGA. The \e clkgrpsel discriminator
83     * identifies the valid clock group union data member.
84     */
85    union ALT_CLK_GROUP_RAW_CFG_u
86    {
87        /*! Clock group configuration for Main PLL group. */
88        union
89        {
90            ALT_CLKMGR_MAINPLL_t     fld; /*!< Field access. */
91            ALT_CLKMGR_MAINPLL_raw_t raw; /*!< Raw access. */
92        } mainpllgrp;
93
94        /*! Clock group configuration for Peripheral PLL group. */
95        union
96        {
97            ALT_CLKMGR_PERPLL_t     fld; /*!< Field access. */
98            ALT_CLKMGR_PERPLL_raw_t raw; /*!< Raw access. */
99        } perpllgrp;
100
101        /*! Clock group configuration for SDRAM PLL group. */
102        union
103        {
104            ALT_CLKMGR_SDRPLL_t     fld; /*!< Field access. */
105            ALT_CLKMGR_SDRPLL_raw_t raw; /*!< Raw access. */
106        } sdrpllgrp;
107
108    } clkgrp;
109} ALT_CLK_GROUP_RAW_CFG_t;
110
111#ifdef __cplusplus
112}
113#endif  /* __cplusplus */
114#endif  /* __ALT_CLK_GRP_H__ */
Note: See TracBrowser for help on using the repository browser.