Enable Audio, MIC, CSI0, SPI, CRYPTO, RTC, IR, Watchdog, Mali Node (Lima) - BPI-M2Ultra (R40)

Hi, I have managed to activate the internal audio in R40 SoC with H3 driver, to achieve this I have used images of Armbian Stretch and Bullseye and I have merged a U-boot mainline fork with linux-sunxi / sunxi-next branch.

1 Like

here are the system logs before, after and during the u-boot compilation:

log-armbian-5.5.rc2-after (33,6 KB) log-armbian-5.5.rc2-before (31,9 KB) log-armbian-5.5.rc2-compile_u-boot (29,2 KB)

Instructions for Armbian:

sudo apt update

sudo apt install swig python-dev python3-dev git make gcc flex bison

cd /tmp

git clone https://github.com/juanesf/u-boot.git && cd u-boot && make Bananapi_M2_Ultra_defconfig && make -j4

mkimage -C none -A arm -T script -d /boot/boot.cmd boot.scr

sudo dd if=/tmp/u-boot/u-boot-sunxi-with-spl.bin of=/dev/mmcblk0 bs=1024 seek=8

sudo cp /tmp/u-boot/arch/arm/dts/sun8i-r40-bananapi-m2-ultra.dtb /boot/dtb

sudo reboot 00

New log and dtsi with IR0 support

rc rc0: sunxi-ir as /devices/platform/soc/1c21800.ir/rc/rc0

[ 6.876299] input: sunxi-ir as /devices/platform/soc/1c21800.ir/rc/rc0/input1

[ 6.876515] rc rc0: lirc_dev: driver sunxi-ir registered at minor = 0, raw IR receiver, no transmitter

[ 6.888040] sunxi-ir 1c21800.ir: initialized sunXi IR driver

log-5.5.0rc6_after (33,5 KB) log-5.5.0rc6_before (31,8 KB)

Module                  Size  Used by
fuse                   86016  3
snd_soc_hdmi_codec     16384  0
lima                   36864  2
gpu_sched              24576  1 lima
dw_hdmi_cec            16384  0
dw_hdmi_i2s_audio      16384  0
evdev                  20480  3
axp20x_adc             16384  0
industrialio           49152  1 axp20x_adc
brcmfmac              167936  0
brcmutil               16384  1 brcmfmac
sun4i_codec            36864  3
sun8i_codec_analog     24576  1
sun8i_adda_pr_regmap    16384  1 sun8i_codec_analog
snd_soc_core          118784  3 sun4i_codec,sun8i_codec_analog,snd_soc_hdmi_codec
snd_pcm_dmaengine      16384  1 snd_soc_core
snd_pcm                69632  4 sun4i_codec,snd_pcm_dmaengine,snd_soc_hdmi_codec,snd_soc_core
snd_timer              24576  1 snd_pcm
snd                    45056  12 snd_soc_hdmi_codec,snd_timer,snd_soc_core,snd_pcm
soundcore              16384  1 snd
sunxi_cir              16384  0
cfg80211              425984  1 brcmfmac
rfkill                 20480  4 cfg80211
uio_pdrv_genirq        16384  0
uio                    16384  1 uio_pdrv_genirq
zram                   24576  2
ip_tables              24576  0
x_tables               20480  1 ip_tables
pwrseq_simple          16384  1
realtek                16384  1
1 Like
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 5.5.0-rc6-sunxi (root@usuario) (gcc version 8.3.0 (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36))) #19.11.7 SMP Mon Jan 13 17:44:10 -03 2020
[    0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=50c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Banana Pi BPI-M2-Ultra
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] cma: Reserved 128 MiB at 0xb7c00000
[    0.000000] On node 0 totalpages: 524288
[    0.000000]   Normal zone: 1728 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 196608 pages, LIFO batch:63
[    0.000000]   HighMem zone: 327680 pages, LIFO batch:63
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: Using PSCI v0.1 Function IDs from DT
[    0.000000] percpu: Embedded 20 pages/cpu s49996 r8192 d23732 u81920
[    0.000000] pcpu-alloc: s49996 r8192 d23732 u81920 alloc=20*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 522560
[    0.000000] Kernel command line: root=UUID=a652789d-aea7-431e-aca9-873996030399 rootwait rootfstype=ext4 console=ttyS0,115200 console=tty1 hdmi.audio=EDID:0 disp.screen0_output_mode=1920x1080p60 consoleblank=0 loglevel=1 ubootpart= ubootsource=mmc usb-storage.quirks=0x2537:0x1066:u,0x2537:0x1068:u   sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16 cgroup_enable=memory swapaccount=1
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] allocated 2097152 bytes of page_ext
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 1921272K/2097152K available (9216K kernel code, 1068K rwdata, 2844K rodata, 1024K init, 316K bss, 44808K reserved, 131072K cma-reserved, 1179636K highmem)
[    0.000000] random: get_random_u32 called from __kmem_cache_create+0x2b/0x3ac with crng_init=0
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] ftrace: allocating 40716 entries in 80 pages
[    0.000000] ftrace: allocated 80 pages with 2 groups
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[    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: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000006] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000013] Switching to timer-based delay loop, resolution 41ns
[    0.000186] Console: colour dummy device 80x30
[    0.000198] printk: console [tty1] enabled
[    0.000246] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=96000)
[    0.000255] pid_max: default: 32768 minimum: 301
[    0.000510] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.000521] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.000595] *** VALIDATE tmpfs ***
[    0.001212] *** VALIDATE proc ***
[    0.001501] *** VALIDATE cgroup1 ***
[    0.001508] *** VALIDATE cgroup2 ***
[    0.001567] CPU: Testing write buffer coherency: ok
[    0.001949] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.002465] Setting up static identity map for 0x40100000 - 0x40100054
[    0.002576] rcu: Hierarchical SRCU implementation.
[    0.003094] smp: Bringing up secondary CPUs ...
[    0.013812] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.024634] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.035371] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.035466] smp: Brought up 1 node, 4 CPUs
[    0.035474] SMP: Total of 4 processors activated (192.00 BogoMIPS).
[    0.035477] CPU: All CPU(s) started in HYP mode.
[    0.035479] CPU: Virtualization extensions available.
[    0.036426] devtmpfs: initialized
[    0.042373] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[    0.042636] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.042653] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.047358] xor: measuring software checksum speed
[    0.087307]    arm4regs  :  1255.000 MB/sec
[    0.127358]    8regs     :   874.000 MB/sec
[    0.167413]    32regs    :   826.000 MB/sec
[    0.207469]    neon      :  1270.000 MB/sec
[    0.207474] xor: using function: neon (1270.000 MB/sec)
[    0.207541] pinctrl core: initialized pinctrl subsystem
[    0.208092] thermal_sys: Registered thermal governor 'fair_share'
[    0.208097] thermal_sys: Registered thermal governor 'bang_bang'
[    0.208102] thermal_sys: Registered thermal governor 'step_wise'
[    0.208836] NET: Registered protocol family 16
[    0.210388] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.210911] audit: initializing netlink subsys (disabled)
[    0.211087] audit: type=2000 audit(0.184:1): state=initialized audit_enabled=0 res=1
[    0.211661] cpuidle: using governor ladder
[    0.211690] cpuidle: using governor menu
[    0.212211] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.212216] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.303886] raid6: neonx8   gen()   708 MB/s
[    0.371960] raid6: neonx8   xor()   590 MB/s
[    0.440081] raid6: neonx4   gen()   727 MB/s
[    0.508223] raid6: neonx4   xor()   616 MB/s
[    0.576362] raid6: neonx2   gen()   663 MB/s
[    0.644441] raid6: neonx2   xor()   584 MB/s
[    0.712647] raid6: neonx1   gen()   495 MB/s
[    0.780697] raid6: neonx1   xor()   467 MB/s
[    0.848826] raid6: int32x8  gen()   267 MB/s
[    0.916909] raid6: int32x8  xor()   174 MB/s
[    0.985057] raid6: int32x4  gen()   285 MB/s
[    1.053184] raid6: int32x4  xor()   195 MB/s
[    1.121469] raid6: int32x2  gen()   255 MB/s
[    1.189495] raid6: int32x2  xor()   206 MB/s
[    1.257750] raid6: int32x1  gen()   200 MB/s
[    1.325640] raid6: int32x1  xor()   176 MB/s
[    1.325644] raid6: using algorithm neonx4 gen() 727 MB/s
[    1.325648] raid6: .... xor() 616 MB/s, rmw enabled
[    1.325651] raid6: using neon recovery algorithm
[    1.326222] iommu: Default domain type: Translated
[    1.326623] SCSI subsystem initialized
[    1.326843] libata version 3.00 loaded.
[    1.327065] usbcore: registered new interface driver usbfs
[    1.327106] usbcore: registered new interface driver hub
[    1.327184] usbcore: registered new device driver usb
[    1.327361] mc: Linux media interface: v0.10
[    1.327391] videodev: Linux video capture interface: v2.00
[    1.327497] pps_core: LinuxPPS API ver. 1 registered
[    1.327501] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
[    1.327517] PTP clock support registered
[    1.328957] clocksource: Switched to clocksource arch_sys_counter
[    2.287141] *** VALIDATE bpf ***
[    2.287471] VFS: Disk quotas dquot_6.6.0
[    2.287548] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    2.287644] *** VALIDATE ramfs ***
[    2.294891] NET: Registered protocol family 2
[    2.295554] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    2.295580] TCP established hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    2.295647] TCP bind hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    2.295758] TCP: Hash tables configured (established 8192 bind 8192)
[    2.295867] UDP hash table entries: 512 (order: 2, 16384 bytes, linear)
[    2.295928] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes, linear)
[    2.296164] NET: Registered protocol family 1
[    2.296660] RPC: Registered named UNIX socket transport module.
[    2.296665] RPC: Registered udp transport module.
[    2.296668] RPC: Registered tcp transport module.
[    2.296671] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    2.296902] Trying to unpack rootfs image as initramfs...
[    2.752233] Freeing initrd memory: 7356K
[    2.753523] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available
[    2.754711] Initialise system trusted keyrings
[    2.754919] workingset: timestamp_bits=14 max_order=19 bucket_order=5
[    2.761115] zbud: loaded
[    2.763512] NFS: Registering the id_resolver key type
[    2.763537] Key type id_resolver registered
[    2.763540] Key type id_legacy registered
[    2.763553] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    2.763557] Installing knfsd (copyright (C) 1996 [email protected]).
[    2.764808] JFS: nTxBlock = 8192, nTxLock = 65536
[    2.774315] SGI XFS with ACLs, security attributes, realtime, quota, no debug enabled
[    2.775869] *** VALIDATE xfs ***
[    2.825739] Key type asymmetric registered
[    2.825750] Asymmetric key parser 'x509' registered
[    2.825814] bounce: pool size: 64 pages
[    2.825893] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
[    2.826128] io scheduler mq-deadline registered
[    2.826134] io scheduler kyber registered
[    2.826222] io scheduler bfq registered
[    2.829286] sun4i-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pi not found, using dummy regulator
[    2.838113] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[    2.843528] sun8i-mixer 1100000.mixer: Couldn't get our reset line
[    2.843610] sun4i-drm display-engine: failed to bind 1100000.mixer (ops 0xc0a8ebe4): -517
[    2.843616] sun4i-drm display-engine: Couldn't bind all pipelines components
[    2.843704] sun4i-drm display-engine: master bind failed: -517
[    2.846344] brd: module loaded
[    2.852603] loop: module loaded
[    2.854835] libphy: Fixed MDIO Bus: probed
[    2.855892] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.855898] ehci-platform: EHCI generic platform driver
[    2.856240] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    2.856257] ohci-platform: OHCI generic platform driver
[    2.856867] usbcore: registered new interface driver usb-storage
[    2.857777] sun6i-rtc 1c20400.rtc: registered as rtc0
[    2.857784] sun6i-rtc 1c20400.rtc: RTC enabled
[    2.858091] i2c /dev entries driver
[    2.859445] sunxi-wdt 1c20c90.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[    2.860360] ledtrig-cpu: registered to indicate activity on CPUs
[    2.860427] hid: raw HID events driver (C) Jiri Kosina
[    2.860541] usbcore: registered new interface driver usbhid
[    2.860544] usbhid: USB HID core driver
[    2.861211] Initializing XFRM netlink socket
[    2.861844] NET: Registered protocol family 10
[    2.923699] Segment Routing with IPv6
[    2.923805] NET: Registered protocol family 17
[    2.923837] NET: Registered protocol family 15
[    2.923925] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    2.924142] 8021q: 802.1Q VLAN Support v1.8
[    2.924205] Key type dns_resolver registered
[    2.924653] Registering SWP/SWPB emulation handler
[    2.925001] registered taskstats version 1
[    2.925005] Loading compiled-in X.509 certificates
[    2.925109] zswap: loaded using pool lzo/zbud
[    2.925402] Key type ._fscrypt registered
[    2.925407] Key type .fscrypt registered
[    2.927918] Btrfs loaded, crc32c=crc32c-generic
[    2.958290] Key type encrypted registered
[    2.972259] sun4i-usb-phy 1c13400.phy: Couldn't get regulator usb1_vbus... Deferring probe
[    2.974048] sun4i-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pi not found, using dummy regulator
[    2.974076] debugfs: Directory '1c20800.pinctrl-vcc-pi' with parent 'reg-dummy-regulator-dummy' already present!
[    2.975567] sun4i-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[    2.977163] sun4i-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pb not found, using dummy regulator
[    2.977622] printk: console [ttyS0] disabled
[    2.997822] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 43, base_baud = 1500000) is a U6_16550A
[    2.997884] printk: console [ttyS0] enabled
[    2.998372] sun4i-pinctrl 1c20800.pinctrl: Couldn't get bank PG regulator
[    2.998379] sun4i-pinctrl 1c20800.pinctrl: request() failed for pin 198
[    2.998387] sun4i-pinctrl 1c20800.pinctrl: pin-198 (1c28c00.serial) status -517
[    2.998395] sun4i-pinctrl 1c20800.pinctrl: could not request pin 198 (PG6) from group PG6  on device 1c20800.pinctrl
[    2.998401] dw-apb-uart 1c28c00.serial: Error applying setting, reverse things back
[    3.010757] sun4i-drm display-engine: bound 1100000.mixer (ops 0xc0a8ebe4)
[    3.012895] sun4i-drm display-engine: bound 1200000.mixer (ops 0xc0a8ebe4)
[    3.013331] sun4i-drm display-engine: bound 1c70000.tcon-top (ops 0xc0a92f20)
[    3.013605] sun4i-drm display-engine: bound 1c73000.lcd-controller (ops 0xc0a8b7c8)
[    3.013686] sun8i-dw-hdmi 1ee0000.hdmi: 1ee0000.hdmi supply hvcc not found, using dummy regulator
[    3.029072] sun8i-dw-hdmi 1ee0000.hdmi: Detected HDMI TX controller v1.32a with HDCP (sun8i_dw_hdmi_phy)
[    3.029580] sun8i-dw-hdmi 1ee0000.hdmi: registered DesignWare HDMI I2C bus driver
[    3.029863] sun4i-drm display-engine: bound 1ee0000.hdmi (ops 0xc0a8e1d0)
[    3.029871] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    3.029875] [drm] No driver support for vblank timestamp query.
[    3.030209] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
[    3.030283] [drm] Cannot find any crtc or sizes
[    3.031197] sun4i-pinctrl 1c20800.pinctrl: Couldn't get bank PA regulator
[    3.031206] sun4i-pinctrl 1c20800.pinctrl: request() failed for pin 0
[    3.031214] sun4i-pinctrl 1c20800.pinctrl: pin-0 (1c50000.ethernet) status -517
[    3.031222] sun4i-pinctrl 1c20800.pinctrl: could not request pin 0 (PA0) from group PA0  on device 1c20800.pinctrl
[    3.031229] dwmac-sun8i 1c50000.ethernet: Error applying setting, reverse things back
[    3.033454] [drm] Cannot find any crtc or sizes
[    3.033744] axp20x-i2c 0-0034: AXP20x variant AXP221 found
[    3.049576] input: axp20x-pek as /devices/platform/soc/1c2ac00.i2c/i2c-0/0-0034/axp221-pek/input/input0
[    3.053538] random: fast init done
[    3.053834] dcdc1: supplied by regulator-dummy
[    3.054302] vcc-3v0: Bringing 3300000uV into 3000000-3000000uV
[    3.055253] dcdc2: supplied by regulator-dummy
[    3.055925] dcdc3: supplied by regulator-dummy
[    3.056549] dcdc4: supplied by regulator-dummy
[    3.057189] dcdc5: supplied by regulator-dummy
[    3.057840] dc1sw: supplied by vcc-3v0
[    3.058048] dc5ldo: supplied by vcc-dram
[    3.058698] aldo1: supplied by regulator-dummy
[    3.059326] aldo2: supplied by regulator-dummy
[    3.059980] aldo3: supplied by regulator-dummy
[    3.061080] eldo1: supplied by regulator-dummy
[    3.061732] eldo2: supplied by regulator-dummy
[    3.062374] eldo3: supplied by regulator-dummy
[    3.063021] dldo1: supplied by regulator-dummy
[    3.063474] vcc-wifi-io: Bringing 700000uV into 1800000-1800000uV
[    3.064399] dldo2: supplied by regulator-dummy
[    3.064844] vcc-wifi: Bringing 700000uV into 3300000-3300000uV
[    3.065351] dldo3: supplied by regulator-dummy
[    3.065816] vcc-wifi-2: Bringing 700000uV into 3300000-3300000uV
[    3.066627] dldo4: supplied by regulator-dummy
[    3.067276] rtc_ldo: supplied by regulator-dummy
[    3.067528] ldo_io0: supplied by regulator-dummy
[    3.068137] ldo_io1: supplied by regulator-dummy
[    3.068955] axp20x-i2c 0-0034: AXP20X driver loaded
[    3.070630] sun4i-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-ph not found, using dummy regulator
[    3.070724] sunxi-mmc 1c0f000.mmc: Got CD GPIO
[    3.093119] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB, uses new timings mode
[    3.120972] sunxi-mmc 1c11000.mmc: initialized, max. request size: 2048 KB, uses new timings mode
[    3.144054] 1c28c00.serial: ttyS3 at MMIO 0x1c28c00 (irq = 44, base_baud = 1500000) is a U6_16550A
[    3.144748] ahci-sunxi 1c18000.sata: 1c18000.sata supply target not found, using dummy regulator
[    3.196981] ahci-sunxi 1c18000.sata: controller can't do PMP, turning off CAP_PMP
[    3.196990] ahci-sunxi 1c18000.sata: forcing PORTS_IMPL to 0x1
[    3.197038] ahci-sunxi 1c18000.sata: AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl platform mode
[    3.197051] ahci-sunxi 1c18000.sata: flags: ncq sntf pm led clo only pio slum part ccc
[    3.197870] scsi host0: ahci-sunxi
[    3.198261] ata1: SATA max UDMA/133 mmio [mem 0x01c18000-0x01c18fff] port 0x100 irq 46
[    3.198945] dwmac-sun8i 1c50000.ethernet: IRQ eth_wake_irq not found
[    3.198954] dwmac-sun8i 1c50000.ethernet: IRQ eth_lpi not found
[    3.199051] dwmac-sun8i 1c50000.ethernet: PTP uses main clock
[    3.199150] dwmac-sun8i 1c50000.ethernet: 1c50000.ethernet supply phy-io not found, using dummy regulator
[    3.199432] dwmac-sun8i 1c50000.ethernet: Current syscon value is not the default 6 (expect 0)
[    3.199447] dwmac-sun8i 1c50000.ethernet: No HW DMA feature register supported
[    3.199453] dwmac-sun8i 1c50000.ethernet: RX Checksum Offload Engine supported
[    3.199459] dwmac-sun8i 1c50000.ethernet: COE Type 2
[    3.199465] dwmac-sun8i 1c50000.ethernet: TX Checksum insertion supported
[    3.199471] dwmac-sun8i 1c50000.ethernet: Normal descriptors
[    3.199477] dwmac-sun8i 1c50000.ethernet: Chain mode enabled
[    3.199659] libphy: stmmac: probed
[    3.229610] ehci-platform 1c19000.usb: EHCI Host Controller
[    3.229643] ehci-platform 1c19000.usb: new USB bus registered, assigned bus number 1
[    3.229964] ehci-platform 1c19000.usb: irq 26, io mem 0x01c19000
[    3.244954] ehci-platform 1c19000.usb: USB 2.0 started, EHCI 1.00
[    3.245157] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.05
[    3.245165] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.245171] usb usb1: Product: EHCI Host Controller
[    3.245177] usb usb1: Manufacturer: Linux 5.5.0-rc6-sunxi ehci_hcd
[    3.245183] usb usb1: SerialNumber: 1c19000.usb
[    3.245719] hub 1-0:1.0: USB hub found
[    3.245759] hub 1-0:1.0: 1 port detected
[    3.246572] ehci-platform 1c1c000.usb: EHCI Host Controller
[    3.246594] ehci-platform 1c1c000.usb: new USB bus registered, assigned bus number 2
[    3.246770] ehci-platform 1c1c000.usb: irq 28, io mem 0x01c1c000
[    3.260953] ehci-platform 1c1c000.usb: USB 2.0 started, EHCI 1.00
[    3.261140] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.05
[    3.261148] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.261154] usb usb2: Product: EHCI Host Controller
[    3.261160] usb usb2: Manufacturer: Linux 5.5.0-rc6-sunxi ehci_hcd
[    3.261166] usb usb2: SerialNumber: 1c1c000.usb
[    3.261612] hub 2-0:1.0: USB hub found
[    3.261647] hub 2-0:1.0: 1 port detected
[    3.262416] ohci-platform 1c19400.usb: Generic Platform OHCI controller
[    3.262439] ohci-platform 1c19400.usb: new USB bus registered, assigned bus number 3
[    3.262607] ohci-platform 1c19400.usb: irq 27, io mem 0x01c19400
[    3.305037] mmc1: new DDR MMC card at address 0001
[    3.305875] mmcblk1: mmc1:0001 8WPD3R 7.28 GiB
[    3.306300] mmcblk1boot0: mmc1:0001 8WPD3R partition 1 4.00 MiB
[    3.306734] mmcblk1boot1: mmc1:0001 8WPD3R partition 2 4.00 MiB
[    3.308518]  mmcblk1: p1
[    3.325184] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.05
[    3.325197] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.325204] usb usb3: Product: Generic Platform OHCI controller
[    3.325210] usb usb3: Manufacturer: Linux 5.5.0-rc6-sunxi ohci_hcd
[    3.325216] usb usb3: SerialNumber: 1c19400.usb
[    3.325734] hub 3-0:1.0: USB hub found
[    3.325774] hub 3-0:1.0: 1 port detected
[    3.326707] ohci-platform 1c1c400.usb: Generic Platform OHCI controller
[    3.326734] ohci-platform 1c1c400.usb: new USB bus registered, assigned bus number 4
[    3.327005] ohci-platform 1c1c400.usb: irq 29, io mem 0x01c1c400
[    3.389124] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.05
[    3.389132] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.389139] usb usb4: Product: Generic Platform OHCI controller
[    3.389145] usb usb4: Manufacturer: Linux 5.5.0-rc6-sunxi ohci_hcd
[    3.389151] usb usb4: SerialNumber: 1c1c400.usb
[    3.389630] hub 4-0:1.0: USB hub found
[    3.389666] hub 4-0:1.0: 1 port detected
[    3.393366] sun6i-rtc 1c20400.rtc: setting system clock to 1970-01-01T00:00:06 UTC (6)
[    3.393509] of_cfs_init
[    3.393622] of_cfs_init: OK
[    3.516961] ata1: SATA link down (SStatus 0 SControl 300)
[    3.521374] Freeing unused kernel memory: 1024K
[    3.521602] Run /init as init process
[    3.942355] sunxi-mmc 1c10000.mmc: allocated mmc-pwrseq
[    3.942624] vcc-wifi: voltage operation not allowed
[    3.942638] sunxi-mmc 1c10000.mmc: could not set regulator OCR (-1)
[    3.969015] sunxi-mmc 1c10000.mmc: initialized, max. request size: 16384 KB, uses new timings mode
[    4.006807] mmc2: queuing unknown CIS tuple 0x80 (2 bytes)
[    4.009861] mmc2: queuing unknown CIS tuple 0x80 (3 bytes)
[    4.012929] mmc2: queuing unknown CIS tuple 0x80 (3 bytes)
[    4.018587] mmc2: queuing unknown CIS tuple 0x80 (7 bytes)
[    4.025298] mmc2: queuing unknown CIS tuple 0x81 (9 bytes)
[    4.176461] EXT4-fs (mmcblk1p1): mounted filesystem with ordered data mode. Opts: (null)
[    4.195328] mmc2: new high speed SDIO card at address 0001
[    4.481880] systemd[1]: System time before build time, advancing clock.
[    4.518645] systemd[1]: systemd 244-3 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=hybrid)
[    4.519349] systemd[1]: Detected architecture arm.
[    4.550582] systemd[1]: Set hostname to <bpi-m2u>.
[    4.557330] systemd[1]: Couldn't move remaining userspace processes, ignoring: Input/output error
[    5.013220] systemd[1]: /lib/systemd/system/dbus.socket:5: ListenStream= references a path below legacy directory /var/run/, updating /var/run/dbus/system_bus_socket → /run/dbus/system_bus_socket; please update the unit file accordingly.
[    5.037359] systemd[1]: /lib/systemd/system/xrdp.service:9: PIDFile= references a path below legacy directory /var/run/, updating /var/run/xrdp/xrdp.pid → /run/xrdp/xrdp.pid; please update the unit file accordingly.
[    5.039644] systemd[1]: /lib/systemd/system/xrdp-sesman.service:10: PIDFile= references a path below legacy directory /var/run/, updating /var/run/xrdp/xrdp-sesman.pid → /run/xrdp/xrdp-sesman.pid; please update the unit file accordingly.
[    5.254029] random: systemd: uninitialized urandom read (16 bytes read)
[    5.258550] systemd[1]: Created slice system-getty.slice.
[    5.259114] random: systemd: uninitialized urandom read (16 bytes read)
[    5.260449] systemd[1]: Created slice system-serial\x2dgetty.slice.
[    5.260801] random: systemd: uninitialized urandom read (16 bytes read)
[    5.262036] systemd[1]: Created slice User and Session Slice.
[    5.262698] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[    5.263222] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    5.264478] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[    5.264967] systemd[1]: Reached target Local Encrypted Volumes.
[    5.265495] systemd[1]: Reached target Remote File Systems.
[    5.265790] systemd[1]: Reached target Slices.
[    5.266126] systemd[1]: Reached target Swap.
[    5.266415] systemd[1]: Reached target System Time Set.
[    5.270000] systemd[1]: Listening on Syslog Socket.
[    5.270803] systemd[1]: Listening on fsck to fsckd communication Socket.
[    5.271361] systemd[1]: Listening on initctl Compatibility Named Pipe.
[    5.272465] systemd[1]: Listening on Journal Audit Socket.
[    5.273246] systemd[1]: Listening on Journal Socket (/dev/log).
[    5.274063] systemd[1]: Listening on Journal Socket.
[    5.274908] systemd[1]: Listening on udev Control Socket.
[    5.275516] systemd[1]: Listening on udev Kernel Socket.
[    5.276421] systemd[1]: Condition check resulted in Huge Pages File System being skipped.
[    5.282163] systemd[1]: Mounting POSIX Message Queue File System...
[    5.289360] systemd[1]: Mounting Kernel Debug File System...
[    5.298776] systemd[1]: Starting Restore / save the current clock...
[    5.306452] systemd[1]: Starting Set the console keyboard layout...
[    5.315014] systemd[1]: Starting Create list of static device nodes for the current kernel...
[    5.323582] systemd[1]: Started Nameserver information manager.
[    5.325263] systemd[1]: Reached target Network (Pre).
[    5.328216] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped.
[    5.328556] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
[    5.341557] systemd[1]: Starting Journal Service...
[    5.353646] systemd[1]: Starting Load Kernel Modules...
[    5.361785] systemd[1]: Starting Remount Root and Kernel File Systems...
[    5.370074] systemd[1]: Starting udev Coldplug all Devices...
[    5.383046] systemd[1]: Mounted POSIX Message Queue File System.
[    5.384768] systemd[1]: Mounted Kernel Debug File System.
[    5.389446] systemd[1]: Started Restore / save the current clock.
[    5.393751] systemd[1]: Started Create list of static device nodes for the current kernel.
[    5.462125] EXT4-fs (mmcblk1p1): re-mounted. Opts: commit=600,errors=remount-ro
[    5.478206] systemd[1]: Started Load Kernel Modules.
[    5.482012] systemd[1]: Started Remount Root and Kernel File Systems.
[    5.483816] systemd[1]: Condition check resulted in FUSE Control File System being skipped.
[    5.490135] systemd[1]: Mounting Kernel Configuration File System...
[    5.492634] systemd[1]: Condition check resulted in Rebuild Hardware Database being skipped.
[    5.500101] systemd[1]: Starting Load/Save Random Seed...
[    5.507730] systemd[1]: Starting Apply Kernel Variables...
[    5.515452] systemd[1]: Starting Create System Users...
[    5.528872] systemd[1]: Mounted Kernel Configuration File System.
[    5.599469] systemd[1]: Started Apply Kernel Variables.
[    5.652462] systemd[1]: Started Create System Users.
[    5.659608] systemd[1]: Starting Create Static Device Nodes in /dev...
[    5.739631] systemd[1]: Started Create Static Device Nodes in /dev.
[    5.746398] systemd[1]: Starting udev Kernel Device Manager...
[    5.771491] systemd[1]: Started Set the console keyboard layout.
[    5.772852] systemd[1]: Reached target Local File Systems (Pre).
[    5.779762] systemd[1]: Mounting /tmp...
[    5.806360] systemd[1]: Started udev Coldplug all Devices.
[    5.808466] systemd[1]: Mounted /tmp.
[    5.809713] systemd[1]: Reached target Local File Systems.
[    5.817263] systemd[1]: Starting Armbian ZRAM config...
[    5.825261] systemd[1]: Starting Set console font and keymap...
[    5.834868] systemd[1]: Starting Helper to synchronize boot up for ifupdown...
[    5.835907] systemd[1]: Condition check resulted in Commit a transient machine-id on disk being skipped.
[    5.867179] systemd[1]: Started Helper to synchronize boot up for ifupdown.
[    5.871366] systemd[1]: Started Set console font and keymap.
[    5.878747] systemd[1]: Starting Raise network interfaces...
[    5.961102] systemd[1]: Started Journal Service.
[    6.041223] systemd-journald[315]: Received client request to flush runtime journal.
[    6.187303] zram: Added device: zram0
[    6.190051] zram: Added device: zram1
[    6.190905] zram: Added device: zram2
[    6.271608] zram1: detected capacity change from 0 to 1055092736
[    6.872542] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    6.875952] Registered IR keymap rc-empty
[    6.876104] rc rc0: sunxi-ir as /devices/platform/soc/1c21800.ir/rc/rc0
[    6.876299] input: sunxi-ir as /devices/platform/soc/1c21800.ir/rc/rc0/input1
[    6.876515] rc rc0: lirc_dev: driver sunxi-ir registered at minor = 0, raw IR receiver, no transmitter
[    6.888040] sunxi-ir 1c21800.ir: initialized sunXi IR driver
[    6.941688] debugfs: Directory '1c22c00.codec' with parent 'H3 Audio Codec' already present!
[    6.943278] sun4i-codec 1c22c00.codec: Codec <-> 1c22c00.codec mapping ok
[    6.969073] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    6.974369] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    6.974382] platform regulatory.0: Falling back to sysfs fallback for: regulatory.db
[    7.002526] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
[    7.010379] brcmfmac mmc2:0001:1: Direct firmware load for brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-ultra.txt failed with error -2
[    7.010395] brcmfmac mmc2:0001:1: Falling back to sysfs fallback for: brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-ultra.txt
[    7.174848] lima 1c40000.gpu: IRQ ppmmu2 not found
[    7.174878] lima 1c40000.gpu: IRQ ppmmu3 not found
[    7.174936] lima 1c40000.gpu: gp - mali400 version major 1 minor 1
[    7.175088] lima 1c40000.gpu: pp0 - mali400 version major 1 minor 1
[    7.175223] lima 1c40000.gpu: pp1 - mali400 version major 1 minor 1
[    7.175322] lima 1c40000.gpu: IRQ pp2 not found
[    7.175344] lima 1c40000.gpu: IRQ pp3 not found
[    7.175368] lima 1c40000.gpu: l2 cache 64K, 4-way, 64byte cache line, 64bit external bus
[    7.199134] lima 1c40000.gpu: bus rate = 200000000
[    7.199148] lima 1c40000.gpu: mod rate = 297000000
[    7.199728] [drm] Initialized lima 1.0.0 20190217 for 1c40000.gpu on minor 1
[    7.401114] Adding 1030360k swap on /dev/zram1.  Priority:5 extents:1 across:1030360k SSFS
[    7.518038] cfg80211: failed to load regulatory.db
[    7.666446] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
[    7.668864] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-11), device may have limited channels available
[    7.670098] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43430/1 wl0: Mar 30 2016 11:30:56 version 7.45.77.h8.4 FWID 01-ee8a6268
[    7.705416] zram0: detected capacity change from 0 to 52428800
[    7.841039] random: crng init done
[    7.841057] random: 7 urandom warning(s) missed due to ratelimiting
[    8.012143] EXT4-fs (zram0): mounted filesystem without journal. Opts: discard
[    8.012186] ext4 filesystem being mounted at /var/log supports timestamps until 2038 (0x7fffffff)
[   15.233166] dwmac-sun8i 1c50000.ethernet eth0: PHY [stmmac-0:01] driver [RTL8211E Gigabit Ethernet]
[   15.235644] dwmac-sun8i 1c50000.ethernet eth0: No Safety Features support found
[   15.235669] dwmac-sun8i 1c50000.ethernet eth0: No MAC Management Counters available
[   15.235691] dwmac-sun8i 1c50000.ethernet eth0: PTP not supported by HW
[   15.235711] dwmac-sun8i 1c50000.ethernet eth0: configuring for phy/rgmii link mode
[   19.373231] dwmac-sun8i 1c50000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   19.373274] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   28.408887] broken atomic modeset userspace detected, disabling atomic
[   33.790116] dc5ldo: disabling
[   44.380733] fuse: init (API version 7.31)
[   44.380893] *** VALIDATE fuse ***
[   44.380917] *** VALIDATE fuse ***
[   58.594717] broken atomic modeset userspace detected, disabling atomic
[  638.901486] dwmac-sun8i 1c50000.ethernet eth0: Too many address, switching to promiscuous
1 Like

Hello, following the steps to add audio support to h3, v3s, a23 modified sun4i-codec to add support for r40, and if anyone else wants to try:

audio codec for r40

1 Like