HiLink HLK-7621A evaluation board only 2 vcpus und stack trace in bootlog

I have a HiLink HLK-7621A evaluation board with OpenWRT 22.03.2.
It works nicely but I think I should have 2core / 4 threads but it only shows 2 threads.

I get this kernel message:

[    0.725384] printk: bootconsole [early0] disabled
[    0.749194] spi-mt7621 1e000b00.spi: sys_freq: 250000000
[    0.761534] ------------[ cut here ]------------
[    0.770812] WARNING: CPU: 0 PID: 1 at drivers/mtd/spi-nor/core.c:2997 0x8045dd34
[    0.785586] enabling reset hack; may not recover from unexpected reboots
[    0.798936] Modules linked in:
[    0.805015] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.10.146 #0
[    0.817127] Stack : 00000000 8072637c 809b0000 81408e00 00000000 00000000 00000000 00000000
[    0.833764]         00000000 00000000 00000000 00000000 00000000 00000001 81425960 76a850dc
[    0.850396]         814259f8 00000000 00000000 81425808 00000038 80399bc4 ffffffea 00000000
[    0.867028]         81425814 0000005c 807ca868 ffffffff 81425940 806f5114 00000000 806f0000
[    0.883660]         00000009 809c0000 80c13538 81408e00 00000018 80403500 00000000 80990000
[    0.900293]         ...
[    0.905147] Call Trace:
[    0.905164] [<80399bc4>] 0x80399bc4
[    0.916933] [<80403500>] 0x80403500
[    0.923857] [<80007b08>] 0x80007b08
[    0.930782] [<80007b10>] 0x80007b10
[    0.937708] [<8037ecd4>] 0x8037ecd4
[    0.944631] [<8008355c>] 0x8008355c
[    0.951557] [<8045dd34>] 0x8045dd34
[    0.958482] [<8003007c>] 0x8003007c
[    0.965406] [<8045dd34>] 0x8045dd34
[    0.972331] [<80030174>] 0x80030174
[    0.979259] [<8045dd34>] 0x8045dd34
[    0.986183] [<8045e460>] 0x8045e460
[    0.993110] [<8045e92c>] 0x8045e92c
[    1.000037] [<8041b438>] 0x8041b438
[    1.006962] [<8024c200>] 0x8024c200
[    1.013887] [<8047de30>] 0x8047de30
[    1.020811] [<80478b70>] 0x80478b70
[    1.027737] [<8041648c>] 0x8041648c
[    1.034661] [<80415c1c>] 0x80415c1c
[    1.041586] [<8041650c>] 0x8041650c
[    1.048512] [<8041648c>] 0x8041648c
[    1.055436] [<804136bc>] 0x804136bc
[    1.062362] [<80416220>] 0x80416220
[    1.069288] [<803840b8>] 0x803840b8
[    1.076212] [<80414b50>] 0x80414b50
[    1.083138] [<804105c0>] 0x804105c0
[    1.090065] [<80477954>] 0x80477954
[    1.096993] [<8047be78>] 0x8047be78
[    1.103915] [<804c9ba8>] 0x804c9ba8
[    1.110842] [<8047c8f8>] 0x8047c8f8
[    1.117767] [<8040f680>] 0x8040f680
[    1.124693] [<8084d094>] 0x8084d094
[    1.131618] [<8047ef24>] 0x8047ef24
[    1.138543] [<8024c200>] 0x8024c200
[    1.145468] [<80418008>] 0x80418008
[    1.152393] [<80415c1c>] 0x80415c1c
[    1.159319] [<804c4268>] 0x804c4268
[    1.166243] [<8084d094>] 0x8084d094
[    1.173167] [<80416754>] 0x80416754
[    1.180093] [<80418248>] 0x80418248
[    1.187019] [<803835d4>] 0x803835d4
[    1.193942] [<80416764>] 0x80416764
[    1.200867] [<804167dc>] 0x804167dc
[    1.207792] [<80416764>] 0x80416764
[    1.214716] [<80413610>] 0x80413610
[    1.221643] [<80414e24>] 0x80414e24
[    1.228571] [<80416fe4>] 0x80416fe4
[    1.235494] [<80867154>] 0x80867154
[    1.242418] [<80867134>] 0x80867134
[    1.249343] [<80867b74>] 0x80867b74
[    1.256266] [<8000157c>] 0x8000157c
[    1.263191] [<80050618>] 0x80050618
[    1.270116] [<8084deb8>] 0x8084deb8
[    1.277046] [<8084df70>] 0x8084df70
[    1.283970] [<8084d094>] 0x8084d094
[    1.290894] [<806d6ff0>] 0x806d6ff0
[    1.297821] [<806d7000>] 0x806d7000
[    1.304744] [<806d6ff0>] 0x806d6ff0
[    1.311669] [<806d6ff0>] 0x806d6ff0
[    1.318594] [<80002f38>] 0x80002f38
[    1.325525]
[    1.328767] ---[ end trace b53859a86ac9abc3 ]---
[    1.338063] spi-nor spi0.0: w25q256 (32768 Kbytes)
[    1.347712] 4 fixed-partitions partitions found on MTD device spi0.0

The board contains a MT7621AT which shows up normally as 4 cores, but here I get only 2:

root@OpenWrt:~# cat /proc/cpuinfo
system type             : MediaTek MT7621 ver:1 eco:3
machine                 : HiLink HLK-7621A evaluation board
processor               : 0
cpu model               : MIPS 1004Kc V2.15
BogoMIPS                : 666.41
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : yes
hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa                     : mips1 mips2 mips32r1 mips32r2
ASEs implemented        : mips16 dsp mt
Options implemented     : tlb 4kex 4k_cache prefetch mcheck ejtag llsc pindexed_dcache userlocal vint perf_cntr_intr_bit cdmm perf
shadow register sets    : 1
kscratch registers      : 0
package                 : 0
core                    : 0
VPE                     : 0
VCED exceptions         : not available
VCEI exceptions         : not available

processor               : 1
cpu model               : MIPS 1004Kc V2.15
BogoMIPS                : 666.41
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : yes
hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa                     : mips1 mips2 mips32r1 mips32r2
ASEs implemented        : mips16 dsp mt
Options implemented     : tlb 4kex 4k_cache prefetch mcheck ejtag llsc pindexed_dcache userlocal vint perf_cntr_intr_bit cdmm perf
shadow register sets    : 1
kscratch registers      : 0
package                 : 0
core                    : 0
VPE                     : 1
VCED exceptions         : not available
VCEI exceptions         : not available

Any idea why the stack trace is there?
Could it be that it initializes only half the available CPU cores?

MT7621 is only a dual core chip https://www.mediatek.com/products/home-networking/mt7621

I know, but it has 2 virtual cores per real core.

MT7621AT 2C/4T
Whixh means 2 cores, 4 threads.

Look at an ancient 7621AT devices:

system type             : MediaTek MT7621 ver:1 eco:3
machine                 : ASUS RT-AC57U
processor               : 0
cpu model               : MIPS 1004Kc V2.15
BogoMIPS                : 581.63
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : yes
hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa                     : mips1 mips2 mips32r1 mips32r2
ASEs implemented        : mips16 dsp mt
Options implemented     : tlb 4kex 4k_cache prefetch mcheck ejtag llsc pindexed_dcache userlocal vint perf_cntr_intr_bit cdmm nan_legacy nan_2008 perf
shadow register sets    : 1
kscratch registers      : 0
package                 : 0
core                    : 0
VPE                     : 0
VCED exceptions         : not available
VCEI exceptions         : not available

processor               : 1
cpu model               : MIPS 1004Kc V2.15
BogoMIPS                : 581.63
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : yes
hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa                     : mips1 mips2 mips32r1 mips32r2
ASEs implemented        : mips16 dsp mt
Options implemented     : tlb 4kex 4k_cache prefetch mcheck ejtag llsc pindexed_dcache userlocal vint perf_cntr_intr_bit cdmm nan_legacy nan_2008 perf
shadow register sets    : 1
kscratch registers      : 0
package                 : 0
core                    : 0
VPE                     : 1
VCED exceptions         : not available
VCEI exceptions         : not available

processor               : 2
cpu model               : MIPS 1004Kc V2.15
BogoMIPS                : 581.63
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : yes
hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa                     : mips1 mips2 mips32r1 mips32r2
ASEs implemented        : mips16 dsp mt
Options implemented     : tlb 4kex 4k_cache prefetch mcheck ejtag llsc pindexed_dcache userlocal vint perf_cntr_intr_bit cdmm nan_legacy nan_2008 perf
shadow register sets    : 1
kscratch registers      : 0
package                 : 0
core                    : 1
VPE                     : 0
VCED exceptions         : not available
VCEI exceptions         : not available

processor               : 3
cpu model               : MIPS 1004Kc V2.15
BogoMIPS                : 581.63
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : yes
hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
isa                     : mips1 mips2 mips32r1 mips32r2
ASEs implemented        : mips16 dsp mt
Options implemented     : tlb 4kex 4k_cache prefetch mcheck ejtag llsc pindexed_dcache userlocal vint perf_cntr_intr_bit cdmm nan_legacy nan_2008 perf
shadow register sets    : 1
kscratch registers      : 0
package                 : 0
core                    : 1
VPE                     : 1
VCED exceptions         : not available
VCEI exceptions         : not available

Have you tried this? How to enable hyperthreading on MediaTek MT7621AT? - #4 by user3189469

No. (but that sounds as it could be the issue ...)
But I am not a OpenWRT developer.
I hoped that the maintainer for that device could check it.
I just downloaded the Image and flashed it.

edit: oh ... u-boot issue?
Sadly I have no clue which u-boot is used ... maybe somebody has an idea?

Thanx for the info!

You can get uboot details from a serial bootlog, or ask the Vendor.

The device uboot is not part of openwrt.

It seems to be

U-Boot 1.1.3 (Aug 13 2021 - 17:33:24)

Board: Ralink APSoC DRAM:  256 MB
relocate_code Pointer at: 8ffb0000

Config XHCI 40M PLL
******************************
Software System Reset Occurred
******************************
flash manufacture id: ef, device id 40 19
info id : ef info->jedec_id :40160000 buf[1]:40 buf[2]:19
info id : ef info->jedec_id :40170000 buf[1]:40 buf[2]:19
info id : ef info->jedec_id :40180000 buf[1]:40 buf[2]:19
info id : ef info->jedec_id :40190000 buf[1]:40 buf[2]:19
find flash: W25Q256FV
============================================
Pinney UBoot Version: 1.0
--------------------------------------------
ASIC MT7621A SingleCore (MAC to MT7530 Mode)
DRAM_CONF_FROM: Auto-Detection
DRAM_TYPE: DDR3
DRAM bus: 16 bit
Xtal Mode=3 OCP Ratio=1/4
Flash component: SPI Flash
Date:Aug 13 2021  Time:17:33:24
============================================
icache: sets:256, ways:4, linesz:32 ,total:32768
dcache: sets:256, ways:4, linesz:32 ,total:32768


  _    _   _        _  __  ______     __    ___    __
 | |  | | | |      | |/ / |____  |   / /   |__ \  /_ |
 | |__| | | |      | ' /      / /   / /_      ) |  | |
 |  __  | | |      |  <      / /   | '_ \    / /   | |
 | |  | | | |____  | . \    / /    | (_) |  / /_   | |
 |_|  |_| |______| |_|\_\  /_/      \___/  |____|  |_|

-------------------------------------------------------------------------
             https://github.com/gnubee-git
----------------build:Aug 13 2021 17:33:24

Well positively they give you a GitHub to report the issue to.
Good luck!

Last change 8 years ago ... I do not think there are good chances they adapt it :confused:

I suppose the repo you mentioned has the file you need: