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