Esempio n. 1
0
/* STORAGE_CLASS_INLINE void irq_wait_for_write_complete( */
static void irq_wait_for_write_complete(
	const irq_ID_t		ID)
{
assert(ID < N_IRQ_ID);
assert(IRQ_BASE[ID] != (hrt_address)-1);
	(void)device_load_uint32(IRQ_BASE[ID] +
		_HRT_IRQ_CONTROLLER_ENABLE_REG_IDX*sizeof(hrt_data));
#ifdef HRT_CSIM
	hrt_sleep();
#endif
return;
}
Esempio n. 2
0
void fifo_channel_get_state(
	const fifo_monitor_ID_t		ID,
	const fifo_channel_t		channel_id,
	fifo_channel_state_t		*state)
{
	assert_exit(state && channel_id < N_FIFO_CHANNEL);

	switch (channel_id) {
	case FIFO_CHANNEL_ISP0_TO_SP0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_SND_SP); /* ISP_STR_MON_PORT_ISP2SP */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_SND_SP);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_RCV_ISP); /* ISP_STR_MON_PORT_SP2ISP */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_RCV_ISP);
		break;
	case FIFO_CHANNEL_SP0_TO_ISP0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_SND_ISP); /* ISP_STR_MON_PORT_SP2ISP */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_SND_ISP);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_RCV_SP); /* ISP_STR_MON_PORT_ISP2SP */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_RCV_SP);
		break;
	case FIFO_CHANNEL_ISP0_TO_IF0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_SND_PIF_A); /* ISP_STR_MON_PORT_ISP2PIFA */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_SND_PIF_A);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_PIF_A); /* MOD_STR_MON_PORT_CELLS2PIFA */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_PIF_A);
		break;
	case FIFO_CHANNEL_IF0_TO_ISP0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_PIF_A); /* MOD_STR_MON_PORT_PIFA2CELLS */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_PIF_A);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_RCV_PIF_A); /* ISP_STR_MON_PORT_PIFA2ISP */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_RCV_PIF_A);
		break;
	case FIFO_CHANNEL_ISP0_TO_IF1:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_SND_PIF_B); /* ISP_STR_MON_PORT_ISP2PIFA */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_SND_PIF_B);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_PIF_B); /* MOD_STR_MON_PORT_CELLS2PIFB */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_PIF_B);
		break;
	case FIFO_CHANNEL_IF1_TO_ISP0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_PIF_B); /* MOD_STR_MON_PORT_PIFB2CELLS */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_PIF_B);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_RCV_PIF_B); /* ISP_STR_MON_PORT_PIFB2ISP */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_RCV_PIF_B);
		break;
	case FIFO_CHANNEL_ISP0_TO_DMA0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_SND_DMA); /* ISP_STR_MON_PORT_ISP2DMA */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_SND_DMA);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_DMA_FR_ISP); /* MOD_STR_MON_PORT_ISP2DMA */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_DMA_FR_ISP);
		break;
	case FIFO_CHANNEL_DMA0_TO_ISP0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_DMA2ISP); /* MOD_STR_MON_PORT_DMA2ISP */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_DMA2ISP);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_RCV_DMA); /* ISP_STR_MON_PORT_DMA2ISP */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_RCV_DMA);
		break;
	case FIFO_CHANNEL_ISP0_TO_GDC0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_SND_GDC); /* ISP_STR_MON_PORT_ISP2GDC1 */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_SND_GDC);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_GDC); /* MOD_STR_MON_PORT_CELLS2GDC1 */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_GDC);
		break;
	case FIFO_CHANNEL_GDC0_TO_ISP0:
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_GDC); /* MOD_STR_MON_PORT_GDC12CELLS */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_GDC);
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_RCV_GDC); /* ISP_STR_MON_PORT_GDC12ISP */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_RCV_GDC);
		break;
	case FIFO_CHANNEL_ISP0_TO_GDC1:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_ISP2GDC2);
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_ISP2GDC2);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_CELLS2GDC2);
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_CELLS2GDC2);
		break;
	case FIFO_CHANNEL_GDC1_TO_ISP0:
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_GDC22CELLS);
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_GDC22CELLS);
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_GDC22ISP);
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_GDC22ISP);
		break;
	case FIFO_CHANNEL_ISP0_TO_HOST0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_SND_GPD); /* ISP_STR_MON_PORT_ISP2GPD */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_SND_GPD);
		{
		hrt_data	value = device_load_uint32(0x0000000000380014ULL);
		state->fifo_valid  = !_hrt_get_bit(value, 0);
		state->sink_accept = false; /* no monitor connected */
		}
		break;
	case FIFO_CHANNEL_HOST0_TO_ISP0:
		{
		hrt_data	value = device_load_uint32(0x000000000038001CULL);
		state->fifo_valid  = false; /* no monitor connected */
		state->sink_accept = !_hrt_get_bit(value, 0);
		}
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_RCV_GPD); /* ISP_STR_MON_PORT_FA2ISP */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_ISP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_RCV_GPD);
		break;
	case FIFO_CHANNEL_SP0_TO_IF0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_SND_PIF_A); /* SP_STR_MON_PORT_SP2PIFA */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_SND_PIF_A);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_PIF_A); /* MOD_STR_MON_PORT_CELLS2PIFA */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_PIF_A);
		break;
	case FIFO_CHANNEL_IF0_TO_SP0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_PIF_A); /* MOD_STR_MON_PORT_PIFA2CELLS */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_PIF_A);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_RCV_PIF_A); /* SP_STR_MON_PORT_PIFA2SP */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_RCV_PIF_A);
		break;
	case FIFO_CHANNEL_SP0_TO_IF1:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_SND_PIF_B); /* SP_STR_MON_PORT_SP2PIFB */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_SND_PIF_B);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_PIF_B); /* MOD_STR_MON_PORT_CELLS2PIFB */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_PIF_B);
		break;
	case FIFO_CHANNEL_IF1_TO_SP0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_PIF_B); /* MOD_STR_MON_PORT_PIFB2CELLS */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_PIF_B);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_RCV_PIF_B); /* SP_STR_MON_PORT_PIFB2SP */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			ISP_STR_MON_PORT_RCV_PIF_B);
		break;
	case FIFO_CHANNEL_SP0_TO_IF2:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_SND_SIF); /* SP_STR_MON_PORT_SP2SIF */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_SND_SIF);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_SIF); /* MOD_STR_MON_PORT_SP2SIF */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_SIF);
		break;
	case FIFO_CHANNEL_IF2_TO_SP0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_SIF); /* MOD_STR_MON_PORT_SIF2SP */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_SIF);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_RCV_SIF); /* SP_STR_MON_PORT_SIF2SP */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_RCV_SIF);
		break;
	case FIFO_CHANNEL_SP0_TO_DMA0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_SND_DMA); /* SP_STR_MON_PORT_SP2DMA */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_SND_DMA);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_DMA_FR_SP); /* MOD_STR_MON_PORT_SP2DMA */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_DMA_FR_SP);
		break;
	case FIFO_CHANNEL_DMA0_TO_SP0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_DMA2SP); /* MOD_STR_MON_PORT_DMA2SP */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_DMA2SP);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_RCV_DMA); /* SP_STR_MON_PORT_DMA2SP */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_RCV_DMA);
		break;
	case FIFO_CHANNEL_SP0_TO_GDC0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_B_IDX,
			SP_STR_MON_PORT_B_SP2GDC1);
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_B_IDX,
			SP_STR_MON_PORT_B_SP2GDC1);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_CELLS2GDC1);
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_CELLS2GDC1);
		break;
	case FIFO_CHANNEL_GDC0_TO_SP0:
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_GDC12CELLS);
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_GDC12CELLS);
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_B_IDX,
			SP_STR_MON_PORT_B_GDC12SP);
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_B_IDX,
			SP_STR_MON_PORT_B_GDC12SP);
		break;
	case FIFO_CHANNEL_SP0_TO_GDC1:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_B_IDX,
			SP_STR_MON_PORT_B_SP2GDC2);
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_B_IDX,
			SP_STR_MON_PORT_B_SP2GDC2);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_CELLS2GDC2);
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_CELLS2GDC2);
		break;
	case FIFO_CHANNEL_GDC1_TO_SP0:
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_GDC22CELLS);
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_GDC22CELLS);
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_B_IDX,
			SP_STR_MON_PORT_B_GDC22SP);
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_B_IDX,
			SP_STR_MON_PORT_B_GDC22SP);
		break;
	case FIFO_CHANNEL_SP0_TO_HOST0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_SND_GPD); /* SP_STR_MON_PORT_SP2GPD */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_SND_GPD);
		{
		hrt_data	value = device_load_uint32(0x0000000000380010ULL);
		state->fifo_valid  = !_hrt_get_bit(value, 0);
		state->sink_accept = false; /* no monitor connected */
		}
		break;
	case FIFO_CHANNEL_HOST0_TO_SP0:
		{
		hrt_data	value = device_load_uint32(0x0000000000380018ULL);
		state->fifo_valid  = false; /* no monitor connected */
		state->sink_accept = !_hrt_get_bit(value, 0);
		}
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_RCV_GPD); /* SP_STR_MON_PORT_FA2SP */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_RCV_GPD);
		break;
	case FIFO_CHANNEL_SP0_TO_STREAM2MEM0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_SND_MC); /* SP_STR_MON_PORT_SP2MC */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_SND_MC);
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_MC); /* MOD_STR_MON_PORT_SP2MC */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_RCV_MC);
		break;
	case FIFO_CHANNEL_STREAM2MEM0_TO_SP0:
		state->fifo_valid  = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_MC); /* SP_STR_MON_PORT_MC2SP */
		state->sink_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_MOD_STREAM_STAT_IDX,
			MOD_STR_MON_PORT_SND_MC);
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_RCV_MC); /* MOD_STR_MON_PORT_MC2SP */
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_RCV_MC);
		break;
	case FIFO_CHANNEL_SP0_TO_INPUT_SYSTEM0:
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_SP2ISYS);
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_SP2ISYS);
		state->fifo_valid  = false;
		state->sink_accept = false;
		break;
	case FIFO_CHANNEL_INPUT_SYSTEM0_TO_SP0:
		state->fifo_valid  = false;
		state->sink_accept = false;
		state->src_valid   = fifo_monitor_status_valid(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_ISYS2SP);
		state->fifo_accept = fifo_monitor_status_accept(ID,
			HIVE_GP_REGS_SP_STREAM_STAT_IDX,
			SP_STR_MON_PORT_ISYS2SP);
		break;
	default:
		assert_exit(0);
		break;
	}

	return;
}