нет универсальной альтернативы - только частные решения для конкретных случаев.
В твоем (и любом другом) конкретном случае выбор ясен:
1) надо либо раскуривать мануалы твоего чипсета и кодить напрямую,
2) либо портировать мегакод из Линукса.
Причем во втором случае одним только внешним энумератором дело не ограничится: рерутинг IRQ все равно придется каждый раз при старте производить через один известный своей универсальностью проход. И не уверен что ACPI сможет решить все проблемы присно и во веки веков:
А как pcidev сможет разглядеть "невидимые" устройства и функции, как перекинет нужные линии куда надо, если PM-регистры и коммутаторы вдруг окажутся "заморожены" по дефолту, а как их включить ACPI не знает?В финале лаунчер запустит pcidev с ключом BOOT.
pcidev сканирует шину и сравнивает результат с devices.dat.
Минимальный драйвер чипсета все равно будет нужен, хотя бы для инициализации (про хотплаг и SMI пока вообще забудем). Но тогда возвращаемся к той же самой альтернативе (см. выше), но теперь уже и вариант 2) не будет "универсальным решением для всех". И я уже говорил что мы тогда получим -- еще один линукс, только с ассемблерным ядром.
Забавно, я тоже хочу чтобы дистрибутив мог стартовать на любом компе - на базе Linuх Live или хотя бы и на нынешнем "универсальном" PC-ядре Колибри; и чтобы мог самостоятельно настраивать параметры компиляции неуниверсального ядра для конкретной платформы.Я предлагаю работающее универсальное решение для всех, чтобы дистрибутив мог стартовать на любом компе.
А если платформа не поддерживается - чтобы говорил что сорри, драйверов для вашего чипсета пока не имеется. Пользуйтесь пока старым ядром и спонсируйте дальнейшую разработку проекта (вариант: инвестируйте в себя, обзаведитесь правильным железом ).
Насчет твоей сетевухи - я совершенно не представляю себе как устроены интеловские мосты, но на АМД-шных чипсетах GЕС МАС (bdf 0:14h:6) по дефолту скрыт (невидимая функция, однако!), интегрированный сетевой чип формально приписан к какой-нибудь 4-й шине, но прерывание с него обрабатывается не как внешнее PCI-IRQ, а как внутреннее прерывание южного моста. Например, на Гудзоне под нее выделена отдельная IOAPIC-линия #15h, и всем этим делом управляют 5 специальных PM-регистров.
Может и в интелах есть подобные заморочки?