ARM Debug Interface ADIv5

My question is about Debug Port and Access Port registers.
AP registers: DRW, and CSW.
DP register: RDBUFF.
For some reason, my processor cannot read DRW and CSW registers directly. If I try to read, then it gives me 0x00000000.
But if after such a read operation I read RDBUFF, then there will be the value of the register I need (DRW or CSW). It seems to be written in the Architectural Specification that everything should be read directly. Of course, I can use an additional read operation to read the register, I just wonder how this works? So it should be? Or am I set some mode? Because of what it could be?