[U-Boot] [RFC PATCH] net: emaclite: Support OF initialization

Simon Glass sjg at chromium.org
Tue Jul 3 22:04:20 CEST 2012


Hi Michal,

On Thu, Jun 28, 2012 at 12:26 AM, Michal Simek <monstr at monstr.eu> wrote:

> Support new CONFIG_OF_CONTROL option where device
> probing is done based on device tree description.
>
> Signed-off-by: Michal Simek <monstr at monstr.eu>
> ---
>  drivers/net/xilinx_emaclite.c |   30 ++++++++++++++++++++++++++++++
>  1 files changed, 30 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/net/xilinx_emaclite.c b/drivers/net/xilinx_emaclite.c
> index e1af42a..0f6807d 100644
> --- a/drivers/net/xilinx_emaclite.c
> +++ b/drivers/net/xilinx_emaclite.c
> @@ -28,6 +28,9 @@
>  #include <config.h>
>  #include <malloc.h>
>  #include <asm/io.h>
> +#include <fdtdec.h>
> +
> +DECLARE_GLOBAL_DATA_PTR;
>
>  #undef DEBUG
>
> @@ -375,3 +378,30 @@ int xilinx_emaclite_initialize(bd_t *bis, unsigned
> long base_addr,
>
>         return 1;
>  }
> +
> +#ifdef CONFIG_OF_CONTROL
> +int xilinx_emaclite_init(bd_t *bis)
> +{
> +       int offset = 0;
> +       u32 ret = 0;
> +       u32 reg;
> +
> +       do {
> +               offset = fdt_node_offset_by_compatible(gd->fdt_blob,
> offset,
> +                                       "xlnx,xps-ethernetlite-1.00.a");
> +               if (offset != -1) {
>

offset > 0 or >= 0

> +                       reg = fdtdec_get_addr(gd->fdt_blob, offset, "reg");
> +                       if (reg != FDT_ADDR_T_NONE) {
> +                               u32 rxpp = fdtdec_get_int(gd->fdt_blob,
> offset,
> +
> "xlnx,rx-ping-pong", 0);
> +                               u32 txpp = fdtdec_get_int(gd->fdt_blob,
> offset,
> +
> "xlnx,tx-ping-pong", 0);
> +                               ret |= xilinx_emaclite_initialize(bis, reg,
> +                                                               txpp,
> rxpp);
> +                       }
> +               }
> +       } while (offset != -1);
>

Just offset > 0 here I think.


> +
> +       return ret;
> +}
> +#endif
>

This is fine I think. Do you want to impose an ordering on the interfaces,
or are you happy with them being assigned randomly? If you want an
ordering, see fdtdec_find_aliases_for_id().


> --
> 1.7.0.4
>
>
Regards,
Simon


More information about the U-Boot mailing list