Мы можем объявить информацию об устройстве платформы в файле dts, а не жестко кодировать все данные в операционной системе. Принимая «рука» архитектура как пример. он поддерживает dts, и мы будем брать dts из arch / arm / boot / dts / xx.dts. Преобразуйте этот xx.dts в xx.dtb и загрузите образ ядра. Я недавно столкнулся с ACPI, когда я натолкнулся на архитектуру x86, из документов я понял, что ACPI похож на дерево устройств. Мы можем объявить информацию об устройстве платформы в таблицах ACPI, я сомневаюсь, где именно эти таблицы ACPI присутствуют. Как я могу загрузить эту информацию в Linux. В чем преимущество использования ACPI над DTS. Пожалуйста, поправьте меня, если я ошибаюсь. заранее спасибо
Разница между dts и ACPI
Ответы (3)
Дышать легкими или жабрами? Зависит от того, где вы живете.
А грубый EM> классификация архитектур
x86 - Server/PC - ACPI table
ARM - embedded systems - Device Tree
На материнских платах сервера / ПК таблица ACPI является частью прошивки UEFI, которая находится на флеш-чипе. ОС будет установлена позже в другом месте (на жестком диске или около того). ОС анализирует таблицу ACPI, но разработчики ОС не контролируют то, что уже написано в прошивке; или они даже не знают внутренний дизайн платы. Поставщик платы (поставщик прошивки) должен поддерживать любую устанавливаемую ОС, а не только Linux, поэтому они должны следовать стандартам (UEFI), а не сосредотачиваться на Linux, например дереве устройств.
Во встроенных системах операционная система и все остальное программируются производителем один раз, а пользователь - никогда. ОС является частью прошивки. Так что не нужно беспокоиться о матрице поддержки ОС, просто установите соотношение 1: 1 между платой и образом вашей ОС. U-Boot, ядро, initramfs, blob-объект дерева устройств находятся в одном флэш-хранилище (например, NAND). Таким образом, разработчики имеют доступ и контроль над тем, что следует развернуть в качестве дерева устройств (хотя оно должно соответствовать реальному оборудованию).
Разработчики оборудования должны иметь возможность предоставить как таблицу ACPI, так и дерево устройств. В зависимости от получателя предпочтение будет отдано одному.
Использованная литература:
- https://unix.stackexchange.com/a/399701/170265
- https://xenproject.org/2013/12/03/xen-on-arm-and-the-device-tree-vs-acpi-debate/
Не совсем правильно:
- ACPI начинался как интерфейс между прошивкой (ранее BIOS) и ОС для таких вещей, как управление питанием, но также и таких вещей, как проверка устройств платформы.
- DT всегда (даже задолго до появления ACPI) о описаниях декларативных платформ устройств (зондирующих и конфигурации), так что операционная система может корректно инициализировать все драйвера, настраивать рабочие точки, и т.д., и т.д.
ACPI был всегда очень ограничен и зависит от прошивки, в то время как DT стоит самостоятельно (просто требует загрузчика, чтобы передать правильный DTB к ядру).
ACPI является непрофессиональной, хак попыткой биоса и поставщиков борту решить небольшую часть проблем, которые DT уже давно решено. Главным про аргумент для тех виселицы-носящие людей, вероятно, является то, что ACPI / BIOS скрывает много конфигурации вещи низкого уровня (до программирования устройства во время выполнения, например. Для управления питанием) в прошивке сгустка, предотвращая тем самым ядро операционной системы, чтобы иметь полный контроль над машиной. (что в конечном итоге приводит к таким вещам, как сломанные машины из-за сломанного BIOS и т. д.). Нам, разработчикам ядра, часто приходится работать с дрянными BIOS.
Мой настойчивый совет: приобретайте ACPI, когда можете.
по моему мнению
ACPI и DT используются для аналогичных целей, но у них есть свои уникальные функции. В настоящее время усилия определения ACPI конфиги в DT.
ACPI и DT используются для решения разных задач:
- Целью ACPI было повышение энергоэффективности.
- Целью DT было удаление файлов платформы вне ядра.
Дерево устройств в основном передается ядру Linux до его загрузки. ACPI обычно загружается во время загрузки ядра Linux (дополнительную информацию см. В Documentation / acpi / enumeration.txt)
по любому другому просто прокомментируйте.