xref: /optee_os/core/arch/arm/plat-sam/matrix.h (revision 79f8990d9d28539864d8f97f9f1cb32e289e595f)
1 /* SPDX-License-Identifier: BSD-Source-Code */
2 /* ----------------------------------------------------------------------------
3  *         ATMEL Microcontroller Software Support
4  * ----------------------------------------------------------------------------
5  * Copyright (c) 2013, Atmel Corporation
6  *
7  * All rights reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions are met:
11  *
12  * - Redistributions of source code must retain the above copyright notice,
13  * this list of conditions and the disclaimer below.
14  *
15  * Atmel's name may not be used to endorse or promote products derived from
16  * this software without specific prior written permission.
17  *
18  * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
19  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
21  * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
22  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
24  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
27  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29 #ifndef MATRIX_H
30 #define MATRIX_H
31 
32 #include <tee_api_types.h>
33 
34 void matrix_write_protect_enable(unsigned int matrix_base);
35 void matrix_write_protect_disable(unsigned int matrix_base);
36 void matrix_configure_slave_security(unsigned int matrix_base,
37 				     unsigned int slave,
38 				     unsigned int srtop_setting,
39 				     unsigned int srsplit_setting,
40 				     unsigned int ssr_setting);
41 
42 int matrix_configure_periph_non_secure(unsigned int *peri_id_array,
43 				       unsigned int size);
44 int matrix_configure_periph_secure(unsigned int peri_id);
45 TEE_Result matrix_dt_get_id(const void *fdt, int node, unsigned int *id);
46 
47 vaddr_t matrix32_base(void);
48 vaddr_t matrix64_base(void);
49 
50 #endif /* #ifndef MATRIX_H */
51