Hello,
can you please advice what to turn on, or what is the correct place to put printk's in order to trace all the access to a SATA drive?
I would definitely want the block data and their header (just an LBA address + read/write), and the pick also other side channel like accesses - like what the smartctl does. Basically all outbound requests with data and all responses with data. I do not care if it comes in form of hexdump, i can
do decoding and analysis in post / offline. That would be an ioctl, right?
The preferred location is rather on kernel side, under full control of mine - unless there is some magic option for strace, that would make it enough verbose to have all the pieces dumped.
I was hoping that some developer option in the SCSI layer might already do that.
The goal here is to see what a non-standard firmware flashing process looks like - the tool in question is for ancient SandForce SSD's that die because of poor firmware design. While I have a bunch of genuine SandForce SF-2281 equipped drives which I was able to fix, the recent acquisition of
dozen Intel 2500 Pro's and a bit of work revealed that they have licensed the controller - including its buggy behavior, marking it BF29AS41BB0. The jumper on board did bring the drive into Safemode and reporting itself as a 32KiB device named SandForce{200026 - so I am next to try to recovering these.
And while doing so, I want to keep the communication traces in order to eventually replace that obscure 32-bit proprietary software with my own tool - to revive the drives much more easily when they fail again.
Yes, the world would be nicer if we get such factory-reset / factory-recovery tools for dead drives from manufacturers but - what we can do. I am willing to spend some time on this.
Thanks,
Daniel Rozsnyo