Кто-нибудь знает на каких портах висит микросхема аппаратного мониторинга PC health короче? Нужно темп. CPU получить.
mr_Infern0 Либо на ISA 290h или на SMBus. Тут либо исходники LM_Sensors качаем разбираемся. Лабы качаем даташиты, на контролеры Super I/O. Так как организация у них разная.
Извиняюсь, что влезаю со своим вопросом, просто интересно как Еверест, например, определяет вскрыт корпус или нет? Мультик (как я понял, именно он обрабатывает датчики) Winbond W83627HF, доступ к датчикам через ISA 290h. И где находятся эти датчики (что за вскрытия корпуса отвечают) Я уже всю матплату с фонариком облазил (мол попадает света больше => корпус вскрыт), но Еверест говорит, что вскрытие корпуса не обнаружено.
У меня такой-же Super I/O но никаких датчиков не находил (фонарик не поможет - а если ночь, а ты корпус вскрыл) , кстати его вроде им через порты 2Eh - 2Fh рулить можно, У меня есть даташит, но там тока о конфигурировании Super I/O и ни слова от том чё и где на ISA 290h , может у кого другая дока есть (или сорцы)?
могу предположить, что вскрытие корпуса детектится инфракрасным комплектом передатчик-приёмник, который запаивается на матплату(только там где наверняка не может пролегать шлейф или еще что либо...) и тогда это дело бесконтактно может определяеться, как есть препятствие(отраженный сигнал получает приемник) либо нет его т.е. вскрытие налицо.
в данном случае hardware monitor реализуется как одна из функций SIO-чипа -- отдельное логическое устройство в его составе, такое же как FDC, KBC, COM, MIDI и тп. Порты типа 2Eh-2Fh предназначены для управления Super I/O чипом в целом, в частности для задания баз портов логических устройств или их выборочного запрещения. А вот по этим базам и ведется конкретная работа со встроенными в SIO-чип функциями, в т.ч. и с хардваре монитором. По крайней мере для винбондовских Super I/O это так. Т.е. порты 2Eh-2Fh как раз предназначены для ответа на твой вопрос темы -- они знают. Ну еще отдельная песня -- доступ к сенсорам ч/з SMBus. Может теоретически быть так, что на LPC висят одни сенсоры, а на SMBus -- другие (взаимодополняющие), плюс до кучи есть сенсоры, встроенные непосредственно в южный мост (afair у VIA).
mr_Infern0 Я вроде как разобрался, но если что не так, пусть знающие поправят. Руководствуюсь даташитом на мультик Winbond W83627HF Обращение к датчикам осуществляется через Port 295h: Index port. Port 296h: Data port. (из даташита) Code (Text): MOV DX,295H MOV AL, ADRES OUT DX,AL MOV DX,296H IN AL,DX Где адрес (опять же для W83627HF): Code (Text): 20h (60h) VCOREA reading 21h (61h) VCOREB reading 22h (62h) +3.3VIN reading 23h (63h) +5VIN reading 24h (64h) +12VIN reading 25h (65h) -12VIN reading 26h (66h) -5VIN reading 27h (67h) Temperature reading 28h (68h) FAN1 reading Note: This location stores the number of counts of the internal clock per revolution. 29h (69h) FAN2 reading Note: This location stores the number of counts of the internal clock per revolution. 2Ah (6Ah) FAN3 reading Note: This location stores the number of counts of the internal clock per revolution. 2Bh (6Bh) VCOREA High Limit, default value is defined by Vcore Voltage +0.2v. 2Ch (6Ch) VCOREA Low Limit, default value is defined by Vcore Voltage -0.2v. 2Dh (6Dh) VCOREB High Limit. 2Eh (6Eh) VCOREB Low Limit. 2Fh (6Fh) +3.3VIN High Limit 30h (70h) +3.3VIN Low Limit 31h (71h) +5VIN High Limit 32h (72h) +5VIN Low Limit 33h (73h) +12VIN High Limit 34h (74h) +12VIN Low Limit 35h (75h) -12VIN High Limit 36h (76h) -12VIN Low Limit 37h (77h) -5VIN High Limit 38h (78h) -5VIN Low Limit 39h (79h) Temperature sensor 1 (VTIN1) High Limit 3Ah (7Ah) Temperature sensor 1 (VTIN1) Hysteresis Limit 3Bh (7Bh) FAN1 Fan Count Limit Note: It is the number of counts of the internal clock for the Low Limit of the fan speed. 3Ch (7Ch) FAN2 Fan Count Limit Note: It is the number of counts of the internal clock for the Low Limit of the fan speed. 3Dh (7Dh) FAN3 Fan Count Limit Note: It is the number of counts of the internal clock for the Low Limit of the fan speed. 3E- 3Fh (7E- 7Fh) Reserved Так, например, чтоб прочитать обороты вентилятора проца: Code (Text): MOV DX,295H MOV AL, 28h OUT DX,AL MOV DX,296H IN AL,DX MOV Count,al PRM= 1350000/(count*Divisor), где Divisor считывается точно таким же способом. У меня все читается корректно ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Дальше в том же даташите сказано, что нужно установить номер логического устройства, с которым мы собираемся работать, но вначале нужно выполнить инициализацию мультика Code (Text): MOV DX,2Eh MOV AL,87h OUT DX,AL OUT DX,AL Затем через глобальные регистры нужно выбрать номер логического устройства Code (Text): MOV DX,2EH MOV AL,07H OUT DX,AL ; point to Logical Device Number Reg. MOV DX,2FH MOV AL,0bH ; Hardware monitor OUT DX,AL Вот номера логических устройств этого мультика: Code (Text): FDC (logical device 0) PRT (logical device 1) UART1 (logical device 2) UART2 (logical device 3) KBC (logical device 5) CIR (Consumer IR logical device 6) GPIO1 (logical device 7) GPIO2 (logical device 8) GPIO3 (logical device 9) ACPI (logical device A) Hardware monitor (logical device B) Затем нужно задать базы портов логических устройств для работы с ними Code (Text): CR60, CR 61 (Default 0x00, 0x00) These two registers select Hardware Monitor base address [0x100:0xFFF] on 8-byte boundary. MOV DX,2EH MOV AL,60H ;для Logical Device’а указанного выше OUT DX,AL MOV DX,2FH MOV AL,BASE ;база порта логического устройства OUT DX,AL Тут я немного запутался. _BC_ Зачем мне устанавливать новую базу, если я могу прочитать нужное мне значение по базе 290h и оно корректно читается? Или это разные базы? Просто интересно, вот и спросить решил
Базу устанавливает биос (по даташиту дефолтовая 0). 290h -- это не какая-то константа, базу можно настроить и на другой адрес. Обрати внимание на управляющие регистры 60h-61h для лог.девайса 0Bh -- именно там она прописана (CR60 = 02h, CR61 = 90h). Т.е. для данных чипов лучше не привязываться к 290h, а брать базу из 60h-61h (со страницы 0Bh).
А если нет SIO, а HM приаттачен к южному мосту (LM78 например), порты 2Eh, 2Fh валидны (или у каждого южного моста по своему реализовано)?
на VIA'шных южниках, что со встроенным Super I/O и hardware monitor'ом (VT8231, VT82C686A|B) оно всё программится ч/з pci conf. Hardware monitor на них в сплошном блоке I/O портов (база в pci conf), без всяких index-data.
"хитрые игры" с портами 2E 2F были коллективно разрулены здесь http://www.meos.sysbin.com/viewtopic.php?t=470&start=105 рекомендую вчитаться + маны!
n0name Там нормальных нет. mr_Infern0 Туторилов, нет собственно в даташитах от интел более или менее расписан SMBus.