[PATCH 1/2] of: base: add new barebox,status property
Marco Felsch
m.felsch at pengutronix.de
Wed Jan 21 03:22:13 PST 2026
On 26-01-20, Ahmad Fatoum wrote:
> I am confronted with an occasional hang on the Radxa Rock 3A during
> PCI probe. The board has no PCI devices connected.
>
> This hang doesn't happen in Linux and doesn't happen on the QNAP
> TS433-eU, which is also RK3568, but actually has PCIe devices, which are
> probed normally.
>
> For such purposes, add a barebox,status property as setting the status
> to disabled, would impact Linux as well if barebox were to pass along
> its own device tree.
>
> Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
> ---
> .../devicetree/bindings/barebox/barebox,status.rst | 8 ++++++++
> drivers/of/base.c | 4 +++-
> 2 files changed, 11 insertions(+), 1 deletion(-)
> create mode 100644 Documentation/devicetree/bindings/barebox/barebox,status.rst
>
> diff --git a/Documentation/devicetree/bindings/barebox/barebox,status.rst b/Documentation/devicetree/bindings/barebox/barebox,status.rst
> new file mode 100644
> index 000000000000..06524b218fb1
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/barebox/barebox,status.rst
> @@ -0,0 +1,8 @@
> +barebox,status property
> +=======================
> +
> +barebox interprets ``barebox,status`` the same as it does ``status``,
> +but gives the former precedence if both exist.
> +
> +Use this property only for devices for which barebox has a driver, but
> +that barebox should not be probing on a per-board basis.
I would rephrase the 2nd sentence a bit:
"""
The purpose of this property is to keep the status property of the
upstream DT, provided by Linux, untouched.
This may be necessary to temporary workaround broken barebox drivers on
a per-board basis in case you can't disable the driver due to a
multi-config build.
"""
Regards,
Marco
> diff --git a/drivers/of/base.c b/drivers/of/base.c
> index 54fd458bd9a1..4e83a757a4e9 100644
> --- a/drivers/of/base.c
> +++ b/drivers/of/base.c
> @@ -2149,7 +2149,9 @@ int of_device_is_available(const struct device_node *device)
> const char *status;
> int statlen;
>
> - status = of_get_property(device, "status", &statlen);
> + status = of_get_property(device, "barebox,status", &statlen);
> + if (status == NULL)
> + status = of_get_property(device, "status", &statlen);
> if (status == NULL)
> return 1;
>
> --
> 2.47.3
>
>
>
--
#gernperDu
#CallMeByMyFirstName
Pengutronix e.K. | |
Steuerwalder Str. 21 | https://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-9 |
More information about the barebox
mailing list