30.07.2015 01:57, Stefan Bruens пишет:
On Wednesday 29 July 2015 15:51:45 Andreas Färber wrote:
Hi Stefan,
Am 29.07.2015 um 04:04 schrieb Stefan Bruens:
By default the dtbs as shipped disable any optional hardware, which is a good thing. On the other hand things like SPI are no longer working.
Raspbian tackles this with so called overlays and some help from the binary start.elf bootloader: 1. start.elf reads the dtb from the fat boot partition
a) a file defined in config.txt, "device_tree=foo.dtb" b) a hardcoded hardware specific default file, "bcm2708-rpi-<variant>.dtb"
2. if the config.txt specifies "dtoverlay=foo-overlay"
1. the boot loader reads "overlays/foo-overlay.dtb" from the fat partition 2. the overlay is patched into the flattened device tree
3. the boot loader puts the device tree at address 0x100 (override with "device_tree_address=0xabcd1234" 4. the boot loader loads the specified kernel
As openSUSE does not directly jump into the kernel, but starts u-boot, this does not work here.
Matwey had enabled DT overlays in the kernel at some point. Does that still require the bootloader to take such special steps?
As far as I know:
Upstream kernel has support for transactional changes of device trees: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2...
This is used by the beaglebone capemanager, which is *not* upstream. http://elinux.org/Capemgr#Implementation
It could also be used by the dt-overlay configfs interface, which is pending due to possible security implications: http://article.gmane.org/gmane.linux.kernel/1816078
So mainline kernel has an in-Kernel API for applying DT overlays, but no user facing interface.
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.
Kind regards,
Stefan
-- To unsubscribe, e-mail: opensuse-arm+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-arm+owner@opensuse.org