OSDev
http://osdev.ru/

APIC
http://osdev.ru/viewtopic.php?f=6&t=412
Страница 1 из 1

Автор:  ZarathustrA [ 06 май 2011, 13:06 ]
Заголовок сообщения:  APIC

В общем картина такая: не могу отправить IPI на Application processor.

В системе два проца, оба запущены, оба выполняют код.
Подсистема прерываний настроена.
StartUp IPI и INIT IPI проходят нормально.
На Boot Processor:
if (IPI -> BP) // самопрерывание
OK;
if (IPI -> AP) // самопрерывание
FAIL; // прерывания AP не происходит

На Application Processor:
if (IPI -> BP) // самопрерывание
OK;
if (IPI -> AP) // самопрерывание
FAIL; // прерывания AP не происходит

В чем может быть проблема? Какие могут быть причины у того, что AP не ловит IPI?

Автор:  ZarathustrA [ 06 май 2011, 14:49 ]
Заголовок сообщения:  Re: APIC

Вопрос закрыт.

Было:
VOID ASMCODE Apic::EnableApic(VOID)
{
__asm mov EAX , APIC_PAGE + APIC_SPUR_INT_REG;
__asm or [EAX], 0x00000100U ;
__asm ret ;
}


Стало:
VOID ASMCODE Apic::EnableApic(VOID)
{
__asm push EBX ;
__asm mov EAX , APIC_PAGE + APIC_SPUR_INT_REG;
__asm mov EBX , [EAX] ;
__asm or EBX , 0x00000100U ;
__asm mov [EAX], EBX ;
__asm pop EBX ;
__asm ret ;
}

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/