On 17/04/18 12:29, Russell King wrote:
On Tue, Apr 17, 2018 at 12:10:14PM +0300, Tero Kristo wrote:
Add FIT image description file for dra71-evm, and the available
configurations for it.
Signed-off-by: Tero Kristo <t-kristo@xxxxxx>
---
arch/arm/boot/dts/ti/dra71-evm.its | 62 ++++++++++++++++++++++++++++++++++++++
1 file changed, 62 insertions(+)
create mode 100644 arch/arm/boot/dts/ti/dra71-evm.its
diff --git a/arch/arm/boot/dts/ti/dra71-evm.its b/arch/arm/boot/dts/ti/dra71-evm.its
new file mode 100644
index 0000000..8dc53cb
--- /dev/null
+++ b/arch/arm/boot/dts/ti/dra71-evm.its
@@ -0,0 +1,62 @@
+/dts-v1/;
+
+/ {
+ description = "DRA71x-evm";
+ #address-cells = <1>;
+
+ images {
+ kernel@1 {
+ description = "Linux kernel";
+ data = /incbin/("../../zImage");
+ type = "kernel";
+ arch = "arm";
+ os = "linux";
+ compression = "none";
+ load = <0x82000000>;
+ entry = <0x82000000>;
+ };
+ fdt@1 {
+ description = "DRA71x-evm";
+ data = /incbin/("dra71-evm.dtb");
+ type = "flat_dt";
+ arch = "arm";
+ compression = "none";
+ load = <0x83000000>;
+ };
+ fdt@2 {
+ description = "DRA71x-evm LCD";
+ data = /incbin/("dra71-evm-lcd-auo-g101evn01.0.dtbo");
+ type = "flat_dt";
+ arch = "arm";
+ compression = "none";
+ load = <0x83100000>;
+ };
+ fdt@3 {
+ description = "DRA71x-evm NAND";
+ data = /incbin/("dra71-evm-nand.dtbo");
+ type = "flat_dt";
+ arch = "arm";
+ compression = "none";
+ load = <0x83200000>;
+ };
+ };
+
+ configurations {
+ default = "dra71-evm";
+ dra71-evm {
+ description = "DRA71x-evm";
+ kernel = "kernel@1";
+ fdt = "fdt@1";
+ };
+ dra71-evm-lcd-auo-g101evn01.0 {
+ description = "DRA71x-evm with LCD overlay";
+ kernel = "kernel@1";
+ fdt = "fdt@1", "fdt@2";
+ };
+ dra71-evm-nand {
+ description = "DRA71x-evm with NAND overlay";
+ kernel = "kernel@1";
+ fdt = "fdt@1", "fdt@3";
+ };
This strikes me as really horrid and inflexible.
Consider a platform where you have multiple choices, each one
independent - for example, you may have the selection of two base
DT files depending on the SoC. Then you may have four board-level
DT overlays to choose from. Then you may have a selection of
overlays depending on what hardware is connected (eg, whether a
camera is connected and what type of camera, whether a LVDS panel
is connected and what it is, etc.)
Before considering the optional hardware, you already have 8
different combinations, and that multiplies up each time there
is another variable to consider.
Exhaustively listing each combination of kernel, base dtb and
overlays is not practical in such a scenario, and if this is what
FIT requires, FIT is not fit for purpose.
This specific dra71-evm is rather a poor example, as we have built the
available configs as separate config entries due to limited amount of them.
In typical setup, you can boot a large number of different configs via:
bootm 0x82000000#dra71-evm#nand#lcd-auo-g101evn01.0
... assuming the configs were named like that, and assuming they would
be compatible with each other. The am57xx-evm example provided is
better, as you can chain the different cameras to the available evm configs.
-Tero
--
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html