Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 18 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

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
Как это понимать?

_________________
ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
nickyoz Ты уверен , что на nForce2 надо делать так?


 

Member
Статус: Не в сети
Регистрация: 14.03.2004
Откуда: Москва
Нет, но я думал, что хотябы ити вещи одинаковы для всех чипсетов.
В конце концов ведь есть же спицификация.
Может быть это из=зи того, что виртуфльный реальный режим, хотя и в нем должно работать.

_________________
ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Кстати а где это System Management Bus BIOS Interface Specification. Revision 1.0 можно найти?


 

Member
Статус: Не в сети
Регистрация: 23.09.2003
Откуда: South Ural
nickyoz
подними старика Брауна - там кажись в регистры еще нужно уникальный для каждого производителя код засылать
да и к тому же под виндою прерываниями тебе все равно не дадут воспользоваться ;)

_________________
http://stargaz0r.nm.ru
http://people.overclockers.ru/StarGaz0r/files


 

Member
Статус: Не в сети
Регистрация: 14.03.2004
Откуда: Москва
stargaz0r
Цитата:
подними старика Брауна

Кого? Я тут новичок на форуме
Цитата:
под виндою прерываниями тебе все равно не дадут воспользоваться

Вт меня и интересует, блокирует ли она их

_________________
ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо


 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 05.03.2003
nickyoz

Во-первых, про прерывания забудь. Во-вторых, если интересно, могу дать специфичный для nForce2 код для чтения байта по SMBus через прямой доступ к портам. Источник - RE, поэтому никаких даташитов / комментариев.


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Unwinder Выкладывай прямо тут :)


 

Member
Статус: Не в сети
Регистрация: 14.03.2004
Откуда: Москва
Unwinder Выкладывай прямо тут.
Но мне хотелось бы знать, как это принципиально работает. За этим сто-ли прдёться в linux-kernel лезти?
Цитата:
Во-вторых, если интересно, могу дать специфичный для nForce2 код для чтения байта по SMBus через прямой доступ к портам

Насколько это реботает для всех SMBus совместимых устройств
Цитата:
Во-первых, про прерывания забудь

Я конечно гемороист, но хочу всяко разно уметь.

_________________
ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо


 

Member
Статус: Не в сети
Регистрация: 23.09.2003
Откуда: South Ural
nickyoz
Цитата:
Кого? Я тут новичок на форуме

я имел в виду Ralph Brown's interrupt list :)
Цитата:
Вт меня и интересует, блокирует ли она их

код в биосе в общем случае 16-ти битный и ты хочешь из своей 32-х битной программы напрямую вызвать 16-ти битный код?
надеюсь ты понимаешь что это вобщем-то не очень просто ;) для таких случаев есть процедура thunking'а, но и она в данном случае не подходит - если очень интересно - посмотри как видеодрайвер винды вызывает int10h ;)
Цитата:
За этим сто-ли прдёться в linux-kernel лезти

есть еще один источник - сам биос
Цитата:
Насколько это реботает для всех SMBus совместимых устройств

для каждого из smbus-hosts в общем случае нужно писать свой код (хотя конечно есть совместимые хосты)

_________________
http://stargaz0r.nm.ru
http://people.overclockers.ru/StarGaz0r/files


 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 05.03.2003
nickyoz писал(а):
Unwinder Выкладывай прямо тут.
Но мне хотелось бы знать, как это принципиально работает. За этим сто-ли прдёться в linux-kernel лезти?


Никуда не придётся лезть, хватит того что я дам (само собой, если есть драйвер для прямого доступа к портам под NT). Работает - через низкоуровневый доступ к CNTL/DATA портам SMBus контроллера nForce2.

Лови часть ядра RivaTuner 3.0 :) (источник информации - Reverse Engineered
код ASUS PCProbe) :

//////////////////////////////////////////////////////////////////////
HRESULT CSMBusInterfaceNVIDIA2::ConfigurePort()
{
m_dwSmbPort = 0x5500;

return S_OK;
}
//////////////////////////////////////////////////////////////////////
BOOL CSMBusInterfaceNVIDIA2::SmbReadByte(DWORD dwDevice, DWORD dwAddr, LPBYTE pData)
{
g_driver._outp(m_dwSmbPort + 1 , 0x1F);

g_driver._outp(m_dwSmbPort + 2 , (dwDevice<<1) | 1 );
g_driver._outp(m_dwSmbPort + 3 , dwAddr );

g_driver._outp(m_dwSmbPort , 7 );

Sleep(20);

DWORD dwRetry = 0;
BYTE status;

do
{
dwRetry++;
status = g_driver._inp(m_dwSmbPort + 1);
}
while (((status & 0x80) == 0) && (dwRetry <= 256));

if ((status & 0x1F) != 0)
return FALSE;

*pData = g_driver._inp(m_dwSmbPort + 4);

return TRUE;
}
//////////////////////////////////////////////////////////////////////

nickyoz писал(а):
Unwinder
Насколько это реботает для всех SMBus совместимых устройств


Ответили выше уже. Свой код практически для каждого чипсета.


 

Member
Статус: Не в сети
Регистрация: 14.03.2004
Откуда: Москва
stargaz0r
Цитата:
код в биосе в общем случае 16-ти битный и ты хочешь из своей 32-х битной программы напрямую вызвать 16-ти битный код?

Я вызываю из 16 разрядной программы. Хотя ИХМО я бы заблокировал в защищенной ОС тикие вызовы.
Unwinder
Цитата:
источник информации - Reverse Engineered код ASUS PCProbe

А где его достать моно

_________________
ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
А где его достать моно

Это не достают, а делают :)
Цитата:
Reverse Engineered код ASUS PCProbe

Грубо говоря дизаасемблирование и копание во внутренностях :)


 

Member
Статус: Не в сети
Регистрация: 23.09.2003
Откуда: South Ural
nickyoz
для случая 16-ти битной проги копай Брауна и реализацию кода биос для int15h
хотя помнится еще в вин98 при установке в ней acpi-ядра эти ф-и (int15h) перестают работать - видимо перестают виртуализироваться...

_________________
http://stargaz0r.nm.ru
http://people.overclockers.ru/StarGaz0r/files


 

Member
Статус: Не в сети
Регистрация: 14.03.2004
Откуда: Москва
stargaz0r
Цитата:
хотя помнится еще в вин98 при установке в ней acpi-ядра эти ф-и (int15h) перестают работать - видимо перестают виртуализироваться...

Вот о ACPI я не подумал. Скорее всего что-то сдесь.
А кто знает, как под тиксы с int15h. Его тоже выкинули или как?
patch никсы
Имелось в виду Unix, Linux, BSD

_________________
ФИЗТЕХ- рулез, ФАКИ - сила, Кванты тоже хорошо


Последний раз редактировалось nickyoz 13.05.2004 20:28, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 23.09.2003
Откуда: South Ural
nickyoz
вроде были - типа так (если я тебя правильно понял про тиксы ;) )

procedure Delay(MS: word); assembler;
asm
sub ecx, ecx
movzx edx, MS
shl edx, 10
shld ecx, edx, 16
mov ah,86h
int 15h
end;

_________________
http://stargaz0r.nm.ru
http://people.overclockers.ru/StarGaz0r/files


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Ray Adams

Цитата:
Кстати а где это System Management Bus BIOS Interface Specification. Revision 1.0 можно найти?


Вот здесь много интересного: http://www.smbus.org/ И доки есть.

Unwinder не раскроете проф. секрет, какими инструментами занимаетесть RE?

_________________
Ку ку


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Daemon IDA Pro + Дебагер


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 18 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  

Лаборатория














Новости

Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan