Надеюсь, теперь вы точно представляете, что

> Надеюсь, теперь вы точно представляете, что именно за устройство я делаю?

Это неважно. Просто ответьте - тоеретически оно по функционалу совпадает с набортным SATA-контроллером? И теоретически соответстует тем же спецификациям?
Вопрос-то чисто философский. И ответа ровно 2 - либо вы делаете ТОЧНО по спецификации (мне, честно говоря, лень искать/читать спецификацию на PCI IDE-контроллер, но думаю, что отступления есть), либо выясняете, что хочет BIOS/драйвер и подпиливаете конкретные места.

Насчет BIOS - у Вас несколько завышенные ожидания, IMHO. BIOS пишется под плату. На ней есть устройство 8086/3B26h и MainBIOS заранее знает характеристики устройства. Банальная неимплементация BAR'ов или код интерфейса 05h может привести к тому, что MainBIOS не признает устройство за свое. Код класса тут как раз не играет определяющей роли - разве что в выводе типа в списке PCI.
При этом размер BAR'ов - всего лишь один из факторов "неприятия", причем, на мой взгляд - не самый важный.

Кстати, Гугл дает довольно много инфы по "xilinx sata controller". Например, opencores.org/project,sata_controller_core

А в Винде - хотсвапом подлкючать, и смотреть почему падает хотя бы Alter'овский драйвер. Ну, и в ReactOS можно глянуть ATAPI.SYS.

Цитата:
Чтобы узнать об этом желании, BIOS'у нужно прочитать первые байты Addon ROM платы? Так вот до этого и не доходит.

При правильно имплементированном ROMBAR - попытается. Должен.

Цитата:
Что значит "вообще функционировать"?

Энумерировать. выдать ресурсы, при необходимости - отработать Expansion ROM.

Котроллер SATA в режиме эмуляции IDE.