Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вс окт 22, 2017 12:11 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 167 сообщений ]  На страницу Пред. 16 7 8 9 1012 След.
Автор Сообщение
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Вт июл 26, 2011 11:24 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Да. Здесь можно не кодить. А вот вменяемая система именования всех устройств очень нужна.


Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Сб авг 20, 2011 10:21 am 
Не в сети

Зарегистрирован: Вс ноя 04, 2007 2:46 am
Сообщения: 390
Я немного не понял, APIC овский код сейчас стабилен? Тот, что из kolibri-acpi я имею ввиду.


Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Сб авг 20, 2011 10:24 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Вполне. Ждёт частичной заливки на транк.


Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Чт авг 25, 2011 11:53 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Кто-нибудь знает, нужен этот pic_delay, или его можно смело удалить ? Я думаю что на всех Pentium+ чипсетах он не нужен
Код:
pic_delay:
        jmp     pdl1
pdl1:   ret

rerouteirqs:
        cli
        mov     al,0x11         ;  icw4, edge triggered
        out     0x20,al
        call    pic_delay
        out     0xA0,al
        call    pic_delay


Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Чт авг 25, 2011 12:39 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
По-моему, это не более чем дань древней традиции -- давать микросекундную задержку между двумя последовательными обращениями к портам одного контроллера. В старых 286/386 BIOSах иначе с портами и не работали. Если порты собраны на отдельных микросхемах (8251, 8250 и т.п.) - только так можно было гаратнировать надежное переключение их входных CMOS-ключей.
Сейчас эти задержки реально не нужны, все контроллеры сидят на внутренних мостовых шинах и надежно переключаются без шаманских софтовых плясок.
К тому же на современных CPU реальная задержка этого кода все равно будет 5-10 тактов, не больше.


Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Чт авг 25, 2011 1:05 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Почищу я это безобразие в следующем коммите.
Плохо что IA32 ISA нет аналога nanosleep(). Везде приходится извращаться, гонять пустые циклы или писать в отсутствующий порт.


Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Чт авг 25, 2011 10:13 pm 
Не в сети

Зарегистрирован: Ср дек 26, 2007 5:09 am
Сообщения: 214
Ну а PIC так вообще является частью чипсета давным-давно, это не какой-то внешний контроллер непонятного производителя, который может быть и тормозным... По идее, если при работе с ним нужны были бы задержки, это оговаривалось бы в документации на чипсет, но я такого не припомню.


Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Пн сен 05, 2011 9:29 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пн мар 20, 2006 10:44 am
Сообщения: 557
Hello guys! ) ну и CleverMouse

Давненько меня тут не было. Как то все закрутилось, зарабатывание денег, жилье, покупка машины... Потихоньку буду перечитывать кучу новых сообщений в форуме, вникать в курс дела и освежать что осталось в памяти.

Serge как всегда говорит правильные вещи. ACPI системе нужен как воздух. И нужен он не только для IRQ, в нем много вещей можно делать. Прочитайте мельком ASL, декомпилируйте AML из своего ACPI кода и вы увидите что часть драйверов есть в самой системе, и они уже запилены под конкретную логику. И кстати информация про APIC, SMB, SIO(wtf?), HPET там есть. Ну и плюшки вроде спец кнопок от Power до специфичных на буках там тоже есть.

>>А что решил делать с именованием?
Если мне память не изменяет то в ASL есть именования типовых устройств, можно пользоваться им.

А, ну и какие у меня мысли об этом.
На первом этапе вкорячить ACPICA/linux ACPI, и отладить получившуюся архитектуру. Вторым этапом переводить интерпретатор на ассемблер, для этого нужен человек хорошо разбирающийся в ASL/AML. Необходимость второго этапа будет видна после реализации первого.


Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Пн сен 05, 2011 9:59 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Ghost
Привет ! Рад, что ты вернулся. Твой патч замечательно работает. Буду постепенно переносить его в транк. Не спеша, без революций.


Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Пт сен 23, 2011 6:02 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
В ревизии #2231 залил поддержку APIC в основное ядро. Чтобы включить APIC надо:
1)Скомпилировать и записать в образ ядро #2231+ или скачать свежую ночную сборку.
2)Скачать и записать в /rd/1/drivers нумератор устройств.
4)Освободить в образе несколько килобайт для лога ACPI. (У меня 12 Кб)
5)Загрузить систему и запустить /rd/1/drivers/acpi
6)Убедиться, что папке /rd/1/drivers присутсвует файл devices.dat
7)Сделать рестарт ядра
9)Проверить работу ядра и драйверов
10)Удалить нумератор устройств и сохранить образ. Теперь APIC будет включаться при каждой загрузке ядра.

Детали реализации.

Ядро в процессе инициализации, ещё до переключения в режим страничной адресации, читает таблицы ACPI и определяет базовые адреса IOAPIC и Local APIC. На втором этапе функция APIC_init проверяет базовые адреса и загружает файл devices.dat. Если файл загружен успешно, ядро настраивает IOAPIC и Local APIC, переключает обработку прерываний в режим APIC и патчит номера линий IRQ в конфигурационном пространстве PCI значениями из devices.dat.


Последний раз редактировалось Serge Пт сен 23, 2011 8:30 pm, всего редактировалось 2 раза.

Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Пт сен 23, 2011 8:18 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Великое событие. Поздравляю, Serge!
Протестирую завтра утром, сегодня уже сил нет.

Оффтопик: Замечательный сегодня день. Я вот что думаю: следующей версии Колибри может сразу номер 0.9.0.0 дадим? А там и 0.10.0.0, глядишь...


Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Пт сен 23, 2011 8:55 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Основная заслуга принадлежит Ghost-y. Весь код для APIC написал он.


Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Пт сен 23, 2011 9:20 pm 
SoUrcerer писал(а):
следующей версии Колибри может сразу номер 0.9.0.0 дадим? А там и 0.10.0.0, глядишь...[/offtopic]

Версии Колибри нумеруется в десятичной системе для каждого разряда. По крайней мере так задумывалось изначально. Следовательно за версией 0.9.9.9 идет 1.0.0.0, а никак не 0.10.0.0


Вернуться к началу
   
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Пт сен 23, 2011 9:23 pm 
Serge
У меня два вопроса:
1) Требуется полномасштабное тестирование?
2) На данном этапе есть какое-либо практическое применение или это все-же один из промежуточных этапов внедрения?


Вернуться к началу
   
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Пт сен 23, 2011 10:02 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Mario
1)Тестирование всегда нужно. Интересно сравнить логи нумератора (drivers/acpi.log) на разных компьютерах.
2)Что понимается под практическим применением ? Это контроллер прерываний. Без него операционная система не работает. Если сравнивать PROFIT с работой через 8259A то не знаю.
Может уменьшится время доставки прерывания от устройства к процессору.
art_zh сможет использовать MSI в своих разработках.
Наконец это маленький шажок к SMP.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 167 сообщений ]  На страницу Пред. 16 7 8 9 1012 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB