Загрузчики как U-Boot, которые не реализуют API Open Firmware, как ожидается, перейти к ядру двоичную форму уплощенной дерева устройств - LinuxFDTBlobЗачем нужна структура структуры дерева устройств (DTS) как в загрузчике, так и в исходном коде ядра?
Почему DTS файлы присутствуют в ядре также? Разве это не избыточно?
В качестве примера, источник U-загрузочный код имеет следующий файл:
arch/arm/dts/tegra124-jetson-tk1.dts
Этот файл также можно найти в разделе Linux исходный код:
arch/arm/boot/dts/tegra124-jetson-tk1.dts
Хотя версия ядра в 4 раза U-boot, я хотел бы знать причину этой избыточности. Я считаю, что поддерживать и использовать как для сторонних разработчиков, так и для разработчиков более сложно:
Это проблема, когда [люди пытались решить, как ее решить в течение некоторого времени] (http://thread.gmane.org/gmane.comp.devicetree.compiler/14). – Notlikethat
похоже, что миграция не завершилась, когда они почти нашли решение: | – Hamzahfrq
Они предназначены для разных целей. Версия * u-boot * позволяет использовать несколько версий * u-boot * для нескольких плат. Он является частью инфраструктуры [tag: kbuild] или * config *, которая является WIP. Linux-версии предназначены для загрузки Linux. Очевидно, что * u-boot * - это урезанная версия, поскольку для загрузки требуется не так много периферийных устройств. Вы можете сделать тот же аргумент для всех драйверов * u-boot *; большинство из них - копии драйверов Linux с прерываниями, замененными подпрограммами опроса. Почему существуют BSD и Linux? Разве они не дублируют друг друга? Почему у каждого проекта есть собственный связанный список? –