NMI для SB Live! (эмуляция SB16)

Причина неработы Creative SB16 Emulation (DOS, Win9x/Me) для PCI звуковушек описана здесь:

ru.europe.creative.com/support/forums/thread.asp?thre=4280

Legacy emulation under DOS Creative/Ensoniq cards will not work on systems that . .

a) do not route the PCI SERR# signal to the processor NMI
b) have a capacitor between SERR# and ground or between NMI and ground that is too large.

Some background is required here. The Creative/Ensoniq PCI cards use the PCI SERR# signal to indicate that someone has accessed a Legacy device register (i.e., Sound Blaster, MPU-401, ). This SERR# signal must generate a processor NMI before the I/O instruction completes so that the Legacy emulation software can perform proper emulation of the trapped I/O event before the processor executes the subsequent instructions.

In the event that the SERR# signal is not connected to the NMI input, the software is never notified and cannot perform any Legacy device emulation.

In the event that there is a capacitor on the line that is too large, the NMI does not propagate to the processor in time to emulate the I/O before the next processor instruction(s) execute(s). If the I/O event is emulated too late, it may have an adverse effect on the system as it may change the state of processor register al at a time when the processor is not expecting it.

Эту самую картину мы и наблюдаем: эмулятор запускается успешно, но программы не видят Legacy-устройств, т.к. немаскируемых прерываний нет (скорее всего) либо они неправильно формируются.

Мамка - Biostar M7NCD Pro (nForce2 Ultra 400). Поглядел разводку платы - вроде ножка NMI процессора и сигнал SERR# с PCI-слотов подведены к южному мосту, но прерывания-то не поступают. Соединил NMI и SERR# напрямую - Win98SE запускается и работает, а виснут только дровишки эмуляции SB16 (поперли немаскируемые прерывания).
Скорее всего подлый производитель мамки отключил в биосе поддержку NMI (ISA Legacy). Биос - Award'овский. Может кто знает, где надо покопаться, чтоб NMI (PCI SERR# от SB Live!) нормально поступали и обрабатывались ?

Если можно, хотел бы задать более общий вопрос:

Какие матери на Award BIOS работают с эмуляторами, а какие - нет? И в каких случаях это можно поправить перешивкой BIOS'а? Интересно было бы составить такие списки и для систем с другими BIOS'ами.

Мои две копейки:

SBLive! 5.1 на GA-7VAX работает в ДОСе нормально - эмуляция ставится по адресу D400, IRQ 12. А вот SB Audigy практически на всех опробованных мной дуальных матерях для Socket603/604 (Супермикровские, Rioworks PDPEA) - не работает. Эмуляция встает на назначенный для данного слота IRQ, адрес 2000, а звука нету. И программы его не видят. С 64-битными разъемами (3.3/66 или PCI-X) вообще беда - для них нельзя даже принудительно назначить прерывание, и там автоматом назначается такой дикий IRQ, что система уходит на reboot.

SMP Forever!

Не скорее всего - точно.
Один человек, работающий в nVidia сказал, что раутинг включается путем перенастройки чипсета.
Но документация на чипсет в открытом доступе вряд ли когда нибудь появится.

K.A.D
Тоже с недавних пор интересуюсь данной темой. Похоже, что вы едва ли не единственный человек, который пытается копнуть глубже (по крайней мере, данная тема- третья, найденная мной, созданная вами по данной тематике). Пару недель назад я посылал вопрос в Epox по поводу поддержки моей платой (8RDA3I) NMI. К сожалению, тогда я еще не знал деталей и не спросил про NMI в контексте сигнала PCI SERR#, поэтому мой вопрос был общего плана: "Поддерживает ли данная плата немаскируемые прерывания?" Мне ответили- да, поддерживает.

И еще одно. Почему Mxplayer (проигрыватель музыкальных файлов под ДОС) без проблем работает на матплатах с Nforce2? И можно ли, хотя бы теоретически написать драйвера, не использующие PCI SERR#?

И меня примите в свою компанию...:(

Недавно обнаружилось, что на новой материнке 8GA-IPE1000 вместе со звуковухой Diamond Multimedia Sonic Impact (PCI) нет звука в Doom; Duke3D; Blood. Идет конфликт по DMA-каналу. Причем музыка через Sound Blaster там есть. В других играх вроде Warcraft-2 все нормально.
Естественно, я рылась уже в настройках биоса и конфигурационных файлов, физически убирала из матери все лишние устройства и т.д. В старой матплате (6via85t) звуковая работает, в новой - нет.

Почитав инфу в Сети выяснилось, что оказывается на новых матерях:

Цитата:
там совершенно нет шины ISA. Ни в виде хорошо известных нам разъемов (так она отсутствует уже в стандарте PC99), ни в более "скрытном" ее обличии - как главная магистраль для BIOS, COM, FDD, LPT и т.д. Что само по себе порождает немало проблем связанных с необходимостью разработки нового железа и добровольной несовместимостью со старыми программами.

Взято там же ( tweak.tut.by/text/pcisound.htm ):
Цитата:
Совместимость со старыми играми и программами - больная тема для PCI звуковых карт. Это вызвано отсутствием поддержки ISA DMA каналов на шине PCI, там все операции с памятью компьютера осуществляются с помощью захвата шины. Это более современно и правильно, но, к сожалению, вашему DOOM-у это не никак не докажешь. Поэтому большинство PCI карт эмулируют Sound Blaster программным или полупрограммным путем и от качества этой эмуляции зависит, с какими старыми DOS программами вы сможете работать, а с какими - нет. Подобный эмулятор может использовать появившийся в новых чипсетах (например, все от Intel начиная с TX) стандарты DDMA (Распределенный Прямой Доступ к Памяти) и PC-PCI. Которые, как раз, и призваны аппаратно поддержать и облегчить эмуляцию DMA каналов для PCI карт.

А еще где-то один чел сказал, что такие вещи, как Duke3D это "хитpые досовские пpиложения, котоpые пытаются пpогpаммиpовать SB Pro нестандаpтными способами".

Скажите, возможно создать Bios, который бы поддерживал ISA DMA каналы для старых SB PCI карт?

Добавлено после истязания компа:

Ух! Проблема решилась! Все выходные мучалась.
Сперва поставила WinXP - появился звук в Дюке, но он был просто ужасен, кряхтел и сипел. Многие другие старые игры вообще отказались идти. Поставила Win2000 - звука при эмуляции Dos нет.
Наконец, без особой надежды на успех поставила WinMe и о чудо! Игрушки работают, работает звук и очень даже хорошо!

Вот не знаю, то ли более поздние операционки внутренним перераспределением ресурсов решают проблему, то ли драйвер WinMe ставит особый... посмотрю может можно заставить работать и на Win98.
Надеюсь, что и у всех остальных проблема решится софтовым путем. :)

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей