Cpu 1 offline - Multi Core Support

is there any extra setup in orders to enable the second cpu core for the Arcadyan VRV9510KWAC23 ?
using smp kernel

root@OpenWrt:~# cat /proc/cpuinfo
system type             : xRX200 rev 1.2
machine                 : Arcadyan VRV9510KWAC23
processor               : 0
cpu model               : MIPS 34Kc V5.6
BogoMIPS                : 331.77
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 16
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 32fpr prefetch mcheck ejtag llsc dc_aliases userlocal vint perf_cntr_intr_bit perf mm_full
shadow register sets    : 1
kscratch registers      : 0
package                 : 0
core                    : 0
VPE                     : 0
VCED exceptions         : not available
VCEI exceptions         : not available

root@OpenWrt:~# grep -c ^processor /proc/cpuinfo
1 

root@OpenWrt:~# cat /proc/cpuinfo | grep processor
processor               : 0

root@OpenWrt:~# uname -a
Linux OpenWrt 6.6.63 #0 SMP Fri Nov 29 17:25:36 2024 mips GNU/Linux

Please use the "Preformatted text </>" button for logs, scripts, configs and general console output.
grafik
Please edit your post accordingly. Thank you! :slight_smile:

Thanks,
if you have ttl connection to recover you can try recompiling with changed boot params
here https://github.com/openwrt/openwrt/blob/130306fab93656865178c5a9d40a08885f9d70d6/target/linux/lantiq/files/arch/mips/boot/dts/lantiq/vr9_arcadyan_vrv9510kwac23.dts#L13

vpe is another way of saying hyperthread...

those are not real cores as in irqbalance, at best you get no effect blancing packets between them.

1 Like

so the image im using now is forced to use only 1 core ??

and yes i do have tl connection

Try setting up build system (in a debian or ubuntu VM, keep current, working image file in hand and see you in couple hours when compiler finishes comoiling itself :wink:

Even commit message says it is SMP machine while containing nosmp
https://github.com/openwrt/openwrt/commit/9c24a14ffa779d9e69cbeef45c42403b781d94ca

edit if you are in github ask directly on that PR why so, maybe some test code landed in commit.

is this the only line i need to change while compiling ?

	bootargs = "console=ttyLTQ0,115200 mem=254M vpe1_load_addr=0x8fe00000 vpe1_mem=2M maxvpes=1 maxtcs=1 nosmp";

+is there any guide to follow i’ve never done this before :melting_face: :melting_face:

find a similar contemporary device with same soc like fritzbox-es and their DTS....

what about this https://pastebin.com/hw2AKpWr

Roughly that , check boot messages, maybe it is already smp kernel (says something like max cpus 64) and you only need to change boot line.

:anxious_face_with_sweat: what’s that

Check if nosmp parameter was passed to multi-processor kernel

logread | grep -i smp
root@OpenWrt:~# logread | grep -i smp
Thu Oct 30 11:42:13 2025 kern.notice kernel: [    0.000000] Linux version 6.6.63 (builder@buildhost) (mips-openwrt-linux-musl-gcc (OpenWrt GCC 13.3.0 r28158-d276b4c91a) 13.3.0, GNU ld (GNU Binutils) 2.42) #0 SMP Fri Nov 29 17:25:36 2024
Thu Oct 30 11:42:13 2025 kern.notice kernel: [    0.000000] Kernel command line: console=ttyLTQ0,115200 mem=254M vpe1_load_addr=0x8fe00000 vpe1_mem=2M maxvpes=1 maxtcs=1 nosmp
Thu Oct 30 11:42:13 2025 kern.info kernel: [    0.146765] smp: Bringing up secondary CPUs ...
Thu Oct 30 11:42:13 2025 kern.info kernel: [    0.151146] smp: Brought up 1 node, 1 CPU

do u think this will do it ?? https://pastebin.com/fETcJYdd

@brada4 i found this

AI-generated

The "second core" on this CPU is not what you think it is.

* The Lantiq VR9 is not a true dual-core CPU where both cores are equal.

* VPE0 (Core 0): This is the main MIPS core. It runs the Linux kernel and all of OpenWrt.

* VPE1 (Core 1): This is a dedicated co-processor. Its only job is to run the proprietary firmware for the xDSL modem (the part that connects to your phone line for ADSL/VDSL).

Think of it this way: VPE0 is your computer's main CPU, and VPE1 is the specialized processor on your graphics card (GPU). You can't ask Linux to run your web browser on the GPU.

In your router, Linux (OpenWrt) runs on VPE0. The boot arguments you found (vpe1_mem=2M) are specifically reserving 2MB of RAM for the DSL modem firmware to load onto VPE1.

The nosmp and maxvpes=1 commands are intentionally there to prevent Linux from trying to use the modem's processor. If Linux tried to run tasks on VPE1, it would collide with the DSL firmware, and the entire router would crash (and your internet connection would never come up).

VPE is hyperthread.... Your AI explainer is far from reality.

The wiki says this:

AR9/VR9: Their cores have multithreading support, but it does not work properly with these SoCs without some hacks seen in the source dumps of some boards. For now multithreading is not supported without specific patches for the AR9 and VR9.

Looking at a random device page which has this CPU, the boot log includes this line:

smp: Brought up 1 node, 2 CPUs

Which seems to conflict with the wiki statement. Perhaps the wiki is not up to date?

P.s. it is incredibly annoying when people post AI-generated pseudo-info without mentioning the fact that this is AI-generated. Please edit your post above and mention this fact in order to avoid misleading future readers.

1 Like

The voice core on lantiq vr9 is a proprietary firmware, which runs exclusively on the second core (and reserves 2 MB RAM for its operation), it's necessary if you want to use the FXS/ phone features of your device (but doesn't need to be loaded, if you don't).

1 Like

so it’s a 1 core device

How did you arrive at this conclusion when everything is saying that it has 2 cores, including a boot log?

Maybe this:

Perhaps a better question is:

So only 1 core is usable under OpenWrt due to the proprietary nature of the second core?