YB_TX_RX_APE_PRJ/APE7/ApeTask/inc/ucp_handshake.h

57 lines
1.5 KiB
C

// +FHDR------------------------------------------------------------
// Copyright (c) 2022 SmartLogic.
// ALL RIGHTS RESERVED
// -----------------------------------------------------------------
// Filename : ucp_handshake.h
// Author : xianfeng.du
// Created On : 2022-07-22
// Last Modified :
// -----------------------------------------------------------------
// Description:
//
//
// -FHDR------------------------------------------------------------
#ifndef __UCP_HANDSHAKE_H__
#define __UCP_HANDSHAKE_H__
#include "typedef.h"
#define MAX_NUM_APE 8
#define MAX_NUM_SPU 12
#define MAX_NUM_CORE (MAX_NUM_SPU+1)
#define NPU_CORE_ID MAX_NUM_SPU
#define PET_RFM_SPU0_CORE_ID 8
#define PET_RFM_SPU1_CORE_ID 9
#define ECS_RFM_SPU0_CORE_ID 10
#define ECS_RFM_SPU1_CORE_ID 11
#define HANDSHKAE_REQ_VALUE 0x5A5A5A5A
#define HANDSHKAE_RESP_VALUE 0xA5A5A5A5
#ifndef PCIE_BACKHAUL
#define HANDSHKAE_MASK 0x00000e00//excluded APE cores
#elif (defined(PCIE_WITH_JESD))
#define HANDSHKAE_MASK 0x00000e00//excluded APE cores
#else
#define HANDSHKAE_MASK 0x00000f00//excluded APE cores
#endif
typedef struct tUcpHandshake{
uint32_t request[MAX_NUM_CORE];
uint32_t response[MAX_NUM_CORE];
uint32_t heartbeat[MAX_NUM_CORE];
} UcpHandshake_t;
UcpHandshake_t * get_handshake_info(void);
void handshake_master_with_slave(uint32_t core_mask);
void handshake_slave_with_master(void);
uint32_t get_host_core_mask(void);
void handshake_request_from_host(uint32_t core_mask);
void handshake_response_to_host(uint32_t core_mask);
#endif