Правильное определение SuperIO чипа

Тема в разделе "WASM.ELECTRONICS", создана пользователем dan2k5, 13 мар 2006.

  1. dan2k5

    dan2k5 New Member

    Публикаций:
    0
    Регистрация:
    12 фев 2006
    Сообщения:
    3
    Адрес:
    Russia
    Пишу программу, которая мониторит системные параметры (температуры, напряжения, скорость вращения вентиляторов), наподобие speedfan.

    Начал пока с SuperIO чипов Winbond (W83627HF/W83627THF/W83637HF/W83697HF).

    Как правильно определять SuperIO чип на материнской плате?
     
  2. eugene_

    eugene_ New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2005
    Сообщения:
    93
    Адрес:
    Russia
    Читай PCI config space и ищи нужный класс
     
  3. VaStaNi

    VaStaNi Member

    Публикаций:
    0
    Регистрация:
    1 июн 2004
    Сообщения:
    203
    Адрес:
    Ukraine
    Посмотри, вот тут мы "терли" эту тему здесь:

    http://lowlevel.h14.ru/cgi-bin/yabb/YaBB.cgi?board=programming;action= display;num=1109876379

    Доки по Winbond хорошо, но тебе придется еще и южный мост изучать, хотябы свой. Потом, по мере освоения и продвижки с собственным драйверным кодом, захочется, наверное и чтоб на других машинах работало.

    Сродные темы-аналоги:

    http://forum.sources.ru/index.php?showtopic=128828

    http://forum.sources.ru/index.php?showtopic=119883

    Пока до этой темы не доберусь сам, т.к. есть ряд других, более приоритетных, но она очень интересует... ты если возьмешся всерьез или нужны компаньёны(сейчас не обещаю) или обсудить, то сообщи, можем пообщаться в привате, скажем, а там посмотрим. Иногда две головы все же лучше чем...:)
     
  4. dan2k5

    dan2k5 New Member

    Публикаций:
    0
    Регистрация:
    12 фев 2006
    Сообщения:
    3
    Адрес:
    Russia
    eugene_



    объясни поподробнее, что ты имеешь ввиду
     
  5. ECk

    ECk Member

    Публикаций:
    0
    Регистрация:
    9 апр 2004
    Сообщения:
    454
    Адрес:
    Russia
    Пример поиска показан здесь: http://www.wasm.ru/article.php?article=atazen02

    А вообще - можешь или использовать int 1A как по ссылке выше, или сканировать PCI config space и искать соответствующий класс по всем шинам-девайсам-функциям.

    Вот описание int 1A



    INT 1A - PCI BIOS v2.0c+ - FIND PCI CLASS CODE

    AX = B103h

    ECX = class code (see also #F0085,#00878)

    bits 31-24 unused

    bits 23-16 class

    bits 15-8 subclass

    bits 7-0 programming interface

    SI = device index (0-n)

    Return: CF clear if successful

    CF set on error

    AH = status (00h,86h) (see #00729)

    00h successful

    BH = bus number

    BL = device/function number (bits 7-3 device, bits 2-0 func)

    86h device not found

    EAX, EBX, ECX, and EDX may be modified

    all other flags (except IF) may be modified

    Notes: this function may require up to 1024 byte of stack; it will not enable

    interrupts if they were disabled before making the call

    the meanings of BL and BH on return were exchanged between the initial

    drafts of the specification and final implementation

    all devices sharing the same Class Code may be enumerated by

    incrementing SI from 0 until error 86h is returned
     
  6. ECk

    ECk Member

    Публикаций:
    0
    Регистрация:
    9 апр 2004
    Сообщения:
    454
    Адрес:
    Russia
    Найдя девайс идешь к нему в config space и считываешь VEN_ID & DEV_ID и определяешь.

    Точнее вероятнее всего не определишь :)