Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пн сен 24, 2018 10:48 am

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




Начать новую тему  Ответить на тему  [ 167 сообщений ]  На страницу Пред. 14 5 6 7 812 След.
Автор Сообщение
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Ср июн 15, 2011 1:47 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1292
Mario писал(а):
А случай когда вставляется новая плата в слот системной шины - я понимаю что сейчас не самый актуальный пример, но оперативность теряется.
Если у тебя уже работает мышка и клавиатура - всегда можно подправить .ini-файл и в tinypad.

Это все равно лучше чем
Serge писал(а):
В худшем случае создаём файл ручками. Заодно используем этот файл как диспетчер устройств для бедных, чтобы не сканировать каждый раз шину при поиске устройств.


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

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3951
Mario
CleverMouse

Это могут быть ошибки биос. Сам столкнулся с такой когда занимался звуком. Контроллер AC97 на ICH0. БИОС выполнила настройку роутера но не записала номер линии в 0x3C. В результате там был дефолтный 0.
В теории БИОС должна назначать прерывания всем устройствам, но не факт, что она всегда это делает. Тем более никто не застрахован от ошибок.
Прерывания PCI расшариваются, но
-ядро не поддерживает цепочки обработчиков на одной линии. Кто последний вызвал AttachIntHandler, того и тапки.
- такая цепочка увеличивает латентность обработчика. По этой причине Линукс высчитывает пенальти для расшаренных линий и при необходимости перераспеделяет линии. Современные платформы позволяют это делать, хотя не самым интуитивно понятным образом.
В идеале каждое устройство должно иметь персональную линию irq.


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

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1613
art_zh, Колибри можно загрузить с FAT32-тома, не используя загрузчики других систем.
Mario, существует проблема - насколько я понимаю, не очень распространённая, - с тем, что BIOS может не сконфигурировать устройство. Насколько я представляю себе APIC, он не имеет к этой проблеме никакого отношения - с его помощью можно превратить входные сигналы контроллера в различные прерывания, но чтобы узнать, какой входной сигнал соответствует какому устройству/функции, нужны другие средства, типа Routing Table или ACPI.

_________________
Сделаем мир лучше!


Последний раз редактировалось CleverMouse Ср июн 15, 2011 3:54 pm, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Ср июн 15, 2011 3:52 pm 
Не в сети
Just Flooding
Аватара пользователя

Зарегистрирован: Ср май 18, 2005 10:27 am
Сообщения: 430
art_zh писал(а):
У меня более реалистичное предложение: использовать live-версию Линукса как базовый инсталлятор Колибри.
это начало пипецА аскетически-ассемблерного проекта.
Тогда могу еще более просто и более народно предложить. У всех есть винда, она стандарт, она крута, на нее куча прог написана, за два дна пишется инсталлятор-конфигуратор КолибриОС из под винды. Винда "крута", она все знает, все умеет, давайте ей доверимся и пропишем и настроим Колибри с ее помощью.
Это будет работать у всех!
Инсталляция (типа каталог создать и налить его + загрузчик в boot.ini прописать), это еще терпимо, а вот ресурсы (IRQ, DMA...) настраивать для КолибриОС из любых сторонних ОСей - кризис проекта и начало его п.....
art_zh писал(а):
Помимо всяких прочих штучек, таких как
- конфигурирование загрузчика,
- установка системы на выбранный раздел диска,
- установка подходящих драйверов,
- условная компиляция ядра в соответствии с платформой,
- и многое другое,
мы сможем
- использовать мощный линуксовский энумератор, и
- не париться с собственной конфигурацией устройств, а просто записать нужную информацию из /sys/bus/pci/devices в файл kolibri.ini.

А не выродится это в аналог виндового реестра, по сути.

Я сторонник работы с устройствами автоматически, динамически, интеллектуально.
И понятное дело это основной вопрос таланта дровосеков и архитектруры и дровного апи.
Пока в драйвере не будет тест-инита, например, то будет постоянная боязнь и прерываний и глюков и конфигураций и железа... причем судя по постам любого, даже мыши!
Жуть.
РебятЫ!!!
Есть дефлотустройства заюзанные донельзя: мишь, клавка, COMы, LPTшники, саундкарты, сетевухи(может не все) - имеют либо команды и квитирующий ответ, либо (или помимо того) команды принудительно инициализирующие личные IRQ этой дровишки. За ними давно жестко все прописано! Это же РС архитектура! Кто на них что может развесить? Корявый биос? Нахер его выбор, нам виднее!
Да немного повозится надо, запретить все кроме тестируемой линии, поднастроить кое что с регистрами и послать команду (тест-блок данных), выждать и проверить есть ли его IRQ + ответ(или адакватная реакция).
art_zh писал(а):
А потом при старте Колибри каждый раз тупо грузить конфиг-регистры прямо из этого файла.
при слове тупо, а хватаюсь за пистолет :shock:
:D ничего личного, просто у меня тут начальник, который типа главный в конторе по созданию интеллекта для устройств, т.е. над кодерами "хазяин"...
Его ГЛАВНОЕ козырное предложение всегда одинаково: "... а че тут думать, а давайте тут и тут вот втупую захерячим и все! Че париться?"


Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Ср июн 15, 2011 4:00 pm 
Не в сети
Just Flooding
Аватара пользователя

Зарегистрирован: Ср май 18, 2005 10:27 am
Сообщения: 430
CleverMouse писал(а):
но чтобы узнать, какой входной сигнал соответствует какому устройству/функции, нужны другие средства, типа Routing Table или ACPI.
а можно ВСЕ зепретить и выключить и перебирать в цикле n по одному IRQn, предварительно "спровоцировав" дровину надавить на линию и тогда механизм работает без всяких новомодных ACPI! И если проба пера успешна, занчит с болшьшой долей верояности дровина на этой линии педалить умеет. Да линий может быть несколько, но это и хорошо, мы все их протестируем и линии и дрова их. Получаем массивчик. Остается его развесить, хотя бы то что можно, что более лояльно...


Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Ср июн 15, 2011 4:31 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 790
Здравая идея! Опять-таки это обеспечит отсутствие "ненужных" закидонов со стороны BIOS/SMM


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

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1292
Не, ну если речь идет о целомудренности аскетически-ассеблерного проекта, тогда конечно я лучше помолчу.

Мне-то что - я на своей отдельно взятой платформе сам себе хозяин, чего надо разведу без всяких линуксов.
Тем более, что весь POST для AMD Fusion теперь полностью открыт.


Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Ср июн 15, 2011 5:08 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 790
Блин, как будто что-то не то сказал, - мы-то ACPI в coreboot используем.


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

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3951
Предложение такое:
Есть работающий бранч c APIC. Есть работающий нумератор устройств на базе ACPICA+pci код из Линукс. Я планирую заменить оригинальную ACPICA на порт из Линукс, он меньше. Нумератор будет генерировать файл /rd/1/drivers/devices.dat примерно такого формата

dd (bus shl 8 )+(dev shl 3)+fn
dd (DeviceID shl 16) + VendorID
dd irq_line
dd ещё что-нибудь
dd -1 ; терминатор

При инициализации ядро грузит файл и по нему патчит PCI_CFG:INT_LN для всех прописанных устройств. Если файл отсутствует запускает нумератор и возвращается к предыдущему пункту. Возможен возврат к инициализации менеджера памяти и кучи ядра, в этом случае следов ACPICA в памяти не останется.
В финале лаунчер запустит pcidev с ключом BOOT.
pcidev сканирует шину и сравнивает результат с devices.dat. Если обнаружено новое устройство, стирает devices.dat и предлагает перезагрузить компьютер (дополнительно проверяет по своей базе наличие драйвера и, в случае успеха, предлагает выполнить необходимые действия по установке драйвера)
???
PROFIT

Упакованная acpi.dll занимает 90кб если убрать из дистриба atikms останется ещё 100 Кб.


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

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1292
Serge

Двухэтажный энумератор и +90Кб системного кода (пусть и в DLL) -- и это только для того, чтобы раскидать прерывания в APIC ?!

А не разумнее ли решать проблему "снизу" -- добавить в ядро прямой код (типа bus/southbridge/apic.inc) ?
Да, этот код будет специфичным для каждой платформы, но это будет всего сотня-другая строчек.
Для многих чипсетов сейчас регистровые модели открыты, а для остальных пока можно работать по дефолту, через PIC.


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

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3951
art_zh

Приведи пример как мне перекинуть свою сетевуху BUS2:D1:F0 pic IRQ 10 на APIC. С благодарностью приму работающий код для своего интела.

Если хочется сэкономить место, достаточно набить файл ручками. И мудрит с чипсетами не надо.


Вернуться к началу
 Заголовок сообщения: Re: APIC
СообщениеДобавлено: Сб июл 23, 2011 5:42 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 790
А что, если сделать утилиту для генерации списка устройств, для каждой платформы?
Запустил - сгенерил, больше не нужна? И предоставлять возможность использования ядром этого списка, без использования енумератора?


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

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1292
Serge,
убийственный аргумент!
Особенно если учесть, что я никогда не работал с интеловскими чипсетами. И не собираюсь.

Для AMD-шных мостов такая фишка уже тестируется.

Я не лезу в чужую работу и никого не заставляю что-то делать против их воли.
Но почему я не могу высказать свое недоумение (равно как и восторг) по конкретному вопросу, который касается всех?


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

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3951
XVilka
Так я так и хочу и именно это и предлагаю. И утилита уже есть, на основе ACPICA, универсальная для всех платформ. Осталось только сделать вывод списка и загрузку его ядром с последующим патчем pci_cfg.

Я совсем не против специализированного кода, но где этот код и кто его делает ? И будет он работать на каком-нибудь VIA или NForce ? Пока есть только долгие разговоры и никакого движения. Никаих других реальных альтернатив. Вчера посмотрел исходники Minix, @#$%^ и там acpi!!! Когда успели ? Год назад ещё ничего не было.

Для себя лично я могу забить номера прямо в ядро и положить на всё большой болт. Но хочется что бы система развивалась и была дружелюбней к пользователю.


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

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3951
art_zh
Это замечательно, что тестируется. Но кто будет помогать остальным ? Ты не собираешься, я тоже. Я и понятия не имею каким образом вычислить линию на IOAPIC для моего примера. Патчу Ghost-a два с половиной года. За это время продвижения по теме ноль. Только немного общих размышлений. Я предлагаю работающее универсальное решение для всех, чтобы дистрибутив мог стартовать на любом компе. Если есть такая же универсальная альтернатива ACPI я буду только рад. Но её не видно.


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


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

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