static int hw_atl_utils_init_ucp(struct aq_hw_s *self) { int err = 0; if (!aq_hw_read_reg(self, 0x370U)) { unsigned int rnd = (uint32_t)rte_rand(); unsigned int ucp_0x370 = 0U; ucp_0x370 = 0x02020202U | (0xFEFEFEFEU & rnd); aq_hw_write_reg(self, HW_ATL_UCP_0X370_REG, ucp_0x370); } hw_atl_reg_glb_cpu_scratch_scp_set(self, 0x00000000U, 25U); /* check 10 times by 1ms */ AQ_HW_WAIT_FOR(0U != (self->mbox_addr = aq_hw_read_reg(self, 0x360U)), 1000U, 10U); AQ_HW_WAIT_FOR(0U != (self->rpc_addr = aq_hw_read_reg(self, 0x334U)), 1000U, 100U); return err; }
static int hw_atl_utils_init_ucp(struct aq_hw_s *self, const struct aq_hw_caps_s *aq_hw_caps) { int err = 0; if (!aq_hw_read_reg(self, 0x370U)) { unsigned int rnd = 0U; unsigned int ucp_0x370 = 0U; get_random_bytes(&rnd, sizeof(unsigned int)); ucp_0x370 = 0x02020202U | (0xFEFEFEFEU & rnd); aq_hw_write_reg(self, HW_ATL_UCP_0X370_REG, ucp_0x370); } hw_atl_reg_glb_cpu_scratch_scp_set(self, 0x00000000U, 25U); /* check 10 times by 1ms */ AQ_HW_WAIT_FOR(0U != (self->mbox_addr = aq_hw_read_reg(self, 0x360U)), 1000U, 10U); return err; }