- Can you please collect the trace for us to examine?
- From our looking at the ROM code when peer sends Abort, the blebgm_racpOperationAbort flag is set.
- In the blebgm_handleRACPStates the flag is checked, and if TRUE state is set back to IDLE.
Actually if you look at the ROM code in function blebgm_writeCb … and current state is either PEND/ACTIVE or COMPLETE case and it receives an ABORT
There is a comment that states
// We got request while we are processing
// request. Abort has already been checked so this is
// not abort.
This statement does not seem correct to me. The ABORT has not yet been checked.
There should be something like this at this point
if(attrPtr == 0x03 && attrPtr == 0x00)
// This is ABORT
Because if this check isn’t here then the Abort Flag is never set. It is ONLY set for the IDLE state which makes no sense.
The ABORT is NOT handled correctly for states that are NOT IDLE. That is the main point I am trying to make.