NMI на мат.платах с nForce2
Модератор: i8085
NMI на мат.платах с nForce2
Creative SB16 Emulation драйвер для DOS, Win9x/Me ни в какую не хочет работать на мамке с nForce2 (Biostar M7NCD Pro nForce2 Ultra 400, южный мост nForce2 MCP). Звуковая карта - SB Live! 5.1.
Наиболее вероятная причина описана здесь:
http://ru.europe.creative.com/support/f ... ?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.
Возможно, что причина неработы креативовского эмулятора не в каких либо особенностях южного моста nForce2, а том, что производители мамок просто отключают в биосе поддержку Legacy-устройств.
Я проверил разводку на своей материнке - вроде сигнал PCI SERR# и вход NMI процессора соединены с южным мостом, но NMI почему-то не активируется и эмулятор не знает, что DOS-программы пытаются обращаться к регистрам SB16. Соединил NMI и PCI SERR# напрямую - Win98SE запускается и работает, а виснет только драйвер эмуляции SB16 - значит, сигнал PCI SERR# есть.
Остается только правильно коммутировать PCI SERR# через южный мост. Поискал datasheet на nForce2 MCP - ничего не нашел. В биосе явных настроек, включающих NMI, нет. Поддержки RAM Parity Check официально тоже вроде нет (а это из той же оперы).
Значит, нужно подправить биос. Может у кого есть какая-нибудь инфа по этому вопросу ? Где покопаться в биосе ? Может достаточно подправить какие-то регистры чипсета ? Вообще, по nForce2 есть какая-нибудь более подробная тех.документация, кроме всяких пропускных способностей и т.п. ?
Наиболее вероятная причина описана здесь:
http://ru.europe.creative.com/support/f ... ?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.
Возможно, что причина неработы креативовского эмулятора не в каких либо особенностях южного моста nForce2, а том, что производители мамок просто отключают в биосе поддержку Legacy-устройств.
Я проверил разводку на своей материнке - вроде сигнал PCI SERR# и вход NMI процессора соединены с южным мостом, но NMI почему-то не активируется и эмулятор не знает, что DOS-программы пытаются обращаться к регистрам SB16. Соединил NMI и PCI SERR# напрямую - Win98SE запускается и работает, а виснет только драйвер эмуляции SB16 - значит, сигнал PCI SERR# есть.
Остается только правильно коммутировать PCI SERR# через южный мост. Поискал datasheet на nForce2 MCP - ничего не нашел. В биосе явных настроек, включающих NMI, нет. Поддержки RAM Parity Check официально тоже вроде нет (а это из той же оперы).
Значит, нужно подправить биос. Может у кого есть какая-нибудь инфа по этому вопросу ? Где покопаться в биосе ? Может достаточно подправить какие-то регистры чипсета ? Вообще, по nForce2 есть какая-нибудь более подробная тех.документация, кроме всяких пропускных способностей и т.п. ?
DrEvil
А как насчет сигнала PCI SERR# ? Ведь для чего-то он прицеплен к южному мосту. И вход NMI тоже прицеплен. В традиционных системах PCI SERR# обычно всегда вызывал немаскируемое прерывание, если только это прерывание не вырубили косвенным путем, т.к. простым запрещением прерываний (через флажок процессора) его вроде не отключить. И кстати, на сайте Креатива не писали, что эмуляция каким-то макаром привязана к ISA.
Проблема эта, между прочим, давняя - тогда и nForce в помине не было, а не работала эмуляция на мамках с чипсетом ALi, что было потом исправлено в биосе производителем тех мамок. Сейчас почему-то на большинстве мамок с nForce2 такая же ерунда - лепят все наверное одинаково, примерно по одной схеме.
Если у кого мамка с nForce2 и звук.карточка серии SB Live!, Audigy и при этом работает эмуляция SB16 под DOS и Win9x/Me, пожалуйста, напишите, что за мамка и какой биос.
А как насчет сигнала PCI SERR# ? Ведь для чего-то он прицеплен к южному мосту. И вход NMI тоже прицеплен. В традиционных системах PCI SERR# обычно всегда вызывал немаскируемое прерывание, если только это прерывание не вырубили косвенным путем, т.к. простым запрещением прерываний (через флажок процессора) его вроде не отключить. И кстати, на сайте Креатива не писали, что эмуляция каким-то макаром привязана к ISA.
Проблема эта, между прочим, давняя - тогда и nForce в помине не было, а не работала эмуляция на мамках с чипсетом ALi, что было потом исправлено в биосе производителем тех мамок. Сейчас почему-то на большинстве мамок с nForce2 такая же ерунда - лепят все наверное одинаково, примерно по одной схеме.
Если у кого мамка с nForce2 и звук.карточка серии SB Live!, Audigy и при этом работает эмуляция SB16 под DOS и Win9x/Me, пожалуйста, напишите, что за мамка и какой биос.
DrEvil
То есть это только предположение, а точной информации по работе южного моста и коммутации этих сигналов у вас нет ?
Насколько я понимаю, никакие ISA DMA каналы PCI-устройству не нужны. А обращения к регистрам SB16 отлавливает сама SB Live!, сообщая об этом через SERR#. Всю остальную обработку выполняет эмулятор.
Еще раз повторю - внешние симптомы указывают на то, что именно нет активации NMI. Если бы на стадии инициализации были бы какие-то проблемы, эмулятор бы поругался. Но ругаются только программы (sbego.exe - Is SB Emulation Enabled ?), пытающиеся обнаружить SB16, который должен быть сэмулирован. А эмулятор молчит, потому что нет прерываний и он не знает, что программа пытается обратиться к регистрам SB16.
То есть это только предположение, а точной информации по работе южного моста и коммутации этих сигналов у вас нет ?
Насколько я понимаю, никакие ISA DMA каналы PCI-устройству не нужны. А обращения к регистрам SB16 отлавливает сама SB Live!, сообщая об этом через SERR#. Всю остальную обработку выполняет эмулятор.
Еще раз повторю - внешние симптомы указывают на то, что именно нет активации NMI. Если бы на стадии инициализации были бы какие-то проблемы, эмулятор бы поругался. Но ругаются только программы (sbego.exe - Is SB Emulation Enabled ?), пытающиеся обнаружить SB16, который должен быть сэмулирован. А эмулятор молчит, потому что нет прерываний и он не знает, что программа пытается обратиться к регистрам SB16.
-
- Администратор Judge Dredd
- Сообщения: 17062
- Зарегистрирован: 17.01.2003 11:52
- Контактная информация:
K.A.D
даташита на чипсет не существует в природе. Производители получают плату-образец, электрическую схему и исходники BIOS, еще пару мануалов по программированию (описание регистров и т.п.)
К слову, то, что там, приведено для старых карт Vibra128/Ensoniq 1373. Для них еще нужна была поддержка чипсетом D-DMA. Поищите у них по форуму на этот счет. DDMA nForce не поддерживают.
даташита на чипсет не существует в природе. Производители получают плату-образец, электрическую схему и исходники BIOS, еще пару мануалов по программированию (описание регистров и т.п.)
До самой платы никакие запросы приложения не доходят. Потому как у нее нет этих регистров, DMA каналов, I/O адресов. Эмулятор вешает в память резидент-траппер, который перехватывает обращения к определенным адресам памяти и портам I/O. Потом за счет ресурсов CPU эмулятор преобразует поток от программы в формат, понятный DSP карты, и отсылает его уже по адресам самой платы. NMI нужно для того, чтобы дать эмулятору время на эту работу, иначе ему не достанется достаточно процессорного времени. Для этого и подается сигнал SERR - только для появления NMI. Сам перехват NMI не требует, во всяком случае драйверы известного устройства Covox делали в прошлом это без NMI. Думаю, что эмулятору просто не удается перехватывать обращения приложения. Наверное, для этого перехвата нужно особое программирование контроллеров, чтобы те игнорировали или перенаправляли обращения приложения. А поскольку полноценных контроллеров у nForce нет, перепрограммировать их нужным эмулятору образом не удается.А обращения к регистрам SB16 отлавливает сама SB Live!, сообщая об этом через SERR#
К слову, то, что там, приведено для старых карт Vibra128/Ensoniq 1373. Для них еще нужна была поддержка чипсетом D-DMA. Поищите у них по форуму на этот счет. DDMA nForce не поддерживают.
-
- Администратор Judge Dredd
- Сообщения: 17062
- Зарегистрирован: 17.01.2003 11:52
- Контактная информация:
Кстати, прочтите статью http://www.ixbt.com/multimedia/sblive-dos.shtml . Там есть ссылки на обновленные драйверы для DOS. А кроме того, там описана структура файла настроек DOS драйвера. Особое внимание обратите на PCIPort= и PCIIRQ= . Возможно, что с момента установки драйвера с компакт-диска у карты поменялись адрес и прерывание. Тогда их надо посмотреть в диспетчере устройств и отредактировать файл.
DrEvil
Под документацией на чипсет я подразумевал хотя бы распиновку микросхемы с описанием сигналов. Например, ведь есть же такая тех.документация на Athlon XP на сайте AMD. у nVidia нет ничего.
Относительно отлова обращений к регистрам SB16 я всего лишь цитировал то, что было написано модератором тех.форума Creative.
Вопрос: a i815EP, SiS746 поддерживают D-DMA ? На них эмулятор работает 100% (если вообще дело в чипсете).
По поводу статьи на ixbt.com. Давно уже эта статья прочитана и все проверено. А с настройкой этого эмулятора я был знаком очень хорошо и до прочтения статьи. Тем более, что все проверки проводятся под гольным DOS'ом (тот, что от Win98SE и, естественно, не под сессией Windows).
Если эмулятор не работает под DOS, то драйвер под Win9x/Me также не работает.
>Сам перехват NMI не требует, во всяком случае
>драйверы известного устройства Covox делали в
>прошлом это без NMI.
Ну речь-то все-таки о серии SB Live!, а не Covox.
>NMI нужно для того, чтобы дать эмулятору время
>на эту работу, иначе ему не достанется >достаточно
>процессорного времени. Для этого и подается
сигнал SERR - только для появления NMI.
Так значит NMI все-таки нужно для корректной работы ? А вот появляется NMI или нет - это уже другой вопрос.
У вас-то, кстати, какая установлена звуковая карта ? И мат.плата на nForce2 ?
Потому как весь этот разговор носит пока чисто теоретический характер. А хотелось бы практических изысков по поводу работы эмулятора на мат.платах с nForce2. Мои изыски успехом до сих пор не увенчались.
Сейчас хотя бы знать, что является причиной отказа эмулятора - конкретные модели мат.плат или чипсет nForce2. Пока только встречал сведения, что на мат.платах с nForce2 фирм ASUS, Epox, Biostar эмулятор работать не желает.
Под документацией на чипсет я подразумевал хотя бы распиновку микросхемы с описанием сигналов. Например, ведь есть же такая тех.документация на Athlon XP на сайте AMD. у nVidia нет ничего.
Относительно отлова обращений к регистрам SB16 я всего лишь цитировал то, что было написано модератором тех.форума Creative.
Вопрос: a i815EP, SiS746 поддерживают D-DMA ? На них эмулятор работает 100% (если вообще дело в чипсете).
По поводу статьи на ixbt.com. Давно уже эта статья прочитана и все проверено. А с настройкой этого эмулятора я был знаком очень хорошо и до прочтения статьи. Тем более, что все проверки проводятся под гольным DOS'ом (тот, что от Win98SE и, естественно, не под сессией Windows).
Если эмулятор не работает под DOS, то драйвер под Win9x/Me также не работает.
>Сам перехват NMI не требует, во всяком случае
>драйверы известного устройства Covox делали в
>прошлом это без NMI.
Ну речь-то все-таки о серии SB Live!, а не Covox.
>NMI нужно для того, чтобы дать эмулятору время
>на эту работу, иначе ему не достанется >достаточно
>процессорного времени. Для этого и подается
сигнал SERR - только для появления NMI.
Так значит NMI все-таки нужно для корректной работы ? А вот появляется NMI или нет - это уже другой вопрос.
У вас-то, кстати, какая установлена звуковая карта ? И мат.плата на nForce2 ?
Потому как весь этот разговор носит пока чисто теоретический характер. А хотелось бы практических изысков по поводу работы эмулятора на мат.платах с nForce2. Мои изыски успехом до сих пор не увенчались.
Сейчас хотя бы знать, что является причиной отказа эмулятора - конкретные модели мат.плат или чипсет nForce2. Пока только встречал сведения, что на мат.платах с nForce2 фирм ASUS, Epox, Biostar эмулятор работать не желает.
-
- Администратор Judge Dredd
- Сообщения: 17062
- Зарегистрирован: 17.01.2003 11:52
- Контактная информация:
Система в профиле. Эмуляция работает, ну так и DDMA i81X серией поддерживается.У вас-то, кстати, какая установлена звуковая карта
PCI-SERR сигнал, как мне удалось узнать, на южный мост приходит. К процессору с северного моста контакт для NMI идет. Другое дело, что PCI-SERR - это не сигнал NMI. Т.е. чипсет, получив SERR, должен выдать инструкцию процессору на NMI. Делает он это или нет - загадка. В конференции iXBT есть человек с ником nvigor, он работает в NVIDIA. Попробуйте к нему обратиться в частном порядке по вопросу SERR/NMIхотя бы распиновку микросхемы с описанием сигналов
думаю, про VirtualPC, DOSBOX, VDM Sound вам известно, ройте в эту сторону. Я вот VirtualPC 2004 пользую, не фонтан скорость, но звук есть.
DrEvil
Спасибо за информацию, попробую связаться с nvigor
Эмуляторы вроде VirtualPC, DosBox, к сожалению, не тянут SVGA-графику, да и звук там только 8-бит. VDMSound тоже имеет свои огрехи - обычно, если игра не может корректно работать под WinXP, то от эмулятора, естественно, толку тоже нет.
Про то, что PCI SERR и вход NMI процессора подсоединены к южному мосту, я написал в самом начале. Я предполагал, что чипсет таки не хочет выдавать инструкцию процессору на NMI, а управляется чипсет через настройки BIOS, которые недоступны в обычном меню и которые наверное можно подправить через modbin. Но какие это могут быть настройки, к сожалению, мне неизвестно.
Что ж, буду трясти работника nVidia.
Спасибо за информацию, попробую связаться с nvigor
Эмуляторы вроде VirtualPC, DosBox, к сожалению, не тянут SVGA-графику, да и звук там только 8-бит. VDMSound тоже имеет свои огрехи - обычно, если игра не может корректно работать под WinXP, то от эмулятора, естественно, толку тоже нет.
Про то, что PCI SERR и вход NMI процессора подсоединены к южному мосту, я написал в самом начале. Я предполагал, что чипсет таки не хочет выдавать инструкцию процессору на NMI, а управляется чипсет через настройки BIOS, которые недоступны в обычном меню и которые наверное можно подправить через modbin. Но какие это могут быть настройки, к сожалению, мне неизвестно.
Что ж, буду трясти работника nVidia.