blob: dd9b426b4d2c10f198026ea7489ea8218618f9c7 [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) 2012
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*******************************************************************************
37 * Filename:
38 * ---------
39 * devdrv_ls.h
40 *
41 * Project:
42 * --------
43 * TATAKA
44 *
45 * Description:
46 * ------------
47 * Macros for different link section
48 *
49 * Author:
50 * -------
51 * -------
52 *
53 * ==========================================================================
54 * $Log$
55 *
56 * 04 08 2014 da.wang
57 * [MOLY00062016] Fix build error of porting for TK6291
58 * Fix CIRQ macro.
59 *
60 * 04 07 2014 linson.du
61 * [MOLY00061877] [TK6291]driver initial porting for TK6291
62 * .
63 *
64 * 07 03 2013 chin-chieh.hung
65 * [MOLY00027330] [ARM7toMOLY] ARM7 Build/SYSGEN/Functions Update to TRUNK
66 * .
67 *
68 * 05 13 2013 chin-chieh.hung
69 * [MOLY00013348] [MT6290 Bring-up] Basic Platform Support
70 * MT6290E1_FristCall Branch sync back to MOLY Trunk
71 *
72 * 05 03 2013 chin-chieh.hung
73 * [MOLY00013348] [MT6290 Bring-up] Basic Platform Support
74 * add INTERNBLOCK2 back
75 *
76 * 05 03 2013 chin-chieh.hung
77 * [MOLY00013348] [MT6290 Bring-up] Basic Platform Support
78 * Remove input section
79 ****************************************************************************/
80
81
82#ifndef __DEVDRV_LS_H__
83#define __DEVDRV_LS_H__
84
85#if defined(__ARMCC_VERSION)
86 #define LINK_SECTION(x) __attribute__ ((section (x)))
87#elif defined(__GNUC__) /* end of __ARMCC_VERSION */
88 #define LINK_SECTION(x) __attribute__ ((section (x)))
89#elif defined(_MSC_VER) && (_MSC_VER >= 1500)
90 #define LINK_SECTION(x)
91#else /* end of __GNUC__ */
92 #error "Unsupported Compiler"
93#endif
94
95/* Link Sections */
96#if 1 /* To Be Removed */
97 #define DEVDRV_LS_INTERNCODE LINK_SECTION("INTSRAM_ROCODE")
98 #define DEVDRV_LS_INTERNZI LINK_SECTION("INTSRAM_ZI")
99 #define DEVDRV_LS_INTERNZI_TP LINK_SECTION("INTSRAM_ZI")
100 #define DEVDRV_LS_INTERNRW LINK_SECTION("INTSRAM_RW")
101 #define DEVDRV_LS_INTERNCONST LINK_SECTION("INTSRAM_RODATA")
102#endif
103
104
105#define DEVDRV_LS_INTSRAM_ROCODE LINK_SECTION("INTSRAM_ROCODE")
106#define DEVDRV_LS_INTSRAM_RODATA LINK_SECTION("INTSRAM_RODATA")
107#define DEVDRV_LS_INTSRAM_RW LINK_SECTION("INTSRAM_RW")
108#define DEVDRV_LS_INTSRAM_ZI LINK_SECTION("INTSRAM_ZI")
109#define DEVDRV_LS_INTSRAM_EX_ROCODE LINK_SECTION("INTSRAM_EX_ROCODE")
110#define DEVDRV_LS_DRAM_EX_ROCODE LINK_SECTION("DRAM_EX_ROCODE")
111#define DEVDRV_LS_EMIINITZI LINK_SECTION("EMIINITZI")
112#define DEVDRV_LS_EMIINITCODE LINK_SECTION("EMIINITCODE")
113#define DEVDRV_LS_SECOND_PART LINK_SECTION("SECOND_PART")
114#define DEVDRV_LS_SNORCODE LINK_SECTION("SNORCODE")
115//#define DEVDRV_LS_INTERNBLOCK0_ZI LINK_SECTION("INTERNBLOCK0_ZI")
116//#define DEVDRV_LS_INTERNBLOCK1_RW LINK_SECTION("INTERNBLOCK1_RW")
117#define DEVDRV_LS_INTERNBLOCK2_RW LINK_SECTION("INTERNBLOCK2_RW")
118//#define DEVDRV_LS_INTERNBLOCK1_ZI LINK_SECTION("INTERNBLOCK1_ZI")
119#define DEVDRV_LS_INTERNBLOCK2_ZI LINK_SECTION("INTERNBLOCK2_ZI")
120//#define DEVDRV_LS_INTERNBLOCK1_CO LINK_SECTION("INTERNBLOCK1_CO")
121#define DEVDRV_LS_INTERNBLOCK2_CO LINK_SECTION("INTERNBLOCK2_CO")
122#define DEVDRV_LS_SHOULD_NOT_USED_RODATA LINK_SECTION("SHOULD_NOT_USED_RODATA")
123#define DEVDRV_LS_DYNAMICCACHEABLERW_NC LINK_SECTION("DYNAMICCACHEABLERW_NC")
124#define DEVDRV_LS_DYNAMICCACHEABLEZI_NC LINK_SECTION("DYNAMICCACHEABLEZI_NC")
125#define DEVDRV_LS_DYNAMICCACHEABLERW_C LINK_SECTION("DYNAMICCACHEABLERW_C")
126#define DEVDRV_LS_DYNAMICCACHEABLEZI_C LINK_SECTION("DYNAMICCACHEABLEZI_C")
127#define DEVDRV_LS_PHY_EXTSRAM LINK_SECTION("PHY_EXTSRAM")
128
129#define DEVDRV_LS_NONCACHEDRW LINK_SECTION("NONCACHEDRW")
130#define DEVDRV_LS_NONCACHEDZI LINK_SECTION("NONCACHEDZI")
131
132
133/* if __REDUCE_TCM_SUPPORT__ is defined,
134 * LS_INTXXXCODE_REDUCE_TCM_SUPPORT is placed in normal text section
135 */
136#if defined(__REDUCE_TCM_SUPPORT__)
137 #define LS_INTERNCODE_REDUCE_TCM_SUPPORT
138 #define LS_INTSRAM_ROCODE_REDUCE_TCM_SUPPORT
139#else
140 #define LS_INTERNCODE_REDUCE_TCM_SUPPORT LS_INTSRAM_ROCODE
141 #define LS_INTSRAM_ROCODE_REDUCE_TCM_SUPPORT LS_INTSRAM_ROCODE
142#endif
143
144
145/* Predefined Macro: http://www.cppblog.com/byc/archive/2010/11/15/133663.html
146
147
148C++:
149 __cplusplus
150
151GCC:
152 __GNUC__
153 __GNUC_MINOR__
154 __GNUC_PATCHLEVEL__
155 __GNUG__ equivalent to testing (__GNUC__ && __cplusplus).
156
157MinGW:
158 __MINGW32__
159 __STDC__
160 __GNUC__
161 _WIN32, __WINNT__, __MINGW32__, _X86_, i386, __GNUC__
162
163VC:
164 _WIN32
165 _MSC_VER
166 _ATL_VER
167 _DEBUG Defined when compiling with /LDd, /MDd, /MLd, and /MTd.
168 _M_IX86
169 _MT Defined when /MD or /MDd (Multithreaded DLL) or /MT or /MTd (Multithreaded) is specified.
170 _UNICODE
171
172CYGWIN:
173 __CYGWIN32__
174
175 Intel Compiler:
176 __INTEL_COMPILER
177
178Borland:
179 __WIN32__
180 __BORLANDC_
181*/
182
183#endif /* end of __DEVDRV_LS_H__ */
184
185