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