1b4315306SDan Handley /* 2b4315306SDan Handley * Copyright (c) 2014-2015, ARM Limited and Contributors. All rights reserved. 3b4315306SDan Handley * 4b4315306SDan Handley * Redistribution and use in source and binary forms, with or without 5b4315306SDan Handley * modification, are permitted provided that the following conditions are met: 6b4315306SDan Handley * 7b4315306SDan Handley * Redistributions of source code must retain the above copyright notice, this 8b4315306SDan Handley * list of conditions and the following disclaimer. 9b4315306SDan Handley * 10b4315306SDan Handley * Redistributions in binary form must reproduce the above copyright notice, 11b4315306SDan Handley * this list of conditions and the following disclaimer in the documentation 12b4315306SDan Handley * and/or other materials provided with the distribution. 13b4315306SDan Handley * 14b4315306SDan Handley * Neither the name of ARM nor the names of its contributors may be used 15b4315306SDan Handley * to endorse or promote products derived from this software without specific 16b4315306SDan Handley * prior written permission. 17b4315306SDan Handley * 18b4315306SDan Handley * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19b4315306SDan Handley * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20b4315306SDan Handley * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21b4315306SDan Handley * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 22b4315306SDan Handley * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23b4315306SDan Handley * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24b4315306SDan Handley * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25b4315306SDan Handley * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26b4315306SDan Handley * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27b4315306SDan Handley * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28b4315306SDan Handley * POSSIBILITY OF SUCH DAMAGE. 29b4315306SDan Handley */ 30b4315306SDan Handley #ifndef __ARM_CONFIG_H__ 31b4315306SDan Handley #define __ARM_CONFIG_H__ 32b4315306SDan Handley 3302462972SJuan Castillo #include <stdint.h> 34b4315306SDan Handley 35b4315306SDan Handley enum arm_config_flags { 36b4315306SDan Handley /* Whether Base memory map is in use */ 37b4315306SDan Handley ARM_CONFIG_BASE_MMAP = 0x1, 38b4315306SDan Handley /* Whether CCI should be enabled */ 39b4315306SDan Handley ARM_CONFIG_HAS_CCI = 0x2, 40b4315306SDan Handley /* Whether TZC should be configured */ 41b4315306SDan Handley ARM_CONFIG_HAS_TZC = 0x4 42b4315306SDan Handley }; 43b4315306SDan Handley 44b4315306SDan Handley typedef struct arm_config { 4502462972SJuan Castillo uintptr_t gicd_base; 4602462972SJuan Castillo uintptr_t gicc_base; 4702462972SJuan Castillo uintptr_t gich_base; 4802462972SJuan Castillo uintptr_t gicv_base; 49b4315306SDan Handley unsigned int max_aff0; 50b4315306SDan Handley unsigned int max_aff1; 51b4315306SDan Handley unsigned long flags; 52b4315306SDan Handley } arm_config_t; 53b4315306SDan Handley 54b4315306SDan Handley 55b4315306SDan Handley /* If used, arm_config must be defined and populated in the platform port */ 56b4315306SDan Handley extern arm_config_t arm_config; 57b4315306SDan Handley 58*80bb6afdSJuan Castillo static inline const arm_config_t *get_arm_config(void) 59b4315306SDan Handley { 60b4315306SDan Handley return &arm_config; 61b4315306SDan Handley } 62b4315306SDan Handley 63b4315306SDan Handley 64b4315306SDan Handley #endif /* __ARM_CONFIG_H__ */ 65