When you say 'memory isn't updated by hardware properly', that suggests there is some kind of bus mastering going on. Which memory are you talking about here? Is this memory that has been allocated by ArmDmaLib's AllocateBuffer()?
Yes, I mean memory buffers allocated with ArmDmaLib's AllocateBuffer(). Those buffers' addresses are entered into SATA controller register's. Buffers should be updated (after performing necessary init) with data from hardware, but in my case, it doesn't happen.