SPRUJ52C june 2022 – july 2023 AM69 , AM69A , TDA4AH-Q1 , TDA4AP-Q1 , TDA4VH-Q1 , TDA4VP-Q1
MSMC can send information to EMIF, about real time transactions that are currently stalled in MSMC so EMIF can drain the original transaction that is being hazarded upon. Once the transaction makes progress from EMIF, eventually the hazard is removed in MSMC.
Every command that is sent from MSMC to EMIF will have a queue ID encoded in its cmsband. If a command is stuck in EMIF, and there is another transaction in MSMC that is hazarded on the command that is stuck in EMIF, then MSMC sends the encoded queue ID of MSMC hazard to EMIF as and when the hazard is detected. EMIF compares the cmsband encoding of the originally stalled command in EMIF and the queue ID of hazard map encoding which it receives from MSMC when a hazard is detected. If EMIF finds a match between these two encoded queue IDs then it will trigger a drain such that the command originally stuck in EMIF makes progress and thus ultimately recovering MSMC from hazard.
For MSMC→EMIF commands that bypass the RMW queue, queue ID is meaningless so encode it in such a way that EMIF does not match any of the hazard queue ID encodings.
For EMIF compare MSBAND bits [8:5] for Queue ID/Transaction ID. Compare MSBAND bits [12:9]for Bank ID, if 12:9 = 0xF means it’s via EMIF bypass path and not coming from a bank.