Точное определение частоты CPU

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

  1. Exp10der

    Exp10der Мастер дзена

    Публикаций:
    0
    Регистрация:
    27 авг 2007
    Сообщения:
    337
    Адрес:
    Красноярск
    PSR1257 что кстати в msr'ах искал если не секрет :) ?
     
  2. PSR1257

    PSR1257 New Member

    Публикаций:
    0
    Регистрация:
    30 ноя 2008
    Сообщения:
    933
    Тема была научиццо устанавливать свой SMI, в идеале как довесок к настоящему - ну тама логгеры и все такое. Это же абсолютно прозрачная вещь [наверное] под любой осью.

    На первых 2-3 чипсетах [старых] все было норм, но третий оказалсо sly:тама есть какой-то битег и если SMI его ставит, то его нельзя больше читать/апдейтить. Естественна делаеццо это все еще когда еще BIOS ковыряеццо, поэтому сначала я от бессилия сдампил BIOS и начал его ковырять... нашел callback'и на которые никакие int'ы не указывали... кто их может звать? видимо SMI... нашел несколько кусков типа:

    mov reg1,spec_value
    mov dx,spec_value
    in/out dx,al
    @@wait: jmp @@wait

    ну или типа того - явно кто-то должен получить контроль при обращении к порту (потом я узнал что это вроде бы даже и докуметировано, и у SMI есть свой вот такой интерфейс). Стал дергать все такие возможные функции и смотреть - может при определенно подобранном запросе SMI "отдасццо", ну или накрайняг установит user callback... При этом пыталсо следить за MSR'ами - пыталсо понять что же происходит в "черном ящиге" SMI.

    В результате тупо пропатчил все callback'и в BIOS'е и вызвал одну из этих функций... получил вызов и сдампил SMI. Т.е. патчить можно, но вот этот бит сбросить уже никак нельзя, только после RESET.

    ps Вот примерно что было:

    Код (Text):
    1. ;   This method is estimated on the fact that original SMI handler MAY calls
    2. ; some routines in BIOS while handling #SMI exception. So we could "spoil"
    3. ; original BIOS from address F000:0000 till F000:BIOS_TEST_AREA (if BIOS
    4. ; is settled there) and expect some crash - if SMI handler calls some subs
    5. ; into this region (F000:0000..BIOS_TEST_AREA).
    6. ;   In this example we'll force #SMI by some special "hidden" service of SMI.
    7. ; Output some bytes onto PORT 000B2h can force #SMI (almost "official"
    8. ; method). Plus for this BIOS there are some "hidden" services. For example:
    9. ;
    10. ; ; Example 0. Hidden service 0
    11. ; mov  si,5342h ; Some "magic" value
    12. ; mov  bx,offset buf
    13. ; mov  ax,seg buf
    14. ; mov  es,ax ; es:bx -> pointer to some special buf
    15. ; mov  dx,0B2h
    16. ; mov  al,23h
    17. ; out  dx,al ; Force #SMI by writting onto PORT 00B2h
    18. ;
    19. ; In this case buf could contain packets like 20h,00,00... or 2Ah,00,...
     
  3. Ra_

    Ra_ New Member

    Публикаций:
    0
    Регистрация:
    4 мар 2007
    Сообщения:
    289
    PSR1257
    По настроению просматриваю старую литературу...
    Посмотри главу "Аппаратный мониторинг системы"
    у Несвижского "Программирование аппаратных средств в Windows"
    ;) вдруг не читал )))
     
  4. DAIM

    DAIM New Member

    Публикаций:
    0
    Регистрация:
    29 авг 2010
    Сообщения:
    49
    то:Ra_
    PSR1257 мож помер уже, на дату то посмотри;)
     
  5. Ra_

    Ra_ New Member

    Публикаций:
    0
    Регистрация:
    4 мар 2007
    Сообщения:
    289
    С чего бы, недавно пост был
    http://wasm.ru/forum/viewtopic.php?pid=422023#p422023