130 lines
3.6 KiB
C
130 lines
3.6 KiB
C
|
/* SPDX-License-Identifier: GPL-2.0 */
|
||
|
/*
|
||
|
* Samsung Exynos SoC series dsp driver
|
||
|
*
|
||
|
* Copyright (c) 2019 Samsung Electronics Co., Ltd.
|
||
|
* http://www.samsung.com/
|
||
|
*/
|
||
|
|
||
|
#ifndef __HW_P0_DSP_HW_P0_MEMORY_H__
|
||
|
#define __HW_P0_DSP_HW_P0_MEMORY_H__
|
||
|
|
||
|
#include "dsp-memory.h"
|
||
|
|
||
|
#define DSP_P0_MEMORY_MAX_SIZE (SZ_16M)
|
||
|
|
||
|
#define DSP_P0_FW_EXTENSION "bin"
|
||
|
|
||
|
#define DSP_P0_MASTER_FW_NAME "dsp_master" // master boot + stack
|
||
|
#define DSP_P0_MASTER_FW_IOVA (0x30000000)
|
||
|
#define DSP_P0_MASTER_FW_SIZE (SZ_1M)
|
||
|
|
||
|
#define DSP_P0_FW_NAME "dsp"
|
||
|
#define DSP_P0_FW_IOVA (0x30100000)
|
||
|
#define DSP_P0_FW_SIZE (SZ_1M * 8)
|
||
|
|
||
|
#define DSP_P0_DHCP_MEM_IOVA (0x31000000)
|
||
|
#define DSP_P0_DHCP_MEM_SIZE (SZ_4K)
|
||
|
|
||
|
#define DSP_P0_FW_LOG_IOVA (DSP_P0_DHCP_MEM_IOVA + DSP_P0_MEMORY_MAX_SIZE)
|
||
|
#define DSP_P0_FW_LOG_SIZE (SZ_1M)
|
||
|
|
||
|
#define DSP_P0_IVP_PM_NAME "dsp_ivp_pm"
|
||
|
#define DSP_P0_IVP_PM_IOVA (DSP_P0_FW_LOG_IOVA + DSP_P0_MEMORY_MAX_SIZE)
|
||
|
#define DSP_P0_IVP_PM_SIZE (SZ_16M)
|
||
|
|
||
|
#define DSP_P0_IVP_DM_NAME "dsp_ivp_dm"
|
||
|
#define DSP_P0_IVP_DM_IOVA (DSP_P0_IVP_PM_IOVA + DSP_P0_MEMORY_MAX_SIZE)
|
||
|
#define DSP_P0_IVP_DM_SIZE (SZ_128K)
|
||
|
|
||
|
#define DSP_P0_MBOX_MEMORY_IOVA (DSP_P0_IVP_DM_IOVA + DSP_P0_MEMORY_MAX_SIZE)
|
||
|
#define DSP_P0_MBOX_MEMORY_SIZE (SZ_8K)
|
||
|
|
||
|
#define DSP_P0_MBOX_POOL_IOVA (DSP_P0_MBOX_MEMORY_IOVA + \
|
||
|
DSP_P0_MEMORY_MAX_SIZE)
|
||
|
#define DSP_P0_MBOX_POOL_SIZE (SZ_128K)
|
||
|
|
||
|
#define DSP_P0_DL_OUT_IOVA (DSP_P0_MBOX_POOL_IOVA + DSP_P0_MEMORY_MAX_SIZE)
|
||
|
#define DSP_P0_DL_OUT_SIZE (SZ_1M)
|
||
|
|
||
|
#define DSP_P0_HW_BASE_ADDR (0x20000000)
|
||
|
#define DSP_P0_SM_BASE_ADDR (0x120100)
|
||
|
#define DSP_P0_SM(n) (DSP_P0_SM_BASE_ADDR + (n) * 4)
|
||
|
|
||
|
#define DSP_P0_DHCP_IDX(n) (0x4 * (n))
|
||
|
|
||
|
#define DSP_P0_SM_USERDEFINED_COUNT (64)
|
||
|
#define DSP_P0_SM_USERDEFINED_SIZE (SZ_4 * DSP_P0_SM_USERDEFINED_COUNT)
|
||
|
#define DSP_P0_SM_USERDEFINED_BASE (DSP_P0_SM(0))
|
||
|
#define DSP_P0_SM_USERDEFINED(n) (DSP_P0_SM_USERDEFINED_BASE + 0x4 * (n))
|
||
|
|
||
|
#define DSP_P0_SM_FW_INFO_COUNT (192)
|
||
|
#define DSP_P0_SM_FW_INFO_SIZE (SZ_4 * DSP_P0_SM_FW_INFO_COUNT)
|
||
|
#define DSP_P0_SM_FW_INFO_BASE (DSP_P0_SM(DSP_P0_SM_USERDEFINED_COUNT))
|
||
|
#define DSP_P0_SM_FW_INFO(n) (DSP_P0_SM_FW_INFO_BASE + 0x4 * (n))
|
||
|
|
||
|
enum dsp_p0_dhcp_used_count {
|
||
|
DSP_P0_DHCP_TO_CC_MBOX = 0,
|
||
|
DSP_P0_DHCP_TO_HOST_MBOX = 8,
|
||
|
DSP_P0_DHCP_LOG_QUEUE = 16,
|
||
|
DSP_P0_DHCP_TO_CC_INT_STATUS = 24,
|
||
|
DSP_P0_DHCP_TO_HOST_INT_STATUS,
|
||
|
DSP_P0_DHCP_FW_RESERVED_SIZE,
|
||
|
DSP_P0_DHCP_IVP_PM_IOVA,
|
||
|
DSP_P0_DHCP_RESERVED0,
|
||
|
DSP_P0_DHCP_RESERVED1,
|
||
|
DSP_P0_DHCP_RESERVED2,
|
||
|
DSP_P0_DHCP_IVP_PM_SIZE,
|
||
|
DSP_P0_DHCP_IVP_DM_IOVA,
|
||
|
DSP_P0_DHCP_IVP_DM_SIZE,
|
||
|
DSP_P0_DHCP_RESERVED3,
|
||
|
DSP_P0_DHCP_RESERVED4,
|
||
|
DSP_P0_DHCP_RESERVED5,
|
||
|
DSP_P0_DHCP_RESERVED6,
|
||
|
DSP_P0_DHCP_MAILBOX_VERSION,
|
||
|
DSP_P0_DHCP_MESSAGE_VERSION,
|
||
|
DSP_P0_DHCP_FW_LOG_MEMORY_IOVA,
|
||
|
DSP_P0_DHCP_FW_LOG_MEMORY_SIZE,
|
||
|
DSP_P0_DHCP_TO_CC_MBOX_MEMORY_IOVA,
|
||
|
DSP_P0_DHCP_TO_CC_MBOX_MEMORY_SIZE,
|
||
|
DSP_P0_DHCP_TO_CC_MBOX_POOL_IOVA,
|
||
|
DSP_P0_DHCP_TO_CC_MBOX_POOL_SIZE,
|
||
|
DSP_P0_DHCP_NPU_FW_IOVA,
|
||
|
DSP_P0_DHCP_KERNEL_MODE,
|
||
|
DSP_P0_DHCP_DL_OUT_IOVA,
|
||
|
DSP_P0_DHCP_DL_OUT_SIZE,
|
||
|
DSP_P0_DHCP_DEBUG_LAYER_START,
|
||
|
DSP_P0_DHCP_DEBUG_LAYER_END,
|
||
|
DSP_P0_DHCP_CHIPID_REV,
|
||
|
DSP_P0_DHCP_PRODUCT_ID,
|
||
|
DSP_P0_DHCP_DNC_FREQUENCY,
|
||
|
DSP_P0_DHCP_DSP_FREQUENCY,
|
||
|
DSP_P0_DHCP_RESERVED7,
|
||
|
DSP_P0_DHCP_RESERVED8,
|
||
|
DSP_P0_DHCP_INTERRUPT_MODE,
|
||
|
DSP_P0_DHCP_DRIVER_VERSION,
|
||
|
DSP_P0_DHCP_FIRMWARE_VERSION,
|
||
|
DSP_P0_DHCP_USED_COUNT,
|
||
|
};
|
||
|
|
||
|
enum dsp_p0_priv_mem_id {
|
||
|
DSP_P0_PRIV_MEM_FW,
|
||
|
DSP_P0_PRIV_MEM_DHCP,
|
||
|
DSP_P0_PRIV_MEM_FW_LOG,
|
||
|
DSP_P0_PRIV_MEM_IVP_PM,
|
||
|
DSP_P0_PRIV_MEM_IVP_DM,
|
||
|
DSP_P0_PRIV_MEM_MBOX_MEMORY,
|
||
|
DSP_P0_PRIV_MEM_MBOX_POOL,
|
||
|
DSP_P0_PRIV_MEM_DL_OUT,
|
||
|
DSP_P0_PRIV_MEM_COUNT,
|
||
|
};
|
||
|
|
||
|
enum dsp_p0_reserved_mem_id {
|
||
|
DSP_P0_RESERVED_MEM_FW_MASTER,
|
||
|
DSP_P0_RESERVED_MEM_COUNT,
|
||
|
};
|
||
|
|
||
|
int dsp_hw_p0_memory_register_ops(void);
|
||
|
|
||
|
#endif
|