* [PATCH 4/4] doc: spacemit: k3: Add Pico-ITX board
2026-09-23 12:46 [PATCH 0/4] riscv: spacemit: Add support for K3 Pico-ITX board Yixun Lan
` (2 preceding siblings ...)
2026-09-23 12:46 ` [PATCH 3/4] configs: spacemit: Add K3 default configuration Yixun Lan
@ 2026-09-23 12:46 ` Yixun Lan
2026-09-25 5:26 ` [PATCH 0/4] riscv: spacemit: Add support for K3 " E Shattow
4 siblings, 0 replies; 9+ messages in thread
From: Yixun Lan @ 2026-09-23 12:46 UTC (permalink / raw)
To: u-boot
Cc: Yao Zi, Tim Ouyang, Leo Liang, Tom Rini, Michal Simek,
Raymond Mao, Hiago De Franco, Junhui Liu, Yixun Lan
Add documentation for how to test the mainline U-Boot on SpacemiT
K3 Pico-ITX board, currently it still rely on using vendor FSBL.bin
file to initialize DDR and boot U-Boot proper, and the opensbi
firmware is built from an on-going mainline branch.
Signed-off-by: Yixun Lan <dlan@kernel.org>
---
doc/board/spacemit/index.rst | 1 +
doc/board/spacemit/spacemit-pico-itx.rst | 204 +++++++++++++++++++++++++++++++
2 files changed, 205 insertions(+)
diff --git a/doc/board/spacemit/index.rst b/doc/board/spacemit/index.rst
index a5e35ee12ab..735ccdcc7b9 100644
--- a/doc/board/spacemit/index.rst
+++ b/doc/board/spacemit/index.rst
@@ -7,4 +7,5 @@ SpacemiT
bananapi-f3
k1-spl
+ spacemit-pico-itx
diff --git a/doc/board/spacemit/spacemit-pico-itx.rst b/doc/board/spacemit/spacemit-pico-itx.rst
new file mode 100644
index 00000000000..dd29e3c31c8
--- /dev/null
+++ b/doc/board/spacemit/spacemit-pico-itx.rst
@@ -0,0 +1,204 @@
+.. SPDX-License-Identifier: GPL-2.0-or-later
+
+SpacemiT K3 Pico-ITX
+====================
+
+Building
+~~~~~~~~
+1. Install the SpacemiT riscv cross compile toolchain_, or skip it if riscv toolchain is installed.
+
+.. _toolchain: https://archive.spacemit.com/toolchain/
+
+2. Setup cross compilation environment variable:
+
+.. code-block:: console
+
+ export CROSS_COMPILE=<riscv64 toolchain prefix, e.g /opt/spacemit/bin/riscv64-unknown-linux-gnu->
+
+3. Before building U-Boot, OpenSBI should be built first. OpenSBI can be
+built for SpacemiT K1 SoC as below:
+
+.. code-block:: console
+
+ git clone https://github.com/spacemit-com/opensbi-upstream opensbi
+ cd opensbi
+ make PLATFORM=generic
+
+4. Then build U-Boot as following:
+
+.. code-block:: console
+
+ cd <U-Boot-dir>
+ make spacemit_k3_defconfig
+ make OPENSBI=<OpenSBI-dir>/build/platform/generic/firmware/fw_dynamic.bin
+
+This will generate u-boot.itb
+
+Testing
+~~~~~~~
+Currently, in this stage, the U-Boot SPL isn't ready, and has no ddr initialization code
+Thus please test with fasboot command via USB download.
+
+First, retrieve Bianbu Linux image from archive_ and extract the FSBL.bin firmware.
+
+Second, hold the FEL button of Pico-ITX board, then press reset button and release it .
+The board will enter into firmware download mode.
+
+.. code-block:: none
+
+ sys: 0x10001200
+ bm:2
+ usb_init : enter 3296,3072
+ usb_core_init : enter
+ DWC3_GRXTHRCFG:0x4400000
+ ROM: usb download handler
+ rst
+ done H
+ setup= 0x1000680 0x400000,
+ rst
+ done H
+ setup= 0x290500 0x0,
+ setup= 0x1000680 0x120000,
+ setup= 0x2000680 0x90000,
+ setup= 0x2000680 0x200000,
+ setup= 0x3000680 0xff0000,
+ setup= 0x3020680 0xff0409,
+ setup= 0x3010680 0xff0409,
+ setup= 0x10900 0x0,
+ usb_rx_bytes : start len[4096]
+ setup= 0x3020680 0xff0409,
+ setup= 0x3040680 0xff0409,
+
+Run following command to test:
+
+.. code-block:: console
+
+ fastboot stage FSBL.bin
+ fastboot continue
+ sleep 10
+ fastboot stage u-boot.itb
+ fastboot continue
+
+.. _archive: https://archive.spacemit.com/image/k3/version/bianbu/v4.0.7/
+.. _uboot: https://bianbu-linux.spacemit.com/en/device/boot#21-firmware-layout
+
+Booting
+~~~~~~~
+Sample boot log
+~~~~~~~~~~~~~~~
+.. code-block:: none
+
+ sys: 0x10001200
+ bm:2
+ usb_init : enter 3296,3072
+ usb_core_init : enter
+ DWC3_GRXTHRCFG:0x4400000
+ ROM: usb download handler
+ rst
+ done H
+ setup= 0x1000680 0x400000,
+ rst
+ done H
+ setup= 0x2f0500 0x0,
+ setup= 0x1000680 0x120000,
+ setup= 0x2000680 0x90000,
+ setup= 0x2000680 0x200000,
+ setup= 0x3000680 0xff0000,
+ setup= 0x3020680 0xff0409,
+ setup= 0x3010680 0xff0409,
+ setup= 0x10900 0x0,
+ usb_rx_bytes : start len[4096]
+ setup= 0x3020680 0xff0409,
+ setup= 0x3040680 0xff0409,
+ fastboot_handle_command: max-download-size
+ usb_tx_bytes : start len[14]
+ usb_rx_bytes : start len[4096]
+ fastboot_handle_command: 00072b20
+ Starting download of 469792 bytes
+ usb_tx_bytes : start len[12]
+ usb_rx_bytes : start len[469792]
+ usb_tx_bytes : start len[4]
+ usb_rx_bytes : start len[4096]
+ fastboot_handle_command: continue
+ usb_tx_bytes : start len[4]
+ j...
+
+ U-Boot SPL 2022.10 (Sep 07 2026 - 11:31:13 +0000)
+ LPDDR5 total size: 16 GB, data rate: 6400 MT/s
+ DDR training consume 5625ms
+ ..
+ OpenSBI v1.9-72-g13a401f8
+ ____ _____ ____ _____
+ / __ \ / ____| _ \_ _|
+ | | | |_ __ ___ _ __ | (___ | |_) || |
+ | | | | '_ \ / _ \ '_ \ \___ \| _ < | |
+ | |__| | |_) | __/ | | |____) | |_) || |_
+ \____/| .__/ \___|_| |_|_____/|____/_____|
+ | |
+ |_|
+
+ Platform Name : SpacemiT K3 Pico-ITX
+ Platform Features : medeleg
+ Platform HART Count : 8
+ Platform HART Protection : pmp
+ Platform IPI Device : aclint-mswi
+ Platform Timer Device : aclint-mtimer @ 24000000Hz
+ Platform Console Device : uart8250
+ Platform HSM Device : spacemit-k3-hsm
+ Platform PMU Device : ---
+ Platform Reboot Device : spacemit-p1-reset
+ Platform Shutdown Device : spacemit-p1-reset
+ Platform Suspend Device : ---
+ Platform CPPC Device : ---
+ Firmware Base : 0x100000000
+ Firmware Size : 416 KB
+ Firmware RW Offset : 0x40000
+ Firmware RW Size : 160 KB
+ Firmware Heap Offset : 0x57000
+ Firmware Heap Size : 68 KB (total), 1 KB (reserved), 14 KB (used), 52 KB (free)
+ Firmware Scratch Size : 4096 B (total), 1472 B (used), 2624 B (free)
+ Runtime SBI Version : 3.0
+ Standard SBI Extensions : time,rfnc,ipi,base,hsm,srst,pmu,dbcn,fwft,legacy,dbtr,sse
+ Experimental SBI Extensions : none
+
+ Domain0 Name : root
+ Domain0 Init Order : 0xffffffff
+ Domain0 Boot HART : 0
+ Domain0 HARTs : 0x0*,0x1*,0x2*,0x3*,0x4*,0x5*,0x6*,0x7*
+ Domain0 Region00 : 0x0000000100000000-0x000000010003ffff M: (F,R,X) S/U: ()
+ Domain0 Region01 : 0x0000000100040000-0x000000010007ffff M: (F,R,W) S/U: ()
+ Domain0 Region02 : 0x00000000d4017000-0x00000000d4017fff M: (I,R,W) S/U: (R,W)
+ Domain0 Region03 : 0x00000000e081c000-0x00000000e081ffff M: (I,R,W) S/U: ()
+ Domain0 Region04 : 0x0000000000000000-0xffffffffffffffff M: () S/U: (R,W,X)
+ Domain0 Next Address : 0x0000000102000000
+ Domain0 Next Arg1 : 0x0000000102091398
+ Domain0 Next Mode : S-mode
+ Domain0 SysReset : yes
+ Domain0 SysSuspend : yes
+
+ Boot HART ID : 0
+ Boot HART Domain : root
+ Boot HART Priv Version : v1.12
+ Boot HART Base ISA : rv64imafdcbvhx
+ Boot HART ISA Extensions : smaia,smstateen,sscofpmf,sstc,zicntr,zihpm,smcntrpmf,zicboz,zicbom,svpbmt,sdtrig,svade,ssstateen,v,f,d
+ Boot HART PMP Count : 16
+ Boot HART PMP Granularity : 12 bits
+ Boot HART PMP Address Bits : 38
+ Boot HART MHPM Info : 16 (0x0007fff8)
+ Boot HART Debug Triggers : 4 triggers
+ Boot HART MIDELEG : 0x0000000000003666
+ Boot HART MEDELEG : 0x0000000000f0b509
+
+ <debug_uart>
+
+
+ U-Boot 2026.10-rc4-00501-g9fba7b59df42 (Sep 22 2026 - 13:08:33 +0000)
+
+ DRAM: 16 GiB
+ Core: 433 devices, 15 uclasses, devicetree: separate
+ Loading Environment from nowhere...Loading Environment from nowhere... OK
+ In: serial@d4017000
+ Out: serial@d4017000
+ Err: serial@d4017000
+ Net: No ethernet found.
+ =>
--
2.55.0
^ permalink raw reply related [flat|nested] 9+ messages in thread* Re: [PATCH 0/4] riscv: spacemit: Add support for K3 Pico-ITX board
2026-09-23 12:46 [PATCH 0/4] riscv: spacemit: Add support for K3 Pico-ITX board Yixun Lan
` (3 preceding siblings ...)
2026-09-23 12:46 ` [PATCH 4/4] doc: spacemit: k3: Add Pico-ITX board Yixun Lan
@ 2026-09-25 5:26 ` E Shattow
2026-10-01 11:19 ` Yixun Lan
4 siblings, 1 reply; 9+ messages in thread
From: E Shattow @ 2026-09-25 5:26 UTC (permalink / raw)
To: Yixun Lan, u-boot
Cc: Yao Zi, Tim Ouyang, Leo Liang, Tom Rini, Michal Simek,
Raymond Mao, Hiago De Franco, Junhui Liu, Aurelien Jarno
Hi Yixun, Add CC: Aurelien (per our chat about DMI on K3 and Debian d-i
you may find this interesting)
I have included my report of testing this series with step-by-step build
instructions, after the reply-quote. I was not successful to boot Debian
daily netinst debian-installer ramdisk. However, as an aside, I did
produce build instructions that result in the vendor u-boot v2022.10
fork with additional fixes that is successful when flashed to SPI NOR to
run netinst debian-installer and that success is measured as my baseline
for comparison. I omit my T-by tag for this series until it goes through
a few revisions and I understand better what your goals are if it should
be successful to boot and run debian-installer for example. -E
On 9/23/26 05:46, Yixun Lan wrote:
> Add initial support for SpacemiT K3 Pico-ITX board, the config file
> will enable all basic components which make it able to run into U-Boot
> serial console.
>
> The series actually depend on previous sent patches, I'm not adding
> dependency to this series, but list it here for reference.
>
> Pinctrl:
> https://patch.msgid.link/20260906-pinctrl-v2-1-729da680092c@riscstar.com
> https://patch.msgid.link/20260820-01-k3-pinctrl-support-v1-0-b54a2450c895@kernel.org
>
> GPIO:
> https://patch.msgid.link/20260822-01-gpio-pinctrl-support-v1-1-6be2f4c71c5d@kernel.org
>
> clock and reset:
> https://patch.msgid.link/20260923-01-k3-clock-reset-support-v2-0-6ec0abb1c7b5@kernel.org
>
> Signed-off-by: Yixun Lan <dlan@kernel.org>
> ---
> Yixun Lan (4):
> board: spacemit: add SpacemiT K3 Pico-ITX
> riscv: dts: spacemit: k3: add binman node
> configs: spacemit: Add K3 default configuration
> doc: spacemit: k3: Add Pico-ITX board
>
> arch/riscv/Kconfig | 5 +
> arch/riscv/cpu/k3/Kconfig | 18 +++
> arch/riscv/cpu/k3/Makefile | 5 +
> arch/riscv/cpu/k3/dram.c | 29 +++++
> arch/riscv/dts/k3-u-boot.dtsi | 6 +
> board/spacemit/k3/Kconfig | 30 +++++
> board/spacemit/k3/MAINTAINERS | 8 ++
> board/spacemit/k3/Makefile | 5 +
> board/spacemit/k3/board.c | 4 +
> configs/spacemit_k3_defconfig | 50 ++++++++
> doc/board/spacemit/index.rst | 1 +
> doc/board/spacemit/spacemit-pico-itx.rst | 204 +++++++++++++++++++++++++++++++
> include/configs/k3.h | 13 ++
> 13 files changed, 378 insertions(+)
> ---
> base-commit: 9ab84467bbbdf6a9149f6c66664c65b18c7b7f21
> change-id: 20260921-00-basic-spacemit-k3-838119645d39
>
> Best regards,
> --
> Yixun Lan <dlan@kernel.org>
>
Foreword of testing notes: The build environment is a fresh Debian
"forky" (testing package archive) pbuilder chroot. References to
debian-installer files are from the unmodified daily netinst
debian-installer featuring Linux stable kernel 7.2.6 and dated
end-of-day 2022-09-18 retrieved from:
https://d-i.debian.org/daily-images/riscv64/20260918-20:52/
### Start the chroot environment for testing
sudo DIST="forky" pbuilder execute -- /bin/bash -
###
cd
dpkg --add-architecture riscv64
apt install -y bison ca-certificates flex gcc-riscv64-linux-gnu git
libgnutls28-dev libpython3-dev libssl-dev python3-setuptools swig
apt install -y bc curl lzop device-tree-compiler ssh vim less
git clone https://github.com/riscv-software-src/opensbi.git opensbi.git
git -C opensbi.git checkout 5a175017261a # origin/master as of
end-of-day 2026-09-18
# v4 "platform: generic: spacemit: add K3 platform support"
# https://patchwork.ozlabs.org/project/opensbi/list/?series=522817
curl https://patchwork.ozlabs.org/series/522817/mbox/ | git -C
opensbi.git am
make -C opensbi.git O=../opensbi clean
make -C opensbi.git O=../opensbi CROSS_COMPILE=riscv64-linux-gnu-
PLATFORM=generic
make -C opensbi.git O=../opensbi-itb clean
make -C opensbi.git O=../opensbi-itb CROSS_COMPILE=riscv64-linux-gnu-
PLATFORM=generic FW_TEXT_START=0x10000000
git clone https://git.u-boot-project.org/u-boot/u-boot.git u-boot.git
git -C u-boot.git checkout d677d508c9b7 # Merge tag 'v2026.10-rc5' into
next
# pinctrl: fix on Spacemit K1 SoC
# v2 https://patchwork.ozlabs.org/project/uboot/list/?series=522007
curl https://patchwork.ozlabs.org/series/522007/mbox/ | git -C u-boot.git am
# riscv: spacemit: add pinctrl support for K3 SoC
# v2 https://patchwork.ozlabs.org/project/uboot/list/?series=524932
curl https://patchwork.ozlabs.org/series/524932/mbox/ | git -C u-boot.git am
# gpio: spacemit: add support for K3 SoC
# v1 https://patchwork.ozlabs.org/project/uboot/list/?series=519731
curl https://patchwork.ozlabs.org/series/519731/mbox/ | git -C u-boot.git am
# spacemit: k3: add clock and reset support
# v2 https://patchwork.ozlabs.org/project/uboot/list/?series=524896
curl https://patchwork.ozlabs.org/series/524896/mbox/ | git -C u-boot.git am
# riscv: spacemit: Add support for K3 Pico-ITX board
# v1 https://patchwork.ozlabs.org/project/uboot/list/?series=524926
curl https://patchwork.ozlabs.org/series/524926/mbox/ | git -C u-boot.git am
# riscv: spacemit: add ethernet support for K3 SoC
# v1 https://patchwork.ozlabs.org/project/uboot/list/?series=525020
curl https://patchwork.ozlabs.org/series/525020/mbox/ | git -C u-boot.git am
# tools: mkimage: add SpacemiT K3 boot image support
# v3 https://patchwork.ozlabs.org/project/uboot/list/?series=524562
curl https://patchwork.ozlabs.org/series/524562/mbox/ | git -C u-boot.git am
# adjustment due to merge conflict of k3 platform support and mkimage
sed -i -e '/spacemit-pico-itx/i \ \ \ smtimage'
u-boot.git/doc/board/spacemit/index.rst
git -C u-boot.git add doc/board/spacemit/index.rst
git -C u-boot.git am --continue
make -C u-boot.git O=../u-boot CROSS_COMPILE=riscv64-linux-gnu-
spacemit_k3_defconfig
u-boot.git/scripts/config --file u-boot/.config --enable CMD_WGET
--enable DNS --enable NET_LWIP
make -C u-boot.git O=../u-boot CROSS_COMPILE=riscv64-linux-gnu- olddefconfig
make -C u-boot.git O=../u-boot CROSS_COMPILE=riscv64-linux-gnu-
OPENSBI=../opensbi/platform/generic/firmware/fw_dynamic.bin
git -C u-boot.git remote add -f spacemit-com
https://github.com/spacemit-com/uboot-2022.10.git
git -C u-boot.git checkout k3-br-v1.0.9
sed -i 's%compatible = "ns16550";%compatible = "spacemit,k1-uart",
"intel,xscale-uart", "ns16550";%' u-boot.git/arch/riscv/dts/k3.dtsi
git -C u-boot.git add arch/riscv/dts/k3.dtsi
git -C u-boot.git commit --no-edit -m 'dts: riscv: spacemit: k3 uart
compatible with mainline opensbi'
sed -i '/cluster[01]_frequency/{ s/<.*>/<2200000000>/ }'
u-boot.git/arch/riscv/dts/k3_spl.dts
git -C u-boot.git add arch/riscv/dts/k3_spl.dts
git -C u-boot.git commit --no-edit -m 'dts: riscv: spacemit: restore k3
cluster frequency from firmware v1.0.5'
sed -zi 's%\n#ifdef CONFIG_PHYLIB\n\tphy_init();\n#endif\n%%'
u-boot.git/net/eth_common.c
git -C u-boot.git add net/eth_common.c
git -C u-boot.git commit --no-edit -m 'prepare before cherry-pick
7e0370f37d24'
# cherry-pick 7e0370f37d24 'miiphy: define mii_devs with LIST_HEAD()'
git -C u-boot.git cherry-pick 7e0370f37d24
sed -zi
's%\(\tbootstage_mark(BOOTSTAGE_ID_NET_ETH_START);\)\n%\1\n#ifdef
CONFIG_PHYLIB\n\tphy_init();\n#endif\n%' u-boot.git/net/eth_common.c
git -C u-boot.git add net/eth_common.c
git -C u-boot.git commit --no-edit -m 'cleanup after cherry-pick
7e0370f37d24'
git -C u-boot.git rm board/spacemit/k3/k3.env
git -C u-boot.git commit --no-edit -m 'drop the creation of k3_env.txt'
make -C u-boot.git CROSS_COMPILE=riscv64-linux-gnu- k3_defconfig
make -C u-boot.git CROSS_COMPILE=riscv64-linux-gnu-
u-boot/tools/mkimage -T smtimage -n k3 -d u-boot.git/spl/u-boot-spl.bin
u-boot-spl.bin.FSBL.out
curl -LO
https://raw.githubusercontent.com/spacemit-com/opensbi/k3-br-v1.0.y/platform/generic/spacemit/fw_dynamic.its
u-boot/tools/mkimage -D "-I dts -O dtb -i
opensbi-itb/platform/generic/firmware" -f fw_dynamic.its fw_dynamic.itb
curl -LO
https://raw.githubusercontent.com/spacemit-com/buildroot-ext/k3-br-v1.0.y/board/spacemit/k3/partition_4M.json
ln u-boot/u-boot.itb mainline-u-boot.itb
ls u-boot-spl.bin.FSBL.out mainline-u-boot.itb
ls partition_4M.json fw_dynamic.itb
u-boot.git/{FSBL.bin,bootinfo_spinor.bin,u-boot-env-default.bin,u-boot.itb}
### Reset with FEL
$ fastboot stage FSBL.bin ; fastboot continue ; sleep 10
$ fastboot stage u-boot.itb ; fastboot continue ; sleep 1
$ fastboot continue
=> sf probe && sf erase 0 800000
=> fastboot usb 0
$ fastboot flash mtd partition_4M.json
$ fastboot flash bootinfo bootinfo_spinor.bin
$ fastboot flash fsbl FSBL.bin
$ fastboot flash env u-boot-env-default.bin
$ fastboot flash opensbi fw_dynamic.itb
$ fastboot flash uboot u-boot.itb
$ fastboot reboot
=> usb start
=> env set fdt_addr_r 0x138000000
=> env set kernel_addr_r 0x140000000
=> env set kernel_comp_addr_r 0x102000000
=> env set kernel_comp_size 0x20000000
=> env set ramdisk_addr_r 0x130000000
=> load usb 0:1 $fdt_addr_r device-tree/spacemit/k3-pico-itx.dtb
=> load usb 0:1 $kernel_addr_r debian-installer/riscv64/linux
=> env set filesize_kernel '0x'$filesize
=> load usb 0:1 $ramdisk_addr_r debian-installer/riscv64/initrd.gz
=> env set filesize_ramdisk '0x'$filesize
=> env set bootargs 'initrd='$ramdisk_addr_r','$filesize_ramdisk'
console=ttyS0,115200 earlycon=sbi'
=> bootefi $kernel_addr_r:$kernel_comp_size $fdt_addr_r
# specifying the actual kernel filesize doesn't work as expected, use
512MB length kernel_comp_size instead
# Baseline result outcome of above, Linux 7.2.6 boots and
debian-installer runs from initramfs successfully.
### Reset with FEL
$ fastboot stage FSBL.bin ; fastboot continue ; sleep 10
$ fastboot stage u-boot.itb ; fastboot continue ; sleep 1
$ fastboot continue
usb start
=> env set fdt_addr_r 0x138000000
=> env set kernel_addr_r 0x140000000
=> env set kernel_comp_addr_r 0x102000000
=> env set kernel_comp_size 0x20000000
=> env set ramdisk_addr_r 0x130000000
=> load usb 0:1 $fdt_addr_r device-tree/spacemit/k3-pico-itx.dtb
=> load usb 0:1 $kernel_addr_r debian-installer/riscv64/linux
=> env set filesize_kernel '0x'$filesize
=> load usb 0:1 $ramdisk_addr_r debian-installer/riscv64/initrd.gz
=> env set filesize_ramdisk '0x'$filesize
=> env set bootargs 'initrd='$ramdisk_addr_r','$filesize_ramdisk'
console=ttyS0,115200 earlycon=sbi'
=> bootefi $kernel_addr_r:$kernel_comp_size $fdt_addr_r
# specifying the actual kernel filesize doesn't work as expected, use
512MB length kernel_comp_size instead
# Negative result outcome of above:
Booting /MemoryMapped(0x0,0x140000000,0x20000000)
EFI stub: ERROR: Failed to handle fs_proto
[ 96.160] Removing MTD device #0 (nor0) with use count 1
### Reset with FEL
$ fastboot stage u-boot-spl.bin.FSBL.out ; fastboot continue ; sleep 10
$ fastboot stage u-boot.itb ; fastboot continue ; sleep 1
$ fastboot continue
=> sf probe && sf erase 0 800000
=> fastboot usb 0
$ fastboot flash mtd partition_4M.json
$ fastboot flash bootinfo bootinfo_spinor.bin
$ fastboot flash fsbl u-boot-spl.bin.FSBL.out
$ fastboot flash env u-boot-env-default.bin
$ fastboot flash opensbi fw_dynamic.itb
$ fastboot flash uboot u-boot.itb
$ fastboot reboot
=> usb start
=> env set fdt_addr_r 0x138000000
=> env set kernel_addr_r 0x140000000
=> env set kernel_comp_addr_r 0x102000000
=> env set kernel_comp_size 0x20000000
=> env set ramdisk_addr_r 0x130000000
=> load usb 0:1 $fdt_addr_r device-tree/spacemit/k3-pico-itx.dtb
=> load usb 0:1 $kernel_addr_r debian-installer/riscv64/linux
=> env set filesize_kernel '0x'$filesize
=> load usb 0:1 $ramdisk_addr_r debian-installer/riscv64/initrd.gz
=> env set filesize_ramdisk '0x'$filesize
=> env set bootargs 'initrd='$ramdisk_addr_r','$filesize_ramdisk'
console=ttyS0,115200 earlycon=sbi'
=> bootefi $kernel_addr_r:$kernel_comp_size $fdt_addr_r
# specifying the actual kernel filesize doesn't work as expected, use
512MB length kernel_comp_size instead
# Positive result outcome of above, Linux 7.2.6 boots and
debian-installer runs from initramfs successfully.
### Reset with FEL
$ fastboot stage u-boot-spl.bin.FSBL.out ; fastboot continue ; sleep 10
$ fastboot stage u-boot.itb ; fastboot continue ; sleep 1
$ fastboot continue
=> usb start
=> env set fdt_addr_r 0x138000000
=> env set kernel_addr_r 0x140000000
=> env set kernel_comp_addr_r 0x102000000
=> env set kernel_comp_size 0x20000000
=> env set ramdisk_addr_r 0x130000000
=> load usb 0:1 $fdt_addr_r device-tree/spacemit/k3-pico-itx.dtb
=> load usb 0:1 $kernel_addr_r debian-installer/riscv64/linux
=> env set filesize_kernel '0x'$filesize
=> load usb 0:1 $ramdisk_addr_r debian-installer/riscv64/initrd.gz
=> env set filesize_ramdisk '0x'$filesize
=> env set bootargs 'initrd='$ramdisk_addr_r','$filesize_ramdisk'
console=ttyS0,115200 earlycon=sbi'
=> bootefi $kernel_addr_r:$kernel_comp_size $fdt_addr_r
# specifying the actual kernel filesize doesn't work as expected, use
512MB length kernel_comp_size instead
# Negative result outcome of above:
Booting /MemoryMapped(0x0,0x140000000,0x20000000)
EFI stub: ERROR: Failed to handle fs_proto
[ 128.493] Removing MTD device #0 (nor0) with use count 1
### Reset with FEL
$ fastboot stage u-boot-spl.bin.FSBL.out ; fastboot continue ; sleep 10
$ fastboot stage mainline-u-boot.itb ; fastboot continue ; sleep 1
$ python3 -m http.server 8000
=> dhcp
=> env set fdt_addr_r 0x138000000
=> env set kernel_addr_r 0x140000000
=> env set kernel_comp_addr_r 0x102000000
=> env set kernel_comp_size 0x20000000
=> env set ramdisk_addr_r 0x130000000
=> wget $fdt_addr_r http://host:8000/device-tree/spacemit/k3-pico-itx.dtb
=> wget $kernel_addr_r http://host:8000/debian-installer/riscv64/linux
=> env set filesize_kernel '0x'$filesize
=> wget $ramdisk_addr_r http://host:8000/debian-installer/riscv64/initrd.gz
=> env set filesize_ramdisk '0x'$filesize
=> env set bootargs 'initrd='$ramdisk_addr_r','$filesize_ramdisk'
console=ttyS0,115200 earlycon=sbi'
=> bootefi $kernel_addr_r:$kernel_comp_size $fdt_addr_r
# specifying the actual kernel filesize doesn't work as expected, use
512MB length kernel_comp_size instead
# Negative result outcome of above:
Cannot persist EFI variables without system partition
Booting <NULL>
EFI stub: ERROR: Failed to handle fs_proto
[ 0.000000] Booting Linux on hartid 0
[ 0.000000] Linux version 7.2.6+deb14-riscv64
(debian-kernel@lists.debian.org) (riscv64-linux-gnu-gcc-16 (Debian
16.2.0-2) 16.2.0, GNU ld (GNU Binutils for Debian) 2.47) #1 SMP PREEMPT
Debian 7.2.6-1 (2026-09-16)
[ 0.000000] Machine model: SpacemiT K3 Pico-ITX
[ 0.000000] SBI specification v3.0 detected
[ 0.000000] SBI implementation ID=0x1 Version=0x10009
[ 0.000000] SBI TIME extension detected
[ 0.000000] SBI IPI extension detected
[ 0.000000] SBI RFENCE extension detected
[ 0.000000] SBI SRST extension detected
[ 0.000000] SBI DBCN extension detected
[ 0.000000] SBI FWFT extension detected
[ 0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
[ 0.000000] printk: legacy bootconsole [sbi0] enabled
[ 0.000000] efi: EFI v2.11 by Das U-Boot
[ 0.000000] efi: RTPROP=0x8fffd5040 SMBIOS 3.0=0x17ef51000
MEMRESERVE=0x8fffbe040
[ 0.000000] secureboot: Secure boot disabled
[ 0.000000] cma: Failed to reserve 128 MiB
[ 0.000000] OF: reserved mem: 0x0000000100000000..0x000000010003ffff
(256 KiB) nomap non-reusable mmode_resv0@1,0
[ 0.000000] OF: reserved mem: 0x0000000100040000..0x000000010007ffff
(256 KiB) nomap non-reusable mmode_resv1@1,40000
[ 0.000000] NUMA: Faking a node at [mem
0x0000000100000000-0x00000008ffffffff]
[ 0.000000] NODE_DATA(0) allocated [mem 0x8fff86280-0x8fff88c7f]
[ 0.000000] SBI HSM extension detected
[ 0.000000] riscv: base ISA extensions acdfhimv
[ 0.000000] riscv: ELF capabilities acdfimv
[ 0.000000] Queued spinlock using Ziccrse: enabled
[ 0.000000] Zone ranges:
[ 0.000000] DMA32 empty
[ 0.000000] Normal [mem 0x0000000100000000-0x00000008ffffffff]
[ 0.000000] Device empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000100000000-0x000000010007ffff]
[ 0.000000] node 0: [mem 0x0000000100080000-0x000000017ef50fff]
[ 0.000000] node 0: [mem 0x000000017ef51000-0x000000017ef51fff]
[ 0.000000] node 0: [mem 0x000000017ef52000-0x000000017ff56fff]
[ 0.000000] node 0: [mem 0x000000017ff57000-0x000000017ff58fff]
[ 0.000000] node 0: [mem 0x000000017ff59000-0x00000008ffbfffff]
[ 0.000000] node 0: [mem 0x00000008ffc00000-0x00000008ffc00fff]
[ 0.000000] node 0: [mem 0x00000008ffc01000-0x00000008fffd4fff]
[ 0.000000] node 0: [mem 0x00000008fffd5000-0x00000008fffd5fff]
[ 0.000000] node 0: [mem 0x00000008fffd6000-0x00000008fffd6fff]
[ 0.000000] node 0: [mem 0x00000008fffd7000-0x00000008ffff7fff]
[ 0.000000] node 0: [mem 0x00000008ffff8000-0x00000008ffffafff]
[ 0.000000] node 0: [mem 0x00000008ffffb000-0x00000008ffffbfff]
[ 0.000000] node 0: [mem 0x00000008ffffc000-0x00000008ffffffff]
[ 0.000000] Initmem setup node 0 [mem
0x0000000100000000-0x00000008ffffffff]
[ 0.000000] percpu: Embedded 33 pages/cpu s95768 r8192 d31208 u135168
[ 0.000000] Kernel command line: initrd=0x130000000,0x2f7fd9b
console=ttyS0,115200 earlycon=sbi
[ 0.000000] printk: log buffer data + meta data: 131072 + 557056 =
688128 bytes
[ 0.000000] Dentry cache hash table entries: 4194304 (order: 13,
33554432 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 2097152 (order: 12,
16777216 bytes, linear)
[ 0.000000] software IO TLB: SWIOTLB bounce buffer size adjusted to 32MB
[ 0.000000] software IO TLB: area num 8.
[ 0.000000] software IO TLB: mapped [mem
0x00000008d6600000-0x00000008d8600000] (32MB)
[ 0.000000] Fallback order for Node 0: 0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages:
8388608
[ 0.000000] Policy zone: Normal
[ 0.000000] mem auto-init: stack:all(zero), heap alloc:on, heap free:off
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[ 0.000000] ftrace: allocating 43618 entries in 172 pages
[ 0.000000] ftrace: allocated 172 pages with 4 groups
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=256 to
nr_cpu_ids=8.
[ 0.000000] Trampoline variant of Tasks RCU enabled.
[ 0.000000] Rude variant of Tasks RCU enabled.
[ 0.000000] Tracing variant of Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay
is 25 jiffies.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=8
[ 0.000000] RCU Tasks: Setting shift to 3 and lim to 1
rcu_task_cb_adjust=1 rcu_task_cpu_ids=8.
[ 0.000000] RCU Tasks Rude: Setting shift to 3 and lim to 1
rcu_task_cb_adjust=1 rcu_task_cpu_ids=8.
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] riscv-intc: 64 local interrupts mapped using AIA
[ 0.000000] riscv-imsic: interrupt-controller@e0400000: providing
IPIs using interrupt 1
[ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on
contention.
[ 0.000000] clocksource: jiffies: mask: 0xffffffff max_cycles:
0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff
max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[ 0.000000] sched_clock: 64 bits at 24MHz, resolution 41ns, wraps
every 4398046511097ns
[ 0.008111] riscv-timer: Timer interrupt in S-mode is available via
sstc extension
[ 0.016072] Console: colour dummy device 80x25
[ 0.020616] Calibrating delay loop (skipped), value calculated using
timer frequency.. 48.00 BogoMIPS (lpj=96000)
[ 0.030692] pid_max: default: 32768 minimum: 301
[ 0.037341] landlock: Up and running.
[ 0.039054] Yama: disabled by default; enable with sysctl kernel.yama.*
[ 0.045942] AppArmor: AppArmor initialized
[ 0.049946] TOMOYO Linux initialized
[ 0.053934] LSM support for eBPF active
[ 0.058226] Mount-cache hash table entries: 65536 (order: 7, 524288
bytes, linear)
[ 0.065189] Mountpoint-cache hash table entries: 65536 (order: 7,
524288 bytes, linear)
[ 0.073764] VFS: Finished mounting rootfs on nullfs
[ 0.080855] ASID allocator using 16 bits (65536 entries)
[ 0.083577] rcu: Hierarchical SRCU implementation.
[ 0.088348] rcu: Max phase no-delay instances is 1000.
[ 0.093778] Timer migration: 1 hierarchy levels; 8 children per
group; 1 crossnode level
[ 0.102190] Remapping and enabling EFI services.
[ 0.106797] smp: Bringing up secondary CPUs ...
[ 0.114386] smp: Brought up 1 node, 8 CPUs
[ 0.186102] node 0 deferred pages initialised in 68ms
[ 0.188364] Memory: 32817560K/33554432K available (14124K kernel
code, 6338K rwdata, 12288K rodata, 2827K init, 682K bss, 729060K
reserved, 0K cma-reserved)
[ 0.206045] devtmpfs: initialized
[ 0.218929] posixtimers hash table entries: 4096 (order: 4, 65536
bytes, linear)
[ 0.223500] futex hash table entries: 2048 (131072 bytes on 1 NUMA
nodes, total 128 KiB, linear).
[ 0.234235] DMI: SMBIOS 3.7.0 present.
[ 0.236235] DMI: spacemit SpacemiT K3 Pico-ITX/SpacemiT K3 Pico-ITX,
BIOS 2026.10-rc5-00506-g88a94d52fe5a 10/01/2026
[ 0.246912] DMI: Memory slots populated: 0/0
[ 0.251809] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.258379] DMA: preallocated 4096 KiB GFP_KERNEL pool for atomic
allocations
[ 0.264464] audit: initializing netlink subsys (disabled)
[ 0.270026] audit: type=2000 audit(0.188:1): state=initialized
audit_enabled=0 res=1
[ 0.285008] thermal_sys: Registered thermal governor 'fair_share'
[ 0.285018] thermal_sys: Registered thermal governor 'bang_bang'
[ 0.288231] thermal_sys: Registered thermal governor 'step_wise'
[ 0.294297] thermal_sys: Registered thermal governor 'user_space'
[ 0.300379] thermal_sys: Registered thermal governor 'power_allocator'
[ 0.306603] cpuidle: using governor ladder
[ 0.317324] cpuidle: using governor menu
[ 0.329552] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[ 0.333453] HugeTLB: 16380 KiB vmemmap can be freed for a 1.00 GiB page
[ 0.340153] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[ 0.347025] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[ 0.353373] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[ 0.360248] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page
[ 0.372832] ACPI: Interpreter disabled.
[ 0.374099] iommu: Default domain type: Translated
[ 0.378583] iommu: DMA domain TLB invalidation policy: strict mode
[ 0.385586] pps_core: LinuxPPS API ver. 1 registered
[ 0.389872] pps_core: Software ver. 5.3.6 - Copyright 2005-2007
Rodolfo Giometti <giometti@linux.it>
[ 0.399129] PTP clock support registered
[ 0.403272] efivars: Registered efivars operations
[ 0.408614] NetLabel: Initializing
[ 0.411371] NetLabel: domain hash size = 128
[ 0.415788] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO
[ 0.421549] NetLabel: unlabeled traffic allowed by default
[ 0.427390] vgaarb: loaded
[ 0.429994] clocksource: Switched to clocksource riscv_clocksource
[ 0.437549] VFS: Disk quotas dquot_6.6.0
[ 0.440238] VFS: Dquot-cache hash table entries: 512 (4096 bytes)
[ 0.446927] AppArmor: AppArmor Filesystem Enabled
[ 0.451165] pnp: PnP ACPI: disabled
[ 0.460312] NET: Registered PF_INET protocol family
[ 0.462493] IP idents hash table entries: 262144 (order: 9, 2097152
bytes, linear)
[ 0.476469] tcp_listen_portaddr_hash hash table entries: 16384
(order: 6, 262144 bytes, linear)
[ 0.482419] Table-perturb hash table entries: 65536 (order: 6, 262144
bytes, linear)
[ 0.490301] TCP established hash table entries: 262144 (order: 9,
2097152 bytes, linear)
[ 0.498886] TCP bind hash table entries: 65536 (order: 9, 2097152
bytes, linear)
[ 0.506310] TCP: Hash tables configured (established 262144 bind 65536)
[ 0.512999] MPTCP token hash table entries: 32768 (order: 8, 786432
bytes, linear)
[ 0.520522] UDP hash table entries: 16384 (order: 8, 1048576 bytes,
linear)
[ 0.527796] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.533028] NET: Registered PF_XDP protocol family
[ 0.553901] cpu0: scalar unaligned word access speed is 1.71x byte
access speed (fast)
[ 0.553900] cpu5: scalar unaligned word access speed is 1.41x byte
access speed (fast)
[ 0.553900] cpu4: scalar unaligned word access speed is 1.53x byte
access speed (fast)
[ 0.553900] cpu6: scalar unaligned word access speed is 1.50x byte
access speed (fast)
[ 0.553901] cpu7: scalar unaligned word access speed is 2.17x byte
access speed (fast)
[ 0.553900] cpu1: scalar unaligned word access speed is 1.43x byte
access speed (fast)
[ 0.553900] cpu2: scalar unaligned word access speed is 2.17x byte
access speed (fast)
[ 0.553900] cpu3: scalar unaligned word access speed is 1.43x byte
access speed (fast)
[ 0.631499] cpu2: vector unaligned word access speed is 4.15x byte
access speed (fast)
[ 0.631500] cpu0: vector unaligned word access speed is 4.15x byte
access speed (fast)
[ 0.631500] cpu3: vector unaligned word access speed is 4.15x byte
access speed (fast)
[ 0.631500] cpu1: vector unaligned word access speed is 4.15x byte
access speed (fast)
[ 0.631503] cpu5: vector unaligned word access speed is 4.15x byte
access speed (fast)
[ 0.631507] cpu6: vector unaligned word access speed is 4.15x byte
access speed (fast)
[ 0.631509] cpu7: vector unaligned word access speed is 4.14x byte
access speed (fast)
[ 0.631509] cpu4: vector unaligned word access speed is 4.15x byte
access speed (fast)
[ 0.692743] PCI: CLS 0 bytes, default 64
[ 0.696891] Trying to unpack rootfs image as initramfs...
[ 0.698109] Initialise system trusted keyrings
[ 0.706679] Key type blacklist registered
[ 0.710852] workingset: timestamp_bits=44 (anon: 39) max_order=23
bucket_order=0 (anon: 0)
[ 0.721558] fuse: init (API version 7.45)
[ 0.723764] integrity: Platform Keyring initialized
[ 0.728085] integrity: Machine keyring initialized
[ 0.733000] Key type asymmetric registered
[ 0.737060] Asymmetric key parser 'x509' registered
[ 0.743227] Block layer SCSI generic (bsg) driver version 0.4 loaded
(major 246)
[ 0.749644] io scheduler mq-deadline registered
[ 0.754724] riscv-imsic: interrupt-controller@e0400000:
hart-index-bits: 4, guest-index-bits: 6
[ 0.763070] riscv-imsic: interrupt-controller@e0400000:
group-index-bits: 0, group-index-shift: 24
[ 0.772144] riscv-imsic: interrupt-controller@e0400000: per-CPU IDs
511 at base address 0x00000000e0400000
[ 0.781928] riscv-imsic: interrupt-controller@e0400000: total 4080
interrupts available
[ 0.792895] ledtrig-cpu: registered to indicate activity on CPUs
[ 0.803728] Serial: 8250/16550 driver, 6 ports, IRQ sharing disabled
[ 0.811096] mousedev: PS/2 mouse device common for all mice
[ 0.814525] riscv-pmu-sbi: SBI PMU extension is available
[ 0.819275] riscv-pmu-sbi: 16 firmware and 18 hardware counters
[ 0.826856] NET: Registered PF_INET6 protocol family
[ 0.831415] Segment Routing with IPv6
[ 0.833952] RPL Segment Routing with IPv6
[ 0.838044] In-situ OAM (IOAM) with IPv6
[ 0.842015] mip6: Mobile IPv6
[ 0.844979] NET: Registered PF_PACKET protocol family
[ 0.850243] mpls_gso: MPLS GSO support
[ 0.859988] registered taskstats version 1
[ 0.861645] Loading compiled-in X.509 certificates
[ 1.078648] Freeing initrd memory: 48636K
[ 1.144399] Loaded X.509 cert 'Build time autogenerated kernel key:
842aea05c03e7d1a797f7470bddc4da5e2015b8a'
[ 1.158233] Demotion targets for Node 0: null
[ 1.160150] Key type .fscrypt registered
[ 1.163644] Key type fscrypt-provisioning registered
[ 1.181142] Key type encrypted registered
[ 1.182234] AppArmor: AppArmor sha256 policy hashing enabled
[ 1.188002] integrity: secureboot mode disabled
[ 1.192542] ima: No TPM chip found, activating TPM-bypass!
[ 1.198096] ima: Allocated hash algorithm: sha256
[ 1.203365] ima: No architecture policies found
[ 1.207500] evm: Initialising EVM extended attributes:
[ 1.212647] evm: security.selinux
[ 1.216003] evm: security.SMACK64 (disabled)
[ 1.220313] evm: security.SMACK64EXEC (disabled)
[ 1.224980] evm: security.SMACK64TRANSMUTE (disabled)
[ 1.230092] evm: security.SMACK64MMAP (disabled)
[ 1.234763] evm: security.apparmor
[ 1.238204] evm: security.ima
[ 1.241194] evm: security.capability
[ 1.244813] evm: HMAC attrs: 0x1
[ 1.264829] riscv-aplic e0804000.interrupt-controller: 512 interrupts
forwarded to MSI base 0x00000000e0400000
[ 1.274365] printk: legacy console [ttyS0] disabled
[ 1.277165] d4017000.serial: ttyS0 at MMIO 0xd4017000 (irq = 12,
base_baud = 907421) is a XScale
[ 1.285879] printk: legacy console [ttyS0] enabled
[ 1.285879] printk: legacy console [ttyS0] enabled
[ 1.295553] printk: legacy bootconsole [sbi0] disabled
[ 1.295553] printk: legacy bootconsole [sbi0] disabled
[ 1.306783] clk: Disabling unused clocks
[ 1.310494] PM: genpd: Di[ 1.317467] Freeing unused kernel image
(initmem) memory: 2824K
[ 1.320869] Run /init as init process
[ 1.648268] usbcore: registered new interface driver usbfs
[ 1.651222] usbcore: registered new interface driver hub
[ 1.656617] usbcore: registered new device driver usb
[ 1.693421] spacemit-dwmac cac80000.ethernet: IRQ sfty not found
[ 1.697139] spacemit-dwmac cac80000.ethernet: User ID: 0x10, Synopsys
ID: 0x54
[ 1.704186] spacemit-dwmac cac80000.ethernet: DWMAC4/5
[ 1.709468] spacemit-dwmac cac80000.ethernet: DMA HW capability
register supported
[ 1.717142] spacemit-dwmac cac80000.ethernet: Active PHY interface:
RGMII (1)
[ 1.724369] spacemit-dwmac cac80000.ethernet: RX Checksum Offload
Engine supported
[ 1.732038] spacemit-dwmac cac80000.ethernet: TX Checksum insertion
supported
[ 1.734006] random: crng init done
[ 1.739266] spacemit-dwmac cac80000.ethernet: Wake-Up On Lan supported
[ 1.749438] spacemit-dwmac cac80000.ethernet: Enable RX Mitigation
via HW Watchdog Timer
[ 1.757527] spacemit-dwmac cac80000.ethernet: Enabled L3L4 Flow TC
(entries=4)
[ 1.764839] spacemit-dwmac cac80000.ethernet: Enabled RFS Flow TC
(entries=10)
[ 1.772164] spacemit-dwmac cac80000.ethernet: Enabling HW TC
(entries=256, max_off=256)
[ 1.780267] spacemit-dwmac cac80000.ethernet: TSO supported
[ 1.785909] spacemit-dwmac cac80000.ethernet: TSO feature enabled
[ 1.792080] spacemit-dwmac cac80000.ethernet: SPH feature enabled
[ 1.798251] spacemit-dwmac cac80000.ethernet: Using 40/40 bits DMA
host/device width
[ 1.892677] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[ 1.895605] xhci-hcd xhci-hcd.0.auto: new USB bus registered,
assigned bus number 1
[ 1.903512] xhci-hcd xhci-hcd.0.auto: USB0 root hub has no ports
[ 1.909431] xhci-hcd xhci-hcd.0.auto: hcc params 0x0220fe6d hci
version 0x110 quirks 0x0000808000000010
[ 1.919599] xhci-hcd xhci-hcd.0.auto: irq 16, io mem 0xc0a00000
[ 1.925112] usb usb1: New USB device found, idVendor=1d6b,
idProduct=0002, bcdDevice= 7.02
[ 1.933474] usb usb1: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[ 1.933594] spacemit-dwmac cac80000.ethernet end0: renamed from eth0
[ 1.940636] usb usb1: Product: xHCI Host Controller
[ 1.940642] usb usb1: Manufacturer: Linux 7.2.6+deb14-riscv64 xhci-hcd
[ 1.958656] usb usb1: SerialNumber: xhci-hcd.0.auto
[ 1.964262] hub 1-0:1.0: USB hub found
[ 1.967414] hub 1-0:1.0: 1 port detected
[ 1.988689] usbcore: registered new device driver onboard-usb-dev
### Reset with FEL
$ fastboot stage u-boot-spl.bin.FSBL.out ; fastboot continue ; sleep 10
$ fastboot stage u-boot.itb ; fastboot continue ; sleep 1
$ fastboot continue
=> sf probe && sf erase 0 800000
=> fastboot usb 0
$ sleep 10
$ fastboot flash mtd partition_4M.json
$ fastboot flash bootinfo bootinfo_spinor.bin
$ fastboot flash fsbl u-boot-spl.bin.FSBL.out
$ fastboot flash env u-boot-env-default.bin
$ fastboot flash opensbi fw_dynamic.itb
$ fastboot flash uboot mainline-u-boot.itb
$ fastboot reboot
$ python3 -m http.server 8000
=> dhcp
=> env set fdt_addr_r 0x138000000
=> env set kernel_addr_r 0x140000000
=> env set kernel_comp_addr_r 0x102000000
=> env set kernel_comp_size 0x20000000
=> env set ramdisk_addr_r 0x130000000
=> wget $fdt_addr_r http://host:8000/device-tree/spacemit/k3-pico-itx.dtb
=> wget $kernel_addr_r http://host:8000/debian-installer/riscv64/linux
=> env set filesize_kernel '0x'$filesize
=> wget $ramdisk_addr_r http://host:8000/debian-installer/riscv64/initrd.gz
=> env set filesize_ramdisk '0x'$filesize
=> env set bootargs 'initrd='$ramdisk_addr_r','$filesize_ramdisk'
console=ttyS0,115200 earlycon=sbi'
=> bootefi $kernel_addr_r:$kernel_comp_size $fdt_addr_r
# specifying the actual kernel filesize doesn't work as expected, use
512MB length kernel_comp_size instead
# Negative result outcome of above:
Cannot persist EFI variables without system partition
Booting <NULL>
EFI stub: ERROR: Failed to handle fs_proto
[ 0.000000] Booting Linux on hartid 0
[ 0.000000] Linux version 7.2.6+deb14-riscv64
(debian-kernel@lists.debian.org) (riscv64-linux-gnu-gcc-16 (Debian
16.2.0-2) 16.2.0, GNU ld (GNU Binutils for Debian) 2.47) #1 SMP PREEMPT
Debian 7.2.6-1 (2026-09-16)
[ 0.000000] Machine model: SpacemiT K3 Pico-ITX
[ 0.000000] SBI specification v3.0 detected
[ 0.000000] SBI implementation ID=0x1 Version=0x10009
[ 0.000000] SBI TIME extension detected
[ 0.000000] SBI IPI extension detected
[ 0.000000] SBI RFENCE extension detected
[ 0.000000] SBI SRST extension detected
[ 0.000000] SBI DBCN extension detected
[ 0.000000] SBI FWFT extension detected
[ 0.000000] earlycon: sbi0 at I/O port 0x0 (options '')
[ 0.000000] printk: legacy bootconsole [sbi0] enabled
[ 0.000000] efi: EFI v2.11 by Das U-Boot
[ 0.000000] efi: RTPROP=0x8fffd5040 SMBIOS 3.0=0x17ef51000
MEMRESERVE=0x8fffbe040
[ 0.000000] secureboot: Secure boot disabled
[ 0.000000] cma: Failed to reserve 128 MiB
[ 0.000000] OF: reserved mem: 0x0000000100000000..0x000000010003ffff
(256 KiB) nomap non-reusable mmode_resv0@1,0
[ 0.000000] OF: reserved mem: 0x0000000100040000..0x000000010007ffff
(256 KiB) nomap non-reusable mmode_resv1@1,40000
[ 0.000000] NUMA: Faking a node at [mem
0x0000000100000000-0x00000008ffffffff]
[ 0.000000] NODE_DATA(0) allocated [mem 0x8fff86280-0x8fff88c7f]
[ 0.000000] SBI HSM extension detected
[ 0.000000] riscv: base ISA extensions acdfhimv
[ 0.000000] riscv: ELF capabilities acdfimv
[ 0.000000] Queued spinlock using Ziccrse: enabled
[ 0.000000] Zone ranges:
[ 0.000000] DMA32 empty
[ 0.000000] Normal [mem 0x0000000100000000-0x00000008ffffffff]
[ 0.000000] Device empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000100000000-0x000000010007ffff]
[ 0.000000] node 0: [mem 0x0000000100080000-0x000000017ef50fff]
[ 0.000000] node 0: [mem 0x000000017ef51000-0x000000017ef51fff]
[ 0.000000] node 0: [mem 0x000000017ef52000-0x000000017ff56fff]
[ 0.000000] node 0: [mem 0x000000017ff57000-0x000000017ff58fff]
[ 0.000000] node 0: [mem 0x000000017ff59000-0x00000008ffbfffff]
[ 0.000000] node 0: [mem 0x00000008ffc00000-0x00000008ffc00fff]
[ 0.000000] node 0: [mem 0x00000008ffc01000-0x00000008fffd4fff]
[ 0.000000] node 0: [mem 0x00000008fffd5000-0x00000008fffd5fff]
[ 0.000000] node 0: [mem 0x00000008fffd6000-0x00000008fffd6fff]
[ 0.000000] node 0: [mem 0x00000008fffd7000-0x00000008ffff7fff]
[ 0.000000] node 0: [mem 0x00000008ffff8000-0x00000008ffffafff]
[ 0.000000] node 0: [mem 0x00000008ffffb000-0x00000008ffffbfff]
[ 0.000000] node 0: [mem 0x00000008ffffc000-0x00000008ffffffff]
[ 0.000000] Initmem setup node 0 [mem
0x0000000100000000-0x00000008ffffffff]
[ 0.000000] percpu: Embedded 33 pages/cpu s95768 r8192 d31208 u135168
[ 0.000000] Kernel command line: initrd=0x130000000,0x2f7fd9b
console=ttyS0,115200 earlycon=sbi
[ 0.000000] printk: log buffer data + meta data: 131072 + 557056 =
688128 bytes
[ 0.000000] Dentry cache hash table entries: 4194304 (order: 13,
33554432 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 2097152 (order: 12,
16777216 bytes, linear)
[ 0.000000] software IO TLB: SWIOTLB bounce buffer size adjusted to 32MB
[ 0.000000] software IO TLB: area num 8.
[ 0.000000] software IO TLB: mapped [mem
0x00000008d6600000-0x00000008d8600000] (32MB)
[ 0.000000] Fallback order for Node 0: 0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages:
8388608
[ 0.000000] Policy zone: Normal
[ 0.000000] mem auto-init: stack:all(zero), heap alloc:on, heap free:off
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[ 0.000000] ftrace: allocating 43618 entries in 172 pages
[ 0.000000] ftrace: allocated 172 pages with 4 groups
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=256 to
nr_cpu_ids=8.
[ 0.000000] Trampoline variant of Tasks RCU enabled.
[ 0.000000] Rude variant of Tasks RCU enabled.
[ 0.000000] Tracing variant of Tasks RCU enabled.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay
is 25 jiffies.
[ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=8
[ 0.000000] RCU Tasks: Setting shift to 3 and lim to 1
rcu_task_cb_adjust=1 rcu_task_cpu_ids=8.
[ 0.000000] RCU Tasks Rude: Setting shift to 3 and lim to 1
rcu_task_cb_adjust=1 rcu_task_cpu_ids=8.
[ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[ 0.000000] riscv-intc: 64 local interrupts mapped using AIA
[ 0.000000] riscv-imsic: interrupt-controller@e0400000: providing
IPIs using interrupt 1
[ 0.000000] rcu: srcu_init: Setting srcu_struct sizes based on
contention.
[ 0.000000] clocksource: jiffies: mask: 0xffffffff max_cycles:
0xffffffff, max_idle_ns: 7645041785100000 ns
[ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff
max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[ 0.000000] sched_clock: 64 bits at 24MHz, resolution 41ns, wraps
every 4398046511097ns
[ 0.008111] riscv-timer: Timer interrupt in S-mode is available via
sstc extension
[ 0.016074] Console: colour dummy device 80x25
[ 0.020618] Calibrating delay loop (skipped), value calculated using
timer frequency.. 48.00 BogoMIPS (lpj=96000)
[ 0.030693] pid_max: default: 32768 minimum: 301
[ 0.037348] landlock: Up and running.
[ 0.039055] Yama: disabled by default; enable with sysctl kernel.yama.*
[ 0.045941] AppArmor: AppArmor initialized
[ 0.049945] TOMOYO Linux initialized
[ 0.053933] LSM support for eBPF active
[ 0.058228] Mount-cache hash table entries: 65536 (order: 7, 524288
bytes, linear)
[ 0.065190] Mountpoint-cache hash table entries: 65536 (order: 7,
524288 bytes, linear)
[ 0.073767] VFS: Finished mounting rootfs on nullfs
[ 0.080862] ASID allocator using 16 bits (65536 entries)
[ 0.083579] rcu: Hierarchical SRCU implementation.
[ 0.088348] rcu: Max phase no-delay instances is 1000.
[ 0.093779] Timer migration: 1 hierarchy levels; 8 children per
group; 1 crossnode level
[ 0.102189] Remapping and enabling EFI services.
[ 0.106806] smp: Bringing up secondary CPUs ...
[ 0.114379] smp: Brought up 1 node, 8 CPUs
[ 0.190073] node 0 deferred pages initialised in 72ms
[ 0.192301] Memory: 32817560K/33554432K available (14124K kernel
code, 6338K rwdata, 12288K rodata, 2827K init, 682K bss, 729060K
reserved, 0K cma-reserved)
[ 0.210016] devtmpfs: initialized
[ 0.222861] posixtimers hash table entries: 4096 (order: 4, 65536
bytes, linear)
[ 0.227433] futex hash table entries: 2048 (131072 bytes on 1 NUMA
nodes, total 128 KiB, linear).
[ 0.238154] DMI: SMBIOS 3.7.0 present.
[ 0.240168] DMI: spacemit SpacemiT K3 Pico-ITX/SpacemiT K3 Pico-ITX,
BIOS 2026.10-rc5-00506-g88a94d52fe5a 10/01/2026
[ 0.250846] DMI: Memory slots populated: 0/0
[ 0.255738] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.261964] DMA: preallocated 4096 KiB GFP_KERNEL pool for atomic
allocations
[ 0.268399] audit: initializing netlink subsys (disabled)
[ 0.273960] audit: type=2000 audit(0.192:1): state=initialized
audit_enabled=0 res=1
[ 0.288932] thermal_sys: Registered thermal governor 'fair_share'
[ 0.288942] thermal_sys: Registered thermal governor 'bang_bang'
[ 0.292155] thermal_sys: Registered thermal governor 'step_wise'
[ 0.298221] thermal_sys: Registered thermal governor 'user_space'
[ 0.304303] thermal_sys: Registered thermal governor 'power_allocator'
[ 0.310534] cpuidle: using governor ladder
[ 0.321249] cpuidle: using governor menu
[ 0.333525] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[ 0.337430] HugeTLB: 16380 KiB vmemmap can be freed for a 1.00 GiB page
[ 0.344129] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[ 0.351002] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[ 0.357349] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[ 0.364225] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page
[ 0.376764] ACPI: Interpreter disabled.
[ 0.378016] iommu: Default domain type: Translated
[ 0.382515] iommu: DMA domain TLB invalidation policy: strict mode
[ 0.389517] pps_core: LinuxPPS API ver. 1 registered
[ 0.393804] pps_core: Software ver. 5.3.6 - Copyright 2005-2007
Rodolfo Giometti <giometti@linux.it>
[ 0.403061] PTP clock support registered
[ 0.407209] efivars: Registered efivars operations
[ 0.412530] NetLabel: Initializing
[ 0.415304] NetLabel: domain hash size = 128
[ 0.419720] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO
[ 0.425481] NetLabel: unlabeled traffic allowed by default
[ 0.431326] vgaarb: loaded
[ 0.433925] clocksource: Switched to clocksource riscv_clocksource
[ 0.441476] VFS: Disk quotas dquot_6.6.0
[ 0.444171] VFS: Dquot-cache hash table entries: 512 (4096 bytes)
[ 0.450869] AppArmor: AppArmor Filesystem Enabled
[ 0.455100] pnp: PnP ACPI: disabled
[ 0.464253] NET: Registered PF_INET protocol family
[ 0.466437] IP idents hash table entries: 262144 (order: 9, 2097152
bytes, linear)
[ 0.480421] tcp_listen_portaddr_hash hash table entries: 16384
(order: 6, 262144 bytes, linear)
[ 0.486366] Table-perturb hash table entries: 65536 (order: 6, 262144
bytes, linear)
[ 0.494251] TCP established hash table entries: 262144 (order: 9,
2097152 bytes, linear)
[ 0.502836] TCP bind hash table entries: 65536 (order: 9, 2097152
bytes, linear)
[ 0.510259] TCP: Hash tables configured (established 262144 bind 65536)
[ 0.516948] MPTCP token hash table entries: 32768 (order: 8, 786432
bytes, linear)
[ 0.524485] UDP hash table entries: 16384 (order: 8, 1048576 bytes,
linear)
[ 0.531734] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.536976] NET: Registered PF_XDP protocol family
[ 0.557851] cpu0: scalar unaligned word access speed is 1.39x byte
access speed (fast)
[ 0.557850] cpu2: scalar unaligned word access speed is 1.41x byte
access speed (fast)
[ 0.557850] cpu1: scalar unaligned word access speed is 1.45x byte
access speed (fast)
[ 0.557851] cpu5: scalar unaligned word access speed is 1.41x byte
access speed (fast)
[ 0.557851] cpu4: scalar unaligned word access speed is 1.41x byte
access speed (fast)
[ 0.557850] cpu6: scalar unaligned word access speed is 1.41x byte
access speed (fast)
[ 0.557851] cpu7: scalar unaligned word access speed is 1.45x byte
access speed (fast)
[ 0.557851] cpu3: scalar unaligned word access speed is 1.78x byte
access speed (fast)
[ 0.635473] cpu2: vector unaligned word access speed is 4.15x byte
access speed (fast)
[ 0.635475] cpu3: vector unaligned word access speed is 4.15x byte
access speed (fast)
[ 0.635476] cpu1: vector unaligned word access speed is 4.15x byte
access speed (fast)
[ 0.635486] cpu5: vector unaligned word access speed is 4.15x byte
access speed (fast)
[ 0.635486] cpu6: vector unaligned word access speed is 4.15x byte
access speed (fast)
[ 0.635488] cpu0: vector unaligned word access speed is 4.14x byte
access speed (fast)
[ 0.635490] cpu4: vector unaligned word access speed is 4.15x byte
access speed (fast)
[ 0.635491] cpu7: vector unaligned word access speed is 4.15x byte
access speed (fast)
[ 0.696721] PCI: CLS 0 bytes, default 64
[ 0.700863] Trying to unpack rootfs image as initramfs...
[ 0.702059] Initialise system trusted keyrings
[ 0.710653] Key type blacklist registered
[ 0.714808] workingset: timestamp_bits=44 (anon: 39) max_order=23
bucket_order=0 (anon: 0)
[ 0.725534] fuse: init (API version 7.45)
[ 0.727747] integrity: Platform Keyring initialized
[ 0.732056] integrity: Machine keyring initialized
[ 0.736976] Key type asymmetric registered
[ 0.741038] Asymmetric key parser 'x509' registered
[ 0.747210] Block layer SCSI generic (bsg) driver version 0.4 loaded
(major 246)
[ 0.753606] io scheduler mq-deadline registered
[ 0.761046] riscv-imsic: interrupt-controller@e0400000:
hart-index-bits: 4, guest-index-bits: 6
[ 0.767071] riscv-imsic: interrupt-controller@e0400000:
group-index-bits: 0, group-index-shift: 24
[ 0.776147] riscv-imsic: interrupt-controller@e0400000: per-CPU IDs
511 at base address 0x00000000e0400000
[ 0.785934] riscv-imsic: interrupt-controller@e0400000: total 4080
interrupts available
[ 0.796839] ledtrig-cpu: registered to indicate activity on CPUs
[ 0.807712] Serial: 8250/16550 driver, 6 ports, IRQ sharing disabled
[ 0.815095] mousedev: PS/2 mouse device common for all mice
[ 0.818517] riscv-pmu-sbi: SBI PMU extension is available
[ 0.823266] riscv-pmu-sbi: 16 firmware and 18 hardware counters
[ 0.830815] NET: Registered PF_INET6 protocol family
[ 0.835429] Segment Routing with IPv6
[ 0.837964] RPL Segment Routing with IPv6
[ 0.842036] In-situ OAM (IOAM) with IPv6
[ 0.846008] mip6: Mobile IPv6
[ 0.848973] NET: Registered PF_PACKET protocol family
[ 0.854230] mpls_gso: MPLS GSO support
[ 0.864071] registered taskstats version 1
[ 0.865738] Loading compiled-in X.509 certificates
[ 1.082340] Freeing initrd memory: 48636K
[ 1.148139] Loaded X.509 cert 'Build time autogenerated kernel key:
842aea05c03e7d1a797f7470bddc4da5e2015b8a'
[ 1.161876] Demotion targets for Node 0: null
[ 1.163785] Key type .fscrypt registered
[ 1.167282] Key type fscrypt-provisioning registered
[ 1.184620] Key type encrypted registered
[ 1.185699] AppArmor: AppArmor sha256 policy hashing enabled
[ 1.191488] integrity: secureboot mode disabled
[ 1.196027] ima: No TPM chip found, activating TPM-bypass!
[ 1.201578] ima: Allocated hash algorithm: sha256
[ 1.206831] ima: No architecture policies found
[ 1.210980] evm: Initialising EVM extended attributes:
[ 1.216121] evm: security.selinux
[ 1.219480] evm: security.SMACK64 (disabled)
[ 1.223804] evm: security.SMACK64EXEC (disabled)
[ 1.228464] evm: security.SMACK64TRANSMUTE (disabled)
[ 1.233577] evm: security.SMACK64MMAP (disabled)
[ 1.238246] evm: security.apparmor
[ 1.241679] evm: security.ima
[ 1.244683] evm: security.capability
[ 1.248296] evm: HMAC attrs: 0x1
[ 1.268852] riscv-aplic e0804000.interrupt-controller: 512 interrupts
forwarded to MSI base 0x00000000e0400000
[ 1.278465] printk: legacy console [ttyS0] disabled
[ 1.281174] d4017000.serial: ttyS0 at MMIO 0xd4017000 (irq = 12,
base_baud = 907421) is a XScale
[ 1.289912] printk: legacy console [ttyS0] enabled
[ 1.289912] printk: legacy console [ttyS0] enabled
[ 1.299589] printk: legacy bootconsole [sbi0] disabled
[ 1.299589] printk: legacy bootconsole [sbi0] disabled
[ 1.310763] clk: Disabling unused clocks
[ 1.314542] PM: genpd: Di[ 1.321531] Freeing unused kernel image
(initmem) memory: 2824K
[ 1.324934] Run /init as init process
[ 1.653984] usbcore: registered new interface driver usbfs
[ 1.656920] usbcore: registered new interface driver hub
[ 1.662321] usbcore: registered new device driver usb
[ 1.709947] random: crng init done
[ 1.717194] spacemit-dwmac cac80000.ethernet: IRQ sfty not found
[ 1.720892] spacemit-dwmac cac80000.ethernet: User ID: 0x10, Synopsys
ID: 0x54
[ 1.727946] spacemit-dwmac cac80000.ethernet: DWMAC4/5
[ 1.733227] spacemit-dwmac cac80000.ethernet: DMA HW capability
register supported
[ 1.740894] spacemit-dwmac cac80000.ethernet: Active PHY interface:
RGMII (1)
[ 1.748127] spacemit-dwmac cac80000.ethernet: RX Checksum Offload
Engine supported
[ 1.755799] spacemit-dwmac cac80000.ethernet: TX Checksum insertion
supported
[ 1.763028] spacemit-dwmac cac80000.ethernet: Wake-Up On Lan supported
[ 1.769697] spacemit-dwmac cac80000.ethernet: Enable RX Mitigation
via HW Watchdog Timer
[ 1.777846] spacemit-dwmac cac80000.ethernet: Enabled L3L4 Flow TC
(entries=4)
[ 1.785156] spacemit-dwmac cac80000.ethernet: Enabled RFS Flow TC
(entries=10)
[ 1.792483] spacemit-dwmac cac80000.ethernet: Enabling HW TC
(entries=256, max_off=256)
[ 1.800591] spacemit-dwmac cac80000.ethernet: TSO supported
[ 1.806226] spacemit-dwmac cac80000.ethernet: TSO feature enabled
[ 1.812398] spacemit-dwmac cac80000.ethernet: SPH feature enabled
[ 1.818570] spacemit-dwmac cac80000.ethernet: Using 40/40 bits DMA
host/device width
[ 1.910488] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[ 1.913409] xhci-hcd xhci-hcd.0.auto: new USB bus registered,
assigned bus number 1
[ 1.921371] xhci-hcd xhci-hcd.0.auto: USB0 root hub has no ports
[ 1.929963] xhci-hcd xhci-hcd.0.auto: hcc params 0x0220fe6d hci
version 0x110 quirks 0x0000808000000010
[ 1.936924] xhci-hcd xhci-hcd.0.auto: irq 16, io mem 0xc0a00000
[ 1.937182] spacemit-dwmac cac80000.ethernet end0: renamed from eth0
[ 1.942988] usb usb1: New USB device found, idVendor=1d6b,
idProduct=0002, bcdDevice= 7.02
[ 1.957903] usb usb1: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[ 1.964975] usb usb1: Product: xHCI Host Controller
[ 1.969910] usb usb1: Manufacturer: Linux 7.2.6+deb14-riscv64 xhci-hcd
[ 1.976544] usb usb1: SerialNumber: xhci-hcd.0.auto
[ 1.981829] hub 1-0:1.0: USB hub found
[ 1.985281] hub 1-0:1.0: 1 port detected
[ 2.005405] usbcore: registered new device driver onboard-usb-dev
### End of testing environment
### End of mainline u-boot K3 platform testing report by E Shattow
^ permalink raw reply [flat|nested] 9+ messages in thread