30.07.2015 20:56, Brüns, Stefan пишет:
On Thursday, July 30, 2015 11:04:21 Matwey V. Kornilov wrote:
Hello Andreas and Stefan,

That is correct. But you tell about bootloader, I am not sure why does
a bootloader need device tree overlay support in kernel. I mean it can
merge device tree before actual kernel loaded and run.


Thats how it is currently implemented in Raspbian.

The proprietary bootloader loads the board specific DTB and applies all the
overlays specified in config.txt (dtoverlay=...) on top.

The modified DTB is then provided for the kernel.


I see some possible approaches, all with cons and pros:

1. Take the DTB from the RaspBerryPI start.elf bootloader
   Pros:
     a) Upstream mechanisms like dtoverlay=... work. Users may be confused why
       they can specify overlays in config.txt on Raspbian, but not openSUSE
     b) Early availability of hardware, e.g. SPI connected TFTs, usable before
       userland is available.
   Cons:
     a) only works for RPI
     b) may affect the "U-Boot as safety net" approach.


AFAIU, basic openSUSE ARM paradigm is that we follow upstream kernel and bootloader. So, If you rely on specific Raspbian behavior it is better to consider using Raspbian. As far as the problem you highlight here is common to vast majority of ARM boards, I think it is better to try to find hardware agnostic solution.

2. Add overlay support to U-Boot
   Pros:
     a) may be tweakable even for network boots and other enhanced u-boot
        capabilities
     b) hardware from overlays available early (even for u-boot?)
     c) cross platform
   Cons:
     a) not implemented

Do you feel that you can implement it for u-boot? I think It would require lot of spare time for the project.

     b) different to Raspbian, raspberrypi.org documentation

Actually that would be great to implement, but there is another obstacle:
c) DTBs are carried inside linux Kernel and they are not split into overlays yet, so user will have to write his own DTO and compile it d) bootloader have to be somehow auto-configured allowing installation of needed overlay from RPM package to mass-deploy use-cases.


3. Use kernel overlay support (á la capemanager)
   Pros:
     a) runtime overlay changes possible
     b) CONFIGFS overlay support available as patch
   Cons:
     a) different to Raspbian
     b) CONFIGFS approach needs action from userspace

This is also must-have feature, but it does have slightly different use-case when you need to modify device tree without reboot (when you have FPGA and change its firmware, for instance). Consider the case when you just attached SPI/UART to your board then #2 would be sufficient to you.

Problem here that I am not sure that CONFIGFS patches will ever be accepted into upstream. Actually, we could try to apply these patches to openSUSE kernel, but this would require argumentation to SUSE Kernel team why we really need to do that.

I think that user-space action may be integrated into systemd to make consistent syntax

# systemctl enable [email protected]

and so on

Currently the only possibility to get e.g. SPI running on the RPI is to patch
the DTS (set status=okay), recompile to DTB, put it into the /boot partion,
and either overwrite the original dtb file or set the fdtfile uboot env var.

Thats just to complicated.

The same is with BeagleBone Black, I am agree.


What I want is a plan to get this working.


Kind regards,

Stefan



--
To unsubscribe, e-mail: [email protected]
To contact the owner, e-mail: [email protected]

Reply via email to