[U-Boot] [RFC PATCH] net: emaclite: Support OF initialization
Michal Simek
monstr at monstr.eu
Wed Jul 4 08:20:58 CEST 2012
2012/7/3 Simon Glass <sjg at chromium.org>:
> 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
ok, probably safer.
>>
>> + 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.
ok.
>
>>
>> +
>> + 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().
For now, not. for future probably yes.
I have changed uartlite and uart16550 drivers where this is very important.
Thanks,
Michal
More information about the U-Boot
mailing list