All these machines run SATA I (1.5Gbps). The Sata II and SATA III specifications state that it's meant to be backwards compatible and the drive should negotiate down to SATA I speeds (ala 10/100/1000 Ethernet)
For HDD's they used to have one of the jumper pins you could set to "force 1.5Gbps mode" at least on W.D drives at the time. SSD's of course however are meant to be fast and in theory do this all in software. In practice with the K2 controller though they just...tend to break!
I don't blame the SSD makers of course. Why would they test their SSD's in 20~ year old machines? (or even if they do, knowing to make appropriate concessions for PowerPC macs, which are themselves known to be extremely unreliable anyway!)
For extra fun I added an NVME drive to one of my G5 Quad machines via a PCI-E adapter. The boot process goes OpenFirmware (ROM) --> GRUB2 ---> Linux Kernel + initrams on SSD with root=/dev/nvme0n1p1 set
Even with this set up it takes five real world seconds for the K2 controller to report back the single device (of just TWO it can have plugged in!) to the linux kernel. With this driver disabled or moved to a module the kernel boot process takes approximately 3 seconds instead of 8 or 9
The K2 controllers are awful and I am glad they died quietly
from PIL import Image
png = Image.open('screenshot.png')
pxl = Image.frombytes('RGB', (5120,200), png.tobytes()).load()
new_img = Image.new('RGB', (1280, 800))
new_pxl = new_img.load()
for block in range(80):
for x in range(16):
for y in range(200):
for offset in range(0,4):
new_pxl[block*16 + x, 4*y + offset] = pxl[(block*4 + offset) * 16 + x, y]
new_img.show()• https://github.com/openzfs/zfs/discussions/14793
Best to avoid them at all costs.