I am basically approaching chip design the only way I know how: as a software developer
Paul on computer architecture
This entry was posted
on Thursday, September 21st, 2006 at 18:26 and is filed under Coding, Quoting.
You can follow any responses to this entry through the RSS 2.0 feed.
Both comments and pings are currently closed.
Hooray! I struggled for years with lousy chip designs while writing drivers at Apple. The hardware guys would design something without a clue. Read back register contents? What a radical idea.
A SCSI chip with a fatal flaw that prevented a DMA interrupt? “Well, it works on OS 9.” Yeah, but not on A/UX, which was a Unix system requiring those interrupts.
Hardware guys began designing a SCSI DMA controller chip. They had a DMA address, byte count, and count-zero interrupt. The SCSI chip itself had these, so I insisted they simply provide the address and nothing else. They were flabbergasted, then happy to cut the parts. They had no idea the SCSI chip had the functionality I needed—and no idea that interrupts from two sources would create significant driver headaches.
Why all the stupidity? Because none of these guys had ever thought from the perspective of the driver writer. I’d be given a preliminary spec for a chip that was going to mask in a few weeks; I’d have to imagine a complete driver implementation, down to error-recovery situations, then convince these fools to change the design.
Hooray! I struggled for years with lousy chip designs while writing drivers at Apple. The hardware guys would design something without a clue. Read back register contents? What a radical idea.
A SCSI chip with a fatal flaw that prevented a DMA interrupt? “Well, it works on OS 9.” Yeah, but not on A/UX, which was a Unix system requiring those interrupts.
Hardware guys began designing a SCSI DMA controller chip. They had a DMA address, byte count, and count-zero interrupt. The SCSI chip itself had these, so I insisted they simply provide the address and nothing else. They were flabbergasted, then happy to cut the parts. They had no idea the SCSI chip had the functionality I needed—and no idea that interrupts from two sources would create significant driver headaches.
Why all the stupidity? Because none of these guys had ever thought from the perspective of the driver writer. I’d be given a preliminary spec for a chip that was going to mask in a few weeks; I’d have to imagine a complete driver implementation, down to error-recovery situations, then convince these fools to change the design.