xref: /OK3568_Linux_fs/kernel/drivers/gpu/arm/bifrost/build.bp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun *
4*4882a593Smuzhiyun * (C) COPYRIGHT 2017-2023 ARM Limited. All rights reserved.
5*4882a593Smuzhiyun *
6*4882a593Smuzhiyun * This program is free software and is provided to you under the terms of the
7*4882a593Smuzhiyun * GNU General Public License version 2 as published by the Free Software
8*4882a593Smuzhiyun * Foundation, and any use by you of this program is subject to the terms
9*4882a593Smuzhiyun * of such GNU license.
10*4882a593Smuzhiyun *
11*4882a593Smuzhiyun * This program is distributed in the hope that it will be useful,
12*4882a593Smuzhiyun * but WITHOUT ANY WARRANTY; without even the implied warranty of
13*4882a593Smuzhiyun * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14*4882a593Smuzhiyun * GNU General Public License for more details.
15*4882a593Smuzhiyun *
16*4882a593Smuzhiyun * You should have received a copy of the GNU General Public License
17*4882a593Smuzhiyun * along with this program; if not, you can access it online at
18*4882a593Smuzhiyun * http://www.gnu.org/licenses/gpl-2.0.html.
19*4882a593Smuzhiyun *
20*4882a593Smuzhiyun */
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun/* Kernel-side tests may include mali_kbase's headers. Therefore any config
23*4882a593Smuzhiyun * options which affect the sizes of any structs (e.g. adding extra members)
24*4882a593Smuzhiyun * must be included in these defaults, so that the structs are consistent in
25*4882a593Smuzhiyun * both mali_kbase and the test modules. */
26*4882a593Smuzhiyunbob_defaults {
27*4882a593Smuzhiyun    name: "mali_kbase_shared_config_defaults",
28*4882a593Smuzhiyun    defaults: [
29*4882a593Smuzhiyun        "kernel_defaults",
30*4882a593Smuzhiyun    ],
31*4882a593Smuzhiyun    mali_no_mali: {
32*4882a593Smuzhiyun        kbuild_options: [
33*4882a593Smuzhiyun            "CONFIG_MALI_BIFROST_NO_MALI=y",
34*4882a593Smuzhiyun            "CONFIG_MALI_NO_MALI_DEFAULT_GPU={{.gpu}}",
35*4882a593Smuzhiyun            "CONFIG_GPU_HWVER={{.hwver}}",
36*4882a593Smuzhiyun        ],
37*4882a593Smuzhiyun    },
38*4882a593Smuzhiyun    mali_platform_dt_pin_rst: {
39*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_PLATFORM_DT_PIN_RST=y"],
40*4882a593Smuzhiyun    },
41*4882a593Smuzhiyun    gpu_has_csf: {
42*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_CSF_SUPPORT=y"],
43*4882a593Smuzhiyun    },
44*4882a593Smuzhiyun    mali_devfreq: {
45*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_BIFROST_DEVFREQ=y"],
46*4882a593Smuzhiyun    },
47*4882a593Smuzhiyun    mali_midgard_dvfs: {
48*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_BIFROST_DVFS=y"],
49*4882a593Smuzhiyun    },
50*4882a593Smuzhiyun    mali_gator_support: {
51*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_BIFROST_GATOR_SUPPORT=y"],
52*4882a593Smuzhiyun    },
53*4882a593Smuzhiyun    mali_midgard_enable_trace: {
54*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_BIFROST_ENABLE_TRACE=y"],
55*4882a593Smuzhiyun    },
56*4882a593Smuzhiyun    mali_arbiter_support: {
57*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_ARBITER_SUPPORT=y"],
58*4882a593Smuzhiyun    },
59*4882a593Smuzhiyun    mali_dma_buf_map_on_demand: {
60*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_DMA_BUF_MAP_ON_DEMAND=y"],
61*4882a593Smuzhiyun    },
62*4882a593Smuzhiyun    mali_dma_buf_legacy_compat: {
63*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_DMA_BUF_LEGACY_COMPAT=y"],
64*4882a593Smuzhiyun    },
65*4882a593Smuzhiyun    large_page_alloc_override: {
66*4882a593Smuzhiyun        kbuild_options: ["CONFIG_LARGE_PAGE_ALLOC_OVERRIDE=y"],
67*4882a593Smuzhiyun    },
68*4882a593Smuzhiyun    large_page_alloc: {
69*4882a593Smuzhiyun        kbuild_options: ["CONFIG_LARGE_PAGE_ALLOC=y"],
70*4882a593Smuzhiyun    },
71*4882a593Smuzhiyun    mali_memory_fully_backed: {
72*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_MEMORY_FULLY_BACKED=y"],
73*4882a593Smuzhiyun    },
74*4882a593Smuzhiyun    mali_corestack: {
75*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_CORESTACK=y"],
76*4882a593Smuzhiyun    },
77*4882a593Smuzhiyun    mali_real_hw: {
78*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_REAL_HW=y"],
79*4882a593Smuzhiyun    },
80*4882a593Smuzhiyun    mali_error_inject_none: {
81*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_ERROR_INJECT_NONE=y"],
82*4882a593Smuzhiyun    },
83*4882a593Smuzhiyun    mali_error_inject_track_list: {
84*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_ERROR_INJECT_TRACK_LIST=y"],
85*4882a593Smuzhiyun    },
86*4882a593Smuzhiyun    mali_error_inject_random: {
87*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_ERROR_INJECT_RANDOM=y"],
88*4882a593Smuzhiyun    },
89*4882a593Smuzhiyun    mali_error_inject: {
90*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_BIFROST_ERROR_INJECT=y"],
91*4882a593Smuzhiyun    },
92*4882a593Smuzhiyun    mali_debug: {
93*4882a593Smuzhiyun        kbuild_options: [
94*4882a593Smuzhiyun            "CONFIG_MALI_BIFROST_DEBUG=y",
95*4882a593Smuzhiyun            "MALI_KERNEL_TEST_API={{.debug}}",
96*4882a593Smuzhiyun        ],
97*4882a593Smuzhiyun    },
98*4882a593Smuzhiyun    mali_fence_debug: {
99*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_BIFROST_FENCE_DEBUG=y"],
100*4882a593Smuzhiyun    },
101*4882a593Smuzhiyun    mali_system_trace: {
102*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_BIFROST_SYSTEM_TRACE=y"],
103*4882a593Smuzhiyun    },
104*4882a593Smuzhiyun    buslog: {
105*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_BUSLOG=y"],
106*4882a593Smuzhiyun    },
107*4882a593Smuzhiyun    cinstr_vector_dump: {
108*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_VECTOR_DUMP=y"],
109*4882a593Smuzhiyun    },
110*4882a593Smuzhiyun    cinstr_gwt: {
111*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_CINSTR_GWT=y"],
112*4882a593Smuzhiyun    },
113*4882a593Smuzhiyun    cinstr_primary_hwc: {
114*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_PRFCNT_SET_PRIMARY=y"],
115*4882a593Smuzhiyun    },
116*4882a593Smuzhiyun    cinstr_secondary_hwc: {
117*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_BIFROST_PRFCNT_SET_SECONDARY=y"],
118*4882a593Smuzhiyun    },
119*4882a593Smuzhiyun    cinstr_tertiary_hwc: {
120*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_PRFCNT_SET_TERTIARY=y"],
121*4882a593Smuzhiyun    },
122*4882a593Smuzhiyun    cinstr_hwc_set_select_via_debug_fs: {
123*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_PRFCNT_SET_SELECT_VIA_DEBUG_FS=y"],
124*4882a593Smuzhiyun    },
125*4882a593Smuzhiyun    mali_job_dump: {
126*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_JOB_DUMP"],
127*4882a593Smuzhiyun    },
128*4882a593Smuzhiyun    mali_pwrsoft_765: {
129*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_PWRSOFT_765=y"],
130*4882a593Smuzhiyun    },
131*4882a593Smuzhiyun    mali_hw_errata_1485982_not_affected: {
132*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_HW_ERRATA_1485982_NOT_AFFECTED=y"],
133*4882a593Smuzhiyun    },
134*4882a593Smuzhiyun    mali_hw_errata_1485982_use_clock_alternative: {
135*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_HW_ERRATA_1485982_USE_CLOCK_ALTERNATIVE=y"],
136*4882a593Smuzhiyun    },
137*4882a593Smuzhiyun    platform_is_fpga: {
138*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_IS_FPGA=y"],
139*4882a593Smuzhiyun    },
140*4882a593Smuzhiyun    mali_coresight: {
141*4882a593Smuzhiyun        kbuild_options: ["CONFIG_MALI_CORESIGHT=y"],
142*4882a593Smuzhiyun    },
143*4882a593Smuzhiyun    kbuild_options: [
144*4882a593Smuzhiyun        "CONFIG_MALI_PLATFORM_NAME={{.mali_platform_name}}",
145*4882a593Smuzhiyun        "MALI_CUSTOMER_RELEASE={{.release}}",
146*4882a593Smuzhiyun        "MALI_UNIT_TEST={{.unit_test_code}}",
147*4882a593Smuzhiyun        "MALI_USE_CSF={{.gpu_has_csf}}",
148*4882a593Smuzhiyun        "MALI_JIT_PRESSURE_LIMIT_BASE={{.jit_pressure_limit_base}}",
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun        // Start of CS experimental features definitions.
151*4882a593Smuzhiyun        // If there is nothing below, definition should be added as follows:
152*4882a593Smuzhiyun        // "MALI_EXPERIMENTAL_FEATURE={{.experimental_feature}}"
153*4882a593Smuzhiyun        // experimental_feature above comes from Mconfig in
154*4882a593Smuzhiyun        // <ddk_root>/product/base/
155*4882a593Smuzhiyun        // However, in Mconfig, experimental_feature should be looked up (for
156*4882a593Smuzhiyun        // similar explanation to this one) as ALLCAPS, i.e.
157*4882a593Smuzhiyun        // EXPERIMENTAL_FEATURE.
158*4882a593Smuzhiyun        //
159*4882a593Smuzhiyun        // IMPORTANT: MALI_CS_EXPERIMENTAL should NEVER be defined below as it
160*4882a593Smuzhiyun        // is an umbrella feature that would be open for inappropriate use
161*4882a593Smuzhiyun        // (catch-all for experimental CS code without separating it into
162*4882a593Smuzhiyun        // different features).
163*4882a593Smuzhiyun        "MALI_INCREMENTAL_RENDERING_JM={{.incremental_rendering_jm}}",
164*4882a593Smuzhiyun        "MALI_BASE_CSF_PERFORMANCE_TESTS={{.base_csf_performance_tests}}",
165*4882a593Smuzhiyun    ],
166*4882a593Smuzhiyun}
167*4882a593Smuzhiyun
168*4882a593Smuzhiyunbob_kernel_module {
169*4882a593Smuzhiyun    name: "mali_kbase",
170*4882a593Smuzhiyun    defaults: [
171*4882a593Smuzhiyun        "mali_kbase_shared_config_defaults",
172*4882a593Smuzhiyun    ],
173*4882a593Smuzhiyun    srcs: [
174*4882a593Smuzhiyun        "*.c",
175*4882a593Smuzhiyun        "*.h",
176*4882a593Smuzhiyun        "Kbuild",
177*4882a593Smuzhiyun        "backend/gpu/*.c",
178*4882a593Smuzhiyun        "backend/gpu/*.h",
179*4882a593Smuzhiyun        "backend/gpu/Kbuild",
180*4882a593Smuzhiyun        "context/*.c",
181*4882a593Smuzhiyun        "context/*.h",
182*4882a593Smuzhiyun        "context/Kbuild",
183*4882a593Smuzhiyun        "hwcnt/*.c",
184*4882a593Smuzhiyun        "hwcnt/*.h",
185*4882a593Smuzhiyun        "hwcnt/backend/*.h",
186*4882a593Smuzhiyun        "hwcnt/Kbuild",
187*4882a593Smuzhiyun        "ipa/*.c",
188*4882a593Smuzhiyun        "ipa/*.h",
189*4882a593Smuzhiyun        "ipa/Kbuild",
190*4882a593Smuzhiyun        "platform/*.h",
191*4882a593Smuzhiyun        "platform/*/*.c",
192*4882a593Smuzhiyun        "platform/*/*.h",
193*4882a593Smuzhiyun        "platform/*/Kbuild",
194*4882a593Smuzhiyun        "platform/*/*/*.c",
195*4882a593Smuzhiyun        "platform/*/*/*.h",
196*4882a593Smuzhiyun        "platform/*/*/Kbuild",
197*4882a593Smuzhiyun        "platform/*/*/*.c",
198*4882a593Smuzhiyun        "platform/*/*/*.h",
199*4882a593Smuzhiyun        "platform/*/*/Kbuild",
200*4882a593Smuzhiyun        "platform/*/*/*/*.c",
201*4882a593Smuzhiyun        "platform/*/*/*/*.h",
202*4882a593Smuzhiyun        "platform/*/*/*/Kbuild",
203*4882a593Smuzhiyun        "thirdparty/*.c",
204*4882a593Smuzhiyun        "thirdparty/Kbuild",
205*4882a593Smuzhiyun        "debug/*.c",
206*4882a593Smuzhiyun        "debug/*.h",
207*4882a593Smuzhiyun        "debug/Kbuild",
208*4882a593Smuzhiyun        "device/*.c",
209*4882a593Smuzhiyun        "device/*.h",
210*4882a593Smuzhiyun        "device/Kbuild",
211*4882a593Smuzhiyun        "gpu/*.c",
212*4882a593Smuzhiyun        "gpu/*.h",
213*4882a593Smuzhiyun        "gpu/Kbuild",
214*4882a593Smuzhiyun        "tl/*.c",
215*4882a593Smuzhiyun        "tl/*.h",
216*4882a593Smuzhiyun        "tl/Kbuild",
217*4882a593Smuzhiyun        "mmu/*.c",
218*4882a593Smuzhiyun        "mmu/*.h",
219*4882a593Smuzhiyun        "mmu/Kbuild",
220*4882a593Smuzhiyun    ],
221*4882a593Smuzhiyun    gpu_has_job_manager: {
222*4882a593Smuzhiyun        srcs: [
223*4882a593Smuzhiyun            "context/backend/*_jm.c",
224*4882a593Smuzhiyun            "debug/backend/*_jm.c",
225*4882a593Smuzhiyun            "debug/backend/*_jm.h",
226*4882a593Smuzhiyun            "device/backend/*_jm.c",
227*4882a593Smuzhiyun            "gpu/backend/*_jm.c",
228*4882a593Smuzhiyun            "gpu/backend/*_jm.h",
229*4882a593Smuzhiyun            "hwcnt/backend/*_jm.c",
230*4882a593Smuzhiyun            "hwcnt/backend/*_jm.h",
231*4882a593Smuzhiyun            "hwcnt/backend/*_jm_*.c",
232*4882a593Smuzhiyun            "hwcnt/backend/*_jm_*.h",
233*4882a593Smuzhiyun            "jm/*.h",
234*4882a593Smuzhiyun            "tl/backend/*_jm.c",
235*4882a593Smuzhiyun            "mmu/backend/*_jm.c",
236*4882a593Smuzhiyun            "ipa/backend/*_jm.c",
237*4882a593Smuzhiyun            "ipa/backend/*_jm.h",
238*4882a593Smuzhiyun        ],
239*4882a593Smuzhiyun    },
240*4882a593Smuzhiyun    gpu_has_csf: {
241*4882a593Smuzhiyun        srcs: [
242*4882a593Smuzhiyun            "context/backend/*_csf.c",
243*4882a593Smuzhiyun            "csf/*.c",
244*4882a593Smuzhiyun            "csf/*.h",
245*4882a593Smuzhiyun            "csf/Kbuild",
246*4882a593Smuzhiyun            "csf/ipa_control/*.c",
247*4882a593Smuzhiyun            "csf/ipa_control/*.h",
248*4882a593Smuzhiyun            "csf/ipa_control/Kbuild",
249*4882a593Smuzhiyun            "debug/backend/*_csf.c",
250*4882a593Smuzhiyun            "debug/backend/*_csf.h",
251*4882a593Smuzhiyun            "device/backend/*_csf.c",
252*4882a593Smuzhiyun            "gpu/backend/*_csf.c",
253*4882a593Smuzhiyun            "gpu/backend/*_csf.h",
254*4882a593Smuzhiyun            "hwcnt/backend/*_csf.c",
255*4882a593Smuzhiyun            "hwcnt/backend/*_csf.h",
256*4882a593Smuzhiyun            "hwcnt/backend/*_csf_*.c",
257*4882a593Smuzhiyun            "hwcnt/backend/*_csf_*.h",
258*4882a593Smuzhiyun            "tl/backend/*_csf.c",
259*4882a593Smuzhiyun            "mmu/backend/*_csf.c",
260*4882a593Smuzhiyun            "ipa/backend/*_csf.c",
261*4882a593Smuzhiyun            "ipa/backend/*_csf.h",
262*4882a593Smuzhiyun        ],
263*4882a593Smuzhiyun    },
264*4882a593Smuzhiyun    mali_arbiter_support: {
265*4882a593Smuzhiyun        srcs: [
266*4882a593Smuzhiyun            "arbiter/*.c",
267*4882a593Smuzhiyun            "arbiter/*.h",
268*4882a593Smuzhiyun            "arbiter/Kbuild",
269*4882a593Smuzhiyun        ],
270*4882a593Smuzhiyun    },
271*4882a593Smuzhiyun    kbuild_options: [
272*4882a593Smuzhiyun        "CONFIG_MALI_BIFROST=m",
273*4882a593Smuzhiyun        "CONFIG_MALI_KUTF=n",
274*4882a593Smuzhiyun    ],
275*4882a593Smuzhiyun    buslog: {
276*4882a593Smuzhiyun        extra_symbols: [
277*4882a593Smuzhiyun            "bus_logger",
278*4882a593Smuzhiyun        ],
279*4882a593Smuzhiyun    },
280*4882a593Smuzhiyun}
281