Hi,

sorry missed adding the v2..

On 1/21/26 12:31 PM, 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, e.g. when installing the UEFI device tree
> configuration table.
> 
> Signed-off-by: Ahmad Fatoum <[email protected]>
> ---
> v1 -> v2:
>   - rework to make clearer when to use the new property. (Marco)
>   - add example with UEFI device tree configuration table into commit
>     message (Marco)
> ---
>  .../devicetree/bindings/barebox/barebox,status.rst | 14 ++++++++++++++
>  drivers/of/base.c                                  |  4 +++-
>  2 files changed, 17 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..03f484cdcfe1
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/barebox/barebox,status.rst
> @@ -0,0 +1,14 @@
> +barebox,status property
> +=======================
> +
> +barebox interprets ``barebox,status`` the same as it does ``status``,
> +but gives the barebox-specific property precedence if both exist.
> +
> +The purpose of this property is to keep the ``status`` property of the
> +upstream DT, imported from Linux, untouched.
> +
> +Using ``barebox,status`` may be necessary to temporarily workaround
> +barebox drivers that misbehave on a given board; Disabling the driver
> +may be undesirable if it can handle other instances of the same device
> +on the board or if barebox is being built to support other boards
> +at the same time, where the driver functions correctly.
> 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;
>  

-- 
Pengutronix e.K.                  |                             |
Steuerwalder Str. 21              | http://www.pengutronix.de/  |
31137 Hildesheim, Germany         | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686  | Fax:   +49-5121-206917-5555 |


Reply via email to