I’m not sure what the firmware effects under SATA, but there is mention of “sata” in the pm375 firmware dtb.
I see “SATA” controller listed in the system address map at physical address:
I also see something which might be related, “SATA_IOBIST” controller physical address:
Although SATA_AUX is listed, this is listed as only an offset and not as a controller. So I am wondering which controller base address the T_SATA<0>_CFG_SATA listed offset 0x54c refers to…SATA or SATA_IOBIST (base plus 0x54c offset, bit 14 of bits 0 through 31). The issue being that there is so very much information to read before getting to that page in the SATA section and I’d hate to be looking at the wrong base address without having ever worked on SATA before.
Under u-boot this command locks up (perhaps it requires a disk to be attached?):
…while this works and replies all 0 bits:
Looks like the SATA_IOBIST is related to resets, but since I cannot read the 32 bit word at SATA base + the _CFG_SATA of 0x54c I’m wondering if this would change by adding a SATA device (I have no SATA drive attached).
My big question here is how was the _CFG_SATA register read? Was it from u-boot or from the kernel? Was there a SATA drive connected at the time?
An indirectly related comment is that access speed via throughput is not the same as link speed. hdparm says that it reads the buffer on the disk (not the disk itself) so this would still have a relation to SATA 2 versus 3. If I run this test on a desktop system using a standard SATA2 7200 RPM drive I get:
Timing buffered disk reads: 230 MB in 3.01 seconds = 76.38 MB/sec
…this is still FAR slower than the original poster’s reading on the SSD. I would entertain the possibility that the original test could be consistent with SATA3. After all, if the hdparm test really does measure just the throughput from buffer RAM in the disk, this could be an expected real world throughput. How fast should hdparm -t show for this disk if at Gen3 speeds?