blob: 15b65f8de90ef82549ae36479612afdb5801c197 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2001
8*
9*****************************************************************************/
10
11/*****************************************************************************
12 *
13 * Filename:
14 * ---------
15 * mpu_public.h
16 *
17 * Project:
18 * --------
19 * UMOLYA Software
20 *
21 * Description:
22 * ------------
23 * Header file for IA MPU
24 *
25 * Author:
26 * -------
27 * -------
28 *
29 *============================================================================
30 * HISTORY
31 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
32 *------------------------------------------------------------------------------
33 * removed!
34 * removed!
35 * removed!
36 *
37 * removed!
38 * removed!
39 * removed!
40 *
41 * removed!
42 * removed!
43 * removed!
44 *
45 * removed!
46 * removed!
47 * removed!
48 * removed!
49 *
50 * removed!
51 * removed!
52 * removed!
53 *
54 * removed!
55 * removed!
56 * removed!
57 *
58 * removed!
59 * removed!
60 * removed!
61 *
62 * removed!
63 * removed!
64 * removed!
65 *
66 * removed!
67 * removed!
68 * removed!
69 *
70 * removed!
71 * removed!
72 * removed!
73 *
74 * removed!
75 * removed!
76 * removed!
77 *
78 *------------------------------------------------------------------------------
79 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
80 *============================================================================
81 ****************************************************************************/
82
83#ifndef __MPU_PUBLIC_H__
84#define __MPU_PUBLIC_H__
85
86#if !defined(__OFFLINE_EX_LOG_PARSER__)
87#include "kal_general_types.h"
88#endif
89
90#define CXIF_MPU_PROTECTION_REMOVE
91
92/******************************************************************
93 * Define date structures
94 ******************************************************************/
95typedef struct MPU_REG_T
96{
97 volatile kal_uint32 reg_MPU_ACSR;
98 volatile kal_uint32 reg_MPU_CONFIG;
99 kal_uint8 MPU_Enable;
100 kal_uint8 exc_RI;
101 kal_uint8 exc_WI;
102 kal_uint8 exc_XI;
103 kal_uint8 exc_REG_MATCH;
104 kal_uint8 exc_REG_NUM;
105 kal_uint8 reserve[2];
106} _MPU_REG;
107
108#if defined(__MD97__) || defined(__MD97P__)
109typedef enum CXIF_MPU_SETTING_T
110{
111 CUIF_INNER_MPU_SETTING_BANK5 = 0,
112 CUIF_INNER_MPU_SETTING_BANK8 = 1,
113 CSIF_ALL_MPU_SETTING_BANK5 = 2,
114 CSIF_ALL_MPU_SETTING_BANK8 = 3
115} CXIF_MPU_SETTING_TYPE;
116#endif
117
118extern _MPU_REG *IA_MPU_REG_PTR[];
119
120extern kal_bool mpu_dump_ex(kal_uint32 coreid);
121
122#if defined(__MD95__)
123extern void system_set_rxdfe(kal_uint32 * shm_setting);
124extern void system_clr_rxdfe(kal_bool enable);
125extern void system_set_cuif(kal_uint32 * shm_setting);
126#elif defined(__MD97__) || defined(__MD97P__)
127extern void system_set_cxif(kal_uint32 * shm_setting, CXIF_MPU_SETTING_TYPE mpu_type);
128#endif
129
130
131kal_uint32 system_exception_mpu_region_check(void);
132kal_uint32 system_exception_mpu_segment_check(void);
133
134#endif /* __MPU_PUBLIC_H__ */
135