From: sashiko-bot@kernel.org
To: "Lefteris Koutrakis" <lefteris.koutrakis@gmail.com>,
devicetree@vger.kernel.org
Cc: robh@kernel.org, conor+dt@kernel.org
Subject: Re: [PATCH] powerpc/dts: Add dts for WatchGuard Firebox T30
Date: Wed, 28 Oct 2026 10:37:02 +0000 [thread overview]
Message-ID: <sashiko-outbox-187752@kernel.org> (raw)
In-Reply-To: <20261028102158.71032-1-lefteris.koutrakis@gmail.com>
Thank you for your contribution! Sashiko AI review found 4 potential issue(s) to consider:
- [High] powerpc/dts: missing machine descriptor for watchguard,firebox-t30 hangs boot
- [Medium] powerpc/dts: /delete-property/ used on CPU child node in firebox-t30.dts
- [Medium] powerpc/dts: out-of-tree DT properties and undocumented binding in firebox-t30
- [Low] powerpc/dts: invalid /include/ paths in firebox-t30.dts break dtc build
--
commit 14186547f28b2b27ac2d22fcbaad845f34789ba3
Author: Lefteris Koutrakis <lefteris.koutrakis@gmail.com>
powerpc/dts: Add dts for WatchGuard Firebox T30
This commit adds a device tree source file and Makefile entry for the
WatchGuard Firebox T30 and T30-W security appliances based on the Freescale
P1020 SoC.
> diff --git a/arch/powerpc/boot/dts/fsl/Makefile b/arch/powerpc/boot/dts/fsl/Makefile
> index d2cc8e1f007ea..ebbf301e1a8fc 100644
> --- a/arch/powerpc/boot/dts/fsl/Makefile
> +++ b/arch/powerpc/boot/dts/fsl/Makefile
> @@ -3,6 +3,7 @@
> dtb-$(CONFIG_OF_ALL_DTBS) := $(patsubst $(src)/%.dts,%.dtb, $(wildcard $(src)/*.dts))
>
> # MPC85xx platforms
> +dtb-$(CONFIG_MPC85xx_RDB) += firebox-t30.dtb
> dtb-$(CONFIG_BSC9131_RDB) += bsc9131rdb.dtb
> dtb-$(CONFIG_BSC9132_QDS) += bsc9132qds.dtb
> dtb-$(CONFIG_C293_PCIE) += c293pcie.dtb
> diff --git a/arch/powerpc/boot/dts/fsl/firebox-t30.dts b/arch/powerpc/boot/dts/fsl/firebox-t30.dts
> new file mode 100644
> index 0000000000000..546e989384b76
> --- /dev/null
> +++ b/arch/powerpc/boot/dts/fsl/firebox-t30.dts
> @@ -0,0 +1,413 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/common.h>
> +
> +/include/ "fsl/p1020si-pre.dtsi"
[Severity: Low]
Will dtc be able to resolve "fsl/p1020si-pre.dtsi" (and
"fsl/p1020si-post.dtsi" at the bottom of the file) when building from
arch/powerpc/boot/dts/fsl/?
In scripts/Makefile.dtbs, cmd_dtc invokes dtc with -i $(dir $<) (which is
arch/powerpc/boot/dts/fsl/) and -i scripts/dtc/include-prefixes:
$(DTC) -o $@ -b 0 $(addprefix -i,$(dir $<) $(DTC_INCLUDE)) \
$(DTC_FLAGS) -d $(depfile).dtc.tmp $(dtc-tmp) ; \
When srcfile_relative_open() -> fopen_any_on_path() in scripts/dtc/srcpos.c
resolves /include/ "fsl/p1020si-pre.dtsi" relative to
arch/powerpc/boot/dts/fsl/, it looks for
arch/powerpc/boot/dts/fsl/fsl/p1020si-pre.dtsi and fails the build when
CONFIG_MPC85xx_RDB or CONFIG_OF_ALL_DTBS is enabled.
Should both /include/ directives drop the "fsl/" prefix to match the other
device trees in arch/powerpc/boot/dts/fsl/?
> +
> +/ {
> + model = "Watchguard Firebox T30";
> + compatible = "watchguard,firebox-t30";
[Severity: High]
How does the kernel match a PowerPC machine descriptor when booting with
this device tree?
The root node sets compatible = "watchguard,firebox-t30", and
arch/powerpc/boot/dts/fsl/Makefile builds firebox-t30.dtb under
CONFIG_MPC85xx_RDB. However, arch/powerpc/platforms/85xx/mpc85xx_rdb.c only
defines machine descriptors for specific Freescale RDB compatible strings
such as "fsl,P1020RDB":
arch/powerpc/platforms/85xx/mpc85xx_rdb.c:
define_machine(p1020_rdb) {
.name = "P1020 RDB",
.compatible = "fsl,P1020RDB",
...
};
Without a matching define_machine() entry for "watchguard,firebox-t30" in
arch/powerpc/platforms/85xx/, setup_arch() -> probe_machine() in
arch/powerpc/kernel/setup-common.c reaches &__machine_desc_end and halts
boot in an infinite loop:
if (machine_id >= &__machine_desc_end) {
pr_err("No suitable machine description found !\n");
for (;;);
}
> +
> + chosen {
> + bootargs-override = "console=ttyS0,115200 rw root=/dev/mmcblk0p2 rootfstype=squashfs rootwait";
> + };
> +
> + aliases {
> + label-mac-device = &enet0;
> + led-boot = &led0;
> + led-failsafe = &led1;
> + led-running = &led0;
> + led-upgrade = &led1;
> + };
> +
> + memory {
> + device_type = "memory";
> + };
> +
> + cpus {
> + /delete-property/ PowerPC,P1020@1;
> + };
[Severity: Medium]
Should this use /delete-node/ instead of /delete-property/ to remove
PowerPC,P1020@1?
In arch/powerpc/boot/dts/fsl/p1020si-pre.dtsi, PowerPC,P1020@1 is defined as
a child node under /cpus rather than a property:
cpus {
...
PowerPC,P1020@1 {
device_type = "cpu";
reg = <0x1>;
next-level-cache = <&L2>;
};
};
In scripts/dtc/livetree.c, merge_nodes() handles /delete-property/ by
calling delete_property_by_name(), which only walks node->proplist and
leaves child nodes in node->children untouched. As a result, the second CPU
node remains present in the compiled DTB.
[ ... ]
> + sdhc@2e000 {
> + compatible = "fsl,p1020-esdhc", "fsl,esdhc";
> + sdhci,auto-cmd12;
> + reg = <0x2e000 0x1000>;
> + interrupts = <0x48 0x2 0x0 0x0>;
> + interrupt-parent = <&mpic>;
> + fsl,sdhci-dma-broken;
> + fsl,sdhci-ahb2mag-irq-bypass;
> + fsl,sdhci-adjust-timeout;
> + clock-frequency = <0>;
> + };
[Severity: Medium]
Are these downstream OpenWrt properties in /chosen, /aliases, and
sdhc@2e000 intended for mainline?
In /chosen, early_init_dt_scan_chosen() in drivers/of/fdt.c only reads
"bootargs" and ignores "bootargs-override":
p = of_get_flat_dt_prop(node, "bootargs", &l);
if (p != NULL && l > 0)
strscpy(cmdline, p, min(l, COMMAND_LINE_SIZE));
In sdhc@2e000, the properties fsl,sdhci-dma-broken,
fsl,sdhci-ahb2mag-irq-bypass, and fsl,sdhci-adjust-timeout are not parsed
by drivers/mmc/host/sdhci-of-esdhc.c and are not permitted by
Documentation/devicetree/bindings/mmc/fsl,esdhc.yaml (which sets
unevaluatedProperties: false), while the standard properties in this node
duplicate what p1020si-post.dtsi already includes via pq3-esdhc-0.dtsi.
Similarly, the /aliases entries (label-mac-device, led-boot, led-failsafe,
led-running, led-upgrade) and the root compatible string
"watchguard,firebox-t30" are not documented under
Documentation/devicetree/bindings/.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261028102158.71032-1-lefteris.koutrakis@gmail.com?part=1
prev parent reply other threads:[~2026-10-28 10:37 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-28 10:21 [PATCH] powerpc/dts: Add dts for WatchGuard Firebox T30 Lefteris Koutrakis
2026-10-28 10:37 ` sashiko-bot [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=sashiko-outbox-187752@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=lefteris.koutrakis@gmail.com \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.