Hi Andre, On Thu, Mar 29, 2018 at 2:49 PM, Andre Przywara <andre.przyw...@arm.com> wrote: > Hi, > > On 29/03/18 09:51, Jagan Teki wrote: >> Hi Andre, >> >> On Wed, Mar 14, 2018 at 7:26 AM, Andre Przywara <andre.przyw...@arm.com> >> wrote: >>> A minor update to the v3 version sent earlier this month. >>> I reworked patch 09 to drop the direct MMC environment for 32-bit Allwinner >>> boards as well and keep the current MMC offset. >>> For now I also dropped the two patches changing (back) the MMC regulator. >>> I still believe they are good to have and keep them as U-Boot specific >>> .dtsi files in my tree, possibly posting them later again. >>> >>> As the previous version, this combines the EMAC DT support update with >>> an update of the full Linux kernel DTs for all H3, H5 and A64 boards. >>> >>> Patch 01 leaves some hint in the README how to avoid the situation >>> when overrunning U-Boot's image size on 64-bit boards. >>> The old v2 EMAC DT update series is in patches 02-08, it prepares U-Boot's >>> EMAC driver for using the new DT binding used in Linux, also updates >>> the DTs to the new EMAC DT node already. >>> >>> Changes to sync the whole of U-Boot's DT files for the H3, H5 and A64 SoCs >>> to those from Linux are in the following patches. However this first >>> requires >>> lifting the space limit we currently have due to the raw MMC environment. >>> Patch 09 disables that for all sunxi boards, to give us finally some >>> space. Patches 10 and 11 consequently revert the disabling of features we >>> saw a few weeks ago to migitate the size problem. >>> >>> Patches 12-19 then bring in the Linux DTs, split by SoCs, with the .dtsi >>> files first, then the board files. >>> >>> Merging the H3 and H5 device tree files brings in significant changes, >>> also to the structure of the .dtsi files. However U-Boot's own DT usage >>> is pretty limited, so it doesn't matter. >>> >>> The huge benefit of syncing the DTs is that we can use U-Boot's DT copy >>> to directly pass it to the kernel, avoiding to actually load a .dtb file >>> from somewhere. To allows seamless and automatic UEFI booting, so >>> distribution installer images should just work (TM). >>> >>> As a goodie the final patch brings in the actual SoPine + baseboard DT >>> files, which we were completely missing so far. >>> >>> This is based on sunxi/master (2d53018a0ef2). >>> >>> Cheers, >>> Andre. >>> >>> Changelog v3 .. v4: >>> - remove MMC environment for all Allwinner boards (including 32 bit ones) >>> - keep MMC environment offset to the old values >>> - drop DT adjustments to use fixed MMC regulator >>> >>> Changelog v2 .. v3: >>> 01: added, was on the list before >>> 02: drop redundant H5 line >>> 03-08: unchanged >>> 09-20: added >>> >>> Changelog v1 .. v2: >>> 01, 02, 03: unchanged >>> 04, 05, 06, 07: added >>> >>> Andre Przywara (19): >>> sunxi: README.sunxi64: Add hint about non-debug of ARM Trusted >>> Firmware >>> sunxi: gpio: add missing compatible strings >>> net: sun8i-emac: support new pinctrl DT bindings >>> net: sun8i-emac: add support for new EMAC DT binding >>> arm: dts: sunxi: update A64 to new EMAC binding >>> arm: dts: sunxi: update H3 to new EMAC binding >>> arm: dts: sunxi: update H5 to new EMAC binding >>> net: sun8i-emac: remove support for old binding >>> sunxi: disable direct MMC environment >>> sunxi: revert disabling of features >>> Revert "sunxi: Pine64: temporarily remove extra Pine64 non-plus DT" >>> sunxi: DT: A64: update device tree file for Allwinner A64 SoC >>> sunxi: DT: A64: update board .dts files from Linux >>> sunxi: DT: update device tree files for Allwinner H3 and H5 SoCs >>> sunxi: DT: H5: update board .dts files from Linux >>> sunxi: DT: H3: update board .dts files from Linux >>> sunxi: DT: H3: update libre-cc board .dts file >>> sunxi: DT: H2+: update Opi-zero .dts >>> sunxi: DT: A64: add proper SoPine baseboard device tree >> >> I agree that we have space for now with U-Boot proper since we removed >> MMC raw, but why we need to Sync all the dts nodes from Linux? > > The main reason for me is to allow passing U-Boot's DT to Linux - or any > other OS, for that matter. This happens already automatically with the > distro defaults UEFI boot: just put in an UEFI enabled USB pen drive > (distro installers) and U-Boot will boot from there - without any user > interaction or special boot script, without the OS providing any DTs. > > Conceptually there is only one DT for each board. The fact that U-Boot > has deviated has no technical reason, it's just not being updated. > >> it is costing some space right? > > We don't care about this so much anymore. For practical reasons it would > be good to stay below 984KB (from after the SPL till 1MB, where the > first partition normally starts). Adding like 10 KB to the image size is > nothing in there, especially when looking at the benefits - automatic > boot of any OS. > >> becuase >> - most of the nodes doesn't have proper drivers yet example: clock, >> reset, spi, axp803 and some include files and etc >> - Few nodes like mmc1 from bananpi-m64 doesn't need from U-Boot point-of-view > > Yes, U-Boot itself does not use those - but it doesn't hurt either. We > don't need to invent some notion of U-Boot DT. The DT is not an OS > configuration file, it's a hardware description. > >> What I'm trying to say is we should anyway sync to Linux bindings and >> dts files, but that could be like step-by-step based on the relevant >> driver support with proper testing this way we can monitor the "Size" >> instead of adding unneeded(for now) and untested once now struggling >> to think about size constraints later. > > I hope we will never have to deal with hard size constraint for U-Boot > proper anymore. I would like to judge any increase in size by its > benefit. And booting random UEFI enabled OSes out of the box is a very > good rationale for adding 10KB to the image size. > > Keep in mind: Eventually you have to load this DT anyway, so effectively > you will save on the image size, because you avoid duplication. Actually > the OS does not need to carry all supported DTs, because the only one > needed is provided by U-Boot.
If I understood correctly, look like all comments from your side for syncing full Linux dts have benefit with automatic boot of OS. This feature make U-Boot to have full Linux dts inside, Can't we implement automatic-boot-of-os distro to grab Linux dtb during commands stage like other distro does? Because this make few development struggles for U-Boot project like (few of the comments are repeated from previous mail, but I'm trying to group them all) - Unnecessary to maintain nodes which are not required for bootloader and which doesn't have proper dt drivers. - It becomes more patches for each-and-every sync. - We can compare the sync with Linux dt and simply apply on U-Boot which look not good to project growing. - Increase size(though it 10KB increase) it becomes unnecessary size from U-Boot point-of-view >> If are fine with this please re-work based on above points and resend >> the next version otherwise please comment. > > I wonder if we could just merge the first few patches now, up until and > including 11/19. The EMAC DT binding deviation we have at the moment is > really annoying and those patches do not increase the size. Will re-check and apply all OK. > > We can have a separate discussion about the rest, if you really like. Worth to have thread with subject like "Full DT sync from Linux is required?" Jagan. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot