Launched in 2004, dmesgd aims to provide a user-submitted repository of searchable *BSD dmesgs. The dmesg(8) command displays the system message buffer's content, and during boot a copy is saved to /var/run/dmesg.boot. This buffer contains the operating system release, name and version, a list of devices identified, plus a whole host of other useful information. We hope others find this resource useful and further contribute to its growth. Contact us at [ admin at lists dot nycbug dot org ]. Note that this site is not a substitute for sending the dmesg directly to the respective project.


Date: 2026-10-02 04:12:53
From: lwhsu
Description: Andes QiLai SoC/Voyager Development Platform (with NX27V)
Script started on Fri Oct  2 11:45:18 2026
Command: sudo cu -s 38400 -l /dev/cuaU1
Connected
Load DTB

Jump


U-Boot SPL 2022.04-00033-g9217e556f3 (May 08 2024 - 17:06:24 +0800)
Trying to boot from RAM

OpenSBI v1.2-59-g399aadb
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|____/_____|
        | |
        |_|

Andes OpenAMP mp hartid: 1
Andes OpenAMP sp hartid: 4
Andes OpenAMP sp sourceid: 0x4001
Andes OpenAMP andes_swmbox Addr:0x43fffc000 Size:0x4000
Andes OpenAMP Reserved Memory Addr:0x43f000000 Size:0x1000000
Platform Name             : Generic
Platform Features         : medeleg
Platform HART Count       : 4
Platform IPI Device       : andes_plicsw
Platform Timer Device     : andes_plmt @ 62500000Hz
Platform Console Device   : uart8250
Platform HSM Device       : andes_smu
Platform PMU Device       : andes_pmu
Platform Reboot Device    : atcwdt200
Platform Shutdown Device  : ---
Firmware Base             : 0x400000000
Firmware Size             : 228 KB
Runtime SBI Version       : 1.0

Domain0 Name              : root
Domain0 Boot HART         : 1
Domain0 HARTs             : 0*,1*,2*,3*
Domain0 Region00          : 0x0000000400000000-0x000000040003ffff ()
Domain0 Region01          : 0x0000000000100000-0x00000000001fffff (I,R)
Domain0 Region02          : 0x0000000000400000-0x00000000007fffff (I)
Domain0 Region03          : 0x0000000000000000-0xffffffffffffffff (R,W,X)
Domain0 Next Address      : 0x0000000401200000
Domain0 Next Arg1         : 0x0000000401100000
Domain0 Next Mode         : S-mode
Domain0 SysReset          : yes

Boot HART ID              : 1
Boot HART Domain          : root
Boot HART Priv Version    : v1.11
Boot HART Base ISA        : rv64imafdcnx
Boot HART ISA Extensions  : none
Boot HART PMP Count       : 16
Boot HART PMP Granularity : 8
Boot HART PMP Address Bits: 37
Boot HART MHPM Count      : 4
Boot HART MHPM Bits       : 64
Boot HART MIDELEG         : 0x0000000000000222
Boot HART MEDELEG         : 0x000000000000b109


U-Boot 2022.04-00033-g9217e556f3 (May 08 2024 - 17:06:24 +0800)

DRAM:  16 GiB
Core:  13 devices, 10 uclasses, devicetree: board
MMC:   mmc@30c00000: 0
Loading Environment from SPIFlash... SF: Detected mx25u1635e with page size 256 Bytes, erase size 4 KiB, total 2 MiB
OK
In:    serial@30300000
Out:   serial@30300000
Err:   serial@30300000
Net:   No ethernet found.
Hit any key to stop autoboot:  3  2  1  0 
12254384 bytes read in 2456 ms (4.8 MiB/s)
Moving Image from 0x402000000 to 0x400200000, end=400dafcb0
## Flattened Device Tree blob at 7ff3fa130
   Booting using the fdt blob at 0x7ff3fa130
   Loading Device Tree to 0000000403ff7000, end 0000000403fffcd7 ... OK

Starting kernel ...

---<<BOOT>>---
GDB: debug ports: uart
GDB: current port: uart
KDB: debugger backends: ddb gdb
KDB: current backend: ddb
Physical memory chunk(s):
  0x400000000 - 0x7ffffffff, 16384 MB (4194304 pages)
Excluded memory regions:
  0x400000000 - 0x4001fffff,     2 MB (    512 pages) NoAlloc NoDump
  0x400400000 - 0x40101afff,    12 MB (   3099 pages) NoAlloc 
  0x43f000000 - 0x43fffffff,    16 MB (   4096 pages) NoAlloc NoDump
Found 4 CPUs in the device tree
Copyright (c) 1992-2026 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 16.0-CURRENT n289408-12e9e8307f0e VOYAGER riscv
FreeBSD clang version 21.1.8 (https://github.com/llvm/llvm-project.git llvmorg-21.1.8-0-g2078da43e25a)
WARNING: WITNESS option enabled, expect reduced performance.
WITNESS configuration requests 2856 KiB of startup allocations with witness_count=1536, lock_order_data_count=2048, lock_order_hash_size=1021
VT: init without driver.
Preloaded elf kernel "kernel" at 0xffffffc000be3968.
SBI: OpenSBI v1.2
SBI Specification Version: 1.0
CPU 0  : Vendor=Andes Core=AX45MP Processor (Hart 1)
  marchid=0x8000000000008a45, mimpid=0xc43
  MMU: 0x1<Sv39>
  ISA: 0x112d<Atomic,Compressed,Double,Float,Mult/Div>
  S-mode Extensions: 0
real memory  = 17179869184 (16384 MB)
Physical memory chunk(s):
0x0000000400200000 - 0x00000004003fffff, 2097152 bytes (512 pages)
0x000000040101b000 - 0x000000043effffff, 1040076800 bytes (253925 pages)
0x0000000440000000 - 0x00000007ea390fff, 15740768256 bytes (3842961 pages)
avail memory = 16697339904 (15923 MB)
Starting CPU 3 (hart 0)
Starting CPU 1 (hart 2)
Starting CPU 2 (hart 3)
hart 2 isa extensions: i m a f d c zicntr zicsr zifencei zihpm xandespmu
hart 3 isa extensions: i m a f d c zicntr zicsr zifencei zihpm xandespmu
hart 0 isa extensions: i m a f d c zicntr zicsr zifencei zihpm xandespmu
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
CPU 1  : Vendor=Andes Core=AX45MP Processor (Hart 2)
CPU 2  : Vendor=Andes Core=AX45MP Processor (Hart 3)
CPU 3  : Vendor=Andes Core=AX45MP Processor (Hart 0)
random: no preloaded entropy cache
random: no platform bootloader entropy
arc4random: WARNING: initial seeding bypassed the cryptographic random device because it was not yet seeded and the knob 'bypass_before_seeding' was enabled.
VIMAGE (virtualized network stack) enabled
hostuuid: using 00000000-0000-0000-0000-000000000000
ULE: setup cpu 0
ULE: setup cpu 1
ULE: setup cpu 2
ULE: setup cpu 3
random: entropy device external interface
kbd0 at kbdmux0
mem: <memory>
null: <full device, null device, zero device>
openfirm: <Open Firmware control device>
tcp_log: tcp_log device
crypto: <crypto core>
ram0: reserving memory region:   400200000-400400000
ram0: reserving memory region:   40101b000-43f000000
ram0: reserving memory region:   440000000-800000000
ofwbus0: <Open Firmware Device Tree>
simplebus0: <Flattened device tree simple bus> on ofwbus0
clk_fixed0: <Fixed clock> on simplebus0
Clock: i2c_clk, parent: none, freq: 100000000
simplebus1: <Flattened device tree simple bus> on simplebus0
simplebus1: DMA window: memory at 0x400000000-0x7ffffffff is seen at 0x4400000000 by devices
simplebus2: <Flattened device tree simple bus> on simplebus0
simplebus2: DMA window: memory at 0x400000000-0x7ffffffff is seen at 0x4400000000 by devices
simplebus3: <Flattened device tree simple bus> on simplebus0
simplebus3: DMA window: memory at 0x400000000-0x7ffffffff is seen at 0x4400000000 by devices
sbi0: <RISC-V Supervisor Binary Interface>
cpulist0: <Open Firmware CPU Group> on ofwbus0
cpu0: <Open Firmware CPU> on cpulist0
cpu0: Nominal frequency 100Mhz
cpu1: <Open Firmware CPU> on cpulist0
cpu1: Nominal frequency 100Mhz
cpu2: <Open Firmware CPU> on cpulist0
cpu2: Nominal frequency 100Mhz
cpu3: <Open Firmware CPU> on cpulist0
cpu3: Nominal frequency 100Mhz
intc0: <RISC-V Local Interrupt Controller> on ofwbus0
sbi_ipi0: <RISC-V SBI Inter-Processor Interrupts> on sbi0
plic0: <RISC-V PLIC> mem 0x2000000-0x3ffffff irq 12,13,14,15,16,17,18,19 on simplebus0
gpio0: <Andes ATCGPIO100 GPIO controller> mem 0x30700000-0x307fffff irq 2 on simplebus0
gpio0: revision 0x2, 16 pins
gpiobus0: <OFW GPIO bus> on gpio0
timer0: <RISC-V Timer>
Timecounter "RISC-V Timecounter" frequency 62500000 Hz quality 1000
Event timer "RISC-V Eventtimer" frequency 62500000 Hz quality 1000
rcons0: <RISC-V console>
nx27v0: <Andes NX27V Vector Processor> on ofwbus0
nx27v0: hart ids: NX27V 4, host 1
nx27v0: reserved memory 0x43f000000-0x43fffffff
nx27v0: SMU at 0x30100000: reset vector 0x400800000, reset control 0x603f838, NMI 0x0, boot control 0x0
nx27v0: Andes SBI extension: answers (sbi_probe_extension says no)
nx27v0: PPMA: yes
nx27v0: PMA set up once all CPUs run
simplebus0: <smu@30100000> mem 0x30100000-0x301fffff compat andestech,atcsmu (no driver attached)
ftsdc0100: <Faraday FTSDC010 SD/MMC controller> mem 0x30c00000-0x30c00fff irq 0 on simplebus0
ftsdc0100: revision 0x30107, 16 byte FIFO, 4-bit bus, clock 100000000 Hz/(2*(n+1))
atciic0: <Andes ATCIIC100 I2C controller> mem 0x30800000-0x308fffff irq 1 on simplebus0
atciic0: revision 0x12, 4 byte FIFO, clock 100000000 Hz, setup 0x5252100 -> 0x10b51cd5
iicbus0: <OFW I2C bus> on atciic0
iic0: <I2C generic I/O> on iicbus0
ds13rtc0: <Dallas/Maxim DS1374 RTC> at addr 0xd0 on iicbus0
gpioc0: <GPIO controller> at pins 0-15 on gpiobus0
atcwdt0: <Andes ATCWDT200 Watchdog Timer> mem 0x30500000-0x305fffff on simplebus0
atcwdt0: 15000000 Hz external clock, timeouts up to 143 s
pcib0: <Andes QiLai PCIe Controller> mem 0xc0000000-0xdfffffff,0x4002000-0x4002fff,0-0xffff irq 21 on simplebus1
pcib0: DBI vendor/device 0xabcd16c3, class/rev 0x1
pcib0: Config space at 0x1800000000 is 0 on the parent bus
pcib0: Bus is cache-coherent
pcib0: ATU MEM window size is too large. Up to 4GB windows are supported, trimming window size to 4GB
pcib0: Using iATU unroll mode
pcib0: Detected outbound iATU regions: 4
pcib0: 32 MSI vectors, doorbell at 0x4401910000
pcib0: COHERENCY_CONTROL3: 0x78787878
pcib0: link is down on entry, LTSSM disabled
pcib0: link down (SII_PM_STATE 0)
pci0: <OFW PCI bus> on pcib0
pci0: domain=0, physical bus=0
found->	vendor=0x16c3, dev=0xabcd, revid=0x01
	domain=0, bus=0, slot=0, func=0
	class=06-04-00, hdrtype=0x01, mfdev=0
	cmdreg=0x0107, statreg=0x0010, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=255
	powerspec 3  supports D0 D1 D3  current D0
	MSI supports 32 messages, 64 bit, vector masks
	map[10]: type Memory, range 64, base 0, size 33, enabled
	secbus=1, subbus=255
pcib1: <PCI-PCI bridge> at device 0.0 on pci0
pcib1:   domain            0
pcib1:   secondary bus     1
pcib1:   subordinate bus   255
pci1: <PCI bus> on pcib1
pcib1: allocated bus range (1-1) for rid 0 of pci1
pci1: domain=0, physical bus=1
pcib2: <Andes QiLai PCIe Controller> mem 0xa0000000-0xbfffffff,0x4001000-0x4001fff,0-0xffff irq 22 on simplebus2
pcib2: DBI vendor/device 0xabcd16c3, class/rev 0x1
pcib2: Config space at 0x1000000000 is 0 on the parent bus
pcib2: Bus is cache-coherent
pcib2: ATU MEM window size is too large. Up to 4GB windows are supported, trimming window size to 4GB
pcib2: Using iATU unroll mode
pcib2: Detected outbound iATU regions: 4
pcib2: 32 MSI vectors, doorbell at 0x4401b87000
pcib2: COHERENCY_CONTROL3: 0x78787878
pcib2: link is down on entry, LTSSM disabled
pcib2: link down (SII_PM_STATE 0)
pci2: <OFW PCI bus> on pcib2
pci2: domain=2, physical bus=0
found->	vendor=0x16c3, dev=0xabcd, revid=0x01
	domain=2, bus=0, slot=0, func=0
	class=06-04-00, hdrtype=0x01, mfdev=0
	cmdreg=0x0107, statreg=0x0010, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=255
	powerspec 3  supports D0 D1 D3  current D0
	MSI supports 32 messages, 64 bit, vector masks
	map[10]: type Memory, range 64, base 0, size 33, enabled
	secbus=1, subbus=255
pcib3: <PCI-PCI bridge> at device 0.0 on pci2
pcib3:   domain            2
pcib3:   secondary bus     1
pcib3:   subordinate bus   255
pci3: <PCI bus> on pcib3
pcib3: allocated bus range (1-1) for rid 0 of pci3
pci3: domain=2, physical bus=1
pcib4: <Andes QiLai PCIe Controller> mem 0x80000000-0x9fffffff,0x4000000-0x4000fff,0-0xffff irq 23 on simplebus3
pcib4: DBI vendor/device 0xabcd16c3, class/rev 0x1
pcib4: Config space at 0x2000000000 is 0 on the parent bus
pcib4: Bus is cache-coherent
pcib4: ATU MEM window size is too large. Up to 4GB windows are supported, trimming window size to 4GB
pcib4: Using iATU unroll mode
pcib4: Detected outbound iATU regions: 4
pcib4: 32 MSI vectors, doorbell at 0x4401b78000
pcib4: COHERENCY_CONTROL3: 0x78787878
pcib4: link is down on entry, LTSSM disabled
pcib4: link down (SII_PM_STATE 0)
pci4: <OFW PCI bus> on pcib4
pci4: domain=4, physical bus=0
found->	vendor=0x16c3, dev=0xabcd, revid=0x01
	domain=4, bus=0, slot=0, func=0
	class=06-04-00, hdrtype=0x01, mfdev=0
	cmdreg=0x0107, statreg=0x0010, cachelnsz=0 (dwords)
	lattimer=0x00 (0 ns), mingnt=0x00 (0 ns), maxlat=0x00 (0 ns)
	intpin=a, irq=255
	powerspec 3  supports D0 D1 D3  current D0
	MSI supports 32 messages, 64 bit, vector masks
	map[10]: type Memory, range 64, base 0, size 33, enabled
	secbus=1, subbus=255
pcib5: <PCI-PCI bridge> at device 0.0 on pci4
pcib5:   domain            4
pcib5:   secondary bus     1
pcib5:   subordinate bus   255
pci5: <PCI bus> on pcib5
pcib5: allocated bus range (1-1) for rid 0 of pci5
pci5: domain=4, physical bus=1
simplebus0: <timer@100000> mem 0x100000-0x1fffff irq 3,4,5,6 compat andestech,qilai-plmt (no driver attached)
simplebus0: <cache-controller@200000> mem 0x200000-0x2fffff irq 7 compat andestech,qilai-ax45mp-cache (no driver attached)
simplebus0: <interrupt-controller@400000> mem 0x400000-0x7fffff irq 8,9,10,11 compat andestech,qilai-plicsw (no driver attached)
simplebus0: no default resources for rid = 0, type = 4
uart0: <Non-standard ns8250 class UART with FIFOs> mem 0x30300000-0x303fffff irq 20 on simplebus0
uart0: console (38580,n,8,1)
uart0: fast interrupt
uart0: PPS capture mode: DCD
crypto: assign cryptosoft0 driver id 0, flags 0x6000000
Device configuration finished.
procfs registered
Timecounters tick every 1.000 msec
vlan: initialized, using hash tables with chaining
lo0: bpf attached
IPsec: Initialized Security Association Processing.
tcp_init: net.inet.tcp.tcbhashsize auto tuned to 131072
usb_needs_explore_all: no devclass
ds13rtc0: WARNING: oscillator stop flag is set; the time may be invalid (ignored as configured, the time is unverified)
ds13rtc0: registered as a time-of-day clock, resolution 1.000000s
sbi_ipi0: using for IPIs
Release APs
Secondary CPU 1 fully online
Trying to mount root from ufs:/dev/gpt/voyagerroot []...
Secondary CPU 2 fully online
Secondary CPU 3 fully online
nx27v0: PMA set on 4/4 CPUs
nx27v0: mailbox: sp_mbox 0xc31dccd8, opensbi_mbox 0xb13a1e6a, mp_status 0x3ce23327, sp_status 0x4ec5e195
WARNING: WITNESS option enabled, expect reduced performance.
regulator: shutting down unused regulators
ftsdc0100: card inserted
mmc0: <MMC/SD bus> on ftsdc0100
mmc0: Probing bus
mmc0: SD 2.0 interface conditions: OK
mmc0: SD probe: OK (OCR: 0x00ff8000)
mmc0: Current OCR: 0x00ff8000
mmc0: Probing cards
mmc0: New card detected (CID 275048534431364730da9c796b00fcaf)
mmc0: New card detected (CSD 400e00325b59000073a77f800a4000eb)
mmc0: Card at relative address 0x0007 added:
mmc0:  card: SDHC SD16G 3.0 SN DA9C796B MFG 12/2015 by 39 PH
mmc0:  quirks: 0
mmc0:  bus: 4bit, 50MHz (high speed timing)
mmc0:  memory: 30318592 blocks, erase sector 8192 blocks
mmc0: setting transfer rate to 25.000MHz (normal speed timing)
mmcsd0: 16GB <SDHC SD16G 3.0 SN DA9C796B MFG 12/2015 by 39 PH> at mmc0 25.0MHz/4bit/128-block
GEOM: new disk mmcsd0
mmc0: setting bus width to 4 bits normal speed timing
GEOM: mmcsd0: the secondary GPT header is not in the last LBA.
GEOM_PART: partition 1 on (mmcsd0, GPT) is not aligned on 4194304 bytes
GEOM_PART: partition 2 on (mmcsd0, GPT) is not aligned on 4194304 bytes
GEOM_PART: partition 3 on (mmcsd0, GPT) is not aligned on 4194304 bytes
GEOM_PART: partition 4 on (mmcsd0, GPT) is not aligned on 4194304 bytes
GEOM: diskid/DISK-DA9C796B: the secondary GPT header is not in the last LBA.
GEOM_PART: partition 1 on (diskid/DISK-DA9C796B, GPT) is not aligned on 4194304 bytes
GEOM_PART: partition 2 on (diskid/DISK-DA9C796B, GPT) is not aligned on 4194304 bytes
GEOM_PART: partition 3 on (diskid/DISK-DA9C796B, GPT) is not aligned on 4194304 bytes
GEOM_PART: partition 4 on (diskid/DISK-DA9C796B, GPT) is not aligned on 4194304 bytes
ds13rtc0: providing initial system time
failed to load CTF for kernel: 2
start_init: trying /sbin/init
random: randomdev_wait_until_seeded unblock wait
random: randomdev_wait_until_seeded unblock wait
random: unblocking device.
Setting hostuuid: b95d7cb1-4069-4795-8597-54993175d388.
Setting hostid: 0x47697cf4.
Starting file system checks:
GEOM: diskid/DISK-DA9C796B: the secondary GPT header is not in the last LBA.
GEOM_PART: partition 1 on (diskid/DISK-DA9C796B, GPT) is not aligned on 4194304 bytes
GEOM_PART: partition 2 on (diskid/DISK-DA9C796B, GPT) is not aligned on 4194304 bytes
GEOM_PART: partition 3 on (diskid/DISK-DA9C796B, GPT) is not aligned on 4194304 bytes
GEOM_PART: partition 4 on (diskid/DISK-DA9C796B, GPT) is not aligned on 4194304 bytes
/dev/gpt/voyagerroot: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/gpt/voyagerroot: clean, 432751 free (7 frags, 54093 blocks, 0.0% fragmentation)
GEOM: diskid/DISK-DA9C796B: the secondary GPT header is not in the last LBA.
GEOM_PART: partition 1 on (diskid/DISK-DA9C796B, GPT) is not aligned on 4194304 bytes
GEOM_PART: partition 2 on (diskid/DISK-DA9C796B, GPT) is not aligned on 4194304 bytes
GEOM_PART: partition 3 on (diskid/DISK-DA9C796B, GPT) is not aligned on 4194304 bytes
GEOM_PART: partition 4 on (diskid/DISK-DA9C796B, GPT) is not aligned on 4194304 bytes
Mounting local filesystems:.
Linux riscv64 ELF exec handler installed
linprocfs registered
pfs_add_node: homonymous siblings: 'pci0000:00/0000:00:00.0' type 2
linsysfs_run_bus: pcib3 omitted from sysfs tree, error 17
pfs_add_node: homonymous siblings: 'pci0000:00/0000:00:00.0' type 2
linsysfs_run_bus: pcib5 omitted from sysfs tree, error 17
linsysfs registered
[: -eq: unexpected operator
ELF ldconfig path: /lib /usr/lib /usr/lib/compat
Setting hostname: voyager.
Setting up harvesting: RANDOMDEV,[CALLOUT],[UMA],[FS_ATIME],SWI,INTERRUPT,NET_NG,[NET_ETHER],NET_TUN,MOUSE,KEYBOARD,ATTACH,CACHED
Feeding entropy: .
lo0: link state changed to UP
Starting Network: lo0.
lo0: flags=1008049<UP,LOOPBACK,RUNNING,MULTICAST,LOWER_UP> metric 0 mtu 16384
	options=680003<RXCSUM,TXCSUM,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
	inet[_IP_XXXX] netmask 0xff000000
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
	groups: lo
	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
Starting devd.
add net fe80::: gateway ::1
add net ff02::: gateway ::1
add net ::ffff:0.0.0.0: gateway ::1
add net ::0.0.0.0: gateway ::1
Updating motd:.
Clearing /tmp (X related).
Updating /var/run/os-release done.
Creating and/or trimming log files.
Starting syslogd.
Mounting late filesystems:.
Starting cron.
Starting background file system checks in 60 seconds.

Fri Oct  2 03:44

FreeBSD/riscv (voyager) (ttyu0)



login: root
Oct  2 03:45:39 voyager login[1498]: ROOT LOGIN (root) ON ttyu0

FreeBSD 16.0-CURRENT (VOYAGER) n289408-12e9e8307f0e
FreeBSD on the Andes QiLai Voyager (4 x AX45MP, NX27V, 16 GiB) -- proof of concept.
Console: 38400 8N1.  Root on the SD card.  See /root/demo/README for what to try;
/root/demo/selftest.sh runs everything, /root/demo/nx27v.sh drives the NX27V.
78root@voyager:~ # uname -v
FreeBSD 16.0-CURRENT n289408-12e9e8307f0e VOYAGER
root@voyager:~ # uname -a
FreeBSD voyager 16.0-CURRENT FreeBSD 16.0-CURRENT n289408-12e9e8307f0e VOYAGER riscv
root@voyager:~ # dmesg | grep nx27v
nx27v0: <Andes NX27V Vector Processor> on ofwbus0
nx27v0: hart ids: NX27V 4, host 1
nx27v0: reserved memory 0x43f000000-0x43fffffff
nx27v0: SMU at 0x30100000: reset vector 0x400800000, reset control 0x603f838, NMI 0x0, boot control 0x0
nx27v0: Andes SBI extension: answers (sbi_probe_extension says no)
nx27v0: PPMA: yes
nx27v0: PMA set up once all CPUs run
nx27v0: PMA set on 4/4 CPUs
nx27v0: mailbox: sp_mbox 0xc31dccd8, opensbi_mbox 0xb13a1e6a, mp_status 0x3ce23327, sp_status 0x4ec5e195
root@voyager:~ # ls -l /root /root/demo
/root:
total 3148
-rw-r--r--  1 root wheel   1011 Oct  2 02:47 .cshrc
-rw-r--r--  1 root wheel     66 Oct  2 02:47 .k5login
-rw-r--r--  1 root wheel    316 Oct  2 02:47 .login
-rw-r--r--  1 root wheel    472 Oct  2 02:47 .profile
-rw-r--r--  1 root wheel   1213 Oct  2 02:47 .shrc
drwxr-xr-x  2 root wheel    512 Oct  2 02:47 demo
-rwxr-xr-x  1 root wheel 728336 Oct  2 02:47 fpsig
-rwxr-xr-x  1 root wheel  13768 Oct  2 02:47 linuxtest
-rwxr-xr-x  1 root wheel 732888 Oct  2 02:47 lmprobe
-rw-r--r--  1 root wheel   2624 Oct  2 02:47 nx27v-fw.bin
-rwxr-xr-x  1 root wheel 764360 Oct  2 02:47 nx27vctl
-rwxr-xr-x  1 root wheel 726336 Oct  2 02:47 thrfp

/root/demo:
total 56
-rw-r--r--  1 root wheel 2225 Oct  2 02:47 README
-rwxr-xr-x  1 root wheel  696 Oct  2 02:47 bench.sh
-rwxr-xr-x  1 root wheel  473 Oct  2 02:47 build.sh
-rwxr-xr-x  1 root wheel  558 Oct  2 02:47 debug.sh
-rwxr-xr-x  1 root wheel  336 Oct  2 02:47 dtrace.sh
-rwxr-xr-x  1 root wheel  579 Oct  2 02:47 go.sh
-rwxr-xr-x  1 root wheel  587 Oct  2 02:47 hwinfo.sh
-rwxr-xr-x  1 root wheel  401 Oct  2 02:47 jail.sh
-rwxr-xr-x  1 root wheel  520 Oct  2 02:47 kyua-quick.sh
-rwxr-xr-x  1 root wheel  555 Oct  2 02:47 linux.sh
-rwxr-xr-x  1 root wheel 4332 Oct  2 02:47 nx27v.sh
-rwxr-xr-x  1 root wheel 2097 Oct  2 02:47 selftest.sh
-rwxr-xr-x  1 root wheel  740 Oct  2 02:47 zfs.sh
root@voyager:~ # cat /etc/motd.template
FreeBSD on the Andes QiLai Voyager (4 x AX45MP, NX27V, 16 GiB) -- proof of concept.
Console: 38400 8N1.  Root on the SD card.  See /root/demo/README for what to try;
/root/demo/selftest.sh runs everything, /root/demo/nx27v.sh drives the NX27V.
root@voyager:~ # /root/demo/selftest.sh
== FreeBSD on the Andes QiLai Voyager: self test
FreeBSD voyager 16.0-CURRENT FreeBSD 16.0-CURRENT n289408-12e9e8307f0e VOYAGER riscv
PASS  4 CPUs online
PASS  16 GiB of memory
PASS  Andes AX45MP
PASS  RTC time is sane
PASS  SD card readable
PASS  root file system rw
PASS  FP state across signals (fpsig)
PASS  FP state at thr_create (thrfp)
PASS  no MMU-bypass range (lmprobe)
PASS  linux64.ko loaded
linux: jid 0 pid 1532 (linuxtest): unsupported clock_gettime clockid 12345
PASS  Linuxulator test suite (linuxtest)
PASS  Alpine (musl) chroot
PASS  Debian (glibc) chroot
linux: jid 0 pid 1545 (go): syscall pidfd_open not implemented
PASS  Go program on the Linuxulator
PASS  kyua runs a test (bin/cat)
PASS  NX27V driver up (PMA set on 4 CPUs)
nx27v0: START at 0x43f000000: reset control 0x603f838 -> 0x603f83c
PASS  NX27V firmware boots and answers (nx27v.sh quick)
== ALL PASSED
root@voyager:~ # /root/demo/nx27v.sh
== NX27V: the driver's view (nx27vctl info)
rmem           0x43f000000 + 0x1000000 (16 MiB)
harts          mp 1 (signalled by the NX27V), sp 4 (the NX27V)
sbi_andes      1 (the Andes SBI extension answers)
ppma           1 (present)
uncached       1 (the mapping is uncached)
smu reset_vec  0x43f000000 (hi 0x4, lo 0x3f000000)
smu nx_reset   0x603f838 (SMU + 0x570)
started        1 (START issued since attach)
== a firmware is running (heartbeat 1142471 -> 1nx27v0: START at 0x43f000000: reset control 0x603f838 -> 0x603f83c
407112): parking it first
park: status 0 OK, stage 7 PARKED
== load the firmware and start the core
0x43f000000-0x43f000a40: 2624 bytes, verified
record at 0x43fffc100 zeroed; entry 0x43f000000
started the NX27V at 0x43f000000
    0.007 ms  stage 6 READY (boot_count 1)
stage          6 READY
boot_count     1
mhartid        0x4
misa           0x8000000000b0312d rv64 ACDFIMNUVX
mvendorid      0x31e
marchid        0x8000000000008027
mcache_ctl     0x0
micm_cfg       0x2000719
mdcm_cfg       0x200071d
vlenb          64 (VLEN 512)
trap_count     1
trap_cause     0x2 illegal instruction
cache_enabled  0
== one round trip (ECHO)
echo 0x1234abcd -> 0x1234abcd (status 0 OK, 40 us issue to ack)
== SAXPY on 65536 floats x 10, caches OFF (reset state: every access goes to DRAM)
-- scalar, caches off: nx27vctl saxpy 65536 10 --scalar
saxpy: n 65536, reps 10, scalar (SAXPY_S); x at 0x43f800000, y at 0x43f840000
  status        0 OK
  cycles        412374962 (result[0])
  vl            0 (result[2])
  rdtime delta  0 (result[3]; 0: rdtime traps or does not count)
  y check       65536/65536 bit-identical to the host's
  sum(y)        0x4fefffad = 8.05302118e+09 (result[1]); host's sum of the y read back: 0x4fefffad (same)
  elements/cycle 0.0016 (0.0032 flops/cycle)
  issue to ack  433.302 ms (host clock)
  NX27V clock   1000.0 MHz (cycle_now against the host clock over 0.43 s)
  cycles/wall   951.7 MHz (result[0] over issue to ack; a lower bound)
  NX27V time    412.379 ms for the kernel (cycles / clock)
  AX45MP time   2.878 ms, the same loop in plain C on the host (0.2277 elements/ns)
  ratio         the AX45MP is 143.28x faster
saxpy: PASS
-- vector, caches off: nx27vctl saxpy 65536 10
saxpy: n 65536, reps 10, vector (SAXPY_V); x at 0x43f800000, y at 0x43f840000
  status        0 OK
  cycles        14186888 (result[0])
  vl            128 (result[2])
  rdtime delta  0 (result[3]; 0: rdtime traps or does not count)
  y check       65536/65536 within 10 ulp of the host's (max 0 ulp)
  sum(y)        0x4fefffad = 8.05302118e+09 (result[1]); host's sum of the y read back: 0x4fefffad (same)
  elements/cycle 0.0462 (0.0924 flops/cycle)
  issue to ack  35.064 ms (host clock)
  NX27V clock   1000.0 MHz (cycle_now against the host clock over 0.20 s)
  cycles/wall   404.6 MHz (result[0] over issue to ack; a lower bound)
  NX27V time    14.187 ms for the kernel (cycles / clock)
  AX45MP time   2.879 ms, the same loop in plain C on the host (0.2276 elements/ns)
  ratio         the AX45MP is 4.93x faster
saxpy: PASS
== turn the NX27V's caches on (CACHE_ON: mcache_ctl IC_EN|DC_EN, record kept coherent by CCTL)
  status        0 OK
  mcache_ctl    0x0 before, 0x3 after (IC_EN 1, DC_EN 1)
  cache_enabled 1
echo 0xcafe -> 0xcafe (status 0 OK, 38 us issue to ack)
== SAXPY on 65536 floats x 10, caches ON
-- scalar, caches on: nx27vctl saxpy 65536 10 --scalar
saxpy: n 65536, reps 10, scalar (SAXPY_S); x at 0x43f800000, y at 0x43f840000
  status        0 OK
  cycles        7217515 (result[0])
  vl            0 (result[2])
  rdtime delta  0 (result[3]; 0: rdtime traps or does not count)
  y check       65536/65536 bit-identical to the host's
  sum(y)        0x4fefffad = 8.05302118e+09 (result[1]); host's sum of the y read back: 0x4fefffad (same)
  elements/cycle 0.0908 (0.1816 flops/cycle)
  issue to ack  7.629 ms (host clock)
  NX27V clock   1000.0 MHz (cycle_now against the host clock over 0.20 s)
  cycles/wall   946.1 MHz (result[0] over issue to ack; a lower bound)
  NX27V time    7.218 ms for the kernel (cycles / clock)
  AX45MP time   2.864 ms, the same loop in plain C on the host (0.2288 elements/ns)
  ratio         the AX45MP is 2.52x faster
saxpy: PASS
-- vector, caches on: nx27vctl saxpy 65536 10
saxpy: n 65536, reps 10, vector (SAXPY_V); x at 0x43f800000, y at 0x43f840000
  status        0 OK
  cycles        1497124 (result[0])
  vl            128 (result[2])
  rdtime delta  0 (result[3]; 0: rdtime traps or does not count)
  y check       65536/65536 within 10 ulp of the host's (max 0 ulp)
  sum(y)        0x4fefffad = 8.05302118e+09 (result[1]); host's sum of the y read back: 0x4fefffad (same)
  elements/cycle 0.4377 (0.8755 flops/cycle)
  issue to ack  1.916 ms (host clock)
  NX27V clock   1000.0 MHz (cycle_now against the host clock over 0.20 s)
  cycles/wall   781.4 MHz (result[0] over issue to ack; a lower bound)
  NX27V time    1.497 ms for the kernel (cycles / clock)
  AX45MP time   2.869 ms, the same loop in plain C on the host (0.2285 elements/ns)
  ratio         the NX27V is 1.92x faster
saxpy: PASS
== summary (y = 1.5*x + y, 65536 floats x 10; the AX45MP column is this core's cached scalar C loop)
                         NX27V cycles   NX27V ms  AX45MP ms   ratio
scalar, caches off          412374962    412.379      2.878   the AX45MP is 143.28x faster   PASS
vector, caches off           14186888     14.187      2.879   the AX45MP is 4.93x faster   PASS
scalar, caches on             7217515      7.218      2.864   the AX45MP is 2.52x faster   PASS
vector, caches on             1497124      1.497      2.869   the NX27V is 1.92x faster   PASS
== the firmware keeps running (nx27vctl watch 5 shows its heartbeat); ./nx27v.sh again parks and restarts it
== NX27V OK
root@voyager:~ # /root/demo/nx27v.sh big
== NX27V: the driver's view (nx27vctl info)
rmem           0x43f000000 + 0x1000000 (16 MiB)
harts          mp 1 (signalled by the NX27V), sp 4 (the NX27V)
sbi_andes      1 (the Andes SBI extension answers)
ppma           1 (present)
uncached       1 (the mapping is uncached)
smu reset_vec  0x43f000000 (hi 0x4, lo 0x3f000000)
smu nx_reset   0x603f838 (SMU + 0x570)
started        1 (START issued since attach)
== a firmware is running (heartbeat 29172736 -> nx27v0: START at 0x43f000000: reset control 0x603f838 -> 0x603f83c
32744448): parking it first
park: status 0 OK, stage 7 PARKED
== load the firmware and start the core
0x43f000000-0x43f000a40: 2624 bytes, verified
record at 0x43fffc100 zeroed; entry 0x43f000000
started the NX27V at 0x43f000000
    0.007 ms  stage 6 READY (boot_count 1)
stage          6 READY
boot_count     1
mhartid        0x4
misa           0x8000000000b0312d rv64 ACDFIMNUVX
mvendorid      0x31e
marchid        0x8000000000008027
mcache_ctl     0x0
micm_cfg       0x2000719
mdcm_cfg       0x200071d
vlenb          64 (VLEN 512)
trap_count     1
trap_cause     0x2 illegal instruction
cache_enabled  0
== one round trip (ECHO)
echo 0x1234abcd -> 0x1234abcd (status 0 OK, 38 us issue to ack)
== SAXPY on 65536 floats x 10, caches OFF (reset state: every access goes to DRAM)
-- scalar, caches off: nx27vctl saxpy 65536 10 --scalar
saxpy: n 65536, reps 10, scalar (SAXPY_S); x at 0x43f800000, y at 0x43f840000
  status        0 OK
  cycles        412768954 (result[0])
  vl            0 (result[2])
  rdtime delta  0 (result[3]; 0: rdtime traps or does not count)
  y check       65536/65536 bit-identical to the host's
  sum(y)        0x4fefffad = 8.05302118e+09 (result[1]); host's sum of the y read back: 0x4fefffad (same)
  elements/cycle 0.0016 (0.0032 flops/cycle)
  issue to ack  433.699 ms (host clock)
  NX27V clock   1000.0 MHz (cycle_now against the host clock over 0.43 s)
  cycles/wall   951.7 MHz (result[0] over issue to ack; a lower bound)
  NX27V time    412.770 ms for the kernel (cycles / clock)
  AX45MP time   2.861 ms, the same loop in plain C on the host (0.2291 elements/ns)
  ratio         the AX45MP is 144.30x faster
saxpy: PASS
-- vector, caches off: nx27vctl saxpy 65536 10
saxpy: n 65536, reps 10, vector (SAXPY_V); x at 0x43f800000, y at 0x43f840000
  status        0 OK
  cycles        14186904 (result[0])
  vl            128 (result[2])
  rdtime delta  0 (result[3]; 0: rdtime traps or does not count)
  y check       65536/65536 within 10 ulp of the host's (max 0 ulp)
  sum(y)        0x4fefffad = 8.05302118e+09 (result[1]); host's sum of the y read back: 0x4fefffad (same)
  elements/cycle 0.0462 (0.0924 flops/cycle)
  issue to ack  35.244 ms (host clock)
  NX27V clock   1000.0 MHz (cycle_now against the host clock over 0.20 s)
  cycles/wall   402.5 MHz (result[0] over issue to ack; a lower bound)
  NX27V time    14.187 ms for the kernel (cycles / clock)
  AX45MP time   2.866 ms, the same loop in plain C on the host (0.2287 elements/ns)
  ratio         the AX45MP is 4.95x faster
saxpy: PASS
== turn the NX27V's caches on (CACHE_ON: mcache_ctl IC_EN|DC_EN, record kept coherent by CCTL)
  status        0 OK
  mcache_ctl    0x0 before, 0x3 after (IC_EN 1, DC_EN 1)
  cache_enabled 1
echo 0xcafe -> 0xcafe (status 0 OK, 38 us issue to ack)
== SAXPY on 65536 floats x 10, caches ON
-- scalar, caches on: nx27vctl saxpy 65536 10 --scalar
saxpy: n 65536, reps 10, scalar (SAXPY_S); x at 0x43f800000, y at 0x43f840000
  status        0 OK
  cycles        7222007 (result[0])
  vl            0 (result[2])
  rdtime delta  0 (result[3]; 0: rdtime traps or does not count)
  y check       65536/65536 bit-identical to the host's
  sum(y)        0x4fefffad = 8.05302118e+09 (result[1]); host's sum of the y read back: 0x4fefffad (same)
  elements/cycle 0.0907 (0.1815 flops/cycle)
  issue to ack  7.636 ms (host clock)
  NX27V clock   1000.0 MHz (cycle_now against the host clock over 0.20 s)
  cycles/wall   945.8 MHz (result[0] over issue to ack; a lower bound)
  NX27V time    7.222 ms for the kernel (cycles / clock)
  AX45MP time   2.884 ms, the same loop in plain C on the host (0.2272 elements/ns)
  ratio         the AX45MP is 2.50x faster
saxpy: PASS
-- vector, caches on: nx27vctl saxpy 65536 10
saxpy: n 65536, reps 10, vector (SAXPY_V); x at 0x43f800000, y at 0x43f840000
  status        0 OK
  cycles        1495960 (result[0])
  vl            128 (result[2])
  rdtime delta  0 (result[3]; 0: rdtime traps or does not count)
  y check       65536/65536 within 10 ulp of the host's (max 0 ulp)
  sum(y)        0x4fefffad = 8.05302118e+09 (result[1]); host's sum of the y read back: 0x4fefffad (same)
  elements/cycle 0.4381 (0.8762 flops/cycle)
  issue to ack  1.911 ms (host clock)
  NX27V clock   1000.1 MHz (cycle_now against the host clock over 0.20 s)
  cycles/wall   782.8 MHz (result[0] over issue to ack; a lower bound)
  NX27V time    1.496 ms for the kernel (cycles / clock)
  AX45MP time   2.873 ms, the same loop in plain C on the host (0.2281 elements/ns)
  ratio         the NX27V is 1.92x faster
saxpy: PASS
== SAXPY on 524288 floats x 4, caches on: 2 MiB per array, beyond the 512 KiB D-cache
-- vector, caches on, 2 MiB: nx27vctl saxpy 524288 4
saxpy: n 524288, reps 4, vector (SAXPY_V); x at 0x43f800000, y at 0x43fa00000
  status        0 OK
  cycles        42116998 (result[0])
  vl            128 (result[2])
  rdtime delta  0 (result[3]; 0: rdtime traps or does not count)
  y check       524288/524288 within 4 ulp of the host's (max 0 ulp)
  sum(y)        0x5240012e = 2.06163378e+11 (result[1]); host's sum of the y read back: 0x5240012e (same)
  elements/cycle 0.0498 (0.0996 flops/cycle)
  issue to ack  50.331 ms (host clock)
  NX27V clock   1000.0 MHz (cycle_now against the host clock over 0.20 s)
  cycles/wall   836.8 MHz (result[0] over issue to ack; a lower bound)
  NX27V time    42.116 ms for the kernel (cycles / clock)
  AX45MP time   10.990 ms, the same loop in plain C on the host (0.1908 elements/ns)
  ratio         the AX45MP is 3.83x faster
saxpy: PASS
== summary (y = 1.5*x + y, 65536 floats x 10; the AX45MP column is this core's cached scalar C loop)
                         NX27V cycles   NX27V ms  AX45MP ms   ratio
scalar, caches off          412768954    412.770      2.861   the AX45MP is 144.30x faster   PASS
vector, caches off           14186904     14.187      2.866   the AX45MP is 4.95x faster   PASS
scalar, caches on             7222007      7.222      2.884   the AX45MP is 2.50x faster   PASS
vector, caches on             1495960      1.496      2.873   the NX27V is 1.92x faster   PASS
vector, caches on, 2 MiB       42116998     42.116     10.990   the AX45MP is 3.83x faster   PASS
== the firmware keeps running (nx27vctl watch 5 shows its heartbeat); ./nx27v.sh again parks and restarts it
== NX27V OK
root@voyager:~ # /root/nx27vctl watch 5
   s  stage      heartbeat    passes/s           cycle_now         MHz          time_now
   0  READY        35311616           -         11133214498           -                 0
   1  READY        38781952     3470241         12133204648      1000.0                 0
   2  READY        42252288     3470349         13133194062      1000.0                 0
   3  READY        45722624     3470315         14133181490      1000.0                 0
   4  READY        49192960     3470311         15133164098      1000.0                 0
   5  READY        52663296     3470372         16133152024      1000.0                 0
root@voyager:~ # /root/nx27vctl info
rmem           0x43f000000 + 0x1000000 (16 MiB)
harts          mp 1 (signalled by the NX27V), sp 4 (the NX27V)
sbi_andes      1 (the Andes SBI extension answers)
ppma           1 (present)
pma_rc         cpu0 0, cpu1 0, cpu2 0, cpu3 0 (SET_PMA per CPU)
ncpus          4
uncached       1 (the mapping is uncached)
smu reset_vec  0x43f000000 (hi 0x4, lo 0x3f000000)
smu nx_reset   0x603f838 (SMU + 0x570)
smu nmi        0x0 (SMU + 0x578)
smu boot_ctrl  0x0 (SMU + 0x44c)
mbox           sp_mbox 0xc31dccd8, opensbi_mbox 0xb13a1e6a, mp_status 0x3ce23327, sp_status 0x4ec5e195
started        1 (START issued since attach)
stopped        0 (STOP issued since attach)
stop nx_reset  0x0 before, 0x0 after (SMU + 0x570 around the last STOP)
root@voyager:~ # shutdown -p now
Shutdown NOW!
shutdown: [pid 1850]
root@voyager:~ #                 Oct  2 03:49:23 voyager shutdown[1850]: power-down by root: 

Stopping cron.
Waiting for PIDS: 1472.
Stopping devd.
Waiting for PIDS: 989.
Writing entropy file: .
Writing early boot entropy file: .
.
Terminated
Oct  2 03:49:32 voyager syslogd: exiting on signal 15

Waiting (max 60 seconds) for system process `vnlru' to stop... done
Waiting (max 60 seconds) for system process `syncer' to stop... 
Syncing disks, vnodes remaining... 1 0 0 done
All buffers synced.
	Unmounting 1/10 /compat/debian/proc
	Unmounting 2/10 /compat/debian/dev
	Unmounting 3/10 /compat/linux/dev/shm
	Unmounting 4/10 /compat/linux/dev/fd
	Unmounting 5/10 /compat/linux/dev
	Unmounting 6/10 /compat/linux/sys
	Unmounting 7/10 /compat/linux/proc
	Unmounting 8/10 /tmp
	Unmounting 9/10 /
	Unmounting 10/10 /dev
Uptime: 5m40s

Command exit status: 0
Script done on Fri Oct  2 11:51:16 2026