Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
В общем, пытался я разобраться по официальному даташиту, и это у меня не выходит.
Кто-нибудь подскажет, как все-таки через порт 6h(как я понял), считать например регистры 41h и 42h. Какова нужна последовательность действий?
Я пытался, но у меня ничего не выходит. Если что-то не так сказал, то не судите строго. В системном программировании я совсем новичек.
Member
Статус: Не в сети Регистрация: 14.04.2003 Откуда: Минск, Беларусь
Daemon
Цитата:
Какова нужна последовательность действий?
Гмм... Ты начинающий программист или железо первый раз программируешь?
Вот тебе сорец программулины просмотра/установки температуры смещений датчиков температуры (банк 4, 54h-56h).
Код:
{$APPTYPE CONSOLE} uses Ports,OpenPort; const IndexPort=$295; DataPort=$296; var i,Code:Integer; Value:ShortInt;
function GetByte(Index:Byte):Byte; begin Port[IndexPort]:=Index; GetByte:=Port[DataPort]; end;
procedure SetByte(Index,Value:Byte); begin Port[IndexPort]:=Index; Port[DataPort]:=Value; end;
Begin SetByte($4e,4); if ParamCount=3 then for i:=1 to 3 do begin Val(ParamStr(i),Value,Code); SetByte($53+i,Byte(Value)); end; WriteLn('TS1 Offset ',ShortInt(GetByte($54))); WriteLn('TS2 Offset ',ShortInt(GetByte($55))); WriteLn('TS3 Offset ',ShortInt(GetByte($56))); SetByte($4e,0); End.
P.S. Порт 6 в реале 296h P.P.S. Зачем тебе статусы прерываний???
Member
Статус: Не в сети Регистрация: 14.04.2003 Откуда: Минск, Беларусь
Ray Adams
Цитата:
описание програминга таких чипов
Не понятен вопрос. ПОЛНЫЙ даташит - необходимое и достаточное условие. В даташитах на программируемые чипы обычно есть программная модель (описание программно доступных регистров) - и если ее нету - значит даташит неполный А если речь о чипах мониторинга - то обычно это или доступ через IO(порты) либо SMBus (в таком случае надо знать еще, как программировать SMBus хост в южном мосту). Сложных программных моделей (типа OHCI 1394 или EHCI USB2.0, или ECP) в чипах мониторинга мной пока не наблюдалоcь.
P.S. Винбондовские и реалтековские доки достаточно полные и прозрачные. Но встречаются и иные. Типа аттансика и нвидии.
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Меня интересуют доки именно по SMBus. В нете доки много, но так как я с этим не вохился, то что именно дли читать я не знаю , а охоты (точнее просто времиени ) нету читать сотню документов. Потому и спрашиваю, если кто-то уже что-то писал и знает какую доку надо читать
Member
Статус: Не в сети Регистрация: 14.04.2003 Откуда: Минск, Беларусь
stargaz0r
Цитата:
читайте спецификации - там есть практически все что нужно (при условии что они полные)
Экой ты шебутной Какие еще спецификации на SMBus хост? Каждый изгаляется, как может. У интела вон на PIIX4 и последующих слегка разные модели, особенно когда строчная транзакция выполняется. У нвидии вообще доков нет, но есть сведения, что контроллер SMBUS идентичен AMDшному в AMDшных южниках. На который доки есть.
Цитата:
хотя судя по всему у attansic утечка все же была - автор 8rdavcore очевидно располагает полной спекой на overclocking chip
Писал я уже об этом - с той же уверенностью можно утверждать, что автор биос расковырял, для реверса там достаточно инфы. Ray Adams
Цитата:
кто-то уже что-то писал
Писал я лично для PIIX4 строчные(тактовый генератор на 6BTM программировал) и байтовые транзакции(ROM на памяти ими читается и часто пишется, чипы мониторинга так же байтовыми транзакциями обычно читаются/пишутся) и на ICH2 байтовые. Доки по интеловским южным в части контроллеров SMBus полные. VIA,SIS,Nvidia,AMD не приходилось (надобности не было).
Цитата:
то что именно дли читать я не знаю
Читать тебе даташиты на южные мосты от всех производителей или просить у авторов зрелых проектов типа MBM, FanSpeed, Sandra чтоб код за показали. Может кстати и Open Source проект какой быть, но я такого не встречал.
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
SweetLow Я также автор ATI Tray Tools, и потому в будущем буду копать в сторону считывания датчиков температы на видео карте. Правда мне сказали , что там LM сенсоры, я нарыл тучу инфы, но раскопать мегобайты текста мне уже тяжко. А так, мне все интересно, даже если я и не буду нигде применять, то знать не помешает. Не на одной же проге весь мой мир зациклился
Member
Статус: Не в сети Регистрация: 14.04.2003 Откуда: Минск, Беларусь
Ray Adams
Цитата:
Я также автор ATI Tray Tools
Я помню ветку с обсуждением, просто хотел лишний раз удостовериться.
1. Откуда ты знаешь, что сенсор в принципе программно доступен? То, что датчик подключен по SMBus ни о чем не говорит - SMBus много разных бывает. И твой датчик явно не к хост контроллеру в южном мосте подсоединен. (так что тебе южники на самом деле не интересны, как я и подозревал)
2. Даже если программно до него в ПРИНЦИПЕ можно добраться - откуда ты узнаешь интерфейс доступа? (За исключением реверс инжиниринга, конечно). Видеопроцессоры (или их обвязка) еще менее по моему документированы, чем южные мосты
Member
Статус: Не в сети Регистрация: 23.09.2003 Откуда: South Ural
SweetLow
Цитата:
Какие еще спецификации на SMBus хост
вообще-то я имел в виду суперио - о которых ты сам помнится нашему общему знакомому говорил, что все в спеках есть
по поводу SMBUS/I2C существует огромное количество информации, нужны исходники - смотрите у линуксоидов - есть почти все. Спецификации интел как всегда наиболее полные, но помнится были спеки у ALi c примерами программирования.
вообще считается что PIIX4 - smbus совместимый хост, а ICH - i2c совместимый, но при программировании отличаются только механизмом определения готовности; у нвидия хост слегка отличается от AMD;
Цитата:
с той же уверенностью можно утверждать, что автор биос расковырял
тебе в той ветке уже отвечали - что автор сам в переписке про спеки обмолвился
на одной из закладок (coolbits) в инвидиевских дровах видел температуру GPU - значит карточка в своем адрессном пространстве имеет порты для температуры или спец команду для ее чтения
Member
Статус: Не в сети Регистрация: 14.04.2003 Откуда: Минск, Беларусь
stargaz0r
Цитата:
PIIX4 - smbus совместимый хост, а ICH - i2c совместимый
Не-а. Просто новые мосты интел можно перевести в стандарт функционирования шины i2с, а PIIX4 - нельзя.
Цитата:
вообще-то я имел в виду суперио - о которых ты сам помнится нашему общему знакомому говорил, что все в спеках есть
Даташиты - не стандарты. Вот о чем я. Есть (жесткие) стандарты на контроллеры USB или FW (благодаря чему не нужны драйверы от производителей этих самых контроллеров - кстати скоро тоже со встроенным звуком будет). А на контроллеры SMBus таких стандартов нет. Вот и изгаляются производители как могут.
Цитата:
что автор сам в переписке про спеки обмолвился
Не припомню, что бы мне об этом кто-то говорил в той ветке на этот счет???
Цитата:
на одной из закладок (coolbits) в инвидиевских дровах видел температуру GPU - значит карточка в своем адрессном пространстве имеет порты для температуры или спец команду для ее чтения
Ясен пень, физически чтение уже с GeForce 256 поддерживается, но стандарт, стандарт... А реверс - это как по помойке шарится - недостойно белого человека
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
SweetLow
Цитата:
Гмм... Ты начинающий программист или железо первый раз программируешь?
Железо, т.е. что-то более серьезное, чем перехватывание прерываний клавиатуры. За код, большое спасибо . Это случайно не часть твоей программы для калибровки датчиков на NF7? Осталось разобраться как работать с индексным и дата портом на ассемблере. Вроде бы понятно. В принципе в индексный порт через акумулятор заносиш индекс и читаешь значение из дата порта(или заносиш значение в дата порт) тоже через акумулятор. Вопрос следуещего порядка: значения датчиков напряжения, оборота фанов, верхнего и нижнего пределов и т.д. можно получить по индексам 20h- 3Fh?
Цитата:
Винбондовские и реалтековские доки достаточно полные и прозрачные
Ага, только бывают непонятки особенно у начинающих
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Есть .dll от ATI с возможностью разгона и кажется также с возможностью менять напругу, также внутри я видел что-то связанное с температурами. Копаться в IDA приходиться очень и очень долго. Ясное дело, что датчики на видеокарте, не видны как обычные девайсы и доступ к ним надо получать через ардесное пространство самой карты.
Member
Статус: Не в сети Регистрация: 14.04.2003 Откуда: Минск, Беларусь
Daemon
Цитата:
Это случайно не часть твоей программы для калибровки датчиков на NF7?
Это ВСЯ она. Остальные модули служебные и смысловой нагрузки не несут (доступ к портам открывается + обертка для удобства - этот код с убиранием двух верхних строк одинаково компилируется и в Delphi и в BP7.0).
Цитата:
Осталось разобраться как работать с индексным и дата портом на ассемблере.
Нахуа? (Индейское племя такое). Чем ассемблер лучше любого ЯВУ? Ну я понимаю конечно, что бывает код невыразимый на чистом языке, но как правило требуется всего крохотная ассемблерная вставочка, которая прячется глубоко внутрь оберточной функции - собственно в сервисных унитах я как раз пару таких вставок сделал по необходимости. А логика поведения приложения всегда лучше программируется на ЯВУ.
Цитата:
Вопрос следуещего порядка: значения датчиков напряжения, оборота фанов, верхнего и нижнего пределов и т.д. можно получить по индексам 20h- 3Fh?
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
SweetLow
Цитата:
Нахуа? (Индейское племя такое). Чем ассемблер лучше любого ЯВУ? Ну я понимаю конечно, что бывает код невыразимый на чистом языке, но как правило требуется всего крохотная ассемблерная вставочка, которая прячется глубоко внутрь оберточной функции - собственно в сервисных унитах я как раз пару таких вставок сделал по необходимости. А логика поведения приложения всегда лучше программируется на ЯВУ.
Это я себе взял задание на курсовую по ассемблеру, так что надо на нем + каркас на С.
Цитата:
Все, что описано в доках - можно получить
Ну буду пытаться Потом уже напишу чего нибудь на ЯВУ. Но момент с 48h(адрессом сериал бас) и регистрами по индексам 20h- 3Fh немного не понятен. Какая между ними связь?
stargaz0r
Цитата:
в которых ничего кроме понтов нету....
В смысле?
Добавлено спустя 5 часов, 42 минуты, 47 секунд: Иес!!! Догнал, что к чему. И с интерфейсами доступа тоже разобрался. Надо приступать к работе
Member
Статус: Не в сети Регистрация: 14.04.2003 Откуда: Минск, Беларусь
Daemon
Цитата:
Но момент с 48h(адрессом сериал бас)
Чип доступен и по SMBus, не только по непосредственным IO адресам на шине процессора. Но SMBus естественно менее удобен. А адрес - это адрес на который чип отзывается по SMBus(и он перепрограммируется). Не добрался еще до программирования по SMBus?
Цитата:
Это я себе взял задание на курсовую по ассемблеру, так что надо на нем + каркас на С.
Ааа... Ну бог в помощь Кстати, че то поздновато для курсовой. Хотя я помнится на 4 курсе в мае первый раз руководителя увидел Но все сдал (и без дуриков, полноценно).
Member
Статус: Не в сети Регистрация: 23.09.2003 Откуда: South Ural
SweetLow
Цитата:
Не-а. Просто новые мосты интел можно перевести в стандарт функционирования шины i2с, а PIIX4 - нельзя.
на практике это и означает что я писал
Цитата:
А на контроллеры SMBus таких стандартов нет. Вот и изгаляются производители как могут
движение к стандартизации скоро начнется - в винде (w2k3) уже появились стандартные ioctl-коды для работы с smbus - имхо это подтолкнет разработчиков в нужном направлении
Цитата:
А реверс - это как по помойке шарится - недостойно белого человека
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
Скачал я спек Аттансика. Не ну это же издевательство, даже о материале чипа расказали, о програмном доступе - ни слова. У меня ATXP1, где еще такой же?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения