Proper ranges for memory controller (exynos5410-smdk5410)
Krzysztof Kozlowski
krzk at kernel.org
Sun Aug 30 10:52:12 EDT 2020
Hi Rob,
Maybe you could help me here as I am trying to understand where is the
error (cross compiling on ARM):
$ make exynos_defconfig
$ make dtbs_check
arch/arm/boot/dts/exynos5410-smdk5410.dt.yaml: soc: memory-controller at 12250000:ranges: [[0, 0, 67108864, 131072, 1, 0, 83886080, 131072, 2, 0, 100663296, 131072, 3, 0, 117440512, 131072]] is not valid under any of the given schemas (Possible causes of the failure):
arch/arm/boot/dts/exynos5410-smdk5410.dt.yaml: soc: memory-controller at 12250000:ranges: [[0, 0, 67108864, 131072, 1, 0, 83886080, 131072, 2, 0, 100663296, 131072, 3, 0, 117440512, 131072]] is not of type 'boolean'
arch/arm/boot/dts/exynos5410-smdk5410.dt.yaml: soc: memory-controller at 12250000:ranges:0: [0, 0, 67108864, 131072, 1, 0, 83886080, 131072, 2, 0, 100663296, 131072, 3, 0, 117440512, 131072] is too long
From schema: local/lib/python3.6/site-packages/dtschema/schemas/simple-bus.yaml
This is a Exynos SROM memory controller with four banks like this:
arch/arm/boot/dts/exynos5410.dtsi
376 &sromc {
377 #address-cells = <2>;
378 #size-cells = <1>;
379 ranges = <0 0 0x04000000 0x20000
380 1 0 0x05000000 0x20000
381 2 0 0x06000000 0x20000
382 3 0 0x07000000 0x20000>;
383 };
Converting it to:
376 &sromc {
377 #address-cells = <2>;
378 #size-cells = <1>;
379 ranges = <0 0 0x04000000 0x20000>,
380 <1 0 0x05000000 0x20000>,
381 <2 0 0x06000000 0x20000>,
382 <3 0 0x07000000 0x20000>;
383 };
silences the error although I cannot check whether this even works
(I don't have this HW). Is it because of simple-bus schema which
expects an array of arrays of 3 to 7 size?
Best regards,
Krzysztof
More information about the linux-arm-kernel
mailing list