This seems to be a theme

by hobbitalastair

In my prior post, I said that it was time for a break from the Toshiba Project. I should have known better – the last time I said that was shortly before this post! Nothing quite that stunning has occurred, though.

Instead, I’ve been reading up on PCI, in the hope that I’ll be able to learn more about the PATA controller. I’ve made some progress on that front. It turns out that Linux ‘breaks out’ the PCI configuration registers via the sys filesystem. By reading the file in question, I can compare the configuration registers with the Piccolo specification – hopefully shedding some light on how it works. In this case, I needed to read /sys/bus/pci/devices/0000:00:00.0/config, using ‘od -x’. I then wrote up the results into an markdown file for further study. The results were inconclusive…

First of all, the chipset appears to be (if it is a Piccolo device) in “Triton Mode”, ie largely compatible with the PIIX4 chips of the time. At least some of the registers are the same! Secondly, some of the registers line up with the Piccolo spec… and some don’t. At all. So if it is a Piccolo device, it is either operating in “Triton Mode” or is a distant cousin from the device in the spec!

I’ve tried probing 0x80 – the Triton/Toshiba mode switch on the Piccolo – but it didn’t do much. I could swap it to ‘1’, but swapping it to ’31’ again causes a kernel panic…

I’m not sure what else I’ll try – if it is in Triton Mode, it’s incompatible – neither of the Linux drivers for the PIIX4 chips work.

Also, the PIIX4 has 4 functions – one of which is the PATA controller – and the chip in my Toshiba has one. Piccolo chips should have at least two. How does that work?