Hardware monitoring

Тема в разделе "WASM.ASSEMBLER", создана пользователем mr_Infern0, 13 фев 2007.

  1. mr_Infern0

    mr_Infern0 New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2007
    Сообщения:
    52
    Кто-нибудь знает на каких портах висит микросхема аппаратного мониторинга
    PC health короче? Нужно темп. CPU получить.
     
  2. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    mr_Infern0
    Либо на ISA 290h или на SMBus.
    Тут либо исходники LM_Sensors качаем разбираемся. Лабы качаем даташиты, на контролеры Super I/O. Так как организация у них разная.
     
  3. mr_Infern0

    mr_Infern0 New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2007
    Сообщения:
    52
    А SpeedFan open source? LM_Sensors геморно.
     
  4. lukash

    lukash New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2006
    Сообщения:
    142
    Извиняюсь, что влезаю со своим вопросом, просто интересно как Еверест, например, определяет вскрыт корпус или нет?
    Мультик (как я понял, именно он обрабатывает датчики) Winbond W83627HF, доступ к датчикам через ISA 290h. И где находятся эти датчики (что за вскрытия корпуса отвечают) Я уже всю матплату с фонариком облазил (мол попадает света больше => корпус вскрыт), но Еверест говорит, что вскрытие корпуса не обнаружено.
     
  5. mr_Infern0

    mr_Infern0 New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2007
    Сообщения:
    52
    У меня такой-же Super I/O но никаких датчиков не находил (фонарик не поможет - а если ночь, а ты корпус вскрыл) :dntknw:, кстати его вроде им через порты 2Eh - 2Fh рулить можно, У меня есть даташит, но там тока о конфигурировании Super I/O и ни слова от том чё и где на ISA 290h :dntknw:, может у кого другая дока есть (или сорцы)?
     
  6. VaStaNi

    VaStaNi Member

    Публикаций:
    0
    Регистрация:
    1 июн 2004
    Сообщения:
    203
    Адрес:
    Ukraine
    могу предположить, что вскрытие корпуса детектится инфракрасным комплектом передатчик-приёмник, который запаивается на матплату(только там где наверняка не может пролегать шлейф или еще что либо...) и тогда это дело бесконтактно может определяеться, как есть препятствие(отраженный сигнал получает приемник) либо нет его т.е. вскрытие налицо.
     
  7. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    в данном случае hardware monitor реализуется как одна из функций SIO-чипа -- отдельное логическое устройство в его составе, такое же как FDC, KBC, COM, MIDI и тп. Порты типа 2Eh-2Fh предназначены для управления Super I/O чипом в целом, в частности для задания баз портов логических устройств или их выборочного запрещения. А вот по этим базам и ведется конкретная работа со встроенными в SIO-чип функциями, в т.ч. и с хардваре монитором. По крайней мере для винбондовских Super I/O это так. ;) Т.е. порты 2Eh-2Fh как раз предназначены для ответа на твой вопрос темы -- они знают. ;) Ну еще отдельная песня -- доступ к сенсорам ч/з SMBus. Может теоретически быть так, что на LPC висят одни сенсоры, а на SMBus -- другие (взаимодополняющие), плюс до кучи есть сенсоры, встроенные непосредственно в южный мост (afair у VIA).
     
  8. mr_Infern0

    mr_Infern0 New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2007
    Сообщения:
    52
    Ладно, а что насчёт MSR регистров там вроде тоже может лежать значение thermal sensor'а?
     
  9. lukash

    lukash New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2006
    Сообщения:
    142
    mr_Infern0

    Я вроде как разобрался, но если что не так, пусть знающие поправят.
    Руководствуюсь даташитом на мультик Winbond W83627HF

    Обращение к датчикам осуществляется через
    Port 295h: Index port.
    Port 296h: Data port. (из даташита)

    Код (Text):
    1. MOV DX,295H
    2. MOV AL, ADRES
    3. OUT DX,AL
    4. MOV DX,296H
    5. IN  AL,DX
    Где адрес (опять же для W83627HF):

    Код (Text):
    1. 20h     (60h)   VCOREA reading
    2. 21h     (61h)   VCOREB reading
    3. 22h     (62h)   +3.3VIN reading
    4. 23h     (63h)   +5VIN reading
    5. 24h     (64h)   +12VIN reading
    6. 25h     (65h)   -12VIN reading
    7. 26h     (66h)   -5VIN reading
    8. 27h     (67h)   Temperature reading
    9. 28h     (68h)   FAN1 reading
    10. Note: This location stores the number of counts of the
    11. internal clock per revolution.
    12. 29h     (69h)   FAN2 reading
    13. Note: This location stores the number of counts of the
    14. internal clock per revolution.
    15. 2Ah     (6Ah)   FAN3 reading
    16. Note: This location stores the number of counts of the
    17. internal clock per revolution.
    18. 2Bh     (6Bh)   VCOREA High Limit, default value is defined by
    19. Vcore Voltage +0.2v.
    20. 2Ch     (6Ch)   VCOREA Low Limit, default value is defined by Vcore
    21. Voltage -0.2v.
    22. 2Dh     (6Dh)   VCOREB High Limit.
    23. 2Eh     (6Eh)   VCOREB Low Limit.
    24. 2Fh     (6Fh)   +3.3VIN High Limit
    25. 30h     (70h)   +3.3VIN Low Limit
    26. 31h     (71h)   +5VIN High Limit
    27. 32h     (72h)   +5VIN Low Limit
    28. 33h     (73h)   +12VIN High Limit
    29. 34h     (74h)   +12VIN Low Limit
    30. 35h     (75h)   -12VIN High Limit
    31. 36h     (76h)   -12VIN Low Limit
    32. 37h     (77h)   -5VIN High Limit
    33. 38h     (78h)   -5VIN Low Limit
    34. 39h     (79h)   Temperature sensor 1 (VTIN1) High Limit
    35. 3Ah     (7Ah)    Temperature sensor 1 (VTIN1) Hysteresis Limit
    36. 3Bh     (7Bh)   FAN1 Fan Count Limit
    37. Note: It is the number of counts of the internal clock
    38. for the Low Limit of the fan speed.
    39. 3Ch     (7Ch)   FAN2 Fan Count Limit
    40. Note: It is the number of counts of the internal clock
    41. for the Low Limit of the fan speed.
    42. 3Dh     (7Dh)   FAN3 Fan Count Limit
    43. Note: It is the number of counts of the internal clock
    44. for the Low Limit of the fan speed.
    45. 3E- 3Fh     (7E- 7Fh)   Reserved
    Так, например, чтоб прочитать обороты вентилятора проца:

    Код (Text):
    1. MOV DX,295H
    2. MOV AL, 28h
    3. OUT DX,AL
    4. MOV DX,296H
    5. IN  AL,DX
    6. MOV Count,al
    PRM= 1350000/(count*Divisor), где Divisor считывается точно таким же способом.
    У меня все читается корректно:)

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

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

    Код (Text):
    1. MOV DX,2Eh
    2. MOV AL,87h
    3. OUT DX,AL
    4. OUT DX,AL
    Затем через глобальные регистры нужно выбрать номер логического устройства

    Код (Text):
    1. MOV DX,2EH
    2. MOV AL,07H
    3. OUT DX,AL ; point to Logical Device Number Reg.
    4. MOV DX,2FH
    5. MOV AL,0bH ; Hardware monitor
    6. OUT DX,AL
    Вот номера логических устройств этого мультика:

    Код (Text):
    1. FDC (logical device 0)
    2. PRT (logical device 1)
    3. UART1 (logical device 2)
    4. UART2 (logical device 3)
    5. KBC (logical device 5)
    6. CIR (Consumer IR logical device 6)
    7. GPIO1 (logical device 7)
    8. GPIO2 (logical device 8)
    9. GPIO3 (logical device 9)
    10. ACPI (logical device A)
    11. Hardware monitor (logical device B)
    Затем нужно задать базы портов логических устройств для работы с ними

    Код (Text):
    1. CR60, CR 61 (Default 0x00, 0x00)
    2. These two registers select Hardware Monitor base address [0x100:0xFFF] on 8-byte boundary.
    3.  
    4. MOV DX,2EH
    5. MOV AL,60H  ;для Logical Device’а указанного выше
    6. OUT DX,AL
    7. MOV DX,2FH
    8. MOV AL,BASE  ;база порта логического устройства
    9. OUT  DX,AL
    Тут я немного запутался.

    _BC_
    Зачем мне устанавливать новую базу, если я могу прочитать нужное мне значение по базе 290h и оно корректно читается? Или это разные базы?

    Просто интересно, вот и спросить решил:)
     
  10. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    Базу устанавливает биос (по даташиту дефолтовая 0). 290h -- это не какая-то константа, базу можно настроить и на другой адрес. Обрати внимание на управляющие регистры 60h-61h для лог.девайса 0Bh -- именно там она прописана (CR60 = 02h, CR61 = 90h). Т.е. для данных чипов лучше не привязываться к 290h, а брать базу из 60h-61h (со страницы 0Bh).
     
  11. mr_Infern0

    mr_Infern0 New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2007
    Сообщения:
    52
    А если нет SIO, а HM приаттачен к южному мосту (LM78 например), порты 2Eh, 2Fh валидны (или у каждого южного моста по своему реализовано)?
     
  12. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    на VIA'шных южниках, что со встроенным Super I/O и hardware monitor'ом (VT8231, VT82C686A|B) оно всё программится ч/з pci conf.
    Hardware monitor на них в сплошном блоке I/O портов (база в pci conf), без всяких index-data.
     
  13. VaStaNi

    VaStaNi Member

    Публикаций:
    0
    Регистрация:
    1 июн 2004
    Сообщения:
    203
    Адрес:
    Ukraine
    "хитрые игры" с портами 2E 2F были коллективно разрулены здесь
    http://www.meos.sysbin.com/viewtopic.php?t=470&start=105
    рекомендую вчитаться + маны!
     
  14. mr_Infern0

    mr_Infern0 New Member

    Публикаций:
    0
    Регистрация:
    13 фев 2007
    Сообщения:
    52
    У кого-нибудь есть нормальные туторы на SMbus?
     
  15. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    а чем тебя доки с их сайта SMBus не устраивают, ИМХО вполне всё читаемо.
     
  16. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    n0name
    Там нормальных нет.

    mr_Infern0
    Туторилов, нет собственно в даташитах от интел более или менее расписан SMBus.