diff options
author | Sidath Senanayake <sidaths@google.com> | 2018-01-22 13:55:38 +0100 |
---|---|---|
committer | Sidath Senanayake <sidaths@google.com> | 2018-01-22 13:55:38 +0100 |
commit | e42736e67f7d84d329d9595b7393e6784c5b887f (patch) | |
tree | 03608c098294da4426551ec7127cfe0aa4f806ee /mali_kbase/platform | |
parent | dbd2655766535ffc24e24503a7279f3abfd40d7e (diff) | |
download | gpu-e42736e67f7d84d329d9595b7393e6784c5b887f.tar.gz |
Mali Bifrost DDK r10p0 KMD
Provenance:
27ee08eb4 (collaborate/EAC/b_r10p0)
BX304L01B-BU-00000-r10p0-01rel0
BX304L06A-BU-00000-r10p0-01rel0
BX304X07X-BU-00000-r10p0-01rel0
Signed-off-by: Sidath Senanayake <sidaths@google.com>
Change-Id: I31c8d66dad91c5b998f3e07757054c37c6aea963
Diffstat (limited to 'mali_kbase/platform')
19 files changed, 132 insertions, 688 deletions
diff --git a/mali_kbase/platform/Kconfig b/mali_kbase/platform/Kconfig index 38835d3..ef9fb96 100644 --- a/mali_kbase/platform/Kconfig +++ b/mali_kbase/platform/Kconfig @@ -6,12 +6,18 @@ # Foundation, and any use by you of this program is subject to the terms # of such GNU licence. # -# A copy of the licence is included with the program, and can also be obtained -# from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, you can access it online at +# http://www.gnu.org/licenses/gpl-2.0.html. +# +# SPDX-License-Identifier: GPL-2.0 # # - diff --git a/mali_kbase/platform/devicetree/Kbuild b/mali_kbase/platform/devicetree/Kbuild index d40d798..ce637fb 100644 --- a/mali_kbase/platform/devicetree/Kbuild +++ b/mali_kbase/platform/devicetree/Kbuild @@ -6,12 +6,18 @@ # Foundation, and any use by you of this program is subject to the terms # of such GNU licence. # -# A copy of the licence is included with the program, and can also be obtained -# from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, you can access it online at +# http://www.gnu.org/licenses/gpl-2.0.html. +# +# SPDX-License-Identifier: GPL-2.0 # # - mali_kbase-y += \ $(MALI_PLATFORM_DIR)/mali_kbase_config_devicetree.o \ diff --git a/mali_kbase/platform/devicetree/mali_kbase_config_devicetree.c b/mali_kbase/platform/devicetree/mali_kbase_config_devicetree.c index 299d0e7..ccefddf 100644 --- a/mali_kbase/platform/devicetree/mali_kbase_config_devicetree.c +++ b/mali_kbase/platform/devicetree/mali_kbase_config_devicetree.c @@ -7,22 +7,21 @@ * Foundation, and any use by you of this program is subject to the terms * of such GNU licence. * - * A copy of the licence is included with the program, and can also be obtained - * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you can access it online at + * http://www.gnu.org/licenses/gpl-2.0.html. + * + * SPDX-License-Identifier: GPL-2.0 * */ - - #include <mali_kbase_config.h> -int kbase_platform_early_init(void) -{ - /* Nothing needed at this stage */ - return 0; -} - static struct kbase_platform_config dummy_platform_config; struct kbase_platform_config *kbase_get_platform_config(void) diff --git a/mali_kbase/platform/devicetree/mali_kbase_config_platform.h b/mali_kbase/platform/devicetree/mali_kbase_config_platform.h index 2ceca34..5990313 100644 --- a/mali_kbase/platform/devicetree/mali_kbase_config_platform.h +++ b/mali_kbase/platform/devicetree/mali_kbase_config_platform.h @@ -7,52 +7,18 @@ * Foundation, and any use by you of this program is subject to the terms * of such GNU licence. * - * A copy of the licence is included with the program, and can also be obtained - * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. * - */ - - - -/** - * Maximum frequency GPU will be clocked at. Given in kHz. - * This must be specified as there is no default value. - * - * Attached value: number in kHz - * Default value: NA - */ -#define GPU_FREQ_KHZ_MAX (5000) -/** - * Minimum frequency GPU will be clocked at. Given in kHz. - * This must be specified as there is no default value. - * - * Attached value: number in kHz - * Default value: NA - */ -#define GPU_FREQ_KHZ_MIN (5000) - -/** - * CPU_SPEED_FUNC - A pointer to a function that calculates the CPU clock - * - * CPU clock speed of the platform is in MHz - see kbase_cpu_clk_speed_func - * for the function prototype. - * - * Attached value: A kbase_cpu_clk_speed_func. - * Default Value: NA - */ -#define CPU_SPEED_FUNC (NULL) - -/** - * GPU_SPEED_FUNC - A pointer to a function that calculates the GPU clock + * You should have received a copy of the GNU General Public License + * along with this program; if not, you can access it online at + * http://www.gnu.org/licenses/gpl-2.0.html. * - * GPU clock speed of the platform in MHz - see kbase_gpu_clk_speed_func - * for the function prototype. + * SPDX-License-Identifier: GPL-2.0 * - * Attached value: A kbase_gpu_clk_speed_func. - * Default Value: NA */ -#define GPU_SPEED_FUNC (NULL) /** * Power management configuration diff --git a/mali_kbase/platform/devicetree/mali_kbase_runtime_pm.c b/mali_kbase/platform/devicetree/mali_kbase_runtime_pm.c index 372420a..c5f3ad7 100644 --- a/mali_kbase/platform/devicetree/mali_kbase_runtime_pm.c +++ b/mali_kbase/platform/devicetree/mali_kbase_runtime_pm.c @@ -7,14 +7,19 @@ * Foundation, and any use by you of this program is subject to the terms * of such GNU licence. * - * A copy of the licence is included with the program, and can also be obtained - * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you can access it online at + * http://www.gnu.org/licenses/gpl-2.0.html. + * + * SPDX-License-Identifier: GPL-2.0 * */ - - #include <mali_kbase.h> #include <mali_kbase_defs.h> #include <linux/pm_runtime.h> diff --git a/mali_kbase/platform/mali_kbase_platform_common.h b/mali_kbase/platform/mali_kbase_platform_common.h deleted file mode 100644 index 7cb3be7..0000000 --- a/mali_kbase/platform/mali_kbase_platform_common.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * - * (C) COPYRIGHT 2010-2013 ARM Limited. All rights reserved. - * - * This program is free software and is provided to you under the terms of the - * GNU General Public License version 2 as published by the Free Software - * Foundation, and any use by you of this program is subject to the terms - * of such GNU licence. - * - * A copy of the licence is included with the program, and can also be obtained - * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - - - -/** - * @brief Entry point to transfer control to a platform for early initialization - * - * This function is called early on in the initialization during execution of - * @ref kbase_driver_init. - * - * @return Zero to indicate success non-zero for failure. - */ -int kbase_platform_early_init(void); diff --git a/mali_kbase/platform/vexpress/Kbuild b/mali_kbase/platform/vexpress/Kbuild index d9d5e90..6780e4c 100644 --- a/mali_kbase/platform/vexpress/Kbuild +++ b/mali_kbase/platform/vexpress/Kbuild @@ -6,14 +6,19 @@ # Foundation, and any use by you of this program is subject to the terms # of such GNU licence. # -# A copy of the licence is included with the program, and can also be obtained -# from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, you can access it online at +# http://www.gnu.org/licenses/gpl-2.0.html. +# +# SPDX-License-Identifier: GPL-2.0 # # - mali_kbase-y += \ $(MALI_PLATFORM_DIR)/mali_kbase_config_vexpress.o \ - $(MALI_PLATFORM_DIR)/mali_kbase_cpu_vexpress.o \ mali_kbase_platform_fake.o diff --git a/mali_kbase/platform/vexpress/mali_kbase_config_platform.h b/mali_kbase/platform/vexpress/mali_kbase_config_platform.h index 02835f1..fac3cd5 100644 --- a/mali_kbase/platform/vexpress/mali_kbase_config_platform.h +++ b/mali_kbase/platform/vexpress/mali_kbase_config_platform.h @@ -7,54 +7,18 @@ * Foundation, and any use by you of this program is subject to the terms * of such GNU licence. * - * A copy of the licence is included with the program, and can also be obtained - * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. * - */ - - - -#include "mali_kbase_cpu_vexpress.h" - -/** - * Maximum frequency GPU will be clocked at. Given in kHz. - * This must be specified as there is no default value. - * - * Attached value: number in kHz - * Default value: NA - */ -#define GPU_FREQ_KHZ_MAX kbase_get_platform_max_freq() -/** - * Minimum frequency GPU will be clocked at. Given in kHz. - * This must be specified as there is no default value. - * - * Attached value: number in kHz - * Default value: NA - */ -#define GPU_FREQ_KHZ_MIN kbase_get_platform_min_freq() - -/** - * CPU_SPEED_FUNC - A pointer to a function that calculates the CPU clock - * - * CPU clock speed of the platform is in MHz - see kbase_cpu_clk_speed_func - * for the function prototype. - * - * Attached value: A kbase_cpu_clk_speed_func. - * Default Value: NA - */ -#define CPU_SPEED_FUNC (&kbase_get_vexpress_cpu_clock_speed) - -/** - * GPU_SPEED_FUNC - A pointer to a function that calculates the GPU clock + * You should have received a copy of the GNU General Public License + * along with this program; if not, you can access it online at + * http://www.gnu.org/licenses/gpl-2.0.html. * - * GPU clock speed of the platform in MHz - see kbase_gpu_clk_speed_func - * for the function prototype. + * SPDX-License-Identifier: GPL-2.0 * - * Attached value: A kbase_gpu_clk_speed_func. - * Default Value: NA */ -#define GPU_SPEED_FUNC (NULL) /** * Power management configuration diff --git a/mali_kbase/platform/vexpress/mali_kbase_config_vexpress.c b/mali_kbase/platform/vexpress/mali_kbase_config_vexpress.c index 745884f..d165ce2 100644 --- a/mali_kbase/platform/vexpress/mali_kbase_config_vexpress.c +++ b/mali_kbase/platform/vexpress/mali_kbase_config_vexpress.c @@ -7,21 +7,25 @@ * Foundation, and any use by you of this program is subject to the terms * of such GNU licence. * - * A copy of the licence is included with the program, and can also be obtained - * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you can access it online at + * http://www.gnu.org/licenses/gpl-2.0.html. + * + * SPDX-License-Identifier: GPL-2.0 * */ - - #include <linux/ioport.h> #include <mali_kbase.h> #include <mali_kbase_defs.h> #include <mali_kbase_config.h> -#include "mali_kbase_cpu_vexpress.h" #include "mali_kbase_config_platform.h" #ifndef CONFIG_OF @@ -63,10 +67,3 @@ struct kbase_platform_config *kbase_get_platform_config(void) { return &versatile_platform_config; } - - -int kbase_platform_early_init(void) -{ - /* Nothing needed at this stage */ - return 0; -} diff --git a/mali_kbase/platform/vexpress/mali_kbase_cpu_vexpress.c b/mali_kbase/platform/vexpress/mali_kbase_cpu_vexpress.c deleted file mode 100644 index 4665f98..0000000 --- a/mali_kbase/platform/vexpress/mali_kbase_cpu_vexpress.c +++ /dev/null @@ -1,279 +0,0 @@ -/* - * - * (C) COPYRIGHT 2011-2016 ARM Limited. All rights reserved. - * - * This program is free software and is provided to you under the terms of the - * GNU General Public License version 2 as published by the Free Software - * Foundation, and any use by you of this program is subject to the terms - * of such GNU licence. - * - * A copy of the licence is included with the program, and can also be obtained - * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - - - -#include <linux/io.h> -#include <mali_kbase.h> -#include "mali_kbase_cpu_vexpress.h" - -#define HZ_IN_MHZ (1000000) - -#define CORETILE_EXPRESS_A9X4_SCC_START (0x100E2000) -#define MOTHERBOARD_SYS_CFG_START (0x10000000) -#define SYS_CFGDATA_OFFSET (0x000000A0) -#define SYS_CFGCTRL_OFFSET (0x000000A4) -#define SYS_CFGSTAT_OFFSET (0x000000A8) - -#define SYS_CFGCTRL_START_BIT_VALUE (1 << 31) -#define READ_REG_BIT_VALUE (0 << 30) -#define DCC_DEFAULT_BIT_VALUE (0 << 26) -#define SYS_CFG_OSC_FUNC_BIT_VALUE (1 << 20) -#define SITE_DEFAULT_BIT_VALUE (1 << 16) -#define BOARD_STACK_POS_DEFAULT_BIT_VALUE (0 << 12) -#define DEVICE_DEFAULT_BIT_VALUE (2 << 0) -#define SYS_CFG_COMPLETE_BIT_VALUE (1 << 0) -#define SYS_CFG_ERROR_BIT_VALUE (1 << 1) - -#define FEED_REG_BIT_MASK (0x0F) -#define FCLK_PA_DIVIDE_BIT_SHIFT (0x03) -#define FCLK_PB_DIVIDE_BIT_SHIFT (0x07) -#define FCLK_PC_DIVIDE_BIT_SHIFT (0x0B) -#define AXICLK_PA_DIVIDE_BIT_SHIFT (0x0F) -#define AXICLK_PB_DIVIDE_BIT_SHIFT (0x13) - -/* the following three values used for reading - * HBI value of the LogicTile daughterboard */ -#define VE_MOTHERBOARD_PERIPHERALS_SMB_CS7 (0x10000000) -#define VE_SYS_PROC_ID1_OFFSET (0x00000088) -#define VE_LOGIC_TILE_HBI_MASK (0x00000FFF) - -#define IS_SINGLE_BIT_SET(val, pos) (val&(1<<pos)) - -/** - * Values used for determining the GPU frequency based on the LogicTile type - * Used by the function kbase_get_platform_logic_tile_type - */ -#define VE_VIRTEX6_GPU_FREQ_MIN 5000 -#define VE_VIRTEX6_GPU_FREQ_MAX 5000 -#define VE_VIRTEX7_GPU_FREQ_MIN 40000 -#define VE_VIRTEX7_GPU_FREQ_MAX 40000 -#define VE_DEFAULT_GPU_FREQ_MIN 5000 -#define VE_DEFAULT_GPU_FREQ_MAX 5000 - - -#define CPU_CLOCK_SPEED_UNDEFINED (0) - -static u32 cpu_clock_speed = CPU_CLOCK_SPEED_UNDEFINED; - -static DEFINE_RAW_SPINLOCK(syscfg_lock); -/** - * kbase_get_vendor_specific_cpu_clock_speed -Retrieves the CPU clock speed - * @cpu_clock - the value of CPU clock speed in MHz - * - * Returns 0 on success, error code otherwise. - * - * The implementation is platform specific. -*/ -int kbase_get_vexpress_cpu_clock_speed(u32 *cpu_clock) -{ - int err = 0; - u32 reg_val = 0; - u32 osc2_value = 0; - u32 pa_divide = 0; - u32 pb_divide = 0; - u32 pc_divide = 0; - void __iomem *syscfg_reg = NULL; - void __iomem *scc_reg = NULL; - - if (CPU_CLOCK_SPEED_UNDEFINED != cpu_clock_speed) { - *cpu_clock = cpu_clock_speed; - return 0; - } - - /* Init the value in case something goes wrong */ - *cpu_clock = 0; - - /* Map CPU register into virtual memory */ - syscfg_reg = ioremap(MOTHERBOARD_SYS_CFG_START, 0x1000); - if (syscfg_reg == NULL) { - err = -EIO; - goto syscfg_reg_map_failed; - } - - scc_reg = ioremap(CORETILE_EXPRESS_A9X4_SCC_START, 0x1000); - if (scc_reg == NULL) { - err = -EIO; - goto scc_reg_map_failed; - } - - raw_spin_lock(&syscfg_lock); - - /* Read SYS regs - OSC2 */ - reg_val = readl(syscfg_reg + SYS_CFGCTRL_OFFSET); - - /* Check if there is any other undergoing request */ - if (reg_val & SYS_CFGCTRL_START_BIT_VALUE) { - err = -EBUSY; - goto ongoing_request; - } - /* Reset the CGFGSTAT reg */ - writel(0, (syscfg_reg + SYS_CFGSTAT_OFFSET)); - - writel(SYS_CFGCTRL_START_BIT_VALUE | READ_REG_BIT_VALUE | - DCC_DEFAULT_BIT_VALUE | - SYS_CFG_OSC_FUNC_BIT_VALUE | - SITE_DEFAULT_BIT_VALUE | - BOARD_STACK_POS_DEFAULT_BIT_VALUE | - DEVICE_DEFAULT_BIT_VALUE, - (syscfg_reg + SYS_CFGCTRL_OFFSET)); - /* Wait for the transaction to complete */ - while (!(readl(syscfg_reg + SYS_CFGSTAT_OFFSET) & - SYS_CFG_COMPLETE_BIT_VALUE)) - ; - /* Read SYS_CFGSTAT Register to get the status of submitted - * transaction */ - reg_val = readl(syscfg_reg + SYS_CFGSTAT_OFFSET); - - if (reg_val & SYS_CFG_ERROR_BIT_VALUE) { - /* Error while setting register */ - err = -EIO; - goto set_reg_error; - } - - osc2_value = readl(syscfg_reg + SYS_CFGDATA_OFFSET); - /* Read the SCC CFGRW0 register */ - reg_val = readl(scc_reg); - - /* - * Select the appropriate feed: - * CFGRW0[0] - CLKOB - * CFGRW0[1] - CLKOC - * CFGRW0[2] - FACLK (CLK)B FROM AXICLK PLL) - */ - /* Calculate the FCLK */ - if (IS_SINGLE_BIT_SET(reg_val, 0)) { - /* CFGRW0[0] - CLKOB */ - /* CFGRW0[6:3] */ - pa_divide = ((reg_val & (FEED_REG_BIT_MASK << - FCLK_PA_DIVIDE_BIT_SHIFT)) >> - FCLK_PA_DIVIDE_BIT_SHIFT); - /* CFGRW0[10:7] */ - pb_divide = ((reg_val & (FEED_REG_BIT_MASK << - FCLK_PB_DIVIDE_BIT_SHIFT)) >> - FCLK_PB_DIVIDE_BIT_SHIFT); - *cpu_clock = osc2_value * (pa_divide + 1) / (pb_divide + 1); - } else if (IS_SINGLE_BIT_SET(reg_val, 1)) { - /* CFGRW0[1] - CLKOC */ - /* CFGRW0[6:3] */ - pa_divide = ((reg_val & (FEED_REG_BIT_MASK << - FCLK_PA_DIVIDE_BIT_SHIFT)) >> - FCLK_PA_DIVIDE_BIT_SHIFT); - /* CFGRW0[14:11] */ - pc_divide = ((reg_val & (FEED_REG_BIT_MASK << - FCLK_PC_DIVIDE_BIT_SHIFT)) >> - FCLK_PC_DIVIDE_BIT_SHIFT); - *cpu_clock = osc2_value * (pa_divide + 1) / (pc_divide + 1); - } else if (IS_SINGLE_BIT_SET(reg_val, 2)) { - /* CFGRW0[2] - FACLK */ - /* CFGRW0[18:15] */ - pa_divide = ((reg_val & (FEED_REG_BIT_MASK << - AXICLK_PA_DIVIDE_BIT_SHIFT)) >> - AXICLK_PA_DIVIDE_BIT_SHIFT); - /* CFGRW0[22:19] */ - pb_divide = ((reg_val & (FEED_REG_BIT_MASK << - AXICLK_PB_DIVIDE_BIT_SHIFT)) >> - AXICLK_PB_DIVIDE_BIT_SHIFT); - *cpu_clock = osc2_value * (pa_divide + 1) / (pb_divide + 1); - } else { - err = -EIO; - } - -set_reg_error: -ongoing_request: - raw_spin_unlock(&syscfg_lock); - *cpu_clock /= HZ_IN_MHZ; - - if (!err) - cpu_clock_speed = *cpu_clock; - - iounmap(scc_reg); - -scc_reg_map_failed: - iounmap(syscfg_reg); - -syscfg_reg_map_failed: - - return err; -} - -/** - * kbase_get_platform_logic_tile_type - determines which LogicTile type - * is used by Versatile Express - * - * When platform_config build parameter is specified as vexpress, i.e., - * platform_config=vexpress, GPU frequency may vary dependent on the - * particular platform. The GPU frequency depends on the LogicTile type. - * - * This function determines which LogicTile type is used by the platform by - * reading the HBI value of the daughterboard which holds the LogicTile: - * - * 0x217 HBI0217 Virtex-6 - * 0x192 HBI0192 Virtex-5 - * 0x247 HBI0247 Virtex-7 - * - * Return: HBI value of the logic tile daughterboard, zero if not accessible - */ -static u32 kbase_get_platform_logic_tile_type(void) -{ - void __iomem *syscfg_reg = NULL; - u32 sys_procid1 = 0; - - syscfg_reg = ioremap(VE_MOTHERBOARD_PERIPHERALS_SMB_CS7 + VE_SYS_PROC_ID1_OFFSET, 4); - if (NULL != syscfg_reg) { - sys_procid1 = readl(syscfg_reg); - iounmap(syscfg_reg); - } - - return sys_procid1 & VE_LOGIC_TILE_HBI_MASK; -} - -u32 kbase_get_platform_min_freq(void) -{ - u32 ve_logic_tile = kbase_get_platform_logic_tile_type(); - - switch (ve_logic_tile) { - case 0x217: - /* Virtex 6, HBI0217 */ - return VE_VIRTEX6_GPU_FREQ_MIN; - case 0x247: - /* Virtex 7, HBI0247 */ - return VE_VIRTEX7_GPU_FREQ_MIN; - default: - /* all other logic tiles, i.e., Virtex 5 HBI0192 - * or unsuccessful reading from the platform - - * fall back to some default value */ - return VE_DEFAULT_GPU_FREQ_MIN; - } -} - -u32 kbase_get_platform_max_freq(void) -{ - u32 ve_logic_tile = kbase_get_platform_logic_tile_type(); - - switch (ve_logic_tile) { - case 0x217: - /* Virtex 6, HBI0217 */ - return VE_VIRTEX6_GPU_FREQ_MAX; - case 0x247: - /* Virtex 7, HBI0247 */ - return VE_VIRTEX7_GPU_FREQ_MAX; - default: - /* all other logic tiles, i.e., Virtex 5 HBI0192 - * or unsuccessful reading from the platform - - * fall back to some default value */ - return VE_DEFAULT_GPU_FREQ_MAX; - } -} diff --git a/mali_kbase/platform/vexpress/mali_kbase_cpu_vexpress.h b/mali_kbase/platform/vexpress/mali_kbase_cpu_vexpress.h deleted file mode 100644 index da86569..0000000 --- a/mali_kbase/platform/vexpress/mali_kbase_cpu_vexpress.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * - * (C) COPYRIGHT 2012-2013, 2015-2016 ARM Limited. All rights reserved. - * - * This program is free software and is provided to you under the terms of the - * GNU General Public License version 2 as published by the Free Software - * Foundation, and any use by you of this program is subject to the terms - * of such GNU licence. - * - * A copy of the licence is included with the program, and can also be obtained - * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - - - - - -#ifndef _KBASE_CPU_VEXPRESS_H_ -#define _KBASE_CPU_VEXPRESS_H_ - -/** - * Versatile Express implementation of @ref kbase_cpu_clk_speed_func. - */ -int kbase_get_vexpress_cpu_clock_speed(u32 *cpu_clock); - -/** - * Get the minimum GPU frequency for the attached logic tile - */ -u32 kbase_get_platform_min_freq(void); - -/** - * Get the maximum GPU frequency for the attached logic tile - */ -u32 kbase_get_platform_max_freq(void); - -#endif /* _KBASE_CPU_VEXPRESS_H_ */ diff --git a/mali_kbase/platform/vexpress_1xv7_a57/Kbuild b/mali_kbase/platform/vexpress_1xv7_a57/Kbuild index df87c74..51b408e 100644 --- a/mali_kbase/platform/vexpress_1xv7_a57/Kbuild +++ b/mali_kbase/platform/vexpress_1xv7_a57/Kbuild @@ -6,12 +6,18 @@ # Foundation, and any use by you of this program is subject to the terms # of such GNU licence. # -# A copy of the licence is included with the program, and can also be obtained -# from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, you can access it online at +# http://www.gnu.org/licenses/gpl-2.0.html. +# +# SPDX-License-Identifier: GPL-2.0 # # - mali_kbase-y += \ $(MALI_PLATFORM_DIR)/mali_kbase_config_vexpress.o \ diff --git a/mali_kbase/platform/vexpress_1xv7_a57/mali_kbase_config_platform.h b/mali_kbase/platform/vexpress_1xv7_a57/mali_kbase_config_platform.h index 0efbf39..fac3cd5 100644 --- a/mali_kbase/platform/vexpress_1xv7_a57/mali_kbase_config_platform.h +++ b/mali_kbase/platform/vexpress_1xv7_a57/mali_kbase_config_platform.h @@ -7,52 +7,18 @@ * Foundation, and any use by you of this program is subject to the terms * of such GNU licence. * - * A copy of the licence is included with the program, and can also be obtained - * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. * - */ - - - -/** - * Maximum frequency GPU will be clocked at. Given in kHz. - * This must be specified as there is no default value. - * - * Attached value: number in kHz - * Default value: NA - */ -#define GPU_FREQ_KHZ_MAX 5000 -/** - * Minimum frequency GPU will be clocked at. Given in kHz. - * This must be specified as there is no default value. - * - * Attached value: number in kHz - * Default value: NA - */ -#define GPU_FREQ_KHZ_MIN 5000 - -/** - * CPU_SPEED_FUNC - A pointer to a function that calculates the CPU clock - * - * CPU clock speed of the platform is in MHz - see kbase_cpu_clk_speed_func - * for the function prototype. - * - * Attached value: A kbase_cpu_clk_speed_func. - * Default Value: NA - */ -#define CPU_SPEED_FUNC (&kbase_cpuprops_get_default_clock_speed) - -/** - * GPU_SPEED_FUNC - A pointer to a function that calculates the GPU clock + * You should have received a copy of the GNU General Public License + * along with this program; if not, you can access it online at + * http://www.gnu.org/licenses/gpl-2.0.html. * - * GPU clock speed of the platform in MHz - see kbase_gpu_clk_speed_func - * for the function prototype. + * SPDX-License-Identifier: GPL-2.0 * - * Attached value: A kbase_gpu_clk_speed_func. - * Default Value: NA */ -#define GPU_SPEED_FUNC (NULL) /** * Power management configuration diff --git a/mali_kbase/platform/vexpress_1xv7_a57/mali_kbase_config_vexpress.c b/mali_kbase/platform/vexpress_1xv7_a57/mali_kbase_config_vexpress.c index 5a69758..efca0a5 100644 --- a/mali_kbase/platform/vexpress_1xv7_a57/mali_kbase_config_vexpress.c +++ b/mali_kbase/platform/vexpress_1xv7_a57/mali_kbase_config_vexpress.c @@ -7,14 +7,19 @@ * Foundation, and any use by you of this program is subject to the terms * of such GNU licence. * - * A copy of the licence is included with the program, and can also be obtained - * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you can access it online at + * http://www.gnu.org/licenses/gpl-2.0.html. + * + * SPDX-License-Identifier: GPL-2.0 * */ - - #include <linux/ioport.h> #include <mali_kbase.h> #include <mali_kbase_defs.h> @@ -58,9 +63,3 @@ struct kbase_platform_config *kbase_get_platform_config(void) { return &versatile_platform_config; } - -int kbase_platform_early_init(void) -{ - /* Nothing needed at this stage */ - return 0; -} diff --git a/mali_kbase/platform/vexpress_6xvirtex7_10mhz/Kbuild b/mali_kbase/platform/vexpress_6xvirtex7_10mhz/Kbuild index d9d5e90..e07709c 100644 --- a/mali_kbase/platform/vexpress_6xvirtex7_10mhz/Kbuild +++ b/mali_kbase/platform/vexpress_6xvirtex7_10mhz/Kbuild @@ -6,12 +6,18 @@ # Foundation, and any use by you of this program is subject to the terms # of such GNU licence. # -# A copy of the licence is included with the program, and can also be obtained -# from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, you can access it online at +# http://www.gnu.org/licenses/gpl-2.0.html. +# +# SPDX-License-Identifier: GPL-2.0 # # - mali_kbase-y += \ $(MALI_PLATFORM_DIR)/mali_kbase_config_vexpress.o \ diff --git a/mali_kbase/platform/vexpress_6xvirtex7_10mhz/mali_kbase_config_platform.h b/mali_kbase/platform/vexpress_6xvirtex7_10mhz/mali_kbase_config_platform.h index dbdf21e..fac3cd5 100644 --- a/mali_kbase/platform/vexpress_6xvirtex7_10mhz/mali_kbase_config_platform.h +++ b/mali_kbase/platform/vexpress_6xvirtex7_10mhz/mali_kbase_config_platform.h @@ -7,54 +7,18 @@ * Foundation, and any use by you of this program is subject to the terms * of such GNU licence. * - * A copy of the licence is included with the program, and can also be obtained - * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. * - */ - - - -#include "mali_kbase_cpu_vexpress.h" - -/** - * Maximum frequency GPU will be clocked at. Given in kHz. - * This must be specified as there is no default value. - * - * Attached value: number in kHz - * Default value: NA - */ -#define GPU_FREQ_KHZ_MAX 10000 -/** - * Minimum frequency GPU will be clocked at. Given in kHz. - * This must be specified as there is no default value. - * - * Attached value: number in kHz - * Default value: NA - */ -#define GPU_FREQ_KHZ_MIN 10000 - -/** - * CPU_SPEED_FUNC - A pointer to a function that calculates the CPU clock - * - * CPU clock speed of the platform is in MHz - see kbase_cpu_clk_speed_func - * for the function prototype. - * - * Attached value: A kbase_cpu_clk_speed_func. - * Default Value: NA - */ -#define CPU_SPEED_FUNC (&kbase_get_vexpress_cpu_clock_speed) - -/** - * GPU_SPEED_FUNC - A pointer to a function that calculates the GPU clock + * You should have received a copy of the GNU General Public License + * along with this program; if not, you can access it online at + * http://www.gnu.org/licenses/gpl-2.0.html. * - * GPU clock speed of the platform in MHz - see kbase_gpu_clk_speed_func - * for the function prototype. + * SPDX-License-Identifier: GPL-2.0 * - * Attached value: A kbase_gpu_clk_speed_func. - * Default Value: NA */ -#define GPU_SPEED_FUNC (NULL) /** * Power management configuration diff --git a/mali_kbase/platform/vexpress_6xvirtex7_10mhz/mali_kbase_config_vexpress.c b/mali_kbase/platform/vexpress_6xvirtex7_10mhz/mali_kbase_config_vexpress.c index 5d8ec2d..b6714b9 100644 --- a/mali_kbase/platform/vexpress_6xvirtex7_10mhz/mali_kbase_config_vexpress.c +++ b/mali_kbase/platform/vexpress_6xvirtex7_10mhz/mali_kbase_config_vexpress.c @@ -7,21 +7,25 @@ * Foundation, and any use by you of this program is subject to the terms * of such GNU licence. * - * A copy of the licence is included with the program, and can also be obtained - * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you can access it online at + * http://www.gnu.org/licenses/gpl-2.0.html. + * + * SPDX-License-Identifier: GPL-2.0 * */ - - #include <linux/ioport.h> #include <mali_kbase.h> #include <mali_kbase_defs.h> #include <mali_kbase_config.h> -#include "mali_kbase_cpu_vexpress.h" #ifndef CONFIG_OF static struct kbase_io_resources io_resources = { @@ -61,10 +65,3 @@ struct kbase_platform_config *kbase_get_platform_config(void) { return &versatile_platform_config; } - -int kbase_platform_early_init(void) -{ - /* Nothing needed at this stage */ - return 0; -} - diff --git a/mali_kbase/platform/vexpress_6xvirtex7_10mhz/mali_kbase_cpu_vexpress.c b/mali_kbase/platform/vexpress_6xvirtex7_10mhz/mali_kbase_cpu_vexpress.c deleted file mode 100644 index 816dff4..0000000 --- a/mali_kbase/platform/vexpress_6xvirtex7_10mhz/mali_kbase_cpu_vexpress.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * - * (C) COPYRIGHT 2011-2013 ARM Limited. All rights reserved. - * - * This program is free software and is provided to you under the terms of the - * GNU General Public License version 2 as published by the Free Software - * Foundation, and any use by you of this program is subject to the terms - * of such GNU licence. - * - * A copy of the licence is included with the program, and can also be obtained - * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - - - - - -#include <linux/io.h> -#include <mali_kbase.h> -#include "mali_kbase_cpu_vexpress.h" - -#define HZ_IN_MHZ (1000000) - -#define CORETILE_EXPRESS_A9X4_SCC_START (0x100E2000) -#define MOTHERBOARD_SYS_CFG_START (0x10000000) -#define SYS_CFGDATA_OFFSET (0x000000A0) -#define SYS_CFGCTRL_OFFSET (0x000000A4) -#define SYS_CFGSTAT_OFFSET (0x000000A8) - -#define SYS_CFGCTRL_START_BIT_VALUE (1 << 31) -#define READ_REG_BIT_VALUE (0 << 30) -#define DCC_DEFAULT_BIT_VALUE (0 << 26) -#define SYS_CFG_OSC_FUNC_BIT_VALUE (1 << 20) -#define SITE_DEFAULT_BIT_VALUE (1 << 16) -#define BOARD_STACK_POS_DEFAULT_BIT_VALUE (0 << 12) -#define DEVICE_DEFAULT_BIT_VALUE (2 << 0) -#define SYS_CFG_COMPLETE_BIT_VALUE (1 << 0) -#define SYS_CFG_ERROR_BIT_VALUE (1 << 1) - -#define FEED_REG_BIT_MASK (0x0F) -#define FCLK_PA_DIVIDE_BIT_SHIFT (0x03) -#define FCLK_PB_DIVIDE_BIT_SHIFT (0x07) -#define FCLK_PC_DIVIDE_BIT_SHIFT (0x0B) -#define AXICLK_PA_DIVIDE_BIT_SHIFT (0x0F) -#define AXICLK_PB_DIVIDE_BIT_SHIFT (0x13) - -#define IS_SINGLE_BIT_SET(val, pos) (val&(1<<pos)) - -#define CPU_CLOCK_SPEED_UNDEFINED 0 - -#define CPU_CLOCK_SPEED_6XV7 50 - -static u32 cpu_clock_speed = CPU_CLOCK_SPEED_UNDEFINED; - -static DEFINE_RAW_SPINLOCK(syscfg_lock); -/** - * kbase_get_vendor_specific_cpu_clock_speed - * @brief Retrieves the CPU clock speed. - * The implementation is platform specific. - * @param[out] cpu_clock - the value of CPU clock speed in MHz - * @return 0 on success, 1 otherwise -*/ -int kbase_get_vexpress_cpu_clock_speed(u32 *cpu_clock) -{ - /* TODO: MIDBASE-2873 - Provide runtime detection of CPU clock freq for 6XV7 board */ - *cpu_clock = CPU_CLOCK_SPEED_6XV7; - - return 0; -} diff --git a/mali_kbase/platform/vexpress_6xvirtex7_10mhz/mali_kbase_cpu_vexpress.h b/mali_kbase/platform/vexpress_6xvirtex7_10mhz/mali_kbase_cpu_vexpress.h deleted file mode 100644 index 23647cc..0000000 --- a/mali_kbase/platform/vexpress_6xvirtex7_10mhz/mali_kbase_cpu_vexpress.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * - * (C) COPYRIGHT 2012-2013, 2015 ARM Limited. All rights reserved. - * - * This program is free software and is provided to you under the terms of the - * GNU General Public License version 2 as published by the Free Software - * Foundation, and any use by you of this program is subject to the terms - * of such GNU licence. - * - * A copy of the licence is included with the program, and can also be obtained - * from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - - - - - -#ifndef _KBASE_CPU_VEXPRESS_H_ -#define _KBASE_CPU_VEXPRESS_H_ - -/** - * Versatile Express implementation of @ref kbase_cpu_clk_speed_func. - */ -int kbase_get_vexpress_cpu_clock_speed(u32 *cpu_clock); - -#endif /* _KBASE_CPU_VEXPRESS_H_ */ |