Ejemplo n.º 1
0
bool sh_css_hrt_system_is_idle(void)
{
	hrt_data	status;
	bool not_idle = false;

	not_idle |= !isp_ctrl_getbit(ISP0_ID, ISP_SC_REG, ISP_IDLE_BIT);

	status = fifo_monitor_reg_load(FIFO_MONITOR0_ID,
		HIVE_GP_REGS_SP_STREAM_STAT_IDX);
	not_idle |= ((status & FIFO_CHANNEL_SP_VALID_MASK) != 0);

#if defined(HAS_FIFO_MONITORS_VERSION_2)
	status = fifo_monitor_reg_load(FIFO_MONITOR0_ID,
		HIVE_GP_REGS_SP_STREAM_STAT_B_IDX);
	not_idle |= ((status & FIFO_CHANNEL_SP_VALID_B_MASK) != 0);
#endif

	status = fifo_monitor_reg_load(FIFO_MONITOR0_ID,
		HIVE_GP_REGS_ISP_STREAM_STAT_IDX);
	not_idle |= ((status & FIFO_CHANNEL_ISP_VALID_MASK) != 0);

	status = fifo_monitor_reg_load(FIFO_MONITOR0_ID,
		HIVE_GP_REGS_MOD_STREAM_STAT_IDX);
	not_idle |= ((status & FIFO_CHANNEL_MOD_VALID_MASK) != 0);

return !not_idle;
}
Ejemplo n.º 2
0
void isp_get_state(
	const isp_ID_t		ID,
	isp_state_t			*state,
	isp_stall_t			*stall)
{
	hrt_data sc = isp_ctrl_load(ID, ISP_SC_REG);

	assert(state != NULL);
	assert(stall != NULL);

	state->pc = isp_ctrl_load(ID, ISP_PC_REG);
	state->status_register = sc;
	state->is_broken = isp_ctrl_getbit(ID, ISP_SC_REG, ISP_BROKEN_BIT);
	state->is_idle = isp_ctrl_getbit(ID, ISP_SC_REG, ISP_IDLE_BIT);
	state->is_sleeping = isp_ctrl_getbit(ID, ISP_SC_REG, ISP_SLEEPING_BIT);
	state->is_stalling = isp_ctrl_getbit(ID, ISP_SC_REG, ISP_STALLING_BIT);
	stall->stat_ctrl =
		!isp_ctrl_getbit(ID, ISP_CTRL_SINK_REG, ISP_CTRL_SINK_BIT);
	stall->pmem =
		!isp_ctrl_getbit(ID, ISP_PMEM_SINK_REG, ISP_PMEM_SINK_BIT);
	stall->dmem =
		!isp_ctrl_getbit(ID, ISP_DMEM_SINK_REG, ISP_DMEM_SINK_BIT);
	stall->vmem =
		!isp_ctrl_getbit(ID, ISP_VMEM_SINK_REG, ISP_VMEM_SINK_BIT);
	stall->fifo0 =
		!isp_ctrl_getbit(ID, ISP_FIFO0_SINK_REG, ISP_FIFO0_SINK_BIT);
	stall->fifo1 =
		!isp_ctrl_getbit(ID, ISP_FIFO1_SINK_REG, ISP_FIFO1_SINK_BIT);
	stall->fifo2 =
		!isp_ctrl_getbit(ID, ISP_FIFO2_SINK_REG, ISP_FIFO2_SINK_BIT);
	stall->fifo3 =
		!isp_ctrl_getbit(ID, ISP_FIFO3_SINK_REG, ISP_FIFO3_SINK_BIT);
	stall->fifo4 =
		!isp_ctrl_getbit(ID, ISP_FIFO4_SINK_REG, ISP_FIFO4_SINK_BIT);
	stall->fifo5 =
		!isp_ctrl_getbit(ID, ISP_FIFO5_SINK_REG, ISP_FIFO5_SINK_BIT);
	stall->fifo6 =
		!isp_ctrl_getbit(ID, ISP_FIFO6_SINK_REG, ISP_FIFO6_SINK_BIT);
	stall->vamem1 =
		!isp_ctrl_getbit(ID, ISP_VAMEM1_SINK_REG, ISP_VAMEM1_SINK_BIT);
	stall->vamem2 =
		!isp_ctrl_getbit(ID, ISP_VAMEM2_SINK_REG, ISP_VAMEM2_SINK_BIT);
	stall->vamem3 =
		!isp_ctrl_getbit(ID, ISP_VAMEM3_SINK_REG, ISP_VAMEM3_SINK_BIT);
	stall->hmem =
		!isp_ctrl_getbit(ID, ISP_HMEM_SINK_REG, ISP_HMEM_SINK_BIT);
/*
	stall->icache_master =
		!isp_ctrl_getbit(ID, ISP_ICACHE_MT_SINK_REG,
			ISP_ICACHE_MT_SINK_BIT);
 */
return;
}
Ejemplo n.º 3
0
/* Inspect sleeping of an ISP indexed by ID */
unsigned isp_is_sleeping(isp_ID_t ID)
{
	assert (ID < N_ISP_ID);
	return isp_ctrl_getbit(ID, ISP_SC_REG, ISP_SLEEPING_BIT);
}
Ejemplo n.º 4
0
void isp_get_state(
	const isp_ID_t		ID,
	isp_state_t			*state,
	isp_stall_t			*stall)
{
	hrt_data sc = isp_ctrl_load(ID, ISP_SC_REG);

	assert(state != NULL);
	assert(stall != NULL);

#if defined(_hrt_sysmem_ident_address)
	/* Patch to avoid compiler unused symbol warning in C_RUN build */
	(void)__hrt_sysmem_ident_address;
	(void)_hrt_sysmem_map_var;
#endif

	state->pc = isp_ctrl_load(ID, ISP_PC_REG);
	state->status_register = sc;
	state->is_broken = isp_ctrl_getbit(ID, ISP_SC_REG, ISP_BROKEN_BIT);
	state->is_idle = isp_ctrl_getbit(ID, ISP_SC_REG, ISP_IDLE_BIT);
	state->is_sleeping = isp_ctrl_getbit(ID, ISP_SC_REG, ISP_SLEEPING_BIT);
	state->is_stalling = isp_ctrl_getbit(ID, ISP_SC_REG, ISP_STALLING_BIT);
	stall->stat_ctrl =
		!isp_ctrl_getbit(ID, ISP_CTRL_SINK_REG, ISP_CTRL_SINK_BIT);
	stall->pmem =
		!isp_ctrl_getbit(ID, ISP_PMEM_SINK_REG, ISP_PMEM_SINK_BIT);
	stall->dmem =
		!isp_ctrl_getbit(ID, ISP_DMEM_SINK_REG, ISP_DMEM_SINK_BIT);
	stall->vmem =
		!isp_ctrl_getbit(ID, ISP_VMEM_SINK_REG, ISP_VMEM_SINK_BIT);
	stall->fifo0 =
		!isp_ctrl_getbit(ID, ISP_FIFO0_SINK_REG, ISP_FIFO0_SINK_BIT);
	stall->fifo1 =
		!isp_ctrl_getbit(ID, ISP_FIFO1_SINK_REG, ISP_FIFO1_SINK_BIT);
	stall->fifo2 =
		!isp_ctrl_getbit(ID, ISP_FIFO2_SINK_REG, ISP_FIFO2_SINK_BIT);
	stall->fifo3 =
		!isp_ctrl_getbit(ID, ISP_FIFO3_SINK_REG, ISP_FIFO3_SINK_BIT);
	stall->fifo4 =
		!isp_ctrl_getbit(ID, ISP_FIFO4_SINK_REG, ISP_FIFO4_SINK_BIT);
	stall->fifo5 =
		!isp_ctrl_getbit(ID, ISP_FIFO5_SINK_REG, ISP_FIFO5_SINK_BIT);
	stall->fifo6 =
		!isp_ctrl_getbit(ID, ISP_FIFO6_SINK_REG, ISP_FIFO6_SINK_BIT);
	stall->vamem1 =
		!isp_ctrl_getbit(ID, ISP_VAMEM1_SINK_REG, ISP_VAMEM1_SINK_BIT);
	stall->vamem2 =
		!isp_ctrl_getbit(ID, ISP_VAMEM2_SINK_REG, ISP_VAMEM2_SINK_BIT);
	stall->vamem3 =
		!isp_ctrl_getbit(ID, ISP_VAMEM3_SINK_REG, ISP_VAMEM3_SINK_BIT);
	stall->hmem =
		!isp_ctrl_getbit(ID, ISP_HMEM_SINK_REG, ISP_HMEM_SINK_BIT);
/*
	stall->icache_master =
		!isp_ctrl_getbit(ID, ISP_ICACHE_MT_SINK_REG,
			ISP_ICACHE_MT_SINK_BIT);
 */
	return;
}
Ejemplo n.º 5
0
/* Inspect readiness of an ISP indexed by ID */
unsigned isp_is_ready(isp_ID_t ID)
{
	assert (ID < N_ISP_ID);
	return isp_ctrl_getbit(ID, ISP_SC_REG, ISP_IDLE_BIT);
}