U-Boot and kernel 5.14

Hi Christian, I get this kernel message:

bpim5 login: [ 60.405123] irq 39: nobody cared (try booting with the “irqpoll” option) [ 60.406336] handlers: [ 60.408436] [<0000000076cdcc06>] irq_default_primary_handler threaded [<00000 000c1ea32d7>] phy_interrupt [ 60.417836] Disabling IRQ #39 bpim5 login: [ 60.405123] irq 39: nobody cared (try booting with the “irqpoll” option)

Ubuntu 21.04 bpim5 ttyAML0

bpim5 login:

Do you know why it could be?

The blx_fix.sh script requires bash, but your Ubuntu VM links /bin/bash to /bin/dash which does not support declare so the script errors. Switch the VM to bash … Google the problem, it’s a common issue with Ubuntu.

No you cannot fix userspace routing via kernel configuration. Go read previous comments on how to make it persistent (alsactl is probably easiest).

No idea about the IRQ issue, I never boot generic kernels or use desktop distros.

Have you tried adding this to your bootopts in uboot (to be passed as cmdline to kernel)?

Btw do you used script above or did you call the commands alone (have used 0 as card)?

Hi Christian, I want to thank you for all your support with this matter. I find out that the IRQ 39 issue is only with Kernel 5.13 and 5.14, I builded Kernel 5.10 and works well. By now, for testing, I’m using a simple boot commands but I have to research to improveit. I’m newbe buildig linux OS so I have many other questions. I don’t know how to get the initrd and vmlinuz from builded linux mainline folder. When I boot debian or ubuntu distros, I just put the headers on include folder and module on lib folder and works well but I see that many other use initrd file or vmlinux. I appreciate if you giveme some ideas to how do that. The other thing is that I can’t do change manually the screen resolution on boot commands.

have you tried cat /proc/interrupts to find out a bit more about irq39?

can you post your commands for audio?

arm(64) devices mostly don’t use vmlinux, more uImage or itb. vmlinux is used for x86/64

initrd id only needed if you need to do something before rootfs is mounted (e.g. setup a overlay_fs,encryption,…)

Hi, Frank, I used irqpoll option and the kernel warning is gone. Now I find out that the gpio acces is more simple by installing the package gpiod but I dot’ know how to use i2c for rtc rtc ds3231.

apt install alsa-utils -y

alsactl init

alsactl store

amixer sset ‘FRDDR_A SINK 1 SEL’ ‘OUT 1’

amixer sset ‘FRDDR_A SRC 1 EN’ on

amixer sset ‘TDMOUT_B SRC SEL’ ‘IN 0’

amixer sset ‘TOHDMITX’ on

amixer sset ‘TOHDMITX I2S SRC’ ‘I2S B’

alsactl store

reboot

1 Like

Do you have acces to /dev/i2cX? in debian there are i2c tools with i2cdetect to communicate with i2c devices.

https://www.fw-web.de/dokuwiki/doku.php?id=en/bpi-r2/gpio#i2c

Maybe there is also an linux kernel-module for rtc which only needs to configured in userspace

Hi Frank I did it but doesn’t detect any device on the i2c bus, there isn’t mistakes with the connection because I already test with the debian distro by Sinovoip and works well. I suppose is something todo with my kernel build or the overlay files, by the way, I try to use Sinovoip overlays but it doesn’t work with my kernel build, I suppose that is happen because they are diferent kernel versions.

This is my otuput with my kernel build:

 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

00: – -- – -- – -- – -- – -- – -- –

10: – -- – -- – -- – -- – -- – -- – -- – --

20: – -- – -- – -- – -- – -- – -- – -- – --

30: 30 – -- – -- – -- – -- – -- – -- – -- –

40: – -- – -- – -- – -- – -- – -- – -- – --

50: 50 – -- – -- – -- – -- – -- – -- – -- –

60: – -- – -- – -- – -- – -- – -- – -- – --

70: – -- – -- – -- – --

This is my otuput with Sinovoip kernel build:

 0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f

00: – -- – -- – -- – -- – -- – -- –

10: – -- – -- – -- – -- – -- – -- – -- – --

20: – -- – -- – -- – -- – -- – -- – -- – --

30: – -- – -- – -- – -- – -- – -- – -- – --

40: – -- – -- – -- – -- – -- – -- – -- – --

50: – -- – -- – -- – 57 – -- – -- – -- – --

60: – -- – -- – -- – -- 68 – -- – -- – -- –

70: – -- – -- – -- – --

Any ideas?

Hi Frank, I’m trying to load i2c overlay but I got an error:

failed on fdt_overlay_apply(): FDT_ERR_NOTFOUND base fdt does did not have a /symbols node make sure you’ve compiled with -@

The console log is attached in this post.

overlay boot log.txt (1,4 KB)

Mhm, i thought i had it documented somewhere,but have not found it…as your message says you need to compile your dtb with -@ flag. Afair i had modified the Makefile in arch/arm/boot

You can first modify your dts instead of creating an dtb…just for testing

My steps were here: Set MAC-Address on boot

This is dtbo

dtc -@ -I dts -O dtb -o bpi-r2-mac.dtb bpi-r2-mac.dts

And you have to compile your main dtb with -@ too…have done it this way:

added

export DTC_FLAGS=-@

to my build.sh and now i see the symbols

Where I add this line?

When building dtbs…this is mostly done together with kernel itself and modules

DTC_FLAGS=-@ make -j4 dtbs modules

Or using export before

You can verify with

fdtdump arch/*/boot/dts/.../board.dtb | grep -C3 __symbols__

$ fdtdump meson-sm1-bananapi-m5.dtb | grep -C3 symbols

**** fdtdump is a low-level debugging tool, not meant for general use.

**** If you want to decompile a dtb, you probably want

**** dtc -I dtb -O dts

Warning is ok,but have you added path to your dtb? It should look like in the linked thread

But no other output can mean you have no symbols

I executed the command where the dtb file is located.

Ok,then it seems it was not working passing dtc_flags this way…you can try the export way

Hi Frank, I used command line that you told me and now boots without any error or warning when I load the i2c overlay but still no i2c device is detected connected to the bus. I attached the commands and outputs before and after loading the overlay.

LOG I2C.txt (2,4 KB)

But i2c adapter is visible with overlay (meson i2c controller). Maybe some error in new i2c node (something new driver needs compared to old)?

Do you have any info/warn/error in dmesg?

Hi Christian, I found some kind of audio routing on the specific DTS file for BPI-M5 but I don’t understand how to modify it accordingly your instructions for audio routing. I added to this post the DTS file. I appreciate if you can check out and help me whit this.

meson-sm1.dtsi (13,7 KB) meson-sm1-bananapi-m5.dts (12,7 KB)