From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Glass Date: Thu, 28 Jun 2012 19:32:26 -0700 Subject: [U-Boot] ARM CONFIG_OF_CONTROL status In-Reply-To: <4FEBFE72.20106@monstr.eu> References: <4FEAD263.2020707@monstr.eu> <4FEB1A3C.7050207@monstr.eu> <4FEBF08D.2060604@monstr.eu> <4FEBFE72.20106@monstr.eu> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, On Wed, Jun 27, 2012 at 11:49 PM, Michal Simek 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>> 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> >> >> 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 > 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 >