On 10/6/26 22:11, Yixun Lan wrote: > 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 <[email protected]> > --- > doc/board/spacemit/index.rst | 1 + > doc/board/spacemit/spacemit-pico-itx.rst | 200 > +++++++++++++++++++++++++++++++ > 2 files changed, 201 insertions(+) > > diff --git a/doc/board/spacemit/index.rst b/doc/board/spacemit/index.rst > index 71854e5735b..51918f0acc7 100644 > --- a/doc/board/spacemit/index.rst > +++ b/doc/board/spacemit/index.rst > @@ -8,4 +8,5 @@ SpacemiT > bananapi-f3 > k1-mmc > 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..18d11d6671b > --- /dev/null > +++ b/doc/board/spacemit/spacemit-pico-itx.rst > @@ -0,0 +1,200 @@ > +.. SPDX-License-Identifier: GPL-2.0-or-later > + > +SpacemiT K3 Pico-ITX > +==================== > + > +Building > +~~~~~~~~ > +1. Add a RISC-V toolchain to your PATH > + > +2. Setup cross compilation environment variable: > + > + .. code-block:: console > + > + export CROSS_COMPILE=<riscv64 toolchain prefix> > + > +3. U-Boot for SpacemiT K3 SoC requires OpenSBI in-development generic > +platform object fw_dynamic.bin to be included in the Flattened Image > +Tree blob. OpenSBI may be first built as below: > + > + .. code-block:: console > + > + # Clone OpenSBI fork sources with K3 specific patches > + 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 there is no U-Boot SPL build target. It is required to use > 'FSBL.bin' vendor > +board support package SPL for DDR initialization and testing u-boot.itb. > Please test with > +fastboot 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. > + => >
Reviewed-by: E Shattow <[email protected]>
