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

Kernel architecture questions
  • Чего ругаться? Ясно, что есть универсальный механизм, и есть из него исключения. Исключения эти - я так подозреваю - имеют PCI vendor/dev id, и оформлять их нужно как загружаемые драйвера, которые регистрируют в ядре службу - в данном случае - шатдаун/ребут.

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

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

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

    3. драйвер зовёт специальную точку входа ядра и регистрирует в нём свои службы.
  • Пункт 3 уже реализован.
  • тем более. а где описание реализации?
  • Раскидано по форуму в разных постах. В собранном виде выложено в статье diamond-а. Следует учитывать некоторые изменения ядра с тех пор.
  • art_zh wrote:Direct shutdown для некоторых SB800+ и Гудзонов (я еще не видел ни одной материнки с этими мостами, на которой бы работал "универсальный" код):

    Code: Select all

    	mov	dx, 0x0804	
    	mov	ax, 0x3400
    	out	dx, ax
    ; THE END...
    
    Я против ACPIzации Колибри.
    Это моя твердая позиция, к черту демагогию.
    А чем ACPI-то не угодил, кстати? Ну - кроме того, что его интерпретатор по объёму - больше, чем ядро и все программы для Колибри, вместе взятые? :) (Если его кто-то перепишет на ассемблере - я хочу видеть глаза ребят из Интела, когда они это увидят:)
  • dzavalishin wrote:Если его кто-то перепишет на ассемблере - я хочу видеть глаза ребят из Интела, когда они это увидят:)
    А это законно с лицензионной точки зрения? Вообще чего в этом нереального? Вопрос времени и спонсирования. Естественно за здорово живешь никто этим заниматься не станет - удовольствия никакого нет, а это главный мотиватор для энтузиастов.
  • Mario: да, законно.
  • С лицензионной законно. В ядре Линукс acpica идёт с BSD лицезией с разрешением использовать GPL2.
  • dzavalishin wrote:А чем ACPI-то не угодил, кстати? Ну - кроме того, что его интерпретатор по объёму - больше, чем ядро и все программы для Колибри, вместе взятые? :) (Если его кто-то перепишет на ассемблере - я хочу видеть глаза ребят из Интела, когда они это увидят:)
    Дело не только в том, что этот монстр - больше чем ядро. У нас один драйверок есть - так тот уже втрое больше ядра, и ничего :wink:

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

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

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

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

    Еще раз: я никого за собой на аркане не тащу. Решили делать ACPI-делайте.
    Только не надо другим рот затыкать, и при этом сокрушаться что нет никакой альтернативы.
  • art_zh
    ACPICA на встроенном железе да ещё и в BIOS конечно перебор. Но это встроенное решение. А с обычным сложнее. На каждый чипсет драйвер не напишешь. Даже с acpi ни хрена не работает. Вот Марат протестировал apic. Только один компьютер выдал нормальный лог, да и на том APIC не включился. То есть это даже не к чипсету привязка, а к материке от конкретного производителя и версии BIOS.

    Вот как стандартно нумеровать ISA ?
  • 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 назад, тестил...
    Может и смог бы прокоментировать вопросы ели очень надо было бы кому...
    Пока что делаешь ты в этом русле совсем неясно, за исключением, что типа надо как то нумеровать.
  • art_zh wrote:ACPI-быдлоинтерпретатор BIOSа
    + 1 :D
    люди далекие и не очень шарящие в железе и электронике, как правило == следовательно "не любящие" техн вещи, как порты, шины, прерывания, "трудно" впечатляются просотой и оптимальностью и малостью кода управления под конкретный чипсет и даже совокупность чипсетов! Их почти невозможно замануть даже универсальным решением на 10 чипсетов, они все равно будут причины выставлять и кивать на стандарты и соглашаться с проигрышной позицией, пассивно поддерживать быдлокодерские стандарты, кивая на якобы "универсальность" в них содержащуюся. Да и ОСи подобные вцелом тоже. Это ситуация заложников "сложившегося положения".
    Люди шарящие в железе, знающие вкус, цену и результат победы над ней, делают такие вещи, как универсальные прошивальщик, например, под "все известные чипсеты", что в ходу т.е. на "руках публики", ходовые. Тому пример UniFlash
    При неколько кил кода, который в основе своей паскальный, имеем такое многообразие чипсетов и вариантов работы с их портами и шинами.
    Аналогично рисуется "картина маслом" и в сторону выключения питания и IRQ и прочая херня что ACPI закрывает свим жирным телом (а по сути в тени ACPI - SMI урод еще имеется, который нещадно гадит кванты любой ОСи!!!)
  • uniflash содержит куски кода, позаимствованные без спроса у flashrom http://www.flashrom.org/
    И да, flashrom поддерживает намного больше железа и платформ чем Uniflash.
  • VaStaNi
    Вместо одной acpi предлагается пять недо-acpi. Спасибо.
    Покажите плиз нумератор работающий на всех х86 платформах начиная с Pentium.
  • Who is online

    Users browsing this forum: No registered users and 4 guests