I'm having a problem that occurs only on a number of my custom boards with an iMX6 Solo (MCIMX6S7CVM08AC) with the uSDHC peripheral where it will not issue a CC (command complete) or CTOE (Command timeout error) status in INT_STATUS (all bits enabled in INT_STATUS_EN) and get stuck infinitely with the CIHB (Command Inhibit) bit set in PRES_STATE. I've verified that the Inhibit bits (PRES_STATE) are clear prior to issuing the command through a write to XFR_TYP and that the command if properly outputted and responded to by the card with an oscilloscope.
The MMC_BOOT DISABLE_TIME_OUT bit is cleared. If I issue a command with no response, the CC bit does assert. VEND_SPEC field INT_ST_VAL is 0 after the during the infinite CIHB high period following the command with a response.
Note that the exact code work perfectly on some units (same board revision, same markings on CPU).
Is there anything that could prevent the command path logic to be disabled or lock-up? Maybe it doesn't detect the command end bit?