Booting OpenWRT on ClearFog GT8k

Hello,
I am trying to boot a dev snapshot of openwrt located here, specifically the download designated for the 8040. I have the kernel booting but there is an rcu stall detected by cpu 1 on cpu 3.

I will note that this doesn’t happen on the solid-run provided debian image. The openwrt image is stored on a usb device. I am hoping to install it on an mSATA card I have attached to con3. the usb thumb drive and mSATA card are recognized by u-boot.
This is the command I use to boot from u-boot
usb start; usb dev 0; ext4load usb 0:1 $kernel_addr_r Image; ext4load usb 0:1 $fdt_addr_r armada-8040-db.dtb; ext4load usb 0:1 $ramdisk_addr_r openwrt-mvebu-cortexa72-marvell_armada8040-db-initramfs-kernel.bin; fdt addr $fdt_addr_r; setenv bootargs root=UUID=03300eec-02 ; booti $kernel_addr_r $ramdisk_addr_r:21231624 $fdt_addr_r

I have tried to boot the debian image, then use it to install openwrt but the boot still hangs.
I have replaced the openwrt provided device tree file with the file from solid-run.

below is the output of the bootup:

=> usb start; usb dev 0; ext4load usb 0:1 $kernel_addr_r Image; ext4load usb 0:1 $fdt_addr_r armada-8040-db.dtb; ext4load usb 0:1 $ramdisk_addr_r openwrt-mvebu-cortexa72-marvell_armada8040-db-initramfs-kernel.bin; fdt addr $fdt_addr_r; setenv bootargs root=UUID=ff313567-e9f1-5a5d-9895-3ba130b4a864 ; booti $kernel_addr_r $ramdisk_addr_r:21231624 $fdt_addr_r
starting USB...
Bus usb3@500000: Register 2000120 NbrPorts 2
Starting the controller
USB XHCI 1.00
scanning bus usb3@500000 for devices... cannot reset port 2!?
2 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found

Device 0: Vendor: MUSHKIN  Rev: PMAP Prod: MKNUFDVS16GB    
            Type: Removable Hard Disk
            Capacity: 15112.0 MB = 14.7 GB (30949376 x 512)
... is now current device
11859976 bytes read in 94 ms (120.3 MiB/s)
32006 bytes read in 26 ms (1.2 MiB/s)
21231624 bytes read in 144 ms (140.6 MiB/s)
## Flattened Device Tree blob at 04f00000
   Booting using the fdt blob at 0x4f00000
   Loading Ramdisk to 5e8f8000, end 7fb29624 ... OK
   Loading Device Tree to 000000005e8ed000, end 000000005e8f7d05 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd081]
[    0.000000] Linux version 5.10.113 (builder@buildhost) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 11.2.0 r19616-98bb26f9f7) 11.2.0, GNU ld (GNU Binutils) 2.37) #0 SMP Sun May 8 08:05:14 2022
[    0.000000] Machine model: Marvell Armada 8040 DB board
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000023fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000]   node   0: [mem 0x0000000004000000-0x00000000041fffff]
[    0.000000]   node   0: [mem 0x0000000004200000-0x00000000bfffffff]
[    0.000000]   node   0: [mem 0x0000000100000000-0x000000023fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000023fffffff]
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 16 pages/cpu s27672 r8192 d29672 u65536
[    0.000000] Detected PIPT I-cache on CPU0
[    0.000000] CPU features: detected: Spectre-v2
[    0.000000] CPU features: detected: Spectre-BHB
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 2064384
[    0.000000] Kernel command line: root=UUID=ff313567-e9f1-5a5d-9895-3ba130b4a864
[    0.000000] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[    0.000000] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x00000000bc000000-0x00000000c0000000] (64MB)
[    0.000000] Memory: 7621980K/8388608K available (8062K kernel code, 894K rwdata, 2092K rodata, 448K init, 284K bss, 766628K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] 	Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: Adjusting CPU interface base to 0x00000000f022f000
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] GICv2m: DT overriding V2M MSI_TYPER (base:160, num:32)
[    0.000000] GICv2m: range[mem 0xf0280000-0xf0280fff], SPI[160:191]
[    0.000000] GICv2m: DT overriding V2M MSI_TYPER (base:192, num:32)
[    0.000000] GICv2m: range[mem 0xf0290000-0xf0290fff], SPI[192:223]
[    0.000000] GICv2m: DT overriding V2M MSI_TYPER (base:224, num:32)
[    0.000000] GICv2m: range[mem 0xf02a0000-0xf02a0fff], SPI[224:255]
[    0.000000] GICv2m: DT overriding V2M MSI_TYPER (base:256, num:32)
[    0.000000] GICv2m: range[mem 0xf02b0000-0xf02b0fff], SPI[256:287]
[    0.000000] random: get_random_bytes called from start_kernel+0x3a0/0x4e4 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 25.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns
[    0.000002] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns
[    0.000067] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=250000)
[    0.000073] pid_max: default: 32768 minimum: 301
[    0.000139] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.000166] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.000645] rcu: Hierarchical SRCU implementation.
[    0.000691] dyndbg: Ignore empty _ddebug table in a CONFIG_DYNAMIC_DEBUG_CORE build
[    0.000824] smp: Bringing up secondary CPUs ...
[    0.001077] Detected PIPT I-cache on CPU1
[    0.001108] CPU1: Booted secondary processor 0x0000000001 [0x410fd081]
[    0.001385] Detected PIPT I-cache on CPU2
[    0.001408] CPU2: Booted secondary processor 0x0000000100 [0x410fd081]
[    0.001684] Detected PIPT I-cache on CPU3
[    0.001699] CPU3: Booted secondary processor 0x0000000101 [0x410fd081]
[    0.001731] smp: Brought up 1 node, 4 CPUs
[    0.001740] SMP: Total of 4 processors activated.
[    0.001743] CPU features: detected: 32-bit EL0 Support
[    0.001746] CPU features: detected: CRC32 instructions
[    0.001776] CPU features: emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching
[    0.001780] CPU: All CPU(s) started at EL2
[    0.001791] alternatives: patching kernel code
[    0.003747] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.003756] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.003800] pinctrl core: initialized pinctrl subsystem
[    0.004239] NET: Registered protocol family 16
[    0.004548] DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations
[    0.004697] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.004845] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.004983] thermal_sys: Registered thermal governor 'step_wise'
[    0.005315] cpuidle: using governor ladder
[    0.005344] ASID allocator initialised with 65536 entries
[    0.013966] cryptd: max_cpu_qlen set to 1000
[    0.014848] SCSI subsystem initialized
[    0.015036] usbcore: registered new interface driver usbfs
[    0.015052] usbcore: registered new interface driver hub
[    0.015067] usbcore: registered new device driver usb
[    0.015513] clocksource: Switched to clocksource arch_sys_counter
[    0.015720] NET: Registered protocol family 2
[    0.015960] IP idents hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.017565] tcp_listen_portaddr_hash hash table entries: 4096 (order: 4, 65536 bytes, linear)
[    0.017610] TCP established hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.017815] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes, linear)
[    0.018316] TCP: Hash tables configured (established 65536 bind 65536)
[    0.018373] UDP hash table entries: 4096 (order: 5, 131072 bytes, linear)
[    0.018453] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes, linear)
[    0.018586] NET: Registered protocol family 1
[    0.018600] PCI: CLS 0 bytes, default 64
[    0.018651] Unpacking initramfs...
[    0.018656] Initramfs unpacking failed: invalid magic at start of compressed archive
[    0.140853] Freeing initrd memory: 542916K
[    0.141261] workingset: timestamp_bits=46 max_order=21 bucket_order=0
[    0.142493] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.142497] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.142818] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)
[    0.144294] armada-ap806-pinctrl f06f4000.system-controller:pinctrl: registered pinctrl driver
[    0.144544] armada-cp110-pinctrl f2440000.system-controller:pinctrl: registered pinctrl driver
[    0.144714] armada-cp110-pinctrl f4440000.system-controller:pinctrl: registered pinctrl driver
[    0.146847] mv_xor_v2 f0400000.xor: Marvell Version 2 XOR driver
[    0.147122] mv_xor_v2 f0420000.xor: Marvell Version 2 XOR driver
[    0.147384] mv_xor_v2 f0440000.xor: Marvell Version 2 XOR driver
[    0.147647] mv_xor_v2 f0460000.xor: Marvell Version 2 XOR driver
[    0.147959] mv_xor_v2 f26a0000.xor: Marvell Version 2 XOR driver
[    0.148234] mv_xor_v2 f26c0000.xor: Marvell Version 2 XOR driver
[    0.148542] mv_xor_v2 f46a0000.xor: Marvell Version 2 XOR driver
[    0.148817] mv_xor_v2 f46c0000.xor: Marvell Version 2 XOR driver
[    0.148912] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.149644] printk: console [ttyS0] disabled
[    0.169789] f0512000.serial: ttyS0 at MMIO 0xf0512000 (irq = 17, base_baud = 12500000) is a 16550A
[    0.895335] printk: console [ttyS0] enabled
[    0.899968] omap_rng f2760000.trng: Random Number Generator ver. 203b34c
[    0.900293] random: fast init done
[    0.906816] omap_rng f4760000.trng: Random Number Generator ver. 203b34c
[    0.910134] random: crng init done
[    0.921489] loop: module loaded
[    0.924656] Loading iSCSI transport class v2.0-870.
[    0.930084] ahci f2540000.sata: supply ahci not found, using dummy regulator
[    0.937225] ahci f2540000.sata: supply phy not found, using dummy regulator
[    0.944344] platform f2540000.sata:sata-port@0: supply target not found, using dummy regulator
[    0.953198] ahci f4540000.sata: supply ahci not found, using dummy regulator
[    0.960313] ahci f4540000.sata: supply phy not found, using dummy regulator
[    0.967409] platform f4540000.sata:sata-port@0: supply target not found, using dummy regulator
[    0.976755] spi-nor spi0.0: unrecognized JEDEC id bytes: ff ff ff ff ff ff
[    0.983663] spi-nor: probe of spi0.0 failed with error -2
[    0.989704] spi-nor spi4.0: s25fl064k (8192 Kbytes)
[    0.994663] 3 fixed-partitions partitions found on MTD device spi4.0
[    1.001055] Creating 3 MTD partitions on "spi4.0":
[    1.005868] 0x000000000000-0x000000200000 : "Boot"
[    1.010818] 0x000000200000-0x000000f00000 : "Filesystem"
[    1.016155] mtd: partition "Filesystem" extends beyond the end of device "spi4.0" -- size truncated to 0x600000
[    1.026392] 0x000000f00000-0x000001000000 : "Boot_2nd"
[    1.031550] mtd: partition "Boot_2nd" is out of reach -- disabled
[    1.039445] hwmon hwmon0: temp1_input not attached to any thermal zone
[    1.046305] mvpp2 f2000000.ethernet: using 8 per-cpu buffers
[    1.061803] mvpp2 f2000000.ethernet eth0: Using random mac address 62:ca:e4:67:63:1d
[    1.071108] mvpp2 f2000000.ethernet eth1: Using random mac address 8e:07:ce:3e:f6:80
[    1.086199] mvpp2 f4000000.ethernet: using 8 per-cpu buffers
[    1.103076] mvpp2 f4000000.ethernet eth2: Using random mac address 0a:a0:1d:59:ca:40
[    1.112410] mvpp2 f4000000.ethernet eth3: Using random mac address ea:d5:4c:93:5f:b9
[    1.127296] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.133853] ehci-pci: EHCI PCI platform driver
[    1.138341] ehci-platform: EHCI generic platform driver
[    1.143677] ehci-orion: EHCI orion driver
[    1.148119] xhci-hcd f4510000.usb3: xHCI Host Controller
[    1.153457] xhci-hcd f4510000.usb3: new USB bus registered, assigned bus number 1
[    1.161028] xhci-hcd f4510000.usb3: hcc params 0x0a000990 hci version 0x100 quirks 0x0000000000010010
[    1.170309] xhci-hcd f4510000.usb3: irq 61, io mem 0xf4510000
[    1.176278] hub 1-0:1.0: USB hub found
[    1.180052] hub 1-0:1.0: 1 port detected
[    1.184058] xhci-hcd f4510000.usb3: xHCI Host Controller
[    1.189399] xhci-hcd f4510000.usb3: new USB bus registered, assigned bus number 2
[    1.196916] xhci-hcd f4510000.usb3: Host supports USB 3.0 SuperSpeed
[    1.203313] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    1.211555] hub 2-0:1.0: USB hub found
[    1.215327] hub 2-0:1.0: 1 port detected
[    1.219440] usbcore: registered new interface driver usb-storage
[    1.225663] armada38x-rtc f4284000.rtc: registered as rtc0
[    1.231181] armada38x-rtc f4284000.rtc: setting system clock to 2022-05-09T16:45:56 UTC (1652114756)
[    1.240396] i2c /dev entries driver
[    1.244116] pca953x 1-0021: supply vcc not found, using dummy regulator
[    1.250806] pca953x 1-0021: using no AI
[    1.254781] pca953x 1-0021: failed writing register
[    1.259724] pca953x: probe of 1-0021 failed with error -5
[    1.265193] pca953x 1-0025: supply vcc not found, using dummy regulator
[    1.271870] pca953x 1-0025: using no AI
[    1.275839] pca953x 1-0025: failed writing register
[    1.280767] pca953x: probe of 1-0025 failed with error -5
[    1.287624] sdhci: Secure Digital Host Controller Interface driver
[    1.293840] sdhci: Copyright(c) Pierre Ossman
[    1.298445] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.305889] NET: Registered protocol family 10
[    1.311121] Segment Routing with IPv6
[    1.314820] NET: Registered protocol family 17
[    1.319304] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    1.328118] mmc0: SDHCI controller on f06e0000.sdhci [f06e0000.sdhci] using ADMA 64-bit
[    1.328122] mmc1: SDHCI controller on f2780000.sdhci [f2780000.sdhci] using ADMA 64-bit
[    1.332373] 8021q: 802.1Q VLAN Support v1.8
[    1.355527] armada8k-pcie f4600000.pcie: host bridge /cp1/pcie@f4600000 ranges:
[    1.362879] armada8k-pcie f4600000.pcie:      MEM 0x00fa000000..0x00faefffff -> 0x00fa000000
[    1.492953] mmc0: new high speed MMC card at address 0001
[   22.385512] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
[   22.391479] rcu: 	3-...0: (0 ticks this GP) idle=a0a/1/0x4000000000000000 softirq=56/56 fqs=751 
[   22.400312] 	(detected by 1, t=2103 jiffies, g=-1107, q=186)
[   22.406000] Task dump for CPU 3:
[   22.409246] task:kworker/3:3     state:R  running task     stack:    0 pid:  615 ppid:     2 flags:0x0000000a
[   22.419244] Workqueue: events deferred_probe_work_func
[   22.424412] Call trace:
[   22.426882]  __switch_to+0x9c/0xfc
[   22.430308]  deferred_probe_work_func+0x54/0xb4

This stall is happening because the device-tree file for the kernel is incorrect. OpenWRT does not auto-build images for the ClearFog GT 8K, however the device is fully supported under mainline linux. A custom device profile would need to be added to build u-boot and the kernel with support for the GT8K, and then describe the network interfaces.

This was originally not included because OpenWRT was not supporting Marvell’s DSA drivers for the switch ports. They have recently changed their stance on this, so adding the ClearFog GT 8K should now be possible.

1 Like

If you can give me until the end of the week, I will try and get a patch sent to mainline to properly support the CFGT8K, and the newer CN913x based ClearFog Base and Pro in mainline. If you could test my images and provide feedback that would be great.

1 Like

I am happy to test some images, I probably won’t be able to get to it until 18 May, so take your time.
If I am understanding correctly, the device tree file in the kernel is incorrect. meaning my u-boot invocation and was okay.

I am happy to contribute some test cycles to getting openwrt on the solid run gear. My plan was to purchase a CN913X Pro when I got openwrt working on the GT8k.

I am trying to learn more about the build system for openwrt as I figured that since the board runs debian without issue there must be an openwrt issue.

Thank you for your quick reply I will look to this thread for instructions on downloading your test images.

1 Like

I’ve been working on this back in 2020, but did not commit to mainline as I did not find a nice solution for my use case (dual PCIe mini WiFi cards). I’ve outlined my journey in the OpenWRT forums:

Recently I’ve moved houses and started playing around with the Clearfog GT-8K again, so I just merged my old patches with the current master. As you are using SATA you will want to not use the PCIe patches on my branch (add_clearfog-gt8k_support), but the platform build and configuration files should be valid for your usecase as well.

No idea yet if the current build will run stable, my 2020 build had 2 years uptime without an issue.

Hope this helps you…

1 Like

@bkeiser , Thank you for the links. I had considered trying to build a openwrt kernel myself and had found your link in my searches. I am hoping that this effort can land GT8K support in openwrt officially. so I won’t have to keep building. Slightly off topic question, have you tried out anything in the open data plane project?

@jnettlet I realize this might not be a high priority, but I am just checking on the status of the build? would it help get patches merged if I tried to fill out a hardware page on the openwrt wiki for the CFGT8K ?

1 Like

thanks to @bkeiser for doing the hardwork on the patches. I have reproduced them below. I have generated a bootable image on the CFGT8K with these patches. @jnettlet there other things that would need to be done so that all of the goodness from the board can be used?

diff --git a/target/linux/mvebu/cortexa72/base-files/etc/board.d/02_network b/target/linux/mvebu/cortexa72/base-files/etc/board.d/02_network
index f3c59bf2ad..92ab3b1bd9 100644
--- a/target/linux/mvebu/cortexa72/base-files/etc/board.d/02_network
+++ b/target/linux/mvebu/cortexa72/base-files/etc/board.d/02_network
@@ -29,6 +29,9 @@ marvell,armada8040-db)
 marvell,armada7040-db)
 	ucidef_set_interfaces_lan_wan "eth0 eth2" "eth1"
 	;;
+marvell,armada8040-clearfog-gt-8k)
+	ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "eth0 eth1"
+	;;
 *)
 	ucidef_set_interface_lan "eth0"
 	;;
diff --git a/target/linux/mvebu/cortexa72/base-files/lib/upgrade/platform.sh b/target/linux/mvebu/cortexa72/base-files/lib/upgrade/platform.sh
index 18fdb01959..dc964a3117 100755
--- a/target/linux/mvebu/cortexa72/base-files/lib/upgrade/platform.sh
+++ b/target/linux/mvebu/cortexa72/base-files/lib/upgrade/platform.sh
@@ -13,7 +13,8 @@ platform_check_image() {
 	iei,puzzle-m901|\
 	iei,puzzle-m902|\
 	marvell,armada8040-mcbin-doubleshot|\
-	marvell,armada8040-mcbin-singleshot)
+	marvell,armada8040-mcbin-singleshot|\
+	marvell,armada8040-clearfog-gt-8k)
 		legacy_sdcard_check_image "$1"
 		;;
 	*)
@@ -30,7 +31,8 @@ platform_do_upgrade() {
 		;;
 	globalscale,mochabin|\
 	marvell,armada8040-mcbin-doubleshot|\
-	marvell,armada8040-mcbin-singleshot)
+	marvell,armada8040-mcbin-singleshot|\
+	marvell,armada8040-clearfog-gt-8k)
 		legacy_sdcard_do_upgrade "$1"
 		;;
 	*)
@@ -44,7 +46,8 @@ platform_copy_config() {
 	iei,puzzle-m901|\
 	iei,puzzle-m902|\
 	marvell,armada8040-mcbin-doubleshot|\
-	marvell,armada8040-mcbin-singleshot)
+	marvell,armada8040-mcbin-singleshot|\
+	marvell,armada8040-clearfog-gt-8k)
 		legacy_sdcard_copy_config
 		;;
 	esac
diff --git a/target/linux/mvebu/image/cortexa72.mk b/target/linux/mvebu/image/cortexa72.mk
index f95ce533ea..e58e85ec9a 100644
--- a/target/linux/mvebu/image/cortexa72.mk
+++ b/target/linux/mvebu/image/cortexa72.mk
@@ -52,6 +52,20 @@ define Device/marvell_macchiatobin-singleshot
 endef
 TARGET_DEVICES += marvell_macchiatobin-singleshot
 
+define Device/marvell_clearfog-gt-8k
+  $(call Device/Default-arm64)
+  DEVICE_VENDOR := SolidRun
+  DEVICE_MODEL := Clearfog
+  DEVICE_VARIANT := GT-8K
+  DEVICE_ALT0_VENDOR := SolidRun
+  DEVICE_ALT0_MODEL := Armada 8040 Community Board
+  DEVICE_ALT0_VARIANT := GT-8K
+  DEVICE_PACKAGES += kmod-i2c-mux-pca954x
+  DEVICE_DTS := armada-8040-clearfog-gt-8k
+  SUPPORTED_DEVICES := marvell,armada8040-clearfog-gt-8k
+endef
+TARGET_DEVICES += marvell_clearfog-gt-8k
+
 define Device/iei_puzzle-m901
   $(call Device/Default-arm64)
   DEVICE_VENDOR := iEi

dmesg after the board is up:

root@OpenWrt:/# dmesg
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd081]
[    0.000000] Linux version 5.10.116 (lblyth@openwrt-build) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 11.2.0 r19378-9f415792e1) 11.2.0, GNU ld (GNU Binutils) 2.37) #0 SMP Sat May 21 18:52:39 2022
[    0.000000] Machine model: SolidRun ClearFog GT 8K
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000023fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000]   node   0: [mem 0x0000000004000000-0x00000000041fffff]
[    0.000000]   node   0: [mem 0x0000000004200000-0x00000000bfffffff]
[    0.000000]   node   0: [mem 0x0000000100000000-0x000000023fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000023fffffff]
[    0.000000] On node 0 totalpages: 2097152
[    0.000000]   DMA zone: 12288 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 786432 pages, LIFO batch:63
[    0.000000]   Normal zone: 20480 pages used for memmap
[    0.000000]   Normal zone: 1310720 pages, LIFO batch:63
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] psci: SMC Calling Convention v1.1
[    0.000000] percpu: Embedded 16 pages/cpu s27608 r8192 d29736 u65536
[    0.000000] pcpu-alloc: s27608 r8192 d29736 u65536 alloc=16*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-BHB
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 2064384
[    0.000000] Kernel command line: root=PARTUUID=92f9f5ea-02 rw rootwait
[    0.000000] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear)
[    0.000000] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0x00000000bc000000-0x00000000c0000000] (64MB)
[    0.000000] Memory: 8165136K/8388608K available (7870K kernel code, 878K rwdata, 2048K rodata, 448K init, 270K bss, 223472K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] 	Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GIC: Adjusting CPU interface base to 0x00000000f022f000
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] GICv2m: DT overriding V2M MSI_TYPER (base:160, num:32)
[    0.000000] GICv2m: range[mem 0xf0280000-0xf0280fff], SPI[160:191]
[    0.000000] GICv2m: DT overriding V2M MSI_TYPER (base:192, num:32)
[    0.000000] GICv2m: range[mem 0xf0290000-0xf0290fff], SPI[192:223]
[    0.000000] GICv2m: DT overriding V2M MSI_TYPER (base:224, num:32)
[    0.000000] GICv2m: range[mem 0xf02a0000-0xf02a0fff], SPI[224:255]
[    0.000000] GICv2m: DT overriding V2M MSI_TYPER (base:256, num:32)
[    0.000000] GICv2m: range[mem 0xf02b0000-0xf02b0fff], SPI[256:287]
[    0.000000] random: get_random_bytes called from start_kernel+0x3a0/0x4e4 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 25.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns
[    0.000002] sched_clock: 56 bits at 25MHz, resolution 40ns, wraps every 4398046511100ns
[    0.000066] Calibrating delay loop (skipped), value calculated using timer frequency.. 50.00 BogoMIPS (lpj=250000)
[    0.000072] pid_max: default: 32768 minimum: 301
[    0.000140] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.000167] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.000646] rcu: Hierarchical SRCU implementation.
[    0.000691] dyndbg: Ignore empty _ddebug table in a CONFIG_DYNAMIC_DEBUG_CORE build
[    0.000832] smp: Bringing up secondary CPUs ...
[    0.001088] Detected PIPT I-cache on CPU1
[    0.001114] CPU1: Booted secondary processor 0x0000000001 [0x410fd081]
[    0.001389] Detected PIPT I-cache on CPU2
[    0.001411] CPU2: Booted secondary processor 0x0000000100 [0x410fd081]
[    0.001689] Detected PIPT I-cache on CPU3
[    0.001705] CPU3: Booted secondary processor 0x0000000101 [0x410fd081]
[    0.001736] smp: Brought up 1 node, 4 CPUs
[    0.001745] SMP: Total of 4 processors activated.
[    0.001748] CPU features: detected: 32-bit EL0 Support
[    0.001751] CPU features: detected: CRC32 instructions
[    0.001778] CPU features: emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching
[    0.001782] CPU: All CPU(s) started at EL2
[    0.001793] alternatives: patching kernel code
[    0.003926] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.003935] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.003978] pinctrl core: initialized pinctrl subsystem
[    0.004199] NET: Registered protocol family 16
[    0.004643] DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations
[    0.004796] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.004946] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.005082] thermal_sys: Registered thermal governor 'step_wise'
[    0.005391] cpuidle: using governor ladder
[    0.005425] ASID allocator initialised with 65536 entries
[    0.013856] cryptd: max_cpu_qlen set to 1000
[    0.014766] SCSI subsystem initialized
[    0.014939] libata version 3.00 loaded.
[    0.015000] usbcore: registered new interface driver usbfs
[    0.015012] usbcore: registered new interface driver hub
[    0.015026] usbcore: registered new device driver usb
[    0.015599] clocksource: Switched to clocksource arch_sys_counter
[    0.015832] NET: Registered protocol family 2
[    0.016086] IP idents hash table entries: 131072 (order: 8, 1048576 bytes, linear)
[    0.017658] tcp_listen_portaddr_hash hash table entries: 4096 (order: 4, 65536 bytes, linear)
[    0.017703] TCP established hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.017908] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes, linear)
[    0.018310] TCP: Hash tables configured (established 65536 bind 65536)
[    0.018372] UDP hash table entries: 4096 (order: 5, 131072 bytes, linear)
[    0.018453] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes, linear)
[    0.018593] NET: Registered protocol family 1
[    0.018606] PCI: CLS 0 bytes, default 64
[    0.019123] workingset: timestamp_bits=46 max_order=21 bucket_order=0
[    0.020367] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.020371] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.022136] armada-ap806-pinctrl f06f4000.system-controller:pinctrl: registered pinctrl driver
[    0.022387] armada-cp110-pinctrl f2440000.system-controller:pinctrl: registered pinctrl driver
[    0.022552] armada-cp110-pinctrl f4440000.system-controller:pinctrl: registered pinctrl driver
[    0.022919] gpio-65 (sata_reset): hogged as output/high
[    0.022930] gpio-66 (lte_reset): hogged as output/low
[    0.022939] gpio-83 (wlan_disable): hogged as output/low
[    0.022948] gpio-85 (lte_disable): hogged as output/low
[    0.024617] mv_xor_v2 f0400000.xor: Marvell Version 2 XOR driver
[    0.024890] mv_xor_v2 f0420000.xor: Marvell Version 2 XOR driver
[    0.025156] mv_xor_v2 f0440000.xor: Marvell Version 2 XOR driver
[    0.025422] mv_xor_v2 f0460000.xor: Marvell Version 2 XOR driver
[    0.025737] mv_xor_v2 f26a0000.xor: Marvell Version 2 XOR driver
[    0.026009] mv_xor_v2 f26c0000.xor: Marvell Version 2 XOR driver
[    0.026298] mv_xor_v2 f46a0000.xor: Marvell Version 2 XOR driver
[    0.026562] mv_xor_v2 f46c0000.xor: Marvell Version 2 XOR driver
[    0.026653] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    0.026926] printk: console [ttyS0] disabled
[    0.047059] f0512000.serial: ttyS0 at MMIO 0xf0512000 (irq = 16, base_baud = 12500000) is a 16550A
[    0.770462] printk: console [ttyS0] enabled
[    0.775082] omap_rng f2760000.trng: Random Number Generator ver. 203b34c
[    0.775407] random: fast init done
[    0.781921] omap_rng f4760000.trng: Random Number Generator ver. 203b34c
[    0.785247] random: crng init done
[    0.796613] loop: module loaded
[    0.800183] ahci f4540000.sata: supply ahci not found, using dummy regulator
[    0.807323] ahci f4540000.sata: supply phy not found, using dummy regulator
[    0.814415] platform f4540000.sata:sata-port@0: supply target not found, using dummy regulator
[    0.823189] platform f4540000.sata:sata-port@1: supply target not found, using dummy regulator
[    0.832583] spi-nor spi4.0: found s25fl064k, expected w25q32
[    0.838470] spi-nor spi4.0: s25fl064k (8192 Kbytes)
[    0.895648] hwmon hwmon0: temp1_input not attached to any thermal zone
[    0.904756] mv88e6085 f412a200.mdio-mii:04: switch 0x3400 detected: Marvell 88E6141, revision 0
[    0.964228] hwmon hwmon1: temp1_input not attached to any thermal zone
[    0.976090] hwmon hwmon2: temp1_input not attached to any thermal zone
[    0.987998] hwmon hwmon3: temp1_input not attached to any thermal zone
[    0.999845] hwmon hwmon4: temp1_input not attached to any thermal zone
[    1.015359] mvpp2 f2000000.ethernet: using 8 per-cpu buffers
[    1.026751] mvpp2 f4000000.ethernet: using 8 per-cpu buffers
[    1.038885] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.045439] ehci-platform: EHCI generic platform driver
[    1.050764] ehci-orion: EHCI orion driver
[    1.054958] xhci-hcd f2510000.usb3: xHCI Host Controller
[    1.060306] xhci-hcd f2510000.usb3: new USB bus registered, assigned bus number 1
[    1.067866] xhci-hcd f2510000.usb3: hcc params 0x0a000990 hci version 0x100 quirks 0x0000000000010010
[    1.077143] xhci-hcd f2510000.usb3: irq 37, io mem 0xf2510000
[    1.083109] hub 1-0:1.0: USB hub found
[    1.086889] hub 1-0:1.0: 1 port detected
[    1.090899] xhci-hcd f2510000.usb3: xHCI Host Controller
[    1.096257] xhci-hcd f2510000.usb3: new USB bus registered, assigned bus number 2
[    1.103775] xhci-hcd f2510000.usb3: Host supports USB 3.0 SuperSpeed
[    1.110175] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    1.118419] hub 2-0:1.0: USB hub found
[    1.122189] hub 2-0:1.0: 1 port detected
[    1.126436] usbcore: registered new interface driver usb-storage
[    1.132630] armada38x-rtc f4284000.rtc: registered as rtc0
[    1.138156] armada38x-rtc f4284000.rtc: setting system clock to 2022-06-02T17:31:46 UTC (1654191106)
[    1.147363] i2c /dev entries driver
[    1.152260] sdhci: Secure Digital Host Controller Interface driver
[    1.158501] sdhci: Copyright(c) Pierre Ossman
[    1.163064] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.170938] NET: Registered protocol family 10
[    1.176130] Segment Routing with IPv6
[    1.179828] NET: Registered protocol family 17
[    1.184361] 8021q: 802.1Q VLAN Support v1.8
[    1.191316] armada8k-pcie f2600000.pcie: host bridge /cp0/pcie@f2600000 ranges:
[    1.198700] armada8k-pcie f2600000.pcie:      MEM 0x00f6000000..0x00f6efffff -> 0x00f6000000
[    1.200768] mmc1: SDHCI controller on f2780000.sdhci [f2780000.sdhci] using ADMA 64-bit
[    1.201340] mmc0: SDHCI controller on f06e0000.sdhci [f06e0000.sdhci] using ADMA 64-bit
[    1.262877] mmc1: new high speed SDHC card at address aaaa
[    1.263053] mmc0: switch to bus width 8 failed
[    1.268936] mmcblk1: mmc1:aaaa SL16G 14.8 GiB 
[    1.273130] mmc0: new high speed MMC card at address 0001
[    1.282100]  mmcblk1: p1 p2
[    1.283117] mmcblk0: mmc0:0001 8GTF4R 7.28 GiB 
[    1.290356] mmcblk0boot0: mmc0:0001 8GTF4R partition 1 4.00 MiB
[    1.296482] mmcblk0boot1: mmc0:0001 8GTF4R partition 2 4.00 MiB
[    1.302470] mmcblk0rpmb: mmc0:0001 8GTF4R partition 3 512 KiB, chardev (249:0)
[    2.205608] armada8k-pcie f2600000.pcie: Phy link never came up
[    2.211568] armada8k-pcie f2600000.pcie: Link not up after reconfiguration
[    2.218611] armada8k-pcie f2600000.pcie: PCI host bridge to bus 0000:00
[    2.225266] pci_bus 0000:00: root bus resource [bus 00-ff]
[    2.230799] pci_bus 0000:00: root bus resource [mem 0xf6000000-0xf6efffff]
[    2.237757] pci 0000:00:00.0: [11ab:0110] type 01 class 0x060400
[    2.243810] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
[    2.250187] pci 0000:00:00.0: supports D1 D2
[    2.254483] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    2.265615] pci 0000:00:00.0: BAR 0: assigned [mem 0xf6000000-0xf60fffff]
[    2.272447] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    2.841515] pcieport 0000:00:00.0: AER: enabled with IRQ 44
[    2.847599] ahci f4540000.sata: supply ahci not found, using dummy regulator
[    2.854781] ahci f4540000.sata: supply phy not found, using dummy regulator
[    2.861866] platform f4540000.sata:sata-port@0: supply target not found, using dummy regulator
[    2.870667] platform f4540000.sata:sata-port@1: supply target not found, using dummy regulator
[    2.880599] ahci f4540000.sata: masking port_map 0x3 -> 0x3
[    2.886260] ahci f4540000.sata: AHCI 0001.0000 32 slots 2 ports 6 Gbps 0x3 impl platform mode
[    2.894829] ahci f4540000.sata: flags: 64bit ncq sntf led only pmp fbs pio slum part sxs 
[    2.903669] scsi host0: ahci
[    2.906724] scsi host1: ahci
[    2.909670] ata1: SATA max UDMA/133 mmio [mem 0xf4540000-0xf456ffff] port 0x100 irq 45
[    2.917625] ata2: SATA max UDMA/133 mmio [mem 0xf4540000-0xf456ffff] port 0x180 irq 45
[    2.925885] sfp sfp-cp0-eth0: Host maximum power 2.0W
[    2.933461] mv88e6085 f412a200.mdio-mii:04: switch 0x3400 detected: Marvell 88E6141, revision 0
[    2.994456] hwmon hwmon1: temp1_input not attached to any thermal zone
[    3.005864] hwmon hwmon2: temp1_input not attached to any thermal zone
[    3.016470] hwmon hwmon3: temp1_input not attached to any thermal zone
[    3.027487] hwmon hwmon4: temp1_input not attached to any thermal zone
[    3.042953] mvpp2 f2000000.ethernet: using 8 per-cpu buffers
[    3.078781] mvpp2 f2000000.ethernet eth0: Using random mac address 4e:14:7b:cc:2e:20
[    3.093876] mvpp2 f4000000.ethernet: using 8 per-cpu buffers
[    3.112044] mvpp2 f4000000.ethernet eth1: Using random mac address 66:bf:1b:cc:23:5b
[    3.122986] mvpp2 f4000000.ethernet eth2: Using random mac address 12:d8:eb:56:fe:6f
[    3.154037] xhci-hcd f4500000.usb3: xHCI Host Controller
[    3.159400] xhci-hcd f4500000.usb3: new USB bus registered, assigned bus number 3
[    3.166983] xhci-hcd f4500000.usb3: hcc params 0x0a000990 hci version 0x100 quirks 0x0000000000010010
[    3.176279] xhci-hcd f4500000.usb3: irq 38, io mem 0xf4500000
[    3.182344] hub 3-0:1.0: USB hub found
[    3.186130] hub 3-0:1.0: 1 port detected
[    3.190139] xhci-hcd f4500000.usb3: xHCI Host Controller
[    3.195474] xhci-hcd f4500000.usb3: new USB bus registered, assigned bus number 4
[    3.202996] xhci-hcd f4500000.usb3: Host supports USB 3.0 SuperSpeed
[    3.209436] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[    3.217687] hub 4-0:1.0: USB hub found
[    3.221458] hub 4-0:1.0: 1 port detected
[    3.228317] mv88e6085 f412a200.mdio-mii:04: switch 0x3400 detected: Marvell 88E6141, revision 0
[    3.257052] ata1: SATA link down (SStatus 0 SControl 300)
[    3.284485] hwmon hwmon1: temp1_input not attached to any thermal zone
[    3.295866] hwmon hwmon2: temp1_input not attached to any thermal zone
[    3.306818] hwmon hwmon3: temp1_input not attached to any thermal zone
[    3.317390] hwmon hwmon4: temp1_input not attached to any thermal zone
[    3.425631] ata2: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[    3.431981] ata2.00: ATA-8: LITEONIT LMT-32L3M-HP, LWE3, max UDMA/133
[    3.438462] ata2.00: 62533296 sectors, multi 1: LBA48 NCQ (depth 32)
[    3.444994] ata2.00: configured for UDMA/133
[    3.449619] scsi 1:0:0:0: Direct-Access     ATA      LITEONIT LMT-32L LWE3 PQ: 0 ANSI: 5
[    3.458603] sd 1:0:0:0: [sda] 62533296 512-byte logical blocks: (32.0 GB/29.8 GiB)
[    3.466244] sd 1:0:0:0: [sda] 4096-byte physical blocks
[    3.471578] sd 1:0:0:0: [sda] Write Protect is off
[    3.476401] sd 1:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    3.476442] sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    3.486000]  sda: sda1 sda2
[    3.489304] sd 1:0:0:0: [sda] Attached SCSI removable disk
[    3.991164] mvpp2 f4000000.ethernet: all ports have a low MTU, switching to per-cpu buffers
[    4.036542] mvpp2 f4000000.ethernet: using 8 per-cpu buffers
[    4.058423] mv88e6085 f412a200.mdio-mii:04 lan2 (uninitialized): PHY [!cp1!config-space@f4000000!mdio@12a200!switch0@4!mdio:11] driver [Marvell 88E6341 Family] (irq=74)
[    4.080718] mv88e6085 f412a200.mdio-mii:04 lan1 (uninitialized): PHY [!cp1!config-space@f4000000!mdio@12a200!switch0@4!mdio:12] driver [Marvell 88E6341 Family] (irq=75)
[    4.104577] mv88e6085 f412a200.mdio-mii:04 lan4 (uninitialized): PHY [!cp1!config-space@f4000000!mdio@12a200!switch0@4!mdio:13] driver [Marvell 88E6341 Family] (irq=76)
[    4.126839] mv88e6085 f412a200.mdio-mii:04 lan3 (uninitialized): PHY [!cp1!config-space@f4000000!mdio@12a200!switch0@4!mdio:14] driver [Marvell 88E6341 Family] (irq=77)
[    4.152559] mv88e6085 f412a200.mdio-mii:04: configuring for inband/2500base-x link mode
[    4.186477] DSA: tree 0 setup
[    4.217471] EXT4-fs (mmcblk1p2): mounted filesystem without journal. Opts: (null)
[    4.225036] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    4.231356] Freeing unused kernel memory: 448K
[    4.275765] Run /sbin/init as init process
[    4.279886]   with arguments:
[    4.279892]     /sbin/init
[    4.279897]   with environment:
[    4.279902]     HOME=/
[    4.279907]     TERM=linux
[    4.334107] init: Console is alive
[    4.401761] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    4.417508] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    4.428462] init: - preinit -
[    4.621191] mvpp2 f2000000.ethernet eth0: configuring for inband/10gbase-r link mode
[    8.685271] mount_root: mounting /dev/root
[    8.697386] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
[    8.821737] EXT4-fs (mmcblk1p1): mounted filesystem without journal. Opts: (null)
[    8.843021] urandom-seed: Seed file not found (/etc/urandom.seed)
[    8.877690] procd: - early -
[    9.413593] procd: - ubus -
[    9.468457] procd: - init -
[    9.585669] urngd: v1.0.2 started.
[    9.603298] kmodloader: loading kernel modules from /etc/modules.d/*
[    9.637417] PPP generic driver version 2.4.2
[    9.641956] NET: Registered protocol family 24
[    9.647942] kmodloader: done loading kernel modules from /etc/modules.d/*
[   13.367286] mvpp2 f2000000.ethernet eth0: configuring for inband/10gbase-r link mode
[   13.375523] br-lan: port 1(eth0) entered blocking state
[   13.380820] br-lan: port 1(eth0) entered disabled state
[   13.386287] device eth0 entered promiscuous mode
root@OpenWrt:/# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq master br-lan state DOWN qlen 2048
    link/ether 4e:14:7b:cc:2e:20 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 2048
    link/ether 66:bf:1b:cc:23:5b brd ff:ff:ff:ff:ff:ff
4: eth2: <BROADCAST,MULTICAST> mtu 1508 qdisc noop state DOWN qlen 2048
    link/ether 12:d8:eb:56:fe:6f brd ff:ff:ff:ff:ff:ff
5: lan2@eth2: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 12:d8:eb:56:fe:6f brd ff:ff:ff:ff:ff:ff
6: lan1@eth2: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 12:d8:eb:56:fe:6f brd ff:ff:ff:ff:ff:ff
7: lan4@eth2: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 12:d8:eb:56:fe:6f brd ff:ff:ff:ff:ff:ff
8: lan3@eth2: <BROADCAST,MULTICAST,M-DOWN> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 12:d8:eb:56:fe:6f brd ff:ff:ff:ff:ff:ff
9: br-lan: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 4e:14:7b:cc:2e:20 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/24 brd 192.168.1.255 scope global br-lan
       valid_lft forever preferred_lft forever
    inet6 fda0:95c3:53f8::1/60 scope global tentative noprefixroute 
       valid_lft forever preferred_lft forever

The reason we try to mainline as much board support as possible is exactly for this purpose. Adding a platform to an existing distribution should just be a matter of slight customization and including the mainline device-tree file.

2 Likes

@jnettlet ,
If you are okay with it I would like to try my hand at the PR for adding the CFGT8K to openwrt, unless you are already in-process then I can wait to try out images. I would try for the PR via github as it seems impossible these days to send a just plain text email through gmail.

One thing I noticed was there are a couple of marvell packages that could be added to cortexa72.mk. I am assuming you are more familiar with that hardware than I am, so does adding these files to the DEVICE_PACKAGES make sense, kmod-i2c-mux-pca954x kmod-ata-marvell-sata kmod-crypto-hw-safexcel? I found them with a grep through the openwrt opkg repo.

Another thing I noticed was according to ip addr ,eth0 was the device that is managing the switch, based on the device tree file on kernel.org I think it should be eth2

I saw the fan on my dev board spin up, but I didn’t try for any temperature readings, is that a concern?

feel free to send anything you like upstream. If there are any questions on the patches, or they want something signed off feel free to loop me into the email thread.

The PR has been submitted

1 Like

Hello,

I’ve applied these patches to change the SATA port to PCIE

After having 2 of these cards connected, the device often becomes inaccessible over the network and the only way to reset is to remove power.

Sometimes it happens with a single card too, but not as often as with 2 cards. There is no log over UART.
Those cards can draw up to 9W each (and require 3.3V 3A), is the board able to provide that much power to both of them? Or is there another issue here.

Only one one time there was something shown in UART when the device became inaccessible:

[ 9833.800507] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
[ 9833.806474] rcu:     1-...0: (3 ticks this GP) idle=1fb/1/0x4000000000000000                                                                                                                                                              softirq=20900/20901 fqs=2936
[ 9833.815930] rcu:     3-...0: (2 ticks this GP) idle=8b1/1/0x4000000000000000                                                                                                                                                              softirq=21383/21385 fqs=2936
[ 9833.825384]  (detected by 0, t=6002 jiffies, g=31669, q=121)
[ 9833.831077] Task dump for CPU 1:
[ 9833.834323] task:kworker/1:2     state:R  running task     stack:    0 pid:                                                                                                                                                               225 ppid:     2 flags:0x0000000a
[ 9833.844304] Workqueue: events_freezable_power_ thermal_zone_device_check
[ 9833.851054] Call trace:
[ 9833.853514]  __switch_to+0xd4/0x114
[ 9833.857033]  0xffffff81008df080
[ 9833.860196] Task dump for CPU 3:
[ 9833.863441] task:kworker/3:4     state:R  running task     stack:    0 pid:                                                                                                                                                               418 ppid:     2 flags:0x0000000a
[ 9833.873418] Workqueue: events dbs_work_handler
[ 9833.877897] Call trace:
[ 9833.880356]  __switch_to+0xd4/0x114
[ 9833.883871]  process_one_work+0x200/0x3c0
[ 9833.887907]  worker_thread+0x74/0x4d4
[ 9833.891591]  kthread+0x11c/0x130
[ 9833.894845]  ret_from_fork+0x10/0x20
[10013.839320] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
[10013.845287] rcu:     1-...0: (3 ticks this GP) idle=1fb/1/0x4000000000000000                                                                                                                                                              softirq=20900/20901 fqs=11087
[10013.854831] rcu:     3-...0: (2 ticks this GP) idle=8b1/1/0x4000000000000000                                                                                                                                                              softirq=21383/21385 fqs=11088
[10013.864372]  (detected by 0, t=24007 jiffies, g=31669, q=345)
[10013.870151] Task dump for CPU 1:
[10013.873398] task:kworker/1:2     state:R  running task     stack:    0 pid:                                                                                                                                                               225 ppid:     2 flags:0x0000000a
[10013.883377] Workqueue: events_freezable_power_ thermal_zone_device_check
[10013.890127] Call trace:
[10013.892587]  __switch_to+0xd4/0x114
[10013.896107]  0xffffff81008df080
[10013.899269] Task dump for CPU 3:
[10013.902514] task:kworker/3:4     state:R  running task     stack:    0 pid:                                                                                                                                                               418 ppid:     2 flags:0x0000000a
[10013.912491] Workqueue: events dbs_work_handler
[10013.916970] Call trace:
[10013.919430]  __switch_to+0xd4/0x114
[10013.922945]  process_one_work+0x200/0x3c0
[10013.926980]  worker_thread+0x74/0x4d4
[10013.930664]  kthread+0x11c/0x130
[10013.933919]  ret_from_fork+0x10/0x20
[10193.872473] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
[10193.878440] rcu:     1-...0: (3 ticks this GP) idle=1fb/1/0x4000000000000000                                                                                                                                                              softirq=20900/20901 fqs=19354
[10193.887984] rcu:     3-...0: (2 ticks this GP) idle=8b1/1/0x4000000000000000                                                                                                                                                              softirq=21383/21385 fqs=19354
[10193.897525]  (detected by 0, t=42012 jiffies, g=31669, q=848)
[10193.903304] Task dump for CPU 1:
[10193.906550] task:kworker/1:2     state:R  running task     stack:    0 pid:                                                                                                                                                               225 ppid:     2 flags:0x0000000a
[10193.916529] Workqueue: events_freezable_power_ thermal_zone_device_check
[10193.923280] Call trace:
[10193.925742]  __switch_to+0xd4/0x114
[10193.929261]  0xffffff81008df080
[10193.932424] Task dump for CPU 3:
[10193.935669] task:kworker/3:4     state:R  running task     stack:    0 pid:                                                                                                                                                               418 ppid:     2 flags:0x0000000a
[10193.945645] Workqueue: events dbs_work_handler
[10193.950125] Call trace:
[10193.952584]  __switch_to+0xd4/0x114
[10193.956099]  process_one_work+0x200/0x3c0
[10193.960133]  worker_thread+0x74/0x4d4
[10193.963819]  kthread+0x11c/0x130
[10193.967072]  ret_from_fork+0x10/0x20
[10373.908021] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
[10373.913987] rcu:     1-...0: (3 ticks this GP) idle=1fb/1/0x4000000000000000                                                                                                                                                              softirq=20900/20901 fqs=27580
[10373.923530] rcu:     3-...0: (2 ticks this GP) idle=8b1/1/0x4000000000000000                                                                                                                                                              softirq=21383/21385 fqs=27580
[10373.933071]  (detected by 0, t=60017 jiffies, g=31669, q=1176)
[10373.938938] Task dump for CPU 1:
[10373.942184] task:kworker/1:2     state:R  running task     stack:    0 pid:                                                                                                                                                               225 ppid:     2 flags:0x0000000a
[10373.952163] Workqueue: events_freezable_power_ thermal_zone_device_check
[10373.958914] Call trace:
[10373.961374]  __switch_to+0xd4/0x114
[10373.964894]  0xffffff81008df080
[10373.968057] Task dump for CPU 3:
[10373.971302] task:kworker/3:4     state:R  running task     stack:    0 pid:                                                                                                                                                               418 ppid:     2 flags:0x0000000a
[10373.981278] Workqueue: events dbs_work_handler
[10373.985758] Call trace:
[10373.988218]  __switch_to+0xd4/0x114
[10373.991732]  process_one_work+0x200/0x3c0
[10373.995767]  worker_thread+0x74/0x4d4
[10373.999452]  kthread+0x11c/0x130
[10374.002705]  ret_from_fork+0x10/0x20
[10553.945120] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
[10553.951086] rcu:     1-...0: (3 ticks this GP) idle=1fb/1/0x4000000000000000                                                                                                                                                              softirq=20900/20901 fqs=35610
[10553.960630] rcu:     3-...0: (2 ticks this GP) idle=8b1/1/0x4000000000000000                                                                                                                                                              softirq=21383/21385 fqs=35610
[10553.970171]  (detected by 0, t=78022 jiffies, g=31669, q=1269)
[10553.976039] Task dump for CPU 1:
[10553.979285] task:kworker/1:2     state:R  running task     stack:    0 pid:                                                                                                                                                               225 ppid:     2 flags:0x0000000a
[10553.989265] Workqueue: events_freezable_power_ thermal_zone_device_check
[10553.996016] Call trace:
[10553.998476]  __switch_to+0xd4/0x114
[10554.001996]  0xffffff81008df080
[10554.005158] Task dump for CPU 3:
[10554.008403] task:kworker/3:4     state:R  running task     stack:    0 pid:                                                                                                                                                               418 ppid:     2 flags:0x0000000a
[10554.018380] Workqueue: events dbs_work_handler
[10554.022859] Call trace:
[10554.025319]  __switch_to+0xd4/0x114
[10554.028835]  process_one_work+0x200/0x3c0
[10554.032870]  worker_thread+0x74/0x4d4
[10554.036555]  kthread+0x11c/0x130
[10554.039807]  ret_from_fork+0x10/0x20
[10733.982695] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
[10733.988662] rcu:     1-...0: (3 ticks this GP) idle=1fb/1/0x4000000000000000                                                                                                                                                              softirq=20900/20901 fqs=43432
[10733.998206] rcu:     3-...0: (2 ticks this GP) idle=8b1/1/0x4000000000000000                                                                                                                                                              softirq=21383/21385 fqs=43433
[10734.007745]  (detected by 0, t=96027 jiffies, g=31669, q=1695)
[10734.013612] Task dump for CPU 1:
[10734.016860] task:kworker/1:2     state:R  running task     stack:    0 pid:                                                                                                                                                               225 ppid:     2 flags:0x0000000a
[10734.026839] Workqueue: events_freezable_power_ thermal_zone_device_check
[10734.033590] Call trace:
[10734.036050]  __switch_to+0xd4/0x114
[10734.039569]  0xffffff81008df080
[10734.042732] Task dump for CPU 3:
[10734.045978] task:kworker/3:4     state:R  running task     stack:    0 pid:                                                                                                                                                               418 ppid:     2 flags:0x0000000a
[10734.055955] Workqueue: events dbs_work_handler
[10734.060435] Call trace:
[10734.062894]  __switch_to+0xd4/0x114
[10734.066409]  process_one_work+0x200/0x3c0
[10734.070444]  worker_thread+0x74/0x4d4
[10734.074128]  kthread+0x11c/0x130
[10734.077382]  ret_from_fork+0x10/0x20
[10914.019914] rcu: INFO: rcu_sched detected stalls on CPUs/tasks:
[10914.025879] rcu:     1-...0: (3 ticks this GP) idle=1fb/1/0x4000000000000000 softirq=20900/20901 fqs=51500
[10914.035423] rcu:     3-...0: (2 ticks this GP) idle=8b1/1/0x4000000000000000 softirq=21383/21385 fqs=51500
[10914.044962]  (detected by 0, t=114032 jiffies, g=31669, q=1825)
[10914.050918] Task dump for CPU 1:
[10914.054164] task:kworker/1:2     state:R  running task     stack:    0 pid:  225 ppid:     2 flags:0x0000000a
[10914.064143] Workqueue: events_freezable_power_ thermal_zone_device_check
[10914.070894] Call trace:
[10914.073354]  __switch_to+0xd4/0x114
[10914.076874]  0xffffff81008df080
[10914.080037] Task dump for CPU 3:
[10914.083282] task:kworker/3:4     state:R  running task     stack:    0 pid:  418 ppid:     2 flags:0x0000000a
[10914.093259] Workqueue: events dbs_work_handler
[10914.097740] Call trace:
[10914.100199]  __switch_to+0xd4/0x114
[10914.103715]  process_one_work+0x200/0x3c0
[10914.107750]  worker_thread+0x74/0x4d4
[10914.111435]  kthread+0x11c/0x130
[10914.114688]  ret_from_fork+0x10/0x20

Any idea what the issue might be?

As long as your 12V power supply can supply enough voltage then there are no limitations to the 3.3V rails. As for the kernel hang, that could be anything from a driver bug, or a PCIe hang. I would recommend setting up remote logging from the device to try and capture what is causing the kernel hang.

Thanks for the info,

I’m using the adapter from solid-run which provide 12V 2.5A, I think it should be enough, but I will try to measure peak consumption.

How can I set up remote logging? I’m already monitoring it over UART and usually there’s nothing in the logs when it hangs, I also can’t interact with it over UART when it happens.

You probably need to enable options for the OpenWRT builds to get more debug output. It is quite minimal by default

The patch has been accepted upstream!
https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=36e46c3c131cb187e94df9bb4c1ef56e3376c268

I will be trying out a build from openwrt HEAD in a couple of days. But I sadly noticed that the clearfog gt8k is no longer for sale. I missed my opportunity to get an enclosure as well. I am going to reach out to sales to see if I can purchase any excess inventory.
@jnettlet and @bkeiser thank you for your help in this effort.

Nice one!