я почти разобрался с local apic(xapic/x2apic), но не где не могу найти документацию на sapic. если есть ссылки или сами можете ответить, просьба написать.
спасибо. я так понял что sapic используется на itanium, а он в свою очеред использует х64 архитектуру. он не совместим с х86-64, и устарел. значит на современных пк sapic не используется. если я не прав, поправте?
abcd008 Ошибаешься Itanium это IA64. А x64=x86-64=AMD-64=IA32e=EM64T. Да не совместим. Хотя на начальном этапе загрузки и тот и тот эмулирует IA-32. Я бы не сказал что устарел. Просто осталя в стороне. Просто решение AMD благодоря поддержки программ IA-32 и в long mode оказалось более удачным. А Itanium такой поддержки не имеет.
у itanium совсем другие коды команд. Он быстрее обычного em64t. как он может во время загрузки эмулировать другой режим, если он чисто 64 битный.
а кто знает в каком режиме надо программировать apic если в таблице acpi(fadt) не указана: не логическая(кластерная), не физическая адресация.
abcd008 Логические адресса должен был задать биос. Если он этого не зделал тогда через физическую назначаем логическии адресса. Назначать можешь как хочешь. А вообще можно посмотреть как биос адресса распределяет непомню помойму ioapic присваивается номер 1.
я не про то какие адреса присваиваются,а как программировать apic: -у него три режима адресации(физический,логические(плоский и кластерный)) в таблице acpi(fadt) есть флаги как должен программироваться apic (физический или лог.кластерный) ведь есть еще плоский режим адресации, а флага такова нету. вот я и спрашиваю: если флаги не установлены, какой режим использовать по умолчанию???
А откуда такой режим? В интел написанно про два. Ты спецификацию читал? FORCE_APIC_PHYSICAL_DESTINATION_MODE FORCE - озночает принудительно.
я и написал один физический и ДВА логических(подрежима) force- принудительно. если флаг стоит то я использую тот режим какой указывае флаг. но если они не установлены - тогда что??? ведь apic id установлен во время post для конкретного режима?
Pavia я пока использую физическую адресацию, все работает. просто у меня два ядра. еще я читал про бозовый адрес apic у intel, и не понял там написано что для каждого local apic надо назначить свой адрес. на других сайтах пишут что он у всех local apic одинаковый.
abcd008 У Local APIC процессора p6 и старше адресс одинаковый и обращение идет по внутренней шинею. Каждое ядро обращается только к своему. Но есть возможность(не обязан) разместить в разные. А вот у просто Pentium у которого встроенный Local APIC. Запрос идет по внешней шине и нужно разносить. У IO APIC они всегда должны быть разнесены.
тоесть в новых процессорах адрес менять не надо? а в таблице acpi(madt) как-нибудь сообщается, у какого local apic какой адрес. там ведь в заголовке только один адрес, а дополнительная таблица применяется если только адрес за пределами 4gb
А зачем для инициализации AP процессора два раза посылать STARTUP INI? просьба не просто просматривать тему, но и отвечать что-нибудь!!!
Pavia еще есть такой вопрос: читал здесь на форуме, что для каждого ядра процессора надо отдельно включать линию a20. Вопрос так ли это????, ведь контроллер клавиатуры один.