Прочитал Device Tree Usage и дошел до раздела, описывающего атрибут ключа ranges
для узла.Понимание механизма дерева устройств
external-bus {
#address-cells = <2>
#size-cells = <1>;
ranges = <0 0 0x10100000 0x10000 // Chipselect 1, Ethernet
1 0 0x10160000 0x10000 // Chipselect 2, i2c controller
2 0 0x30000000 0x1000000>; // Chipselect 3, NOR Flash
[email protected],0 {
compatible = "smc,smc91c111";
reg = <0 0 0x1000>;
interrupts = < 5 2 >;
};
[email protected],0 {
compatible = "acme,a1234-i2c-bus";
#address-cells = <1>;
#size-cells = <0>;
reg = <1 0 0x1000>;
interrupts = < 6 2 >;
[email protected] {
compatible = "maxim,ds1338";
reg = <58>;
interrupts = < 7 3 >;
};
};
[email protected],0 {
compatible = "samsung,k8f1315ebm", "cfi-flash";
reg = <2 0 0x4000000>;
};
};
- В чем разница между
ranges
иreg
? - Каковы размеры диапазонов, как анализатор определяет, что на нем написано?
- Одна недостающая часть еще не поняла? Не может содержать
.h
файлов вместо значений жесткого кодирования в файле.dts
?