народ у меня возникла такая проблема: в MP спецификайии есть описание IMCR регистра. Он включает режим PIC или APIC. Вопрос в том как узнать есть ли этот регистр или не в системе ACPI, если нет таблици _MP_?????
IMCR использовался на Pentium pro как костыль. Который не нужен. В ACPI есть метод PIC при помощи которого ты можешь задать режим APIC или PIC или SAPIC.
помоему ты не прав. Linux досих пор использует imcr. а метод pic просто выбирает режим для возврата параметров конфигурации устройств. я просто разбирал PIC метод, он не выключает pic. как тогда по твоему отключить PIC. и заставить работать только APIC?
В Local APIC запрещаешь PIC при помощи маскирования прерываний по LINT0. В IO APIC соответственно если хочешь отказаться совсем от PIC маскируешь 0 вход все остальные разрешаешь. Собственно так и должно быть. IO APIC информирует Local APIC о прерывании по шине APIC bus поэтому ему ненужен LINT0. А в пентиума1 и второго тоже была 3 vire bus и проблемы.
еще не проверил. может у кого еще есть какие предложения??? Блин столько статей про APIC на форуме и не в одном про IMCR. Pavia, я так понял, что Ты хочешь сказать, что в новых компах нет IMCR регистра? А если он есть, то как это узнать если нет _MP_ таблиц.
Только что проверил, у меня на новом ноуте IMCR есть. Если туда под DOSом записать единицу, то все прерывания перестают обрабатываться. Следовательно PIC отключается. Еще я перечитал MP спецификацию. И там написано что IMCR есть во всех системах где есть PIC и APIC одновременно. А если PIC отсутствует то надо проверять IMCR через _MP_ таблицу. Но таких систем я еще не встречал, и наверно они не скоро появятся. Из этого я сделал вывод, что IMCR есть во всех компах. Надеюсь я прав.(ПОПРАВТЕ если не так).
abcd008 Я думаю ничего страшного в том что ты без проверки будешь использовать этот порт нет. Linux использует. Ты же не проверяешь всякие там PIC. IMCR нигде не задокументирован кроме как в MP спецификации. ACPI сообщает что процу принадлежит только один порт 90h. А PIC тоже не принадлежит. Еще попадалось что в 286 был порт 22h-23h для чего-то использовался и то как недокументированные. в 286 (APIC нет) По поводу статей. Это ты загнул. Тут профессионально кто занимался двое трое остальное шумиха.
Люди поделитесь пожалуйста каким нибудь рабочим примером работы с APIC (перенаправление прерываний) если на FASM то вообще замечательно
Pavia извини, что не в тему. Я помню Тебе удалось собрать сборку DUET для флешки. У меня при компиляции все время ошибки. Большая просьба скинь мне рабочий образ флешки(собранный DUET). Буду очень благодарен, очень надо. Я могу тебе скинуть какую-нибудь документацию, У меня ее много.
Сам пока разбираюсь. могу скинуть пару доков про LOCAL APIC и IO APIC. Я сам планирую здесь поднять еще несколько вопросов(например в чем разница между логической и физической адресацией, у меня они работают одинаково).
abcd008 У меня почти вся документация есть. Кроме как на NVidea чипсет nforce 4 и на видео карты. По поводу DUET тоже надо пересибирать как время найду. Просто на другом компе. А то под витой не собирался masm не работал. Тебе под какую платформу собирать? Просто еще флэшку надо почистить не хочу чтобы в интет попали личные данные с нее.
А как понять под какую систему? Она же просто грузится и эмулирует UEFI. Будет время скинь готовый образ. Я просто хочу системку написать, а проверить неначем. По видео картам к меня тоже нет. Только не ATi немного было. А у тебя есть кокументация на rtl8185L?