Home | History | Annotate | Download | only in common
      1 /*
      2  * Copyright (c) 2014, ARM Limited and Contributors. All rights reserved.
      3  *
      4  * Redistribution and use in source and binary forms, with or without
      5  * modification, are permitted provided that the following conditions are met:
      6  *
      7  * Redistributions of source code must retain the above copyright notice, this
      8  * list of conditions and the following disclaimer.
      9  *
     10  * Redistributions in binary form must reproduce the above copyright notice,
     11  * this list of conditions and the following disclaimer in the documentation
     12  * and/or other materials provided with the distribution.
     13  *
     14  * Neither the name of ARM nor the names of its contributors may be used
     15  * to endorse or promote products derived from this software without specific
     16  * prior written permission.
     17  *
     18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
     19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     21  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
     22  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     23  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     24  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     25  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     26  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     27  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     28  * POSSIBILITY OF SUCH DAMAGE.
     29  */
     30 #ifndef __PLAT_CONFIG_H__
     31 #define __PLAT_CONFIG_H__
     32 
     33 #define CONFIG_GICC_BASE_OFFSET		0x4
     34 
     35 
     36 #ifndef __ASSEMBLY__
     37 
     38 #include <cassert.h>
     39 
     40 
     41 enum plat_config_flags {
     42 	/* Whether Base FVP memory map is in use */
     43 	CONFIG_BASE_MMAP		= 0x1,
     44 	/* Whether CCI should be enabled */
     45 	CONFIG_HAS_CCI			= 0x2,
     46 	/* Whether TZC should be configured */
     47 	CONFIG_HAS_TZC			= 0x4
     48 };
     49 
     50 typedef struct plat_config {
     51 	unsigned int gicd_base;
     52 	unsigned int gicc_base;
     53 	unsigned int gich_base;
     54 	unsigned int gicv_base;
     55 	unsigned int max_aff0;
     56 	unsigned int max_aff1;
     57 	unsigned long flags;
     58 } plat_config_t;
     59 
     60 inline const plat_config_t *get_plat_config();
     61 
     62 
     63 CASSERT(CONFIG_GICC_BASE_OFFSET == __builtin_offsetof(
     64 	plat_config_t, gicc_base),
     65 	assert_gicc_base_offset_mismatch);
     66 
     67 /* If used, plat_config must be defined and populated in the platform port*/
     68 extern plat_config_t plat_config;
     69 
     70 inline const plat_config_t *get_plat_config()
     71 {
     72 	return &plat_config;
     73 }
     74 
     75 
     76 #endif /* __ASSEMBLY__ */
     77 
     78 #endif /* __PLAT_CONFIG_H__ */
     79