blob: 08fd417b3f2d919e5a0b1ce0e37a1405ee740567 [file] [log] [blame]
/********************************************************************************
* Marvell GPL License Option
*
* If you received this File from Marvell, you may opt to use, redistribute and/or
* modify this File in accordance with the terms and conditions of the General
* Public License Version 2, June 1991 (the "GPL License"), a copy of which is
* available along with the File in the license.txt file or by writing to the Free
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 or
* on the worldwide web at http://www.gnu.org/licenses/gpl.txt.
*
* THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE IMPLIED
* WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY
* DISCLAIMED. The GPL License provides additional details about this warranty
* disclaimer.
******************************************************************************/
#ifndef __API_AVIO_DHUB_H__
#define __API_AVIO_DHUB_H__
#include "dHub.h"
#include "avioDhub.h"
#include "api_dhub.h"
#if !BG2CD /* for BG2CD */
#define VPP_DHUB_BASE (MEMMAP_VPP_DHUB_REG_BASE + RA_vppDhub_dHub0)
#define VPP_HBO_SRAM_BASE (MEMMAP_VPP_DHUB_REG_BASE + RA_vppDhub_tcm0)
#if (BERLIN_CHIP_VERSION >= BERLIN_B_0)
#define VPP_NUM_OF_CHANNELS (avioDhubChMap_vpp_TT_R+1)
#else
#define VPP_NUM_OF_CHANNELS (avioDhubChMap_vpp_BG_R+1)
#endif
#define AG_DHUB_BASE (MEMMAP_AG_DHUB_REG_BASE + RA_agDhub_dHub0)
#define AG_HBO_SRAM_BASE (MEMMAP_AG_DHUB_REG_BASE + RA_agDhub_tcm0)
#define AG_NUM_OF_CHANNELS (avioDhubChMap_ag_PG_ENG_W+1)
#if (BERLIN_CHIP_VERSION >= BERLIN_BG2)
#define VIP_DHUB_BASE (MEMMAP_VIP_DHUB_REG_BASE + RA_vipDhub_dHub0)
#define VIP_HBO_SRAM_BASE (MEMMAP_VIP_DHUB_REG_BASE + RA_vipDhub_tcm0)
#if (BERLIN_CHIP_VERSION >= BERLIN_BG2 && BERLIN_CHIP_VERSION < BERLIN_BG2_A0)
#define VIP_NUM_OF_CHANNELS (avioDhubChMap_vip_VBI_WR+1)
#else
#define VIP_NUM_OF_CHANNELS (avioDhubChMap_vip_MIC3_W+1)
#endif
#define VIP_DHUB_BANK0_START_ADDR (0)
#define VIP_DHUB_BANK1_START_ADDR (1024*12)
#define VIP_DHUB_BANK2_START_ADDR (1024*24)
#define VIP_DHUB_BANK3_START_ADDR (1024*36)
#endif
#define DHUB_BANK0_START_ADDR (8192*0)
#define DHUB_BANK1_START_ADDR (8192*1)
#define DHUB_BANK2_START_ADDR (8192*2)
#define DHUB_BANK3_START_ADDR (8192*3)
#define DHUB_BANK4_START_ADDR (8192*4)
#define DHUB_BANK5_START_ADDR (8192*5)
#else /* for BG2CD */
#define VPP_DHUB_BASE (MEMMAP_VPP_DHUB_REG_BASE + RA_vppDhub_dHub0)
#define VPP_HBO_SRAM_BASE (MEMMAP_VPP_DHUB_REG_BASE + RA_vppDhub_tcm0)
#if (BERLIN_CHIP_VERSION != BERLIN_BG2CDP)
#define VPP_NUM_OF_CHANNELS (avioDhubChMap_vpp_SPDIF_W+1)
#else
#define VPP_NUM_OF_CHANNELS (avioDhubChMap_vpp_TT_R+1)
#endif
#define AG_DHUB_BASE (MEMMAP_AG_DHUB_REG_BASE + RA_agDhub_dHub0)
#define AG_HBO_SRAM_BASE (MEMMAP_AG_DHUB_REG_BASE + RA_agDhub_tcm0)
#define AG_NUM_OF_CHANNELS (avioDhubChMap_ag_GFX_R+1)
#if (BERLIN_CHIP_VERSION != BERLIN_BG2CDP)
#define VIP_DHUB_BASE (MEMMAP_VIP_DHUB_REG_BASE + RA_vipDhub_dHub0)
#define VIP_HBO_SRAM_BASE (MEMMAP_VIP_DHUB_REG_BASE + RA_vipDhub_tcm0)
#define VIP_NUM_OF_CHANNELS (avioDhubChMap_vip_MIC3_W+1)
#define VIP_DHUB_BANK0_START_ADDR (0)
#define VIP_DHUB_BANK1_START_ADDR (1024*12)
#define VIP_DHUB_BANK2_START_ADDR (1024*24)
#define VIP_DHUB_BANK3_START_ADDR (1024*36)
#endif
#define VPP_DHUB_BANK0_START_ADDR (8192*0)
#define VPP_DHUB_BANK1_START_ADDR (8192*1)
#define VPP_DHUB_BANK2_START_ADDR (8192*2)
#define VPP_DHUB_BANK3_START_ADDR (8192*3)
#define VPP_DHUB_BANK4_START_ADDR (8192*4)
#define AG_DHUB_BANK0_START_ADDR (8192*0)
#define AG_DHUB_BANK1_START_ADDR (8192*1)
#define AG_DHUB_BANK2_START_ADDR (8192*2)
#define DHUB_BANK2_START_ADDR (8192*1)
#define DHUB_BANK3_START_ADDR (8192*2)
#define DHUB_BANK4_START_ADDR (8192*3)
#define DHUB_BANK5_START_ADDR (8192*4)
#endif /* for BG2CD */
typedef struct DHUB_channel_config {
SIGN32 chanId;
UNSG32 chanCmdBase;
UNSG32 chanDataBase;
SIGN32 chanCmdSize;
SIGN32 chanDataSize;
SIGN32 chanMtuSize;
SIGN32 chanQos;
SIGN32 chanSelfLoop;
SIGN32 chanEnable;
} DHUB_channel_config;
extern HDL_dhub2d AG_dhubHandle;
extern HDL_dhub2d VPP_dhubHandle;
#if (BERLIN_CHIP_VERSION >= BERLIN_BG2)
extern HDL_dhub2d VIP_dhubHandle;
#endif
extern DHUB_channel_config AG_config[];
extern DHUB_channel_config VPP_config[];
#if (BERLIN_CHIP_VERSION >= BERLIN_BG2)
extern DHUB_channel_config VIP_config[];
#endif
/******************************************************************************************************************
* Function: DhubInitialization
* Description: Initialize DHUB .
* Parameter : cpuId ------------- cpu ID
* dHubBaseAddr ------------- dHub Base address.
* hboSramAddr ----- Sram Address for HBO.
* pdhubHandle ----- pointer to 2D dhubHandle
* dhub_config ----- configuration of AG
* numOfChans ----- number of channels
* Return: void
******************************************************************************************************************/
void DhubInitialization(SIGN32 cpuId, UNSG32 dHubBaseAddr, UNSG32 hboSramAddr, HDL_dhub2d *pdhubHandle, DHUB_channel_config *dhub_config,SIGN32 numOfChans);
void DhubChannelClear(void *hdl, SIGN32 id, T64b cfgQ[]);
#endif //__API_AVIO_DHUB_H__