0
hanni76

Trying to add overlay support to sunxi "dev" build

Recommended Posts

Hello guys

can you help me please understand your overlay compilation support  which is working in "next" build?

I transferred  required  patches and  made a build with 4.15. Now I have my dtbos and scr in place, added "overlays=" in armbianEnv.txt but my overlays are not loaded in run-time.

I noticed that you have the following condition around dtbos: 

 

ifeq ($(CONFIG_OF_CONFIGFS),y)

...

endif

 

and there is also a special patch to add configs module to build. 

My question: is configs module required for loading overlays ? I can't apply this patch into 4.15 as configfs.c is not compatible with new codebase. 

 

Here is my patches 

https://github.com/orpaltech/antenna-analyzer-armbian/blob/master/build/userpatches/kernel/sunxi-dev/Add-overlay-compilation-support.patch

https://github.com/orpaltech/antenna-analyzer-armbian/blob/master/build/userpatches/kernel/sunxi-dev/board_bananapim1plus/Add-sun7i-a20-overlays.patch

Thanks

 

Share this post


Link to post
Share on other sites

The issue still exists with sunxi-dev (kernel 4.15) and sun7i-a20. I've already verified all things that in my opinion might be a cause of the problem but I haven't found a solution yet. 

I've also found that the ability to load overlays in run-time does NOT depend on CONFIG_OF_CONFIGFS. I've tested this by switching off this functionality in sunxi-next build: my OrangePi PC  is still able to load overlays without configfs. 

I think I am going to do a printk-debug soon in overlay-related code.

Share this post


Link to post
Share on other sites
17 minutes ago, hanni76 said:

The issue still exists with sunxi-dev (kernel 4.15) and sun7i-a20.


We have no plans to adjust those patches for anything > 4.14.y in next couple of months. As you can see there is currently a big mess with patches for NEXT and that has to be sorted before we can move further. I don't see a point to mess with this right now.

 

IMHO if you need some functionality from higher kernels, rather backport to 4.14.y since this will be the next LTS build. Also first stable build for H3/H6&A64 ... when we are that far.

Share this post


Link to post
Share on other sites
4 hours ago, hanni76 said:

I've also found that the ability to load overlays in run-time does NOT depend on CONFIG_OF_CONFIGFS. I've tested this by switching off this functionality in sunxi-next build: my OrangePi PC  is still able to load overlays without configfs.

Without CONFIG_OF_CONFIGFS, you won't have the sysfs location /sys/kernel/config/device-tree/overlays, so you won't be able to load overlays AFTER the kernel has booted, but this doesn't prevent U-Boot been able to load some overlays BEFORE the kernel been booted.

 

Share this post


Link to post
Share on other sites
7 hours ago, Igor said:


We have no plans to adjust those patches for anything > 4.14.y in next couple of months. As you can see there is currently a big mess with patches for NEXT and that has to be sorted before we can move further. I don't see a point to mess with this right now.

 

IMHO if you need some functionality from higher kernels, rather backport to 4.14.y since this will be the next LTS build. Also first stable build for H3/H6&A64 ... when we are that far.

Thanks for reply

but I don't feel I can do a painless backport of drm display engine, it seems complex to me. 

 

2 hours ago, martinayotte said:

Without CONFIG_OF_CONFIGFS, you won't have the sysfs location /sys/kernel/config/device-tree/overlays, so you won't be able to load overlays AFTER the kernel has booted, but this doesn't prevent U-Boot been able to load some overlays BEFORE the kernel been booted.

 

Thanks, martinayotte

does this mean if I rewrite configs.c file for 14.5 (there shouldn't be too much work, as far as I can see) then overlays should start loading ? 

I wonder why it works WITHOUT configs in sunxi-next. This is my big question. I confirm again that it works. I mean I normally set  "overlays=bla bla" in armbianEnv.txt file and they load and work. with no configfs.c compiled!

 

wait... I have an idea.. maybe configfs is deployed from previous builds ? I don't think I did a specific cleanup there in addition to the mandatory cleanup which is done before every build.

 

ok, I see now. configs is compiled into kernel, it is not a module. that's why it is still in the kernel and overlays work

 

7 hours ago, Igor said:


We have no plans to adjust those patches for anything > 4.14.y in next couple of months. As you can see there is currently a big mess with patches for NEXT and that has to be sorted before we can move further. I don't see a point to mess with this right now.

 

IMHO if you need some functionality from higher kernels, rather backport to 4.14.y since this will be the next LTS build. Also first stable build for H3/H6&A64 ... when we are that far.

Yes, it makes sense. I'll see if I can do that.

But I am afraid that might be much more complicated task for me than analyzing your patches that I have directly on my hard drive. I can apply them 1 by 1 as soon as I need them.

Share this post


Link to post
Share on other sites
On 12/22/2017 at 4:32 PM, martinayotte said:

Without CONFIG_OF_CONFIGFS, you won't have the sysfs location /sys/kernel/config/device-tree/overlays, so you won't be able to load overlays AFTER the kernel has booted, but this doesn't prevent U-Boot been able to load some overlays BEFORE the kernel been booted.

 

 

Hi again,

I have recompiled sunxi-next with "add-configfs-overlay-for-v4.10.x.patch" disabled. My overlays are still working fine!

Any ideas? @Igor  @zador.blood.stained maybe someone else can remember how overlays are actually loaded in runtime and what patch do I need ??

 

I have maid more experiments (full cleanup & rebuild & check /sys/kernel/config/ directory) with the same results :  "sunxi-next" overlays are loaded WITHOUT configfs.

 

I am still digging into it yourself but any help will be very much appreciated!

 

@martinayotte I just found in your answer that it maybe u-boot which is loading overlays and configfs.c is not required to load overlay listed in armbianEnv.txt, correct ?

Share this post


Link to post
Share on other sites

@martinayotteOk, now I see it.

I tested my overlays with configfs and they were accepted with no error. And so I'm assuming they are correct. I previously tried loading overlays compiled without -@ option and they failed to load by configfs.

 

Let me ask you one more question: do you have any assumptions why valid overlays are not loaded by u-boot in "sunxi-dev" build ?

The "sunxi-dev" is using the same u-boot 2017.11 as "sunxi-next" with full list of patches. Why shouldn't it load my VALID overlays ?? Can this somewhat depend on patches applied to the kernel itself ?

Share this post


Link to post
Share on other sites

@martinayotte I tried dtc -@.

 

Here is my u-boot log

 

U-Boot SPL 2017.11-armbian (Dec 24 2017 - 21:10:46)
DRAM: 1024 MiB
CPU: 912000000Hz, AXI/AHB/APB: 3/2/2
Trying to boot from MMC1


U-Boot 2017.11-armbian (Dec 24 2017 - 21:10:46 +0300) Allwinner Technology

CPU:   Allwinner A20 (SUN7I)
Model: Banana Pi BPI-M1-Plus
I2C:   ready
DRAM:  1 GiB
MMC:   SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment

Setting up a 720x576i composite-pal console (overscan 32x20)
In:    serial
Out:   vga
Err:   vga
SCSI:  SATA link 0 timeout.
AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl SATA mode
flags: ncq stag pm led clo only pmp pio slum part ccc apst 
Net:   eth0: ethernet@01c50000
230454 bytes read in 155 ms (1.4 MiB/s)
starting USB...
USB0:   USB EHCI 1.00
USB1:   USB OHCI 1.0
USB2:   USB EHCI 1.00
USB3:   USB OHCI 1.0
scanning bus 0 for devices... 1 USB Device(s) found
scanning bus 2 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
Autoboot in 1 seconds, press <Space> to stop
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot/boot.scr
3708 bytes read in 213 ms (16.6 KiB/s)
## Executing script at 43100000
U-boot loaded from SD
Boot script loaded from mmc
271 bytes read in 173 ms (1000 Bytes/s)
5264196 bytes read in 574 ms (8.7 MiB/s)
7193216 bytes read in 698 ms (9.8 MiB/s)
Found mainline kernel configuration
39675 bytes read in 458 ms (84 KiB/s)
573 bytes read in 1331 ms (0 Bytes/s)
Applying kernel provided DT overlay sun7i-a20-spi0.dtbo
1057 bytes read in 1358 ms (0 Bytes/s)
Applying kernel provided DT overlay sun7i-a20-spidev.dtbo
267 bytes read in 1202 ms (0 Bytes/s)
Applying kernel provided DT overlay sun7i-a20-brcmf.dtbo
269 bytes read in 1282 ms (0 Bytes/s)
Applying kernel provided DT overlay sun7i-a20-ir-off.dtbo
5450 bytes read in 1224 ms (3.9 KiB/s)
Applying kernel provided DT fixup script (sun7i-a20-fixup.scr)
## Executing script at 44000000
## Loading init Ramdisk from Legacy Image at 43300000 ...
   Image Name:   uInitrd
   Image Type:   ARM Linux RAMDisk Image (gzip compressed)
   Data Size:    5264132 Bytes = 5 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 43000000
   Booting using the fdt blob at 0x43000000
   Loading Ramdisk to 49afa000, end 49fff304 ... OK
   reserving fdt memory region: addr=43000000 size=70000
   Loading Device Tree to 49a87000, end 49af9fff ... OK

Starting kernel ...
 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
0