The death of a driver

by hobbitalastair

As a follow-on from my prior toshiba project update, I’ve spent a bit of time fiddling, trying to figure out where exactly the pata_piccolo driver dies. It’s not hard to see where, as it turns out, although losing a few printk’s didn’t help. The driver bails because ata_port_is_dummy returns false for both ports!

It then fails, because no ATA resources are present, and then again when trying to iomap regions (-EINVAL). After that, both ports are treated as being dummy, and are ignored. The boot sequence then stops because no vfs is found…

However, it’s non-obvious as to why the ATA port is dummy. Some further investigation is required…

I’ve added ‘{‘ and ‘}’ around that particular if statement, which seemed to delay the issue’s appearance… I suspect that something in the C language that I don’t know about is mucking my attempts at debugging up!