13d0407baSopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
23d0407baSopenharmony_ci/*
33d0407baSopenharmony_ci *
43d0407baSopenharmony_ci * (C) COPYRIGHT 2017-2021 ARM Limited. All rights reserved.
53d0407baSopenharmony_ci *
63d0407baSopenharmony_ci * This program is free software and is provided to you under the terms of the
73d0407baSopenharmony_ci * GNU General Public License version 2 as published by the Free Software
83d0407baSopenharmony_ci * Foundation, and any use by you of this program is subject to the terms
93d0407baSopenharmony_ci * of such GNU license.
103d0407baSopenharmony_ci *
113d0407baSopenharmony_ci * This program is distributed in the hope that it will be useful,
123d0407baSopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of
133d0407baSopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
143d0407baSopenharmony_ci * GNU General Public License for more details.
153d0407baSopenharmony_ci *
163d0407baSopenharmony_ci * You should have received a copy of the GNU General Public License
173d0407baSopenharmony_ci * along with this program; if not, you can access it online at
183d0407baSopenharmony_ci * http://www.gnu.org/licenses/gpl-2.0.html.
193d0407baSopenharmony_ci *
203d0407baSopenharmony_ci */
213d0407baSopenharmony_ci
223d0407baSopenharmony_ci/* Kernel-side tests may include mali_kbase's headers. Therefore any config
233d0407baSopenharmony_ci * options which affect the sizes of any structs (e.g. adding extra members)
243d0407baSopenharmony_ci * must be included in these defaults, so that the structs are consistent in
253d0407baSopenharmony_ci * both mali_kbase and the test modules. */
263d0407baSopenharmony_cibob_defaults {
273d0407baSopenharmony_ci    name: "mali_kbase_shared_config_defaults",
283d0407baSopenharmony_ci    defaults: [
293d0407baSopenharmony_ci        "kernel_defaults",
303d0407baSopenharmony_ci    ],
313d0407baSopenharmony_ci    no_mali: {
323d0407baSopenharmony_ci        kbuild_options: [
333d0407baSopenharmony_ci            "CONFIG_MALI_BIFROST_NO_MALI=y",
343d0407baSopenharmony_ci            "CONFIG_MALI_NO_MALI_DEFAULT_GPU={{.gpu}}",
353d0407baSopenharmony_ci        ],
363d0407baSopenharmony_ci    },
373d0407baSopenharmony_ci    gpu_has_csf: {
383d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_CSF_SUPPORT=y"],
393d0407baSopenharmony_ci    },
403d0407baSopenharmony_ci    mali_devfreq: {
413d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_BIFROST_DEVFREQ=y"],
423d0407baSopenharmony_ci    },
433d0407baSopenharmony_ci    mali_midgard_dvfs: {
443d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_BIFROST_DVFS=y"],
453d0407baSopenharmony_ci    },
463d0407baSopenharmony_ci    mali_gator_support: {
473d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_BIFROST_GATOR_SUPPORT=y"],
483d0407baSopenharmony_ci    },
493d0407baSopenharmony_ci    mali_midgard_enable_trace: {
503d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_BIFROST_ENABLE_TRACE=y"],
513d0407baSopenharmony_ci    },
523d0407baSopenharmony_ci    mali_dma_fence: {
533d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_BIFROST_DMA_FENCE=y"],
543d0407baSopenharmony_ci    },
553d0407baSopenharmony_ci    mali_arbiter_support: {
563d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_ARBITER_SUPPORT=y"],
573d0407baSopenharmony_ci    },
583d0407baSopenharmony_ci    mali_dma_buf_map_on_demand: {
593d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_DMA_BUF_MAP_ON_DEMAND=y"],
603d0407baSopenharmony_ci    },
613d0407baSopenharmony_ci    mali_dma_buf_legacy_compat: {
623d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_DMA_BUF_LEGACY_COMPAT=y"],
633d0407baSopenharmony_ci    },
643d0407baSopenharmony_ci    mali_2mb_alloc: {
653d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_2MB_ALLOC=y"],
663d0407baSopenharmony_ci    },
673d0407baSopenharmony_ci    mali_memory_fully_backed: {
683d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_MEMORY_FULLY_BACKED=y"],
693d0407baSopenharmony_ci    },
703d0407baSopenharmony_ci    mali_corestack: {
713d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_CORESTACK=y"],
723d0407baSopenharmony_ci    },
733d0407baSopenharmony_ci    mali_real_hw: {
743d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_REAL_HW=y"],
753d0407baSopenharmony_ci    },
763d0407baSopenharmony_ci    mali_error_inject_none: {
773d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_ERROR_INJECT_NONE=y"],
783d0407baSopenharmony_ci    },
793d0407baSopenharmony_ci    mali_error_inject_track_list: {
803d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_ERROR_INJECT_TRACK_LIST=y"],
813d0407baSopenharmony_ci    },
823d0407baSopenharmony_ci    mali_error_inject_random: {
833d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_ERROR_INJECT_RANDOM=y"],
843d0407baSopenharmony_ci    },
853d0407baSopenharmony_ci    mali_error_inject: {
863d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_BIFROST_ERROR_INJECT=y"],
873d0407baSopenharmony_ci    },
883d0407baSopenharmony_ci    mali_gem5_build: {
893d0407baSopenharmony_ci       kbuild_options: ["CONFIG_MALI_GEM5_BUILD=y"],
903d0407baSopenharmony_ci    },
913d0407baSopenharmony_ci    mali_debug: {
923d0407baSopenharmony_ci        kbuild_options: [
933d0407baSopenharmony_ci            "CONFIG_MALI_BIFROST_DEBUG=y",
943d0407baSopenharmony_ci            "MALI_KERNEL_TEST_API={{.debug}}",
953d0407baSopenharmony_ci        ],
963d0407baSopenharmony_ci    },
973d0407baSopenharmony_ci    mali_fence_debug: {
983d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_BIFROST_FENCE_DEBUG=y"],
993d0407baSopenharmony_ci    },
1003d0407baSopenharmony_ci    mali_system_trace: {
1013d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_BIFROST_SYSTEM_TRACE=y"],
1023d0407baSopenharmony_ci    },
1033d0407baSopenharmony_ci    buslog: {
1043d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_BUSLOG=y"],
1053d0407baSopenharmony_ci    },
1063d0407baSopenharmony_ci    cinstr_vector_dump: {
1073d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_VECTOR_DUMP=y"],
1083d0407baSopenharmony_ci    },
1093d0407baSopenharmony_ci    cinstr_gwt: {
1103d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_CINSTR_GWT=y"],
1113d0407baSopenharmony_ci    },
1123d0407baSopenharmony_ci    cinstr_primary_hwc: {
1133d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_PRFCNT_SET_PRIMARY=y"],
1143d0407baSopenharmony_ci    },
1153d0407baSopenharmony_ci    cinstr_secondary_hwc: {
1163d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_BIFROST_PRFCNT_SET_SECONDARY=y"],
1173d0407baSopenharmony_ci    },
1183d0407baSopenharmony_ci    cinstr_tertiary_hwc: {
1193d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_PRFCNT_SET_TERTIARY=y"],
1203d0407baSopenharmony_ci    },
1213d0407baSopenharmony_ci    cinstr_hwc_set_select_via_debug_fs: {
1223d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_PRFCNT_SET_SELECT_VIA_DEBUG_FS=y"],
1233d0407baSopenharmony_ci    },
1243d0407baSopenharmony_ci    mali_job_dump: {
1253d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_JOB_DUMP"],
1263d0407baSopenharmony_ci    },
1273d0407baSopenharmony_ci    mali_pwrsoft_765: {
1283d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_PWRSOFT_765=y"],
1293d0407baSopenharmony_ci    },
1303d0407baSopenharmony_ci    mali_hw_errata_1485982_not_affected: {
1313d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_HW_ERRATA_1485982_NOT_AFFECTED=y"],
1323d0407baSopenharmony_ci    },
1333d0407baSopenharmony_ci    mali_hw_errata_1485982_use_clock_alternative: {
1343d0407baSopenharmony_ci        kbuild_options: ["CONFIG_MALI_HW_ERRATA_1485982_USE_CLOCK_ALTERNATIVE=y"],
1353d0407baSopenharmony_ci    },
1363d0407baSopenharmony_ci    kbuild_options: [
1373d0407baSopenharmony_ci        "CONFIG_MALI_PLATFORM_NAME={{.mali_platform_name}}",
1383d0407baSopenharmony_ci        "MALI_CUSTOMER_RELEASE={{.release}}",
1393d0407baSopenharmony_ci        "MALI_UNIT_TEST={{.unit_test_code}}",
1403d0407baSopenharmony_ci        "MALI_USE_CSF={{.gpu_has_csf}}",
1413d0407baSopenharmony_ci        "MALI_JIT_PRESSURE_LIMIT_BASE={{.jit_pressure_limit_base}}",
1423d0407baSopenharmony_ci
1433d0407baSopenharmony_ci        // Start of CS experimental features definitions.
1443d0407baSopenharmony_ci        // If there is nothing below, definition should be added as follows:
1453d0407baSopenharmony_ci        // "MALI_EXPERIMENTAL_FEATURE={{.experimental_feature}}"
1463d0407baSopenharmony_ci        // experimental_feature above comes from Mconfig in
1473d0407baSopenharmony_ci        // <ddk_root>/product/base/
1483d0407baSopenharmony_ci        // However, in Mconfig, experimental_feature should be looked up (for
1493d0407baSopenharmony_ci        // similar explanation to this one) as ALLCAPS, i.e.
1503d0407baSopenharmony_ci        // EXPERIMENTAL_FEATURE.
1513d0407baSopenharmony_ci        //
1523d0407baSopenharmony_ci        // IMPORTANT: MALI_CS_EXPERIMENTAL should NEVER be defined below as it
1533d0407baSopenharmony_ci        // is an umbrella feature that would be open for inappropriate use
1543d0407baSopenharmony_ci        // (catch-all for experimental CS code without separating it into
1553d0407baSopenharmony_ci        // different features).
1563d0407baSopenharmony_ci        "MALI_INCREMENTAL_RENDERING={{.incremental_rendering}}",
1573d0407baSopenharmony_ci        "MALI_GPU_TIMESTAMP_CORRECTION={{.gpu_timestamp_correction}}",
1583d0407baSopenharmony_ci        "MALI_BASE_CSF_PERFORMANCE_TESTS={{.base_csf_performance_tests}}",
1593d0407baSopenharmony_ci        "MALI_GPU_TIMESTAMP_INTERPOLATION={{.gpu_timestamp_interpolation}}",
1603d0407baSopenharmony_ci    ],
1613d0407baSopenharmony_ci}
1623d0407baSopenharmony_ci
1633d0407baSopenharmony_cibob_kernel_module {
1643d0407baSopenharmony_ci    name: "mali_kbase",
1653d0407baSopenharmony_ci    defaults: [
1663d0407baSopenharmony_ci        "mali_kbase_shared_config_defaults",
1673d0407baSopenharmony_ci    ],
1683d0407baSopenharmony_ci    srcs: [
1693d0407baSopenharmony_ci        "*.c",
1703d0407baSopenharmony_ci        "*.h",
1713d0407baSopenharmony_ci        "Kbuild",
1723d0407baSopenharmony_ci        "backend/gpu/*.c",
1733d0407baSopenharmony_ci        "backend/gpu/*.h",
1743d0407baSopenharmony_ci        "backend/gpu/Kbuild",
1753d0407baSopenharmony_ci        "context/*.c",
1763d0407baSopenharmony_ci        "context/*.h",
1773d0407baSopenharmony_ci        "context/Kbuild",
1783d0407baSopenharmony_ci        "ipa/*.c",
1793d0407baSopenharmony_ci        "ipa/*.h",
1803d0407baSopenharmony_ci        "ipa/Kbuild",
1813d0407baSopenharmony_ci        "platform/*.h",
1823d0407baSopenharmony_ci        "platform/*/*.c",
1833d0407baSopenharmony_ci        "platform/*/*.h",
1843d0407baSopenharmony_ci        "platform/*/Kbuild",
1853d0407baSopenharmony_ci        "thirdparty/*.c",
1863d0407baSopenharmony_ci        "thirdparty/Kbuild",
1873d0407baSopenharmony_ci        "debug/*.c",
1883d0407baSopenharmony_ci        "debug/*.h",
1893d0407baSopenharmony_ci        "debug/Kbuild",
1903d0407baSopenharmony_ci        "device/*.c",
1913d0407baSopenharmony_ci        "device/*.h",
1923d0407baSopenharmony_ci        "device/Kbuild",
1933d0407baSopenharmony_ci        "gpu/*.c",
1943d0407baSopenharmony_ci        "gpu/*.h",
1953d0407baSopenharmony_ci        "gpu/Kbuild",
1963d0407baSopenharmony_ci        "tl/*.c",
1973d0407baSopenharmony_ci        "tl/*.h",
1983d0407baSopenharmony_ci        "tl/Kbuild",
1993d0407baSopenharmony_ci        "mmu/*.c",
2003d0407baSopenharmony_ci        "mmu/*.h",
2013d0407baSopenharmony_ci        "mmu/Kbuild",
2023d0407baSopenharmony_ci    ],
2033d0407baSopenharmony_ci    gpu_has_job_manager: {
2043d0407baSopenharmony_ci        srcs: [
2053d0407baSopenharmony_ci            "context/backend/*_jm.c",
2063d0407baSopenharmony_ci            "debug/backend/*_jm.c",
2073d0407baSopenharmony_ci            "debug/backend/*_jm.h",
2083d0407baSopenharmony_ci            "device/backend/*_jm.c",
2093d0407baSopenharmony_ci            "gpu/backend/*_jm.c",
2103d0407baSopenharmony_ci            "gpu/backend/*_jm.h",
2113d0407baSopenharmony_ci            "jm/*.h",
2123d0407baSopenharmony_ci            "tl/backend/*_jm.c",
2133d0407baSopenharmony_ci            "mmu/backend/*_jm.c",
2143d0407baSopenharmony_ci            "ipa/backend/*_jm.c",
2153d0407baSopenharmony_ci            "ipa/backend/*_jm.h",
2163d0407baSopenharmony_ci        ],
2173d0407baSopenharmony_ci    },
2183d0407baSopenharmony_ci    gpu_has_csf: {
2193d0407baSopenharmony_ci        srcs: [
2203d0407baSopenharmony_ci            "context/backend/*_csf.c",
2213d0407baSopenharmony_ci            "csf/*.c",
2223d0407baSopenharmony_ci            "csf/*.h",
2233d0407baSopenharmony_ci            "csf/Kbuild",
2243d0407baSopenharmony_ci            "csf/ipa_control/*.c",
2253d0407baSopenharmony_ci            "csf/ipa_control/*.h",
2263d0407baSopenharmony_ci            "csf/ipa_control/Kbuild",
2273d0407baSopenharmony_ci            "debug/backend/*_csf.c",
2283d0407baSopenharmony_ci            "debug/backend/*_csf.h",
2293d0407baSopenharmony_ci            "device/backend/*_csf.c",
2303d0407baSopenharmony_ci            "gpu/backend/*_csf.c",
2313d0407baSopenharmony_ci            "gpu/backend/*_csf.h",
2323d0407baSopenharmony_ci            "tl/backend/*_csf.c",
2333d0407baSopenharmony_ci            "mmu/backend/*_csf.c",
2343d0407baSopenharmony_ci            "ipa/backend/*_csf.c",
2353d0407baSopenharmony_ci            "ipa/backend/*_csf.h",
2363d0407baSopenharmony_ci        ],
2373d0407baSopenharmony_ci    },
2383d0407baSopenharmony_ci    mali_arbiter_support: {
2393d0407baSopenharmony_ci        srcs: [
2403d0407baSopenharmony_ci            "arbiter/*.c",
2413d0407baSopenharmony_ci            "arbiter/*.h",
2423d0407baSopenharmony_ci            "arbiter/Kbuild",
2433d0407baSopenharmony_ci        ],
2443d0407baSopenharmony_ci    },
2453d0407baSopenharmony_ci    kbuild_options: [
2463d0407baSopenharmony_ci        "CONFIG_MALI_BIFROST=m",
2473d0407baSopenharmony_ci        "CONFIG_MALI_KUTF=n",
2483d0407baSopenharmony_ci    ],
2493d0407baSopenharmony_ci    buslog: {
2503d0407baSopenharmony_ci        extra_symbols: [
2513d0407baSopenharmony_ci            "bus_logger",
2523d0407baSopenharmony_ci        ],
2533d0407baSopenharmony_ci    },
2543d0407baSopenharmony_ci}
255