void mhu_secure_message_start(unsigned int slot_id) { assert(slot_id <= MHU_MAX_SLOT_ID); arm_lock_get(); /* Make sure any previous command has finished */ while (mmio_read_32(PLAT_CSS_MHU_BASE + CPU_INTR_S_STAT) & (1 << slot_id)) ; }
ARM_INSTANTIATE_LOCK /* Weak definition may be overridden in specific CSS based platform */ #pragma weak plat_arm_pwrc_setup /* * Slot 31 is reserved because the MHU hardware uses this register bit to * indicate a non-secure access attempt. The total number of available slots is * therefore 31 [30:0]. */ #define MHU_MAX_SLOT_ID 30 void mhu_secure_message_start(unsigned int slot_id) { assert(slot_id <= MHU_MAX_SLOT_ID); arm_lock_get(); /* Make sure any previous command has finished */ while (mmio_read_32(MHU_BASE + CPU_INTR_S_STAT) & (1 << slot_id)) ; }