Page 12 of 12

Re: APIC

Posted: Mon Jun 10, 2013 2:14 pm
by Serge
CleverMouse
Спасибо, я проверю код apic немного позже. За два года уже всё забыл.

Re: APIC

Posted: Sun Dec 21, 2014 5:59 pm
by pascualle
Serge,

запустил /rd/1/drivers/acpi
убедился, evices.dat есть
сохранил образ на флешку

пошла перезагрузка

Создание процесса ядра
Инициализация IRQ
Инициализация PIC
Инициализация системной v86 машины
Инициализация системного таймера
Попытка инициализации APIC
Включить прерывания 2, 13
Поиск floppy дисководов
Запрещение прерывания в контроллере IDE
Поиск жестких дисков и ATAPI приводов
Запрещение прерывания в контроллере IDE
Поиск жестких дисков и ATAPI приводов
Получение памяти для кэша
Поиск разделов на дисковых устройствах
Инициализация системного каталога /sys
Инициализация рамдиска
Разрешение прерывания в контроллере IDE
Установка обработчиков прерываний IDE
Разрешение прерывания в контроллере IDE
Установка обработчиков прерываний IDE
APIC не найден
Количество оперативной памяти 3500
Установка настроек окон по умолчанию
Установка фона
Резервирование IRQ и портов
Частота процессора 3200
Установка мыши

черный экран и курсор мышки посредине, система ни на что не реагирует.

Re: APIC

Posted: Mon Mar 02, 2020 7:33 am
by dunkaist
I had a great time enabling kolibri on my relatively new laptop.

First I tried kolibri.efi from the latest autobuild. It booted but no devices worked except mouse and keyboard.

Then I prepared DEVICES.DAT file using devman by Serge and put the file to /DRIVERS/ directory. It booted but even mouse and keyboard didn't work.

It turned out that my laptop has two I/O APICs, what kolibri didn't expect. While parsing MADT table kolibri put the base address of the first I/O APIC to a variable, and then overwrote the variable with the base address of the second I/O APIC. Thus the first one was never set up properly.

Another issue was that kolibri didn't expect more than 24 interrupts. My laptop has two I/O APICs: one for 24 interrupts and another for 32, i.e. 56 total. It was not enough to just replace 24 with 56 in the corresponding macro because the active interrupt was indicated using a bitmask set/reset via bts/btr instructions, and 56 bits don't fit a single dword. I replaced bts/btr with functions.

It is interesting that our int 0x40 has the same vector as IRQ0x20 at the moment. In theory, I/O APIC can be programmed to map IRQs 0-0x1f to vectors IRQ+0x20, and IRQs 0x20+ to vectors IRQ+0x21. I didn't implement this, good luck.

I committed support for more than one I/O APIC and more than 24 interrupts in r7733. For PIC mode nothing should change.

PCIDEV program has been updated accordingly.

Unfortunately, neither ethernet nor sound cards work for me. However sata disks do work in native mode using ahci driver.

Re: APIC

Posted: Thu Apr 16, 2020 4:59 pm
by Leency
Reboot still doesn't work in Qemu. Is it hard to debug it and fix? Probably if we could fix QEMU then reboot will work on some real devices.

Re: APIC

Posted: Fri Apr 17, 2020 9:54 am
by dunkaist
QEMU PC emulator version 0.10.6, Copyright (c) 2003-2008 Fabrice Bellard
What about a more recent version (4.2.0 at the moment)?

Re: APIC

Posted: Sat Apr 18, 2020 3:06 pm
by Leency
dunkaist wrote:
QEMU PC emulator version 0.10.6, Copyright (c) 2003-2008 Fabrice Bellard
What about a more recent version (4.2.0 at the moment)?
In the new QEMU reboot works well.

Re: APIC

Posted: Wed May 13, 2020 8:00 am
by Ghost
dunkaist wrote:I committed support for more than one I/O APIC and more than 24 interrupts
Отличная работа!

Eee PC 901 shutdown troubles

Posted: Sun May 17, 2020 9:35 pm
by Uri
Hello Dunkaist!

Notebook Eee PC 901.
When I choose shutdown, os stop working, but notebook keep working until I press and hold power button.
When I choose core restart, system restart, but don,t start again.
Reset work correctly.

Re: APIC

Posted: Sun May 17, 2020 10:02 pm
by dunkaist
Uri,

Are you sure you report to 'APIC' topic an issue when APIC is enabled?
If yes, does shutdown work when APIC is disabled?

Re: APIC

Posted: Tue Jun 23, 2020 5:43 pm
by Kopa
А, можно добавить APIC в сборку KolibriOS для ручной загрузки в Drivers т.к. у меня без него не видны диски в системе.

Re: APIC

Posted: Tue Jun 22, 2021 4:08 pm
by Leency
Ранее Serge писал в этой теме viewtopic.php?f=1&t=1195&hilit=devices. ... 105#p37822
Serge wrote:В ревизии #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" на SVN. Теперь он запускает "acpi.dll" из своей же папки. Больше не нужно очищать место на /rd/1 и копировать туда файлы. Хотя можете, кто ж запрещает... Также лог теперь пришется в /tmp0/1/acpi.log чтобы гарантировано хватило ему места (тут я правил драйвер через HEX редактор).

И в конце концов я добавил данный драйвер в DRVINST viewtopic.php?f=48&t=3419
Который что может сам всё сделает, а дальше покажет упрощенный вариант руководства. Даже перевёл на английский.
http://websvn.kolibrios.org/filedetails ... readme.txt

Всё для людей :D

Re: APIC

Posted: Sat Jul 24, 2021 3:50 pm
by punk_joker
How long time run devman takes?

Re: APIC

Posted: Sat Jul 24, 2021 5:54 pm
by dunkaist
A second or two.