Member
Статус: Не в сети Регистрация: 14.03.2004 Откуда: Москва
Система: nForce 2 + MCP, Win2k3
Нашел System Management Bus BIOS Interface Specification. Revision 1.0. February 15, 1995
Староват конечно, но для начало пойдет
пишу код:
Код:
.model small .stack 100h .code start: mov ax, 053B0h mov bh,001h mov bl,072h mov ch,061h mov cl,064h int 15h mov ax,04c00h int 21h
И после int 15h получаю в ah полчаю 86h - SMBus not supported
Как это понимать?
_________________ ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо
Member
Статус: Не в сети Регистрация: 14.03.2004 Откуда: Москва
Нет, но я думал, что хотябы ити вещи одинаковы для всех чипсетов.
В конце концов ведь есть же спицификация.
Может быть это из=зи того, что виртуфльный реальный режим, хотя и в нем должно работать.
_________________ ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо
Member
Статус: Не в сети Регистрация: 23.09.2003 Откуда: South Ural
nickyoz подними старика Брауна - там кажись в регистры еще нужно уникальный для каждого производителя код засылать
да и к тому же под виндою прерываниями тебе все равно не дадут воспользоваться
Во-первых, про прерывания забудь. Во-вторых, если интересно, могу дать специфичный для nForce2 код для чтения байта по SMBus через прямой доступ к портам. Источник - RE, поэтому никаких даташитов / комментариев.
Member
Статус: Не в сети Регистрация: 23.09.2003 Откуда: South Ural
nickyoz
Цитата:
Кого? Я тут новичок на форуме
я имел в виду Ralph Brown's interrupt list
Цитата:
Вт меня и интересует, блокирует ли она их
код в биосе в общем случае 16-ти битный и ты хочешь из своей 32-х битной программы напрямую вызвать 16-ти битный код? надеюсь ты понимаешь что это вобщем-то не очень просто для таких случаев есть процедура thunking'а, но и она в данном случае не подходит - если очень интересно - посмотри как видеодрайвер винды вызывает int10h
Цитата:
За этим сто-ли прдёться в linux-kernel лезти
есть еще один источник - сам биос
Цитата:
Насколько это реботает для всех SMBus совместимых устройств
для каждого из smbus-hosts в общем случае нужно писать свой код (хотя конечно есть совместимые хосты)
Unwinder Выкладывай прямо тут. Но мне хотелось бы знать, как это принципиально работает. За этим сто-ли прдёться в linux-kernel лезти?
Никуда не придётся лезть, хватит того что я дам (само собой, если есть драйвер для прямого доступа к портам под NT). Работает - через низкоуровневый доступ к CNTL/DATA портам SMBus контроллера nForce2.
Лови часть ядра RivaTuner 3.0 (источник информации - Reverse Engineered код ASUS PCProbe) :
Member
Статус: Не в сети Регистрация: 23.09.2003 Откуда: South Ural
nickyoz для случая 16-ти битной проги копай Брауна и реализацию кода биос для int15h
хотя помнится еще в вин98 при установке в ней acpi-ядра эти ф-и (int15h) перестают работать - видимо перестают виртуализироваться...
Member
Статус: Не в сети Регистрация: 14.03.2004 Откуда: Москва
stargaz0r
Цитата:
хотя помнится еще в вин98 при установке в ней acpi-ядра эти ф-и (int15h) перестают работать - видимо перестают виртуализироваться...
Вот о ACPI я не подумал. Скорее всего что-то сдесь.
А кто знает, как под тиксы с int15h. Его тоже выкинули или как?
patch никсы
Имелось в виду Unix, Linux, BSD
_________________ ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо
Последний раз редактировалось nickyoz 13.05.2004 20:28, всего редактировалось 1 раз.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения