Page 1 of 5

Обсуждение необходимости ACPI

Posted: Wed Sep 28, 2011 4:03 am
by Mario
Артем тебе никто вроде не запрещает в своем бранче хотя на уши все поставить, но зачем другим то навязывать? Если есть годное рабочее решение мы его используем, если нет то по заветам дедушки Ленина - мы идем другим путем.

CleverMouse: контекст сообщения: выделено из темы viewtopic.php?f=3&t=1933 в ответ на
art_zh wrote:Я против ACPIzации Колибри.
Это моя твердая позиция, к черту демагогию.

Re: Выключение ПК.

Posted: Wed Sep 28, 2011 12:26 pm
by dzavalishin
Чего ругаться? Ясно, что есть универсальный механизм, и есть из него исключения. Исключения эти - я так подозреваю - имеют PCI vendor/dev id, и оформлять их нужно как загружаемые драйвера, которые регистрируют в ядре службу - в данном случае - шатдаун/ребут.

Предложение:

1. сделать механизм загружаемых PCI-драйверов, с идентификаторами устройств (или классов/подклассов) - предлагаю сразу делать их одинаково для фантома и колибри, чтобы усилия тратить эффективнее. благо, это несложно.

2. сделать индекс-файл драйверов - чтобы не грузить их все по очереди, грузится индекс (таблица pci-идентификаторов и имена драйверов), потом по факту наличия в машине устройств - грузятся нужные драйвера.

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

Re: Выключение ПК.

Posted: Wed Sep 28, 2011 12:30 pm
by Serge
Пункт 3 уже реализован.

Re: Выключение ПК.

Posted: Wed Sep 28, 2011 12:54 pm
by dzavalishin
тем более. а где описание реализации?

Re: Выключение ПК.

Posted: Wed Sep 28, 2011 4:14 pm
by Serge
Раскидано по форуму в разных постах. В собранном виде выложено в статье diamond-а. Следует учитывать некоторые изменения ядра с тех пор.

Re: Выключение ПК.

Posted: Thu Sep 29, 2011 10:23 am
by dzavalishin
art_zh wrote:Direct shutdown для некоторых SB800+ и Гудзонов (я еще не видел ни одной материнки с этими мостами, на которой бы работал "универсальный" код):

Code: Select all

	mov	dx, 0x0804	
	mov	ax, 0x3400
	out	dx, ax
; THE END...
Я против ACPIzации Колибри.
Это моя твердая позиция, к черту демагогию.
А чем ACPI-то не угодил, кстати? Ну - кроме того, что его интерпретатор по объёму - больше, чем ядро и все программы для Колибри, вместе взятые? :) (Если его кто-то перепишет на ассемблере - я хочу видеть глаза ребят из Интела, когда они это увидят:)

Re: Выключение ПК.

Posted: Thu Sep 29, 2011 10:57 am
by Mario
dzavalishin wrote:Если его кто-то перепишет на ассемблере - я хочу видеть глаза ребят из Интела, когда они это увидят:)
А это законно с лицензионной точки зрения? Вообще чего в этом нереального? Вопрос времени и спонсирования. Естественно за здорово живешь никто этим заниматься не станет - удовольствия никакого нет, а это главный мотиватор для энтузиастов.

Re: Выключение ПК.

Posted: Thu Sep 29, 2011 11:31 am
by XVilka
Mario: да, законно.

Re: Выключение ПК.

Posted: Thu Sep 29, 2011 11:37 am
by Serge
С лицензионной законно. В ядре Линукс acpica идёт с BSD лицезией с разрешением использовать GPL2.

Re: Выключение ПК.

Posted: Thu Sep 29, 2011 12:09 pm
by art_zh
dzavalishin wrote:А чем ACPI-то не угодил, кстати? Ну - кроме того, что его интерпретатор по объёму - больше, чем ядро и все программы для Колибри, вместе взятые? :) (Если его кто-то перепишет на ассемблере - я хочу видеть глаза ребят из Интела, когда они это увидят:)
Дело не только в том, что этот монстр - больше чем ядро. У нас один драйверок есть - так тот уже втрое больше ядра, и ничего :wink:

Главный вопрос: потомучтозачем?
Ради сомнительного удовольствия задействовать ACPI-быдлоинтерпретатор BIOSа, который сам разрулит прямое управление железом "как надо"?
Дык еще не факт, что разрулит - я уже упоминал о целом семействе новых чипсетов (AMD RS880/SB800+ и Fusion-Hudson A50/55), для которых AMI до сих пор не удосужился даже сделать нормальный шатдаун.

Ради "стандартизации энумерации" и унифицированного управления железом?
Нужная вещь, но ИМХО зачем обязательно решать задачу через задний проход ACPI? Неужели нельзя сделать прямой код согласно регистровой модели?

Ясное дело, потеряется универсальность. Это плохо.
450 юзеров из 520, ежедневно скачивающих халяву из репозитория, будут очень разочарованы. Мне их искренне жаль.

ACPI-ядро в BIOS не зашьешь. И дело не в размере - в принципе.

Еще раз: я никого за собой на аркане не тащу. Решили делать ACPI-делайте.
Только не надо другим рот затыкать, и при этом сокрушаться что нет никакой альтернативы.

Re: Выключение ПК.

Posted: Thu Sep 29, 2011 12:26 pm
by Serge
art_zh
ACPICA на встроенном железе да ещё и в BIOS конечно перебор. Но это встроенное решение. А с обычным сложнее. На каждый чипсет драйвер не напишешь. Даже с acpi ни хрена не работает. Вот Марат протестировал apic. Только один компьютер выдал нормальный лог, да и на том APIC не включился. То есть это даже не к чипсету привязка, а к материке от конкретного производителя и версии BIOS.

Вот как стандартно нумеровать ISA ?

Re: Выключение ПК.

Posted: Thu Sep 29, 2011 3:37 pm
by VaStaNi
Serge wrote:Вот как стандартно нумеровать ISA ?
поясни чем не устраивают классические вещи нумерации BIOS и технологий :
- Pnp BIOS (Plug and Play BIOS Specification),
- PnP ISA (Plug and Play ISA Specification),
- DMI (Desktop Management BIOS Specification),
- ESCD (Plug and Play ISA Specification),
ну и кажется еще это "туда же"
- IPMI (Intelligent Platform Managem Interface Specification )
может с них начать стоит и расширить типа, если мало для "осовременивания".
В принципе большую часть этого я "переваривал" года 2 назад, тестил...
Может и смог бы прокоментировать вопросы ели очень надо было бы кому...
Пока что делаешь ты в этом русле совсем неясно, за исключением, что типа надо как то нумеровать.

Re: Выключение ПК.

Posted: Thu Sep 29, 2011 3:51 pm
by VaStaNi
art_zh wrote:ACPI-быдлоинтерпретатор BIOSа
+ 1 :D
люди далекие и не очень шарящие в железе и электронике, как правило == следовательно "не любящие" техн вещи, как порты, шины, прерывания, "трудно" впечатляются просотой и оптимальностью и малостью кода управления под конкретный чипсет и даже совокупность чипсетов! Их почти невозможно замануть даже универсальным решением на 10 чипсетов, они все равно будут причины выставлять и кивать на стандарты и соглашаться с проигрышной позицией, пассивно поддерживать быдлокодерские стандарты, кивая на якобы "универсальность" в них содержащуюся. Да и ОСи подобные вцелом тоже. Это ситуация заложников "сложившегося положения".
Люди шарящие в железе, знающие вкус, цену и результат победы над ней, делают такие вещи, как универсальные прошивальщик, например, под "все известные чипсеты", что в ходу т.е. на "руках публики", ходовые. Тому пример UniFlash
При неколько кил кода, который в основе своей паскальный, имеем такое многообразие чипсетов и вариантов работы с их портами и шинами.
Аналогично рисуется "картина маслом" и в сторону выключения питания и IRQ и прочая херня что ACPI закрывает свим жирным телом (а по сути в тени ACPI - SMI урод еще имеется, который нещадно гадит кванты любой ОСи!!!)

Re: Выключение ПК.

Posted: Thu Sep 29, 2011 4:25 pm
by XVilka
uniflash содержит куски кода, позаимствованные без спроса у flashrom http://www.flashrom.org/
И да, flashrom поддерживает намного больше железа и платформ чем Uniflash.

Re: Выключение ПК.

Posted: Thu Sep 29, 2011 4:44 pm
by Serge
VaStaNi
Вместо одной acpi предлагается пять недо-acpi. Спасибо.
Покажите плиз нумератор работающий на всех х86 платформах начиная с Pentium.