I believe we're answering different questions. You're thinking of the wider action of restricting one's products (be they hardware or software) to a particular platform. This is generally fine but subject to some legal constraints. I'm talking about the specific extension of the PCI-E standard to restrict competitor products (specifically video cards).
Originally Posted by deanjo
PCI-E is a problem because it is a trademark of the consortium PCI-SIG. If your board says it is PCI-E compatible and uses the PCI-E logo, it has to work with all PCI-E peripherals. Why? Well, as I said, if you truly want to restrict competitor peripherals on your board, you would do one of the following:
1. Make a proprietary standard the sole implemented one on your motherboards and make your cards capable of working on both that and regular PCI-E. If you do this and still certify your board as PCI-E, this is illegal because it's the same as the embrace+extend strategy that Microsoft did with Java.
2. Install a controller chip on the PCI-E bus to intercept signals and detect the device id, passing through signals from ids registered with one's own cards. Not only is this utterly impractical, but it's also anticompetitive in that it targets a certain subset that should work with your boards. An example of this deemed illegal is the telecoms who owned the phone lines restricting DSL access to their own services.
To address the examples you gave:
SLI on ATI chipset: ATI does not feature the SLI sticker or license SLI from Nvidia. It does not even claim to support it. Nor is Nvidia under any obligation (afaik) to sell a license to ATI because there isn't a patent sharing agreement between Nvidia and ATI. SLI is not an open standard.
Video cards on mac: Apple doesn't write any drivers for that video card for its own OS. There's nothing preventing you from installing Linux on a mac and using an add-in card with open-source drivers. There's nothing restricting you; Apple just doesn't go out of its way to help you. There's a difference there.
CPUs and patents: This isn't an issue. Yes, rights for CPU sockets need to be licensed. PCI-E also needs to be licensed, but it's available to anyone in the consortium. Your motherboard most likely says PCI-E certified on the cover and also whatever socket has been licensed. Obviously, if you don't license something, you can't claim to support it, but then that's your (the vendor's) fault.
Raid controllers: I'm not too well-read on these devices, but it sounds like someone isn't implementing a standard correctly or that there is no standard. In that case, dropping to another mode is doing a favour to support a device that has been improperly made or not certified.
Same thing I'd think with Nvidia and Irongate.
I remember when I worked on the .NET Framework team at Microsoft that we always had a lawyer in attendance to make sure our work under ECMA licensing did not cause too onerous an implementation burden on things like Mono. You can see how seriously standards are implemented given the wide compatibility of devices on PCI-E.