Skip to content

Allo Boss 2 device tree overlay or driver broken #5505

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
MichaIng opened this issue Jun 14, 2023 · 14 comments
Closed

Allo Boss 2 device tree overlay or driver broken #5505

MichaIng opened this issue Jun 14, 2023 · 14 comments

Comments

@MichaIng
Copy link

Describe the bug

We have several reports across multiple forums that the Allo Boss 2 dtb is not working (well) after one of the recent kernel upgrades: https://github.com/raspberrypi/linux/blob/rpi-6.1.y/arch/arm/boot/dts/overlays/allo-boss2-dac-audio-overlay.dts

I am not sure who is responsible, Allo, RPi kernel repo, RPi firmware repo, no one? I had a look into it but could not see any obvious error, like false node or such in the dtb. Since it affects quite a lot of users for 2 months without any other solution than downgrading the kernel, I thought it cannot hurt to report it here and hope for the best 🙂.

Steps to reproduce the behaviour

Use Allo Boss 2 HAT, enable related overlay, play audio, which either plays nothing or highly distorted, depending on audio source and format.

Device (s)

Raspberry Pi 4 Mod. B

System

It affects RPi OS, DietPi, moOde, i.e. all distros which use these kernel sources v6.1.

Linux AlloPi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64 GNU/Linux
Mar 17 2023 10:53:00
Copyright (c) 2012 Broadcom
version 82f3750a65fadae9a38077e3c2e217ad158c8d54 (clean) (release) (start_cd)

Logs

aplay -l instead, just to show that the device is detected:

**** List of PLAYBACK Hardware Devices ****
card 0: Boss2 [Allo Boss2], device 0: bcm2835-i2s-allo-cs43130 allo-cs43130-0 [bcm2835-i2s-allo-cs43130 allo-cs43130-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Additional context

No response

@pelwell
Copy link
Contributor

pelwell commented Jun 14, 2023

I don't have one of these devices, and no other sound cards appear to use the cs43130 codec, so debugging will be slow.

Any thoughts, @babuenir?

@MichaIng
Copy link
Author

Me neither. But if someone has an idea how to debug/which output/logs to check, I will try to get everyone here from the other forums and/or forward/collect infos.

@pelwell
Copy link
Contributor

pelwell commented Jun 14, 2023

Let's assume for now that the main codec driver is OK, since it is an unmodified upstream file. The overlay is extremely simple and hasn't changed since 5.15, so we can ignore that, which leaves the soundcard driver - sound/soc/bcm/allo-boss2-dac.c.
We can start to enable tracing in that driver, but before that we can capture the i2c traffic in the two kernels and compare them.

  1. Clear the kernel message log:
$ sudo dmesg -C
  1. Enable i2c tracing:
$ sudo sh -c "echo 1 >/sys/kernel/debug/tracing/events/i2c/enable"
  1. Attempt to play a sound. You can use speaker-test, but turn the volume down first. On RPiOS (and perhaps others) you can also use aplay /usr/share/sounds/alsa/Front_Center.wav.

  2. Capture the tracing output:

$ sudo cat /sys/kernel/debug/tracing/trace > i2c_log1.txt
  1. If you want to run another test without rebooting, first clear the trace so far:
$ sudo sh -c "echo >/sys/kernel/debug/tracing/trace"

Run that test on both kernels, capturing the log to a different (and ideally suitably named) file each time.

If the playback doesn't appear to work, report what you observe, and the output of dmesg.

@UvidusNox
Copy link

UvidusNox commented Jun 17, 2023

Good day, thank you for the help on this issue.

Firsts tests have been run on a vanilla raspberry pi os 64 bit lite install combined with enabling the allo-boss2-dac-audio overlay / driver. Apt update/upgrade has been ran in addition.

Kernel version:

Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64 GNU/Linux

Output of the i2c traces as attached:
i2c_log_speaker_test_kernel6_1_21.txt
i2c_log_wav_kernel6_1_21.txt

After playback there was no output of dmesg whatsoever.

Same thing but for the older kernel Linux AlloPi 5.15.84-v8+ #1613 SMP PREEMPT Thu Jan 5 12:03:08 GMT 2023 aarch64 GNU/Linux on diet-pi; gives the following when running aplay /usr/share/sounds/alsa/Front_Center.wav:

Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono
aplay: set_params:1349: Channels count non available

This is probably also the reason aplay isn't captured in that particular log.

i2c_log_speaker_test_kernel5_15_84.txt
i2c_log_wav_kernel5_15_84.txt

In general the output of tracing the speaker test command seems quite comparable.

Thank you for your guidance.

EDIT: maybe worthwhile to mention here: after enabling the tracing, the speaker-test command in the old kernel 5.15.84 seemed to progress significantly slower than normal. This was not observed (not in this detail) for the new kernel 6.1.21

**this is a condensed copy of a post that i put in the dietpi forums moments ago.

@MichaIng
Copy link
Author

MichaIng commented Jun 17, 2023

The channel count error is btw expected with audio source formats which are not natively supported by the sound driver/card. You can enforce 2 channels with aplay -c 2 /path/to/some.wav resp. speaker-test -c 2. And when you enable the ALSA auto-conversion/plug plugin, it is converted automatically. This can also be done in dietpi-config.

However this is unrelated to the Boss 2 driver issue.

@pelwell
Copy link
Contributor

pelwell commented Jun 19, 2023

There are differences between the traces associated with the two kernels (aside from the i2c spam from some python script), but nothing that screams error. Somebody who actually has one of these things and who cares more than the manufacturer is going to have to do some diagnosis.

@MichaIng
Copy link
Author

Pinging the manufacturer here, @alloboss2 in case you are not aware yet.

@moodeaudio
Copy link

I could do some tests
Boss 2 kernel 6.1.21 all indications are that playback is working but no sound output.

Btw, their Katana driver also has issue but it's a driver load fail just on a Pi 4B, other Pi's are OK.
DMESG: allo-katana-codec 1-0030: Failed to read Chip or wrong Chip id: 0

Here is some ALSA info while playing something via Boss 2

pi@moode:~ $ moodeutl --hwparams
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 4410
buffer_size: 22050
pi@moode:~ $ amixer
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 255
  Mono:
  Front Left: Playback 224 [88%] [-15.50dB] [on]
  Front Right: Playback 224 [88%] [-15.50dB] [on]
Simple mixer control 'PCM De-emphasis Filter',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'PCM Filter Speed',0
  Capabilities: enum
  Items: 'Fast' 'Slow'
  Item0: 'Fast'
Simple mixer control 'PCM High-pass Filter',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'PCM Nonoversample Emulate',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'PCM Phase Compensation',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'Digital',0
  Capabilities: pvolume pswitch
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 255
  Mono:
  Front Left: Playback 224 [88%] [-15.50dB] [on]
  Front Right: Playback 224 [88%] [-15.50dB] [on]
Simple mixer control 'HV_Enable',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
pi@moode:~ $ 
pi@moode:~ $ dmesg | grep allo-
[    0.087730] platform 3f203000.i2s: Fixed dependency cycle(s) with /soc/i2c@7e804000/allo-cs43130@30
pi@moode:~ $ dmesg
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 6.1.21-v8+ (dom@buildbot) (aarch64-linux-gnu-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023
[    0.000000] random: crng init done
[    0.000000] Machine model: Raspberry Pi 3 Model B Plus Rev 1.3
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x0000000037400000, size 64 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000000000-0x000000003b3fffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000003b3fffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000003b3fffff]
[    0.000000] On node 0, zone DMA: 19456 pages in unavailable ranges
[    0.000000] percpu: Embedded 29 pages/cpu s78504 r8192 d32088 u118784
[    0.000000] pcpu-alloc: s78504 r8192 d32088 u118784 alloc=29*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: kernel page table isolation forced ON by KASLR
[    0.000000] CPU features: detected: Kernel page table isolation (KPTI)
[    0.000000] CPU features: detected: ARM erratum 843419
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] alternatives: applying boot alternatives
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 238896
[    0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_hdmi=0 bcm2708_fb.fbwidth=800 bcm2708_fb.fbheight=444 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  console=ttyS0,115200 console=tty1 root=PARTUUID=08edb5af-02 rootfstype=ext4 fsck.repair=yes rootwait
ir=yes rootwait
[    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 861728K/970752K available (11776K kernel code, 2106K rwdata, 3688K rodata, 4160K init, 1077K bss, 43488K reserved, 65536K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] ftrace: allocating 39744 entries in 156 pages
[    0.000000] ftrace: allocated 156 pages with 4 groups
[    0.000000] trace event string verifier disabled
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000]  Rude variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] Root IRQ handler: bcm2836_arm_irqchip_handle_irq
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 timer(s) running at 19.20MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[    0.000001] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[    0.000389] Console: colour dummy device 80x25
[    0.001385] printk: console [tty1] enabled
[    0.001472] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=76800)
[    0.001539] pid_max: default: 32768 minimum: 301
[    0.001751] LSM: Security Framework initializing
[    0.002037] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.002108] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.004076] cgroup: Disabling memory control group subsystem
[    0.007329] cblist_init_generic: Setting adjustable number of callback queues.
[    0.007379] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.007673] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.008024] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.008724] rcu: Hierarchical SRCU implementation.
[    0.008763] rcu:     Max phase no-delay instances is 1000.
[    0.010599] EFI services will not be available.
[    0.011364] smp: Bringing up secondary CPUs ...
[    0.013109] Detected VIPT I-cache on CPU1
[    0.013301] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.015062] Detected VIPT I-cache on CPU2
[    0.015214] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.017019] Detected VIPT I-cache on CPU3
[    0.017166] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.017383] smp: Brought up 1 node, 4 CPUs
[    0.017547] SMP: Total of 4 processors activated.
[    0.017582] CPU features: detected: 32-bit EL0 Support
[    0.017616] CPU features: detected: 32-bit EL1 Support
[    0.017653] CPU features: detected: CRC32 instructions
[    0.017848] CPU: All CPU(s) started at EL2
[    0.017898] alternatives: applying system-wide alternatives
[    0.020566] devtmpfs: initialized
[    0.045591] Enabled cp15_barrier support
[    0.045678] Enabled setend support
[    0.046022] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.046099] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.049520] pinctrl core: initialized pinctrl subsystem
[    0.050862] DMI not present or invalid.
[    0.051915] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.064120] DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations
[    0.064651] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.066241] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.066441] audit: initializing netlink subsys (disabled)
[    0.066905] audit: type=2000 audit(0.064:1): state=initialized audit_enabled=0 res=1
[    0.067975] thermal_sys: Registered thermal governor 'step_wise'
[    0.068112] cpuidle: using governor menu
[    0.068878] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.069202] ASID allocator initialised with 32768 entries
[    0.069494] Serial: AMBA PL011 UART driver
[    0.083293] bcm2835-mbox 3f00b880.mailbox: mailbox enabled
[    0.087730] platform 3f203000.i2s: Fixed dependency cycle(s) with /soc/i2c@7e804000/allo-cs43130@30
[    0.100567] raspberrypi-firmware soc:firmware: Attached to firmware from 2023-03-17T10:52:42, variant start
[    0.104592] raspberrypi-firmware soc:firmware: Firmware hash is 82f3750a65fadae9a38077e3c2e217ad158c8d54
[    0.117726] KASLR enabled
[    0.169421] bcm2835-dma 3f007000.dma: DMA legacy API manager, dmachans=0x1
[    0.176384] SCSI subsystem initialized
[    0.176791] usbcore: registered new interface driver usbfs
[    0.176908] usbcore: registered new interface driver hub
[    0.177037] usbcore: registered new device driver usb
[    0.177750] usb_phy_generic phy: supply vcc not found, using dummy regulator
[    0.178133] usb_phy_generic phy: dummy supplies not allowed for exclusive requests
[    0.178611] pps_core: LinuxPPS API ver. 1 registered
[    0.178650] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
[    0.178721] PTP clock support registered
[    0.180572] vgaarb: loaded
[    0.181777] clocksource: Switched to clocksource arch_sys_counter
[    0.182811] VFS: Disk quotas dquot_6.6.0
[    0.182951] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.183277] FS-Cache: Loaded
[    0.183583] CacheFiles: Loaded
[    0.200738] NET: Registered PF_INET protocol family
[    0.201502] IP idents hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.204207] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes, linear)
[    0.204297] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.204363] TCP established hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.204521] TCP bind hash table entries: 8192 (order: 6, 262144 bytes, linear)
[    0.204918] TCP: Hash tables configured (established 8192 bind 8192)
[    0.205211] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.205303] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    0.205679] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.206803] RPC: Registered named UNIX socket transport module.
[    0.206849] RPC: Registered udp transport module.
[    0.206885] RPC: Registered tcp transport module.
[    0.206919] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.206976] PCI: CLS 0 bytes, default 64
[    0.210257] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.210702] kvm [1]: IPA Size Limit: 40 bits
[    0.212497] kvm [1]: Hyp mode initialized successfully
[    1.994631] Initialise system trusted keyrings
[    1.995264] workingset: timestamp_bits=46 max_order=18 bucket_order=0
[    2.008548] zbud: loaded
[    2.013256] NFS: Registering the id_resolver key type
[    2.013334] Key type id_resolver registered
[    2.013370] Key type id_legacy registered
[    2.013606] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    2.013655] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    2.015895] Key type asymmetric registered
[    2.015943] Asymmetric key parser 'x509' registered
[    2.016089] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    2.016550] io scheduler mq-deadline registered
[    2.016598] io scheduler kyber registered
[    2.027142] bcm2708_fb soc:fb: FB found 1 display(s)
[    2.046040] Console: switching to colour frame buffer device 100x27
[    2.049675] bcm2708_fb soc:fb: Registered framebuffer for display 0, size 800x444
[    2.060100] bcm2835-rng 3f104000.rng: hwrng registered
[    2.062794] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[    2.066599] gpiomem-bcm2835 3f200000.gpiomem: Initialised: Registers at 0x3f200000
[    2.090309] brd: module loaded
[    2.106572] loop: module loaded
[    2.109230] Loading iSCSI transport class v2.0-870.
[    2.118320] usbcore: registered new interface driver r8152
[    2.120042] usbcore: registered new interface driver lan78xx
[    2.121674] usbcore: registered new interface driver smsc95xx
[    2.123878] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    2.854191] Core Release: 2.80a
[    2.855691] Setting default values for core params
[    2.857168] Finished setting default values for core params
[    3.059201] Using Buffer DMA mode
[    3.060669] Periodic Transfer Interrupt Enhancement - disabled
[    3.062175] Multiprocessor Interrupt Enhancement - disabled
[    3.063628] OTG VER PARAM: 0, OTG VER FLAG: 0
[    3.065063] Dedicated Tx FIFOs mode

[    3.067295] WARN::dwc_otg_hcd_init:1074: FIQ DMA bounce buffers: virt = ffffffc008459000 dma = 0x00000000f7810000 len=9024
[    3.071684] FIQ FSM acceleration enabled for :
               Non-periodic Split Transactions
               Periodic Split Transactions
               High-Speed Isochronous Endpoints
               Interrupt/Control Split Transaction hack enabled
[    3.078513] dwc_otg: Microframe scheduler enabled

[    3.078592] WARN::hcd_init_fiq:497: MPHI regs_base at ffffffc008065000
[    3.081376] dwc_otg 3f980000.usb: DWC OTG Controller
[    3.082853] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1
[    3.084415] dwc_otg 3f980000.usb: irq 74, io mem 0x00000000
[    3.085967] Init: Port Power? op_state=1
[    3.087423] Init: Power Port (0)
[    3.089379] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01
[    3.090945] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.092470] usb usb1: Product: DWC OTG Controller
[    3.093981] usb usb1: Manufacturer: Linux 6.1.21-v8+ dwc_otg_hcd
[    3.095483] usb usb1: SerialNumber: 3f980000.usb
[    3.098098] hub 1-0:1.0: USB hub found
[    3.099639] hub 1-0:1.0: 1 port detected
[    3.102447] dwc_otg: FIQ enabled
[    3.102467] dwc_otg: NAK holdoff enabled
[    3.102484] dwc_otg: FIQ split-transaction FSM enabled
[    3.102513] Module dwc_common_port init
[    3.103301] usbcore: registered new interface driver uas
[    3.104879] usbcore: registered new interface driver usb-storage
[    3.106995] mousedev: PS/2 mouse device common for all mice
[    3.115513] sdhci: Secure Digital Host Controller Interface driver
[    3.116932] sdhci: Copyright(c) Pierre Ossman
[    3.119109] sdhci-pltfm: SDHCI platform and OF driver helper
[    3.124373] ledtrig-cpu: registered to indicate activity on CPUs
[    3.126518] hid: raw HID events driver (C) Jiri Kosina
[    3.128213] usbcore: registered new interface driver usbhid
[    3.129640] usbhid: USB HID core driver
[    3.139777] NET: Registered PF_PACKET protocol family
[    3.141437] Key type dns_resolver registered
[    3.145119] registered taskstats version 1
[    3.146672] Loading compiled-in X.509 certificates
[    3.149359] Key type .fscrypt registered
[    3.150747] Key type fscrypt-provisioning registered
[    3.179604] uart-pl011 3f201000.serial: cts_event_workaround enabled
[    3.181253] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 99, base_baud = 0) is a PL011 rev2
[    3.189025] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[    3.191308] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[    3.196201] mmc-bcm2835 3f300000.mmcnr: mmc_debug:0 mmc_debug2:0
[    3.197801] mmc-bcm2835 3f300000.mmcnr: DMA channel allocated
[    3.210048] Indeed it is in host mode hprt0 = 00021501
[    3.226793] sdhost: log_buf @ 00000000202e4b01 (c2a53000)
[    3.277925] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
[    3.286861] of_cfs_init
[    3.288626] of_cfs_init: OK
[    3.292110] Waiting for root device PARTUUID=08edb5af-02...
[    3.327594] mmc1: new high speed SDIO card at address 0001
[    3.343157] mmc0: host does not support reading read-only switch, assuming write-enable
[    3.349915] mmc0: new high speed SDHC card at address aaaa
[    3.353228] mmcblk0: mmc0:aaaa WX32G 29.7 GiB 
[    3.359990]  mmcblk0: p1 p2
[    3.362527] mmcblk0: mmc0:aaaa WX32G 29.7 GiB (quirks 0x00004000)
[    3.390613] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: none.
[    3.392465] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    3.395552] devtmpfs: mounted
[    3.397835] usb 1-1: new high-speed USB device number 2 using dwc_otg
[    3.399733] Indeed it is in host mode hprt0 = 00001101
[    3.413335] Freeing unused kernel memory: 4160K
[    3.415179] Run /sbin/init as init process
[    3.416726]   with arguments:
[    3.416742]     /sbin/init
[    3.416758]   with environment:
[    3.416772]     HOME=/
[    3.416787]     TERM=linux
[    3.606358] usb 1-1: New USB device found, idVendor=0424, idProduct=2514, bcdDevice= b.b3
[    3.608117] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    3.611083] hub 1-1:1.0: USB hub found
[    3.612933] hub 1-1:1.0: 4 ports detected
[    3.901859] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
[    4.002394] usb 1-1.1: New USB device found, idVendor=0424, idProduct=2514, bcdDevice= b.b3
[    4.004327] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    4.007351] hub 1-1.1:1.0: USB hub found
[    4.009237] hub 1-1.1:1.0: 3 ports detected
[    4.015924] systemd[1]: System time before build time, advancing clock.
[    4.271164] NET: Registered PF_INET6 protocol family
[    4.275545] Segment Routing with IPv6
[    4.277260] In-situ OAM (IOAM) with IPv6
[    4.364595] dwc_otg_handle_wakeup_detected_intr lxstate = 2
[    4.372678] systemd[1]: systemd 247.3-7+deb11u2 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified)
[    4.379438] systemd[1]: Detected architecture arm64.
[    4.397914] systemd[1]: Set hostname to <moode>.
[    4.885841] usb 1-1.1.1: new high-speed USB device number 4 using dwc_otg
[    4.986760] usb 1-1.1.1: New USB device found, idVendor=0424, idProduct=7800, bcdDevice= 3.00
[    4.988539] usb 1-1.1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    5.258674] lan78xx 1-1.1.1:1.0 (unnamed net_device) (uninitialized): No External EEPROM. Setting MAC Speed
[    5.270206] systemd[1]: Configuration file /etc/systemd/system/haveged.service.d/syscall.conf is marked executable. Please remove executable permission bits. Proceeding anyway.
[    5.293034] lan78xx 1-1.1.1:1.0 (unnamed net_device) (uninitialized): int urb period 64
[    5.638126] systemd[1]: Queued start job for default target Multi-User System.
[    5.668356] systemd[1]: Created slice system-getty.slice.
[    5.675427] systemd[1]: Created slice system-modprobe.slice.
[    5.682049] systemd[1]: Created slice system-systemd\x2dfsck.slice.
[    5.688200] systemd[1]: Created slice User and Session Slice.
[    5.693551] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[    5.698908] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    5.705558] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[    5.713041] systemd[1]: Reached target Local Encrypted Volumes.
[    5.718244] systemd[1]: Reached target Paths.
[    5.723016] systemd[1]: Reached target Slices.
[    5.727604] systemd[1]: Reached target Swap.
[    5.778185] systemd[1]: Listening on RPCbind Server Activation Socket.
[    5.784571] systemd[1]: Listening on Syslog Socket.
[    5.790642] systemd[1]: Listening on fsck to fsckd communication Socket.
[    5.795806] systemd[1]: Listening on initctl Compatibility Named Pipe.
[    5.802321] systemd[1]: Listening on Journal Audit Socket.
[    5.807968] systemd[1]: Listening on Journal Socket (/dev/log).
[    5.814040] systemd[1]: Listening on Journal Socket.
[    5.824011] systemd[1]: Listening on udev Control Socket.
[    5.829543] systemd[1]: Listening on udev Kernel Socket.
[    5.835386] systemd[1]: Condition check resulted in Huge Pages File System being skipped.
[    5.862584] systemd[1]: Mounting POSIX Message Queue File System...
[    5.874355] systemd[1]: Mounting RPC Pipe File System...
[    5.887201] systemd[1]: Mounting Kernel Debug File System...
[    5.900327] systemd[1]: Mounting Kernel Trace File System...
[    5.905606] systemd[1]: Condition check resulted in Kernel Module supporting RPCSEC_GSS being skipped.
[    5.919717] systemd[1]: Starting Restore / save the current clock...
[    5.932957] systemd[1]: Starting Set the console keyboard layout...
[    5.946856] systemd[1]: Starting Create list of static device nodes for the current kernel...
[    5.962109] systemd[1]: Starting Load Kernel Module configfs...
[    5.975999] systemd[1]: Starting Load Kernel Module drm...
[    5.990009] systemd[1]: Starting Load Kernel Module fuse...
[    6.003047] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped.
[    6.014920] systemd[1]: Starting File System Check on Root Device...
[    6.036429] systemd[1]: Starting Journal Service...
[    6.106811] fuse: init (API version 7.37)
[    6.107282] systemd[1]: Starting Load Kernel Modules...
[    6.122324] systemd[1]: Starting Coldplug All udev Devices...
[    6.194334] systemd[1]: Mounted POSIX Message Queue File System.
[    6.200684] systemd[1]: Mounted RPC Pipe File System.
[    6.210924] i2c_dev: i2c /dev entries driver
[    6.216937] systemd[1]: Mounted Kernel Debug File System.
[    6.223519] systemd[1]: Mounted Kernel Trace File System.
[    6.231282] systemd[1]: Finished Restore / save the current clock.
[    6.240430] systemd[1]: Finished Create list of static device nodes for the current kernel.
[    6.248587] systemd[1]: [email protected]: Succeeded.
[    6.253809] systemd[1]: Finished Load Kernel Module configfs.
[    6.262363] systemd[1]: [email protected]: Succeeded.
[    6.267347] systemd[1]: Finished Load Kernel Module drm.
[    6.275260] systemd[1]: [email protected]: Succeeded.
[    6.279737] systemd[1]: Finished Load Kernel Module fuse.
[    6.287900] systemd[1]: Finished Load Kernel Modules.
[    6.338945] systemd[1]: Mounting FUSE Control File System...
[    6.351570] systemd[1]: Mounting Kernel Configuration File System...
[    6.365611] systemd[1]: Starting pNFS block layout mapping daemon...
[    6.392592] systemd[1]: Started File System Check Daemon to report status.
[    6.408435] systemd[1]: Starting Apply Kernel Variables...
[    6.438436] systemd[1]: Mounted FUSE Control File System.
[    6.454414] systemd[1]: Finished File System Check on Root Device.
[    6.472348] systemd[1]: Mounted Kernel Configuration File System.
[    6.479356] systemd[1]: Started pNFS block layout mapping daemon.
[    6.522648] systemd[1]: Starting Remount Root and Kernel File Systems...
[    6.561521] systemd[1]: Finished Apply Kernel Variables.
[    6.595082] systemd[1]: Started Journal Service.
[    6.775735] EXT4-fs (mmcblk0p2): re-mounted. Quota mode: none.
[    6.913372] systemd-journald[144]: Received client request to flush runtime journal.
[    8.196665] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[    8.207394] mc: Linux media interface: v0.10
[    8.208014] bcm2835_vc_sm_cma_probe: Videocore shared memory driver
[    8.208062] [vc_sm_connected_init]: start
[    8.209484] [vc_sm_connected_init]: installed successfully
[    8.327243] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[    8.327857] videodev: Linux video capture interface: v2.00
[    8.432541] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[    8.433866] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[    8.480506] bcm2835_isp: module is from the staging directory, the quality is unknown, you have been warned.
[    8.482276] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[    8.496969] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[    8.531048] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[    8.531131] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[    8.538964] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video13
[    8.539998] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[    8.540075] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[    8.540964] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video14
[    8.542827] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video15
[    8.544933] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video16
[    8.545007] bcm2835-isp bcm2835-isp: Register output node 0 with media controller
[    8.545044] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller
[    8.545075] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller
[    8.545104] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller
[    8.550442] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[    8.550523] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[    8.562817] bcm2835-codec bcm2835-codec: Device registered as /dev/video18
[    8.562901] bcm2835-codec bcm2835-codec: Loaded V4L2 image_fx
[    8.569316] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video20
[    8.570242] bcm2835-codec bcm2835-codec: Device registered as /dev/video31
[    8.570324] bcm2835-codec bcm2835-codec: Loaded V4L2 encode_image
[    8.574740] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video21
[    8.577125] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video22
[    8.582924] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video23
[    8.582993] bcm2835-isp bcm2835-isp: Register output node 0 with media controller
[    8.583029] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller
[    8.583060] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller
[    8.583089] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller
[    8.583458] bcm2835-isp bcm2835-isp: Loaded V4L2 bcm2835-isp
[    8.790132] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    8.848448] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    8.875601] cfg80211: loaded regulatory.db is malformed or signature is missing/invalid
[    9.030261] brcmfmac: F1 signature read @0x18000000=0x15264345
[    9.046349] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[    9.048943] usbcore: registered new interface driver brcmfmac
[    9.334627] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Nov  1 2021 00:37:25 version 7.45.241 (1a2f2fa CY) FWID 01-703fd60
[   10.718052] hwmon hwmon1: Undervoltage detected!
[   11.454590] 8021q: 802.1Q VLAN Support v1.8
[   12.082548] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled
[   12.492103] 8021q: adding VLAN 0 to HW filter on device eth0
[   12.498434] lan78xx 1-1.1.1:1.0 eth0: Link is Down
[   18.123665] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   19.588209] ICMPv6: process `dhcpcd' is using deprecated sysctl (syscall) net.ipv6.neigh.wlan0.retrans_time - use net.ipv6.neigh.wlan0.retrans_time_ms instead
[   43.830310] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save disabled
pi@moode:~ $ 

@pelwell
Copy link
Contributor

pelwell commented Jun 20, 2023

I think the cs43130 problem is due to this commit: e14bd35

It switches from describing a fraction with two separate u16s linked only by name and usage to using a standard u16_fract structure. Unfortunately the author and reviewer failed to notice that the conversion effectively swapped the numerator and denominator.

#5510 is a potential fix - I'm happy that it fixes the numerator/denominator ordering, but there might be other issues as well. Once the autobuilds have completed (in about an hour from now) you will be able to install a test kernel using sudo rpi-update pulls/5510.

@pelwell
Copy link
Contributor

pelwell commented Jun 20, 2023

It's good to go, if anyone wants to try:

$ sudo rpi-update pulls/5510

And if you don't have rpi-update:

$ sudo curl -L --output /usr/bin/rpi-update https://github.com/raw/raspberrypi/rpi-update/master/rpi-update && sudo chmod +x /usr/bin/rpi-update

@moodeaudio
Copy link

One of our users confirmed the patch works.
https://moodeaudio.org/forum/showthread.php?tid=5644&pid=47286#pid47286

@pelwell
Copy link
Contributor

pelwell commented Jun 21, 2023

Excellent. The patch was merged yesterday, so it will be in future kernel releases.

At some point I'll have to notify the upstream devs...

@moodeaudio
Copy link

Super nice!

Boss 2 is beloved by many Pi audio enthusiasts.

@pelwell
Copy link
Contributor

pelwell commented Jun 22, 2023

The patch is now queued up for Linux 6.4: https://kernel.googlesource.com/pub/scm/linux/kernel/git/broonie/sound/+/a9e7c964cea4fb1541cc81a11d1b2fd135f4cf38
Because it has a Fixes: tag it should be back-ported to LTS kernels (i.e. 6.1) as a matter of course, at which point we'll drop our downstream version.

@pelwell pelwell closed this as completed Jun 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants