[U-Boot] ARM CONFIG_OF_CONTROL status
Simon Glass
sjg at chromium.org
Fri Jun 29 04:32:26 CEST 2012
Hi,
On Wed, Jun 27, 2012 at 11:49 PM, Michal Simek <monstr at monstr.eu> wrote:
> On 06/28/2012 07:57 AM, Simon Glass wrote:
>
>> Hi Michal,
>>
>>
>> On Wed, Jun 27, 2012 at 10:50 PM, Michal Simek <monstr at monstr.eu <mailto:
>> monstr at monstr.eu>> wrote:
>>
>> Hi Simon,
>>
>>
>> On 06/28/2012 03:10 AM, Simon Glass wrote:
>>
>> Hi Michal,
>>
>>
>> On Wed, Jun 27, 2012 at 7:35 AM, Michal Simek <monstr at monstr.eu<mailto:
>> monstr at monstr.eu> <mailto:monstr at monstr.eu <mailto:monstr at monstr.eu>>>
>> wrote:
>>
>> Hi Simon,
>>
>>
>> On 06/27/2012 03:58 PM, Simon Glass wrote:
>>
>> Hi,
>>
>>
>> On Wed, Jun 27, 2012 at 2:29 AM, Michal Simek <
>> monstr at monstr.eu <mailto:monstr at monstr.eu> <mailto:monstr at monstr.eu<mailto:
>> monstr at monstr.eu>> <mailto:monstr at monstr.eu <mailto:monstr at monstr.eu>
>> <mailto:monstr at monstr.eu <mailto:monstr at monstr.eu>>>> wrote:
>>
>> Hi,
>>
>> can you please update me about current state of
>> CONFIG_OF_CONTROL for ARM?
>> Are there any other archs/boards which will use this
>> option?
>>
>> Or any other git repo out of mainline u-boot?
>>
>>
>> Exynos is in progress - development is happening in the
>> Chromium tree and being upstreamed in chunks (although no fdt patches have
>> been sent yet).
>>
>>
>> ok.
>>
>>
>>
>>
>> Has someone tried to look for devices based on
>> compatible property?
>> I see that in usb driver it is based on aliases which
>> is not the best solution.
>>
>>
>> U-Boot doesn't yet have a device model which would allow
>> this in the general case. For now, drivers look for their own compatible
>> nodes. This works well enough until we have a device model.
>>
>> There are other limitations also - for example USB
>> supports only a single controller type working at one time (a restriction
>> we may need to look at to support USB2 and USB3 together). So even if two
>> USB drivers decided that they both found compatible nodes, only one of them
>> could operate. So for now aliases provide just an ordering, nothing else.
>>
>>
>>
>> I have looked at the code and did some tests on Microblaze.
>>
>> Firstly I have tried to change emaclite ethernet
>> initialization and I ended with this code fragment which could be
>> broadly used by other drivers.
>>
>> int offset = 0;
>> do {
>> offset = fdt_node_offset_by_compatible(**____gd->fdt_blob,
>> offset, "xlnx,xps-ethernetlite-1.00.a" );
>>
>>
>>
>> You could check if offset < 0 here, or
>> !fdtdec_get_is_enabled(gd->__**fdt_blob, offset)
>>
>>
>> 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);
>> u32 reg = fdtdec_get_int(gd->fdt_blob, offset,
>> "reg", 0);
>>
>>
>> Maybe fdtdec_get_addr()
>>
>>
>> yeah right.
>>
>>
>> do {
>> offset = fdt_node_offset_by_compatible(**__gd->fdt_blob,
>> offset, "xlnx,xps-ethernetlite-1.00.a" );
>> 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);
>> u32 reg = fdtdec_get_addr(gd->fdt_blob, offset, "reg");
>> if (reg != FDT_ADDR_T_NONE)
>>
>> ret |= xilinx_emaclite_initialize(__**bis,
>> reg, txpp, rxpp);
>> } while (offset != -1);
>>
>>
>>
>>
>> if (reg)
>> ret |= xilinx_emaclite_initialize(___*
>> *_bis, reg, txpp, rxpp);
>>
>>
>> } while (offset != -1);
>>
>> What do you think? This code is in platform file.
>>
>>
>> Seems reasonable to me.
>>
>>
>> ok.
>>
>>
>>
>>
>> Also I have tested code around aliases which parse DTS aliases
>> list for console initialization
>> and I have also get it work for !CONSOLE_SERIAL_MULTI case.
>>
>>
>> Great - I did send a patch to the list for fdt serial, but haven't
>> really got back to it.
>>
>>
>>
>> Can you give me link to it or just subject?
>>
>>
>> WIP: fdt: Add serial port controlled by device tree
>>
>> These are the related commits in the Chromium tree. I will get to
>> upstreaming these at some point.
>>
>> 1fe36bf gen: serial: Disable FDT serial console if requested
>> c80331f gen: Adjust fdt console to be silent if no alias present
>> 2006b07 gen: fdt: Add serial port controlled by device tree
>> 711f29d fixup: gen: fdt: Fix compile-time errors
>> 0c8fc5d lost: gen: x86: Allow NS16550 driver to support IO and memory
>> mapped reg
>> da92af5 gen: Fix a compiler warning in serial_fdt.c
>> ab1d572 gen: fdt: silence console in response to device tree 'silent'
>> option
>> 376c215 lost: gen: fdt: Add serial port controlled by device tree
>>
>>
> Can you also send me link to Chromium tree?
>
Yes this should work:
https://git.chromium.org/git/chromiumos/third_party/u-boot.git
> I am going to send RFC for emaclite driver and cleanup Microblaze port.
Great!
Regards,
Simon
>
>
> Thanks,
> Michal
>
>
> --
> Michal Simek, Ing. (M.Eng)
> w: www.monstr.eu p: +42-0-721842854
> Maintainer of Linux kernel 2.6 Microblaze Linux -
> http://www.monstr.eu/fdt/
> Microblaze U-BOOT custodian
>
More information about the U-Boot
mailing list