aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRob Herring <robh@kernel.org>2021-10-15 16:35:26 -0500
committerDavid Gibson <david@gibson.dropbear.id.au>2021-10-21 15:48:41 +1100
commit0a3a9d3449c88aabe88685ea99811bf6c02a570d (patch)
tree3582958bae1ce7f375cc5aa9435665b9ff90f233 /tests
parent8fd24744e3618be99a939009349418fcbfa362b3 (diff)
downloaddtc-0a3a9d3449c88aabe88685ea99811bf6c02a570d.zip
dtc-0a3a9d3449c88aabe88685ea99811bf6c02a570d.tar.gz
dtc-0a3a9d3449c88aabe88685ea99811bf6c02a570d.tar.bz2
checks: Add an interrupt-map check
Add a check for parsing 'interrupt-map' properties. The check primarily tests parsing 'interrupt-map' properties which depends on and the parent interrupt controller (or another map) node. Note that this does not require '#address-cells' in the interrupt-map parent, but treats missing '#address-cells' as 0 which is how the Linux kernel parses it. There's numerous cases that expect this behavior. Cc: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Rob Herring <robh@kernel.org> Message-Id: <20211015213527.2237774-1-robh@kernel.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'tests')
-rw-r--r--tests/bad-interrupt-map-mask.dts20
-rw-r--r--tests/bad-interrupt-map-parent.dts17
-rw-r--r--tests/bad-interrupt-map.dts19
-rwxr-xr-xtests/run_tests.sh3
4 files changed, 59 insertions, 0 deletions
diff --git a/tests/bad-interrupt-map-mask.dts b/tests/bad-interrupt-map-mask.dts
new file mode 100644
index 0000000..10eaffd
--- /dev/null
+++ b/tests/bad-interrupt-map-mask.dts
@@ -0,0 +1,20 @@
+/dts-v1/;
+
+/ {
+ interrupt-parent = <&intc>;
+ intc: interrupt-controller {
+ #interrupt-cells = <3>;
+ interrupt-controller;
+ };
+
+ node {
+ #address-cells = <0>;
+ #interrupt-cells = <1>;
+ interrupt-map = <1 &intc 1 2 3>;
+ interrupt-map-mask = <0 0>;
+
+ child {
+ interrupts = <1>;
+ };
+ };
+};
diff --git a/tests/bad-interrupt-map-parent.dts b/tests/bad-interrupt-map-parent.dts
new file mode 100644
index 0000000..fe88ce2
--- /dev/null
+++ b/tests/bad-interrupt-map-parent.dts
@@ -0,0 +1,17 @@
+/dts-v1/;
+
+/ {
+ interrupt-parent = <&intc>;
+ intc: interrupt-controller {
+ };
+
+ node {
+ #address-cells = <0>;
+ #interrupt-cells = <1>;
+ interrupt-map = <1 &intc 1 2 3>;
+
+ child {
+ interrupts = <1>;
+ };
+ };
+};
diff --git a/tests/bad-interrupt-map.dts b/tests/bad-interrupt-map.dts
new file mode 100644
index 0000000..6df8f93
--- /dev/null
+++ b/tests/bad-interrupt-map.dts
@@ -0,0 +1,19 @@
+/dts-v1/;
+
+/ {
+ interrupt-parent = <&intc>;
+ intc: interrupt-controller {
+ #interrupt-cells = <3>;
+ interrupt-controller;
+ };
+
+ node {
+ /* Missing #address-cells = <0>; */
+ #interrupt-cells = <1>;
+ interrupt-map = <1 &intc 1 2 3>;
+
+ child {
+ interrupts = <1>;
+ };
+ };
+};
diff --git a/tests/run_tests.sh b/tests/run_tests.sh
index 0e270fe..d100d5a 100755
--- a/tests/run_tests.sh
+++ b/tests/run_tests.sh
@@ -717,6 +717,9 @@ dtc_tests () {
run_sh_test "$SRCDIR/dtc-checkfails.sh" -n deprecated_gpio_property -- -Wdeprecated_gpio_property -I dts -O dtb "$SRCDIR/good-gpio.dts"
check_tests "$SRCDIR/bad-interrupt-cells.dts" interrupts_property
check_tests "$SRCDIR/bad-interrupt-controller.dts" interrupt_provider
+ check_tests "$SRCDIR/bad-interrupt-map.dts" interrupt_map
+ check_tests "$SRCDIR/bad-interrupt-map-parent.dts" interrupt_map
+ check_tests "$SRCDIR/bad-interrupt-map-mask.dts" interrupt_map
run_sh_test "$SRCDIR/dtc-checkfails.sh" node_name_chars -- -I dtb -O dtb bad_node_char.dtb
run_sh_test "$SRCDIR/dtc-checkfails.sh" node_name_format -- -I dtb -O dtb bad_node_format.dtb
run_sh_test "$SRCDIR/dtc-checkfails.sh" property_name_chars -- -I dtb -O dtb bad_prop_char.dtb