История изменений
Исправление snizovtsev, (текущая версия) :
Для ARM есть EFI/ACPI
Так что процесс запуска ОС не будет сильно отличаться от x86
Не совсем так. Я сейчас как раз активно копаю тему ACPI, ради интереса глянул как устроена таблица на Samsung Galaxy Book.
Так вот, ACPI для ARM по структуре напоминает DeviceTree, только прибитый не к линуксовым драйверам, а к виндовым (даже название ехе-шников фигурируют).
Поясню. На x86 схема работы со всякими датчиками (батарея, освещенность) и регуляторами (медиаклавиши, яркость дисплея) такая: универсальный драйвер ОС <=> стандарт ACPI <=> байткод ACPI (получен от UEFI) <=> чип EC с проприетарной RTOS и нужными драйверами <=> Platform Device.
На ARM же platform device-ы подключают напрямую к CPU через i2c (сравнение x86/arm battery subsystem от microsoft), а значит в ОС должны быть реализованы все драйвера, что раньше вендор прошивал в свой EC. В ACPI таблицах теперь лежат лишь параметры, которые нужно передать драйверу (вроде i2c адреса), а не самодостаточный байткод.
TLDR: на ARM/UEFI стандартный линукс может и бутнётся привычным способом, но вот всякие дополнительные фишки вроде индикатора батареи, регулировки яркости, реакции на закрытие крышки, состояние сна - могут не сработать.
Исправление snizovtsev, :
Для ARM есть EFI/ACPI
Так что процесс запуска ОС не будет сильно отличаться от x86
Не совсем так. Я сейчас как раз активно копаю тему ACPI, ради интереса глянул как устроена таблица на Samsung Galaxy Book.
Так вот, ACPI для ARM по структуре напоминает DeviceTree, только прибитый не к линуксовым драйверам, а к виндовым (даже название ехе-шников фигурируют).
Поясню. На x86 схема работы со всякими датчиками (батарея, освещенность) и регуляторами (медиаклавиши, яркость дисплея) такая: универсальный драйвер ОС <=> стандарт ACPI <=> байткод ACPI (получен от UEFI) <=> чип EC с проприетарной RTOS и нужными драйверами <=> Platform Device.
На ARM же platform device-ы подключают напрямую к CPU через i2c (сравнение x86/arm battery subsystem от microsoft), а значит в ОС должны быть реализованы все драйвера, что раньше вендор прошивал в свой EC. В ACPI таблицах же лежат лишь параметры, которые нужно передать драйверу (вроде i2c адреса).
TLDR: на ARM/UEFI стандартный линукс может и бутнётся привычным способом, но вот всякие дополнительные фишки вроде индикатора батареи, регулировки яркости, реакции на закрытие крышки, состояние сна - могут не сработать.
Исходная версия snizovtsev, :
Для ARM есть EFI/ACPI
Так что процесс запуска ОС не будет сильно отличаться от x86
Не совсем так. Я сейчас как раз активно копаю тему ACPI, ради интереса глянул как устроена таблица на Samsung Galaxy Book.
Так вот, ACPI для ARM по структуре напоминает DeviceTree, только прибитый не к линуксовым драйверам, а к виндовым (даже название ехе-шников фигурируют).
Поясню. На x86 схема работы со всякими датчиками (батарея, освещенность) и регуляторами (медиаклавиши, яркость дисплея) такая: универсальный драйвер ОС <=> стандарт ACPI <=> байткод ACPI (получен от UEFI) <=> чип EC с проприетарной RTOS и нужными драйверами <=> Platform Device.
На ARM же platform device-ы подключают напрямую к CPU через i2c (как правило), а значит в ОС должны быть реализованы все драйвера, что раньше вендор прошивал в свой EC. В ACPI таблицах же лежат лишь параметры, которые нужно передать драйверу (вроде i2c адреса).
TLDR: на ARM/UEFI может стандартный линукс может и бутнётся привычным способом, но вот всякие дополнительные фишки вроде индикатора батареи, регулировки яркости, реакции на закрытие крышки, состояние сна - могут не сработать.