Skip to content

5.15 kernel break Hifiberry DAC 2 HD Hat #4898

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
apastuszak opened this issue Feb 17, 2022 · 43 comments
Closed

5.15 kernel break Hifiberry DAC 2 HD Hat #4898

apastuszak opened this issue Feb 17, 2022 · 43 comments

Comments

@apastuszak
Copy link

Describe the bug

Upgrading to the 5.15 Linux kernel breaks compatibiilty with the Hifiberry DAC 2 HD. I did an rpi-update, rebooted my pi, and aplay no longer sees the HAT.

This is what is in my config.txt

# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details

# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1

# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16

# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720

# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1

# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1

# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2

# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4

# uncomment for composite PAL
#sdtv_mode=2

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800

# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on

# Uncomment this to enable infrared communication.
#dtoverlay=gpio-ir,gpio_pin=17
#dtoverlay=gpio-ir-tx,gpio_pin=18

# Additional overlays and parameters are documented /boot/overlays/README

# Enable audio (loads snd_bcm2835)
#dtparam=audio=on

# Automatically load overlays for detected cameras
camera_auto_detect=1

# Automatically load overlays for detected DSI displays
display_auto_detect=1

# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d,audio=off
max_framebuffers=2

# Run in 64-bit mode
arm_64bit=1

# Disable compensation for displays with overscan
disable_overscan=1

[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1

[all]

[pi4]
# Run as fast as firmware / board allows
arm_boost=1

[all]

force_eeprom_read=0
dtoverlay=hifiberry-dacplushd

Output of aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: vc4hdmi1 [vc4-hdmi-1], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Steps to reproduce the behaviour

Use rpi-update to upgrade the kernel to 5.15

Device (s)

Raspberry Pi 4 Mod. B

System

Raspberry Pi reference 2022-01-28
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, fbe448ccdc995d295d24c7596e5f0ef62cc2488f, stage2
Feb  4 2022 12:05:40
Copyright (c) 2012 Broadcom
version a26faf97e3bf76bcc23949d7cdab2f96f399a0c3 (clean) (release) (start)
Linux raspberrypi 5.15.23-v8+ #1525 SMP PREEMPT Wed Feb 16 14:36:10 GMT 2022 aarch64 GNU/Linux

Logs

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083]
[    0.000000] Linux version 5.15.23-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) #1525 SMP PREEMPT Wed Feb 16 14:36:10 GMT 2022
[    0.000000] random: fast init done
[    0.000000] Machine model: Raspberry Pi 4 Model B Rev 1.1
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x000000001ac00000, size 320 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000000000-0x000000003fffffff]
[    0.000000]   DMA32    [mem 0x0000000040000000-0x00000000fbffffff]
[    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]   node   0: [mem 0x0000000040000000-0x00000000fbffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x00000000fbffffff]
[    0.000000] percpu: Embedded 28 pages/cpu s77144 r8192 d29352 u114688
[    0.000000] pcpu-alloc: s77144 r8192 d29352 u114688 alloc=28*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[    0.000000] Detected PIPT I-cache on CPU0
[    0.000000] CPU features: detected: Spectre-v2
[    0.000000] CPU features: detected: Spectre-v4
[    0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 996912
[    0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1  smsc95xx.macaddr=DC:A6:32:03:D2:B9 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  console=ttyS0,115200 console=tty1 root=PARTUUID=010e39c6-02 rootfstype=ext4 fsck.repair=yes rootwait
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x0000000037400000-0x000000003b400000] (64MB)
[    0.000000] Memory: 3554148K/4050944K available (11456K kernel code, 1962K rwdata, 4132K rodata, 3776K init, 964K bss, 169116K reserved, 327680K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] ftrace: allocating 37876 entries in 148 pages
[    0.000000] ftrace: allocated 148 pages with 3 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: gic_handle_irq
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] irq_brcmstb_l2: registered L2 intc (/soc/interrupt-controller@7ef00100, parent irq: 10)
[    0.000000] random: get_random_bytes called from start_kernel+0x510/0x6f8 with crng_init=1
[    0.000000] arch_timer: cp15 timer(s) running at 54.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xc743ce346, max_idle_ns: 440795203123 ns
[    0.000001] sched_clock: 56 bits at 54MHz, resolution 18ns, wraps every 4398046511102ns
[    0.000252] Console: colour dummy device 80x25
[    0.000782] printk: console [tty1] enabled
[    0.000853] Calibrating delay loop (skipped), value calculated using timer frequency.. 108.00 BogoMIPS (lpj=216000)
[    0.000895] pid_max: default: 32768 minimum: 301
[    0.001039] LSM: Security Framework initializing
[    0.001230] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.001311] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.002584] cgroup: Disabling memory control group subsystem
[    0.005064] rcu: Hierarchical SRCU implementation.
[    0.006194] EFI services will not be available.
[    0.006750] smp: Bringing up secondary CPUs ...
[    0.007796] Detected PIPT I-cache on CPU1
[    0.007874] CPU1: Booted secondary processor 0x0000000001 [0x410fd083]
[    0.009084] Detected PIPT I-cache on CPU2
[    0.009134] CPU2: Booted secondary processor 0x0000000002 [0x410fd083]
[    0.010267] Detected PIPT I-cache on CPU3
[    0.010315] CPU3: Booted secondary processor 0x0000000003 [0x410fd083]
[    0.010464] smp: Brought up 1 node, 4 CPUs
[    0.010555] SMP: Total of 4 processors activated.
[    0.010576] CPU features: detected: 32-bit EL0 Support
[    0.010596] CPU features: detected: 32-bit EL1 Support
[    0.010617] CPU features: detected: CRC32 instructions
[    0.041809] CPU: All CPU(s) started at EL2
[    0.041902] alternatives: patching kernel code
[    0.043545] devtmpfs: initialized
[    0.055278] Enabled cp15_barrier support
[    0.055344] Enabled setend support
[    0.055563] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.055614] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.066683] pinctrl core: initialized pinctrl subsystem
[    0.067550] DMI not present or invalid.
[    0.068038] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.071661] DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations
[    0.071973] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.072920] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.073034] audit: initializing netlink subsys (disabled)
[    0.073335] audit: type=2000 audit(0.072:1): state=initialized audit_enabled=0 res=1
[    0.073858] thermal_sys: Registered thermal governor 'step_wise'
[    0.074098] cpuidle: using governor menu
[    0.074408] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.074606] ASID allocator initialised with 65536 entries
[    0.074776] Serial: AMBA PL011 UART driver
[    0.091375] bcm2835-mbox fe00b880.mailbox: mailbox enabled
[    0.102278] platform fe700000.dsi: Fixing up cyclic dependency with fe101000.cprman
[    0.124398] raspberrypi-firmware soc:firmware: Attached to firmware from 2022-02-04T12:05:40, variant start
[    0.128418] raspberrypi-firmware soc:firmware: Firmware hash is a26faf97e3bf76bcc23949d7cdab2f96f399a0c3
[    0.181533] bcm2835-dma fe007000.dma: DMA legacy API manager, dmachans=0x1
[    0.186051] vgaarb: loaded
[    0.186487] SCSI subsystem initialized
[    0.186701] usbcore: registered new interface driver usbfs
[    0.186777] usbcore: registered new interface driver hub
[    0.186855] usbcore: registered new device driver usb
[    0.187285] usb_phy_generic phy: supply vcc not found, using dummy regulator
[    0.187806] pps_core: LinuxPPS API ver. 1 registered
[    0.187833] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
[    0.187872] PTP clock support registered
[    0.189455] clocksource: Switched to clocksource arch_sys_counter
[    0.282029] VFS: Disk quotas dquot_6.6.0
[    0.282160] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.282351] FS-Cache: Loaded
[    0.282596] CacheFiles: Loaded
[    0.283698] simple-framebuffer 3ea50000.framebuffer: framebuffer at 0x3ea50000, 0x177000 bytes
[    0.283734] simple-framebuffer 3ea50000.framebuffer: format=a8r8g8b8, mode=800x480x32, linelength=3200
[    0.286266] Console: switching to colour frame buffer device 100x30
[    0.289397] simple-framebuffer 3ea50000.framebuffer: fb0: simplefb registered!
[    0.301172] NET: Registered PF_INET protocol family
[    0.302826] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.307399] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.308602] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.310002] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
[    0.311627] TCP: Hash tables configured (established 32768 bind 32768)
[    0.313031] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.314335] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.315900] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.318183] RPC: Registered named UNIX socket transport module.
[    0.319411] RPC: Registered udp transport module.
[    0.320597] RPC: Registered tcp transport module.
[    0.321765] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.322940] PCI: CLS 0 bytes, default 64
[    0.326536] hw perfevents: enabled with armv8_cortex_a72 PMU driver, 7 counters available
[    0.328081] kvm [1]: IPA Size Limit: 44 bits
[    0.330439] kvm [1]: vgic interrupt IRQ9
[    0.331840] kvm [1]: Hyp mode initialized successfully
[    1.207675] Initialise system trusted keyrings
[    1.209235] workingset: timestamp_bits=46 max_order=20 bucket_order=0
[    1.217280] zbud: loaded
[    1.220260] FS-Cache: Netfs 'nfs' registered for caching
[    1.222057] NFS: Registering the id_resolver key type
[    1.223194] Key type id_resolver registered
[    1.224260] Key type id_legacy registered
[    1.225390] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.226475] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    1.228724] Key type asymmetric registered
[    1.229776] Asymmetric key parser 'x509' registered
[    1.230849] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    1.232122] io scheduler mq-deadline registered
[    1.233134] io scheduler kyber registered
[    1.242771] brcm-pcie fd500000.pcie: host bridge /scb/pcie@7d500000 ranges:
[    1.243837] brcm-pcie fd500000.pcie:   No bus range found for /scb/pcie@7d500000, using [bus 00-ff]
[    1.245945] brcm-pcie fd500000.pcie:      MEM 0x0600000000..0x063fffffff -> 0x00c0000000
[    1.247126] brcm-pcie fd500000.pcie:   IB MEM 0x0000000000..0x00bfffffff -> 0x0400000000
[    1.295556] brcm-pcie fd500000.pcie: link up, 5.0 GT/s PCIe x1 (SSC)
[    1.297015] brcm-pcie fd500000.pcie: PCI host bridge to bus 0000:00
[    1.298092] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.299124] pci_bus 0000:00: root bus resource [mem 0x600000000-0x63fffffff] (bus address [0xc0000000-0xffffffff])
[    1.301284] pci 0000:00:00.0: [14e4:2711] type 01 class 0x060400
[    1.302645] pci 0000:00:00.0: PME# supported from D0 D3hot
[    1.307998] pci 0000:01:00.0: [1106:3483] type 00 class 0x0c0330
[    1.309181] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x00000fff 64bit]
[    1.310708] pci 0000:01:00.0: PME# supported from D0 D3cold
[    1.315878] pci 0000:00:00.0: BAR 8: assigned [mem 0x600000000-0x6000fffff]
[    1.316969] pci 0000:01:00.0: BAR 0: assigned [mem 0x600000000-0x600000fff 64bit]
[    1.318085] pci 0000:00:00.0: PCI bridge to [bus 01]
[    1.319145] pci 0000:00:00.0:   bridge window [mem 0x600000000-0x6000fffff]
[    1.330538] iproc-rng200 fe104000.rng: hwrng registered
[    1.332220] vc-mem: phys_addr:0x00000000 mem_base=0x3ec00000 mem_size:0x40000000(1024 MiB)
[    1.334908] gpiomem-bcm2835 fe200000.gpiomem: Initialised: Registers at 0xfe200000
[    1.336418] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    1.348799] brd: module loaded
[    1.359789] loop: module loaded
[    1.361755] Loading iSCSI transport class v2.0-870.
[    1.367946] bcmgenet fd580000.ethernet: GENET 5.0 EPHY: 0x0000
[    1.429614] unimac-mdio unimac-mdio.-19: Broadcom UniMAC MDIO bus
[    1.431780] usbcore: registered new interface driver r8152
[    1.432887] usbcore: registered new interface driver lan78xx
[    1.433985] usbcore: registered new interface driver smsc95xx
[    1.436542] pci 0000:00:00.0: enabling device (0000 -> 0002)
[    1.437588] xhci_hcd 0000:01:00.0: enabling device (0000 -> 0002)
[    1.438679] xhci_hcd 0000:01:00.0: xHCI Host Controller
[    1.439643] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 1
[    1.441348] xhci_hcd 0000:01:00.0: hcc params 0x002841eb hci version 0x100 quirks 0x00001c0000000890
[    1.444598] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.15
[    1.445678] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.446719] usb usb1: Product: xHCI Host Controller
[    1.447739] usb usb1: Manufacturer: Linux 5.15.23-v8+ xhci-hcd
[    1.448781] usb usb1: SerialNumber: 0000:01:00.0
[    1.450561] hub 1-0:1.0: USB hub found
[    1.451664] hub 1-0:1.0: 1 port detected
[    1.453280] xhci_hcd 0000:01:00.0: xHCI Host Controller
[    1.454297] xhci_hcd 0000:01:00.0: new USB bus registered, assigned bus number 2
[    1.455281] xhci_hcd 0000:01:00.0: Host supports USB 3.0 SuperSpeed
[    1.456652] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.15
[    1.457668] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.458661] usb usb2: Product: xHCI Host Controller
[    1.459641] usb usb2: Manufacturer: Linux 5.15.23-v8+ xhci-hcd
[    1.460623] usb usb2: SerialNumber: 0000:01:00.0
[    1.462285] hub 2-0:1.0: USB hub found
[    1.463315] hub 2-0:1.0: 4 ports detected
[    1.466071] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    1.467433] dwc_otg: FIQ enabled
[    1.467444] dwc_otg: NAK holdoff enabled
[    1.467454] dwc_otg: FIQ split-transaction FSM enabled
[    1.467468] Module dwc_common_port init
[    1.468030] usbcore: registered new interface driver uas
[    1.469110] usbcore: registered new interface driver usb-storage
[    1.470337] mousedev: PS/2 mouse device common for all mice
[    1.477027] sdhci: Secure Digital Host Controller Interface driver
[    1.478072] sdhci: Copyright(c) Pierre Ossman
[    1.479800] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.484519] ledtrig-cpu: registered to indicate activity on CPUs
[    1.486103] hid: raw HID events driver (C) Jiri Kosina
[    1.487160] usbcore: registered new interface driver usbhid
[    1.488077] usbhid: USB HID core driver
[    1.489311] ashmem: initialized
[    1.498490] Initializing XFRM netlink socket
[    1.499462] NET: Registered PF_PACKET protocol family
[    1.500494] Key type dns_resolver registered
[    1.502591] registered taskstats version 1
[    1.503617] Loading compiled-in X.509 certificates
[    1.505125] Key type ._fscrypt registered
[    1.506053] Key type .fscrypt registered
[    1.506902] Key type fscrypt-provisioning registered
[    1.520362] uart-pl011 fe201000.serial: there is not valid maps for state default
[    1.521607] uart-pl011 fe201000.serial: cts_event_workaround enabled
[    1.522647] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 23, base_baud = 0) is a PL011 rev2
[    1.532621] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[    1.534099] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[    1.536223] mmc-bcm2835 fe300000.mmcnr: mmc_debug:0 mmc_debug2:0
[    1.537200] mmc-bcm2835 fe300000.mmcnr: DMA channel allocated
[    1.568045] of_cfs_init
[    1.569231] of_cfs_init: OK
[    1.604322] mmc0: SDHCI controller on fe340000.mmc [fe340000.mmc] using ADMA
[    1.605934] Waiting for root device PARTUUID=010e39c6-02...
[    1.655863] mmc1: new high speed SDIO card at address 0001
[    1.661870] mmc0: new ultra high speed SDR25 SDXC card at address 59b4
[    1.663844] mmcblk0: mmc0:59b4 USD00 233 GiB
[    1.668292]  mmcblk0: p1 p2
[    1.669852] mmcblk0: mmc0:59b4 USD00 233 GiB
[    1.705499] usb 1-1: new high-speed USB device number 2 using xhci_hcd
[    1.711236] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null). Quota mode: none.
[    1.713375] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    1.722401] devtmpfs: mounted
[    1.731119] Freeing unused kernel memory: 3776K
[    1.732401] Run /sbin/init as init process
[    1.733517]   with arguments:
[    1.733527]     /sbin/init
[    1.733537]   with environment:
[    1.733546]     HOME=/
[    1.733555]     TERM=linux
[    1.856166] usb 1-1: New USB device found, idVendor=2109, idProduct=3431, bcdDevice= 4.21
[    1.857373] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    1.858544] usb 1-1: Product: USB2.0 Hub
[    1.861985] hub 1-1:1.0: USB hub found
[    1.863322] hub 1-1:1.0: 4 ports detected
[    2.157506] usb 1-1.4: new high-speed USB device number 3 using xhci_hcd
[    2.268758] usb 1-1.4: New USB device found, idVendor=0e8d, idProduct=1887, bcdDevice= 0.00
[    2.269969] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    2.271053] usb 1-1.4: Product: Portable Super Multi Drive
[    2.272186] usb 1-1.4: Manufacturer: Hitachi-LG Data Storage Inc
[    2.273283] usb 1-1.4: SerialNumber: M03K72M1449
[    2.280864] usb-storage 1-1.4:1.0: USB Mass Storage device detected
[    2.282960] scsi host0: usb-storage 1-1.4:1.0
[    2.634257] systemd[1]: System time before build time, advancing clock.
[    2.785275] NET: Registered PF_INET6 protocol family
[    2.788206] Segment Routing with IPv6
[    2.789321] In-situ OAM (IOAM) with IPv6
[    2.858471] systemd[1]: systemd 247.3-6 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)
[    2.864254] systemd[1]: Detected architecture arm64.
[    2.878841] systemd[1]: Set hostname to <raspberrypi>.
[    3.299950] scsi 0:0:0:0: CD-ROM            HL-DT-ST DVDRAM GP55EX70  PF00 PQ: 0 ANSI: 0
[    3.572938] systemd[1]: Queued start job for default target Graphical Interface.
[    3.575722] random: systemd: uninitialized urandom read (16 bytes read)
[    3.579196] systemd[1]: Created slice system-getty.slice.
[    3.582419] random: systemd: uninitialized urandom read (16 bytes read)
[    3.584620] systemd[1]: Created slice system-modprobe.slice.
[    3.587372] random: systemd: uninitialized urandom read (16 bytes read)
[    3.589565] systemd[1]: Created slice system-systemd\x2dfsck.slice.
[    3.593108] systemd[1]: Created slice User and Session Slice.
[    3.596399] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[    3.599736] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    3.603737] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[    3.608241] systemd[1]: Reached target Local Encrypted Volumes.
[    3.611434] systemd[1]: Reached target Paths.
[    3.614598] systemd[1]: Reached target Slices.
[    3.617619] systemd[1]: Reached target Swap.
[    3.621382] systemd[1]: Listening on Syslog Socket.
[    3.624973] systemd[1]: Listening on fsck to fsckd communication Socket.
[    3.628226] systemd[1]: Listening on initctl Compatibility Named Pipe.
[    3.632298] systemd[1]: Listening on Journal Audit Socket.
[    3.635938] systemd[1]: Listening on Journal Socket (/dev/log).
[    3.639812] systemd[1]: Listening on Journal Socket.
[    3.652020] systemd[1]: Listening on udev Control Socket.
[    3.655691] systemd[1]: Listening on udev Kernel Socket.
[    3.659175] systemd[1]: Condition check resulted in Huge Pages File System being skipped.
[    3.664287] systemd[1]: Mounting POSIX Message Queue File System...
[    3.671372] systemd[1]: Mounting RPC Pipe File System...
[    3.679326] systemd[1]: Mounting Kernel Debug File System...
[    3.687136] systemd[1]: Mounting Kernel Trace File System...
[    3.690366] systemd[1]: Condition check resulted in Kernel Module supporting RPCSEC_GSS being skipped.
[    3.699275] systemd[1]: Starting Restore / save the current clock...
[    3.708477] systemd[1]: Starting Set the console keyboard layout...
[    3.716613] systemd[1]: Starting Create list of static device nodes for the current kernel...
[    3.725249] systemd[1]: Starting Load Kernel Module configfs...
[    3.734068] systemd[1]: Starting Load Kernel Module drm...
[    3.742677] systemd[1]: Starting Load Kernel Module fuse...
[    3.753114] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped.
[    3.759922] systemd[1]: Starting File System Check on Root Device...
[    3.771370] systemd[1]: Starting Journal Service...
[    3.783976] systemd[1]: Starting Load Kernel Modules...
[    3.796500] systemd[1]: Starting Coldplug All udev Devices...
[    3.819988] systemd[1]: Mounted POSIX Message Queue File System.
[    3.824020] systemd[1]: Mounted RPC Pipe File System.
[    3.827953] systemd[1]: Mounted Kernel Debug File System.
[    3.833883] systemd[1]: Mounted Kernel Trace File System.
[    3.839790] systemd[1]: Finished Restore / save the current clock.
[    3.844230] fuse: init (API version 7.34)
[    3.846192] systemd[1]: Finished Create list of static device nodes for the current kernel.
[    3.851684] systemd[1]: [email protected]: Succeeded.
[    3.855140] systemd[1]: Finished Load Kernel Module configfs.
[    3.860474] systemd[1]: [email protected]: Succeeded.
[    3.863948] systemd[1]: Finished Load Kernel Module fuse.
[    3.874083] systemd[1]: Mounting FUSE Control File System...
[    3.883435] systemd[1]: Mounting Kernel Configuration File System...
[    3.891442] systemd[1]: Started File System Check Daemon to report status.
[    3.903454] systemd[1]: [email protected]: Succeeded.
[    3.906566] systemd[1]: Finished Load Kernel Module drm.
[    3.910573] systemd[1]: Mounted FUSE Control File System.
[    3.914628] systemd[1]: Mounted Kernel Configuration File System.
[    3.920852] cryptd: max_cpu_qlen set to 1000
[    4.019555] systemd[1]: Finished Load Kernel Modules.
[    4.027037] systemd[1]: Starting Apply Kernel Variables...
[    4.070877] systemd[1]: Finished Apply Kernel Variables.
[    4.103348] systemd[1]: Started Journal Service.
[    4.451920] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null). Quota mode: none.
[    4.513363] systemd-journald[143]: Received client request to flush runtime journal.
[    4.532705] systemd-journald[143]: File /var/log/journal/2f0ca8d17db14712aec77f622344807f/system.journal corrupted or uncleanly shut down, renaming and replacing.
[    5.445576] rpivid-mem feb00000.hevc-decoder: rpivid-hevcmem initialised: Registers at 0xfeb00000 length 0x00010000
[    5.486299] mc: Linux media interface: v0.10
[    5.497881] rpivid-mem feb10000.rpivid-local-intc: rpivid-intcmem initialised: Registers at 0xfeb10000 length 0x00001000
[    5.503435] rpivid-mem feb20000.h264-decoder: rpivid-h264mem initialised: Registers at 0xfeb20000 length 0x00010000
[    5.504932] rpivid-mem feb30000.vp9-decoder: rpivid-vp9mem initialised: Registers at 0xfeb30000 length 0x00010000
[    5.520339] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[    5.553579] bcm2835_vc_sm_cma_probe: Videocore shared memory driver
[    5.553801] [vc_sm_connected_init]: start
[    5.554825] videodev: Linux video capture interface: v2.00
[    5.577019] [vc_sm_connected_init]: installed successfully
[    5.664077] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[    5.686152] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[    5.711833] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[    5.735186] brcmstb-i2c fef04500.i2c:  @97500hz registered in polling mode
[    5.736330] brcmstb-i2c fef09500.i2c:  @97500hz registered in polling mode
[    5.785847] bcm2835_isp: module is from the staging directory, the quality is unknown, you have been warned.
[    5.825683] i2c i2c-22: Added multiplexed i2c bus 0
[    5.842248] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[    5.842311] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[    5.858167] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video13
[    5.859574] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[    5.859625] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[    5.872539] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[    5.872615] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[    5.881339] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video14
[    5.886189] bcm2835-codec bcm2835-codec: Device registered as /dev/video18
[    5.886247] bcm2835-codec bcm2835-codec: Loaded V4L2 image_fx
[    5.887913] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video15
[    5.890386] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video16
[    5.890433] bcm2835-isp bcm2835-isp: Register output node 0 with media controller
[    5.890456] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller
[    5.890474] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller
[    5.890491] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller
[    5.909011] i2c i2c-22: Added multiplexed i2c bus 10
[    5.960427] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video20
[    5.961760] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video21
[    5.962568] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video22
[    6.029645] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video23
[    6.029694] bcm2835-isp bcm2835-isp: Register output node 0 with media controller
[    6.029717] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller
[    6.029735] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller
[    6.029753] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller
[    6.071213] bcm2835-isp bcm2835-isp: Loaded V4L2 bcm2835-isp
[    6.472694] [drm] Initialized v3d 1.0.0 20180419 for fec00000.v3d on minor 0
[    6.478568] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    6.519195] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    6.550513] cfg80211: loaded regulatory.db is malformed or signature is missing/invalid
[    6.801539] random: crng init done
[    6.801569] random: 7 urandom warning(s) missed due to ratelimiting
[    6.808469] brcmfmac: F1 signature read @0x18000000=0x15264345
[    6.833868] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[    6.834972] usbcore: registered new interface driver brcmfmac
[    6.840711] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin failed with error -2
[    6.988299] scsi 0:0:0:0: Attached scsi generic sg0 type 5
[    7.130973] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[    7.131139] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43455-sdio for chip BCM4345/6
[    7.135100] sr 0:0:0:0: Power-on or device reset occurred
[    7.136845] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Nov  1 2021 00:37:25 version 7.45.241 (1a2f2fa CY) FWID 01-703fd60
[    7.156659] sr 0:0:0:0: [sr0] scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda tray
[    7.156695] cdrom: Uniform CD-ROM driver Revision: 3.20
[    7.166905] sr 0:0:0:0: Attached scsi CD-ROM sr0
[    7.424390] bridge_reg: supplied by tc358762-power
[    7.426378] checking generic (3ea50000 177000) vs hw (0 ffffffffffffffff)
[    7.426407] fb0: switching to vc4 from simple
[    7.457864] Console: switching to colour dummy device 80x25
[    7.505201] vc4-drm gpu: bound fe400000.hvs (ops vc4_hvs_ops [vc4])
[    7.514397] Registered IR keymap rc-cec
[    7.539194] rc rc0: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0
[    7.567020] input: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0/input0
[    7.569861] vc4_hdmi fef00700.hdmi: 'dmas' DT property is missing or empty, no HDMI audio
[    7.569938] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops [vc4])
[    7.579773] Registered IR keymap rc-cec
[    7.579989] rc rc1: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1
[    7.580208] input: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1/input1
[    7.789843] edt_ft5x06 10-0038: supply iovcc not found, using dummy regulator
[    7.791806] vc4-drm gpu: bound fe400000.hvs (ops vc4_hvs_ops [vc4])
[    7.800307] Registered IR keymap rc-cec
[    7.800544] rc rc0: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0
[    7.800756] input: vc4 as /devices/platform/soc/fef00700.hdmi/rc/rc0/input2
[    7.801242] vc4_hdmi fef00700.hdmi: 'dmas' DT property is missing or empty, no HDMI audio
[    7.801302] vc4-drm gpu: bound fef00700.hdmi (ops vc4_hdmi_ops [vc4])
[    7.807790] Registered IR keymap rc-cec
[    7.808024] rc rc1: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1
[    7.808252] input: vc4 as /devices/platform/soc/fef05700.hdmi/rc/rc1/input3
[    7.824318] vc4-drm gpu: bound fef05700.hdmi (ops vc4_hdmi_ops [vc4])
[    7.826050] vc4-drm gpu: bound fe700000.dsi (ops vc4_dsi_ops [vc4])
[    7.826473] vc4-drm gpu: bound fe004000.txp (ops vc4_txp_ops [vc4])
[    7.826804] vc4-drm gpu: bound fe206000.pixelvalve (ops vc4_crtc_ops [vc4])
[    7.827150] vc4-drm gpu: bound fe207000.pixelvalve (ops vc4_crtc_ops [vc4])
[    7.827459] vc4-drm gpu: bound fe20a000.pixelvalve (ops vc4_crtc_ops [vc4])
[    7.827720] vc4-drm gpu: bound fe216000.pixelvalve (ops vc4_crtc_ops [vc4])
[    7.828035] vc4-drm gpu: bound fec12000.pixelvalve (ops vc4_crtc_ops [vc4])
[    7.846458] [drm] Initialized vc4 0.0.0 20140616 for gpu on minor 1
[    8.259848] Console: switching to colour frame buffer device 100x30
[    8.269573] vc4-drm gpu: [drm] fb0: vc4drmfb frame buffer device
[    8.357978] input: generic ft5x06 (00) as /devices/platform/soc/fe205000.i2c/i2c-22/i2c-10/10-0038/input/input4
[    8.643791] uart-pl011 fe201000.serial: no DMA platform data
[    8.687413] 8021q: 802.1Q VLAN Support v1.8
[    8.894004] Adding 102396k swap on /var/swap.  Priority:-2 extents:1 across:102396k SSFS
[    9.289822] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled
[    9.613158] bcmgenet fd580000.ethernet: configuring instance for external RGMII (RX delay)
[    9.614430] bcmgenet fd580000.ethernet eth0: Link is Down
[   12.465374] hdmi-audio-codec hdmi-audio-codec.1.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -19
[   12.465427]  MAI: soc_pcm_open() failed (-19)
[   12.483135] hdmi-audio-codec hdmi-audio-codec.1.auto: ASoC: error at snd_soc_dai_startup on i2s-hifi: -19
[   12.483185]  MAI: soc_pcm_open() failed (-19)
[   13.693617] bcmgenet fd580000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[   13.693659] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   15.383944] Bluetooth: Core ver 2.22
[   15.384102] NET: Registered PF_BLUETOOTH protocol family
[   15.384115] Bluetooth: HCI device and connection manager initialized
[   15.384146] Bluetooth: HCI socket layer initialized
[   15.384164] Bluetooth: L2CAP socket layer initialized
[   15.384197] Bluetooth: SCO socket layer initialized
[   15.392322] ICMPv6: process `dhcpcd' is using deprecated sysctl (syscall) net.ipv6.neigh.eth0.retrans_time - use net.ipv6.neigh.eth0.retrans_time_ms instead
[   15.398039] Bluetooth: HCI UART driver ver 2.3
[   15.398079] Bluetooth: HCI UART protocol H4 registered
[   15.398191] Bluetooth: HCI UART protocol Three-wire (H5) registered
[   15.398617] Bluetooth: HCI UART protocol Broadcom registered
[   15.633330] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   15.633350] Bluetooth: BNEP filters: protocol multicast
[   15.633364] Bluetooth: BNEP socket layer initialized
[   15.648443] NET: Registered PF_ALG protocol family
[   31.709759] cam-dummy-reg: disabling
[   31.709800] cam1-reg: disabling
[  804.779109] edt_ft5x06 10-0038: Unable to fetch data, error: -121
[  805.805477] i2c-bcm2835 fe205000.i2c: i2c transfer timed out
[  805.805507] edt_ft5x06 10-0038: Unable to fetch data, error: -110
[  805.805575] edt_ft5x06 10-0038: Unable to fetch data, error: -5

Additional context

This was working with kernel 5.10.

@apastuszak
Copy link
Author

Hifiberry configuration instructions:

https://www.hifiberry.com/docs/software/configuring-linux-3-18-x/

@apastuszak
Copy link
Author

Uncommented the followling line in my config.txt

#dtparam=i2s=on

Rebooted. No change.

@pelwell
Copy link
Contributor

pelwell commented Feb 17, 2022

What does i2cdetect -y 1 report?

@apastuszak
Copy link
Author

apastuszak commented Feb 17, 2022

Error: Could not open file `/dev/i2c-1' or `/dev/i2c/1': No such file or directory

@apastuszak
Copy link
Author

DOH! Forgot to enable i2c.

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- 62 -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

@pelwell
Copy link
Contributor

pelwell commented Feb 18, 2022

The overlay should have enabled i2c1, so something has clearly gone wrong. What do you get from this command?

$ cat /proc/device-tree/chosen/*warnings

@apastuszak
Copy link
Author

cat: '/proc/device-tree/chosen/*warnings': No such file or directory

@pelwell
Copy link
Contributor

pelwell commented Feb 21, 2022

I don't have a HiFiBerry DAC2 HD HAT to test, but looking at the overlay I see it is expecting to find the DAC at I2C address 0x4c, and a PLL/clock at I2C address 0x62. Your i2cdetect output shows the PLL but no DAC, which is going to cause problems for the driver.

@apastuszak
Copy link
Author

Is there anything I need to do on my side? Do you need more information from me?

@pelwell
Copy link
Contributor

pelwell commented Feb 22, 2022

The working theory is that your hardware has developed a fault - I don't know what else would explain the lack of the DAC at address 0x4c. You could try downgrading to a 5.10 kernel using sudo BRANCH=stable rpi-update (and sudo rpi-update to get back to 5.15), but I don't expect it to change anything,

Do you have any suggestions, @j-schambacher?

@j-schambacher
Copy link
Contributor

@apastuszak, I tend to agree with Phil. Please confirm that the downgraded kernel version works (again). We have not yet tested and verified 5.15. But at a first look, I do not see an obvious reason, why it should not work. Thanks for your help

@apastuszak
Copy link
Author

uname -a

Linux raspberrypi 5.10.92-v8+ #1514 SMP PREEMPT Mon Jan 17 17:39:38 GMT 2022 aarch64 GNU/Linux

aplay -l

**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_dacplushd], device 0: HiFiBerry DAC+ HD HiFi pcm179x-hifi-0 [HiFiBerry DAC+ HD HiFi pcm179x-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: vc4hdmi1 [vc4-hdmi-1], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

sudo i2cdetect -y 1

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- UU -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- UU -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

@j-schambacher
Copy link
Contributor

@apastuszak Thanks! I'll try to dig into it.

@apastuszak
Copy link
Author

@j-schambacher Thank you!

@j-schambacher
Copy link
Contributor

I can confirm the a.m. behaviour with the 5.15 64bit kernel: the modules are loaded, but show no activity: I can't observe any I2C bus communication (tested with logic analyzer) nor do printk-statement while in the driver-probe function leave any trace in the logs.

@pelwell any hint?

I'm meanwhile going to check with the 5.15 32 bit kernel.

@pelwell
Copy link
Contributor

pelwell commented Feb 22, 2022

What does i2cdetect -y 1 show for you?

@j-schambacher
Copy link
Contributor

Just as above: 0x62, the PLL is detected, the DAC needs the PLL clock, which is not configured, therefore no function on the I2C and can't be detected. I wonder, why I can't see any activity on the I2C?

@pelwell
Copy link
Contributor

pelwell commented Feb 22, 2022

Do you see the i2cdetect scanning?

@j-schambacher
Copy link
Contributor

yep, that works as expected.

@pelwell
Copy link
Contributor

pelwell commented Feb 22, 2022

Your overlay (or rather the device tree it creates) is unusual in that there are two instances of the dacplushd compatible string - one as an I2C device and one as a random platform device. The I2C device is relies on the platform device for its clock.

One thing that has changed since 5.10 (if my memory of the timing is correct) is that the system does more to establish that the dependencies for a device node are ready before calling the probe function. If you remove the "clocks" declaration from the pll@62 node does it get into the probe function?

@j-schambacher
Copy link
Contributor

Ok, I'll try.

@pelwell
Copy link
Contributor

pelwell commented Feb 22, 2022

Also, how does the non-I2C/platform instance ever get instantiated since there is no platform driver probe function, only one for the I2C mode?

@j-schambacher
Copy link
Contributor

I fixed it by removing the "clocks" declaration from either parts, DAC and PLL. I'm preparing a PR for 5.15 to fix it.
Thanks to @apastuszak and @pelwell

@apastuszak
Copy link
Author

@j-schambacher Thank you for fixing this!

@pelwell
Copy link
Contributor

pelwell commented Feb 23, 2022

Joerg's fix #4904 has been merged, and the updated overlay will appear in future kernel releases. In the meantime there's a fresh build here:
hifiberry-dacplushd.zip

Install it with:

$ unzip hifiberry-dacplushd.zip
$ sudo cp hifiberry-dacplushd.dtbo /boot/overlays

@apastuszak
Copy link
Author

It's working, but I had to modify the config.txt. In 5.10 it worked without me needing to modify config.txt.

But that's on the vendor to provide instructions IMHO. Thank you!

@pelwell
Copy link
Contributor

pelwell commented Feb 23, 2022

If the HAT EEPROM includes the contents of the overlay (and not just its name) then you will have to continue to use dtoverlay= at the top of the config.txt and dtoverlay=hifiberry-dacplushd somewhere further down (unless HiFiBerry release details on how to re-flash the EEPROM to only contain the name).

@j-schambacher
Copy link
Contributor

Normally, we provide the entire DT-overlay in the EEPROM. We'll discuss internally how to handle this. I'll keep you posted.

force_eeprom_read=0

in config.txt may also help to avoid reading the HAT EEPROM.

@pelwell
Copy link
Contributor

pelwell commented Feb 23, 2022

That will stop the firmware even looking for the EEPROM, which is probably fine in this case.

@mightyoakbob
Copy link

Joerg's fix #4904 has been merged, and the updated overlay will appear in future kernel releases. In the meantime there's a fresh build here: hifiberry-dacplushd.zip

Install it with:

$ unzip hifiberry-dacplushd.zip
$ sudo cp hifiberry-dacplushd.dtbo /boot/overlays

Hi,
I'm pretty sure I have exactly the same issue. My Raspberry pi cannot 'see' my DAC2 HD, aplay -l shows no cards at all but I'm using the 32 bit Bullseye OS. Is this fix OK for 32 bit or is it 64bit only?

In /boot/config.txt I have killed both the HDMI audio and the jack with
#dtparam=audio=on
dtoverlay=vc4-kms-v3d,noaudio
And I've added.
dtoverlay=hifiberry-dacplushd
For all other HiFiBerry cards I use, those 3 changes are sufficient all be it with a different driver.

Do I also need:

force_eeprom_read=0
dtparam=i2s=on

Could someone explain what having "dtoverlay=" at the top of the file does? I don't understand that.

Thanks very much.

Bob.

@pelwell
Copy link
Contributor

pelwell commented Nov 10, 2022

Some HAT EEPROMs include the full overlay - that's how things were intended to work originally. Unfortunately, newer versions of the kernel have changed the layout of the Device Trees and how they are processed; things that used to work may no longer work. Since we package the overlays with a kernel it is easy to adapt to changes, but this doesn't work if the overlay is compiled into the EEPROM. That is why we added the ability to just embed the name of the overlay into the HAT.

The firmware loads overlays in several stages. When it finds a dtoverlay line it reads the overlay into memory, applying any parameters that appear on the same line, but it doesn't get merged into the base DT immediately because there may be additional parameters on later lines. It's only when the next dtoverlay line, or the end of the file, that the merge happens, at which point you can no longer use the parameters exposed by the overlay.

dtoverlay= is a special case - it marks the end of the current overlay without causing another to be loaded. It could be useful in normal circumstances if there was an overlay with a parameter that had the same name as one in the base DT, but that is a situation best avoided. As the first dtoverlay line in config,txt when the HAT has an overlay, dtoverlay= additionally means discard/ignore the HAT overlay. This is what you have been asked to do, because simply applying the new version of the overlay packaged with the current kernel on top of the one from the EEPROM doesn't work.

To recap, the suggestion is that your config.txt should contain the following:

dtoverlay=
dtoverlay=hifiberry-dacplushd
# force_eeprom_read=0  This isn't necessary...
# dtparam=i2s=on       ...and neither is this

@mightyoakbob
Copy link

To recap, the suggestion is that your config.txt should contain the following:

dtoverlay=
dtoverlay=hifiberry-dacplushd
# force_eeprom_read=0  This isn't necessary...
# dtparam=i2s=on       ...and neither is this

That's brilliant I'm now confident on config.txt thanks so much Phil.
Also thanks for taking the time to explain so well.

I'm sorry to be a bit slow but could I / should I install this ...
$ unzip hifiberry-dacplushd.zip
$ sudo cp hifiberry-dacplushd.dtbo /boot/overlays
on my 32bit pi?

Hoping to try this out tomorrow night and over the weekend.

Thanks again.

Bob.

@pelwell
Copy link
Contributor

pelwell commented Nov 10, 2022

It's not necessary to install the overlay from the downloaded zip file unless you haven't updated your kernel in the last 6 months. If you were curious you could:

$ unzip hifiberry-dacplushd.zip
$ md5sum hifiberry-dacplushd.dtbo /boot/overlays/hifiberry-dacplushd.dtbo

I tried this on a Pi 4 running a recent kernel and it said:

483b267b241b5a74318284904395868f  hifiberry-dacplushd.dtbo
483b267b241b5a74318284904395868f  /boot/overlays/hifiberry-dacplushd.dtbo

i.e. the downloaded version is the same as the one already installed.

@mightyoakbob
Copy link

It's not necessary to install the overlay from the downloaded zip file unless you haven't updated your kernel in the last 6 months.

Thanks Phil.
What a star.

Cheers,
Bob.

@pelwell
Copy link
Contributor

pelwell commented Nov 10, 2022

This seems to be a good point to close the issue.

@pelwell pelwell closed this as completed Nov 10, 2022
@reinisb
Copy link

reinisb commented Nov 24, 2022

Hi folks! Unfortunately, with Kernel 5.15 my HiFiberry Digi2 Pro (HW 2.1) stopped being recognized as well. I'd appreciate any suggestions. Thanks!

Raspberry Pi 4 Model B Rev 1.2
Linux raspberry 5.15.76-v8+ #1597 SMP PREEMPT Fri Nov 4 12:16:41 GMT 2022 aarch64 GNU/Linux

pi@raspberry:~ $ aplay -l
aplay: device_list:274: no soundcards found...
pi@raspberry:~ $ sudo nano /boot/config.txt


#dtparam=audio=on
#force_eeprom_read=0
dtoverlay=hifiberry-digi-pro


# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d,noaudio

@pelwell
Copy link
Contributor

pelwell commented Nov 25, 2022

Read my answers to @mightyoakbob.

@mightyoakbob
Copy link

mightyoakbob commented Nov 25, 2022

I can confirm that Phil's advice does work for my DAC which is a HiFiBerry Dac2 HD.
My Dac requires 4 changes to /boot/config.txt

dtoverlay=
## dtparam=audio=on
dtoverlay=vc4-kms-v3d,noaudio
dtoverlay=hifiberry-dacplushd

I made "dtoverlay=" the very first line in the file and then the DAC works fine.

This DAC also has a hardware volume control built into it. Some music players have this working but unfortunately not with mpd so the only volume control is the software one. That kind of defeats the object of having a high quality dac. No one in the Linux community seems to want to look at it and I know HiFiBerry have offered support to anyone willing to have a go at this.

Cheers,

Bob.

@reinisb
Copy link

reinisb commented Nov 25, 2022

I tried everything but my HiFiberry Digi2 Pro (HW 2.1) is simply not recognized in 5.15 on my RPi4 Rev 1.2.

dtoverlay=
#dtparam=audio=on
dtoverlay=vc4-kms-v3d,noaudio
dtoverlay=hifiberry-digi-pro
pi@raspberry:~ $ aplay -l
aplay: device_list:274: no soundcards found...

cc @j-schambacher

@pelwell
Copy link
Contributor

pelwell commented Nov 25, 2022

Does sudo vcdbg log msg show anything suspicious?

@pelwell
Copy link
Contributor

pelwell commented Nov 25, 2022

BTW, ideally you would have opened a new issue for this, since your card isn't a DAC 2 HD HAT.

@reinisb
Copy link

reinisb commented Nov 25, 2022

@pelwell I've created a dedicated issue #5256 Moreover, sudo vcdbg log msg does not work on my 64-bit system.

@6by9
Copy link
Contributor

6by9 commented Nov 25, 2022

https://github.com/raspberrypi/utils/tree/master/vclog should work on both 32 and 64 bit systems to read the firmware logs.

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

6 participants