.. SPDX-License-Identifier: GPL-2.0-or-later Banana Pi BPI-F3 ================ 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= 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/cyyself/opensbi -b k1-opensbi cd opensbi make PLATFORM=generic 4. Then build U-Boot as following: .. code-block:: console cd make bananapi-f3_defconfig make OPENSBI=/build/platform/generic/firmware/fw_dynamic.bin This will generate u-boot.itb Burning ~~~~~~~ Actually, we can replace the uboot partition of Bianbu Linux which is the bsp_ to validate this patch, use `balena etcher` to burn the bianbu-minimal.img to the sd card, and replace the /dev/sdx4 where places the uboot_ with the `u-boot.itb` generated from this patch. Or use fastboot: Collect FSBL.bin, u-boot.itb, partition_2M.json, bootinfo_spinor.bin u-boot-env-default.bin, fw_dynamic.itb from vendor SDK .. code-block:: console fastboot stage FSBL.bin fastboot continue fastboot stage u-boot.itb-vendor # the itb from vendor uboot fastboot continue fastboot flash mtd partition_2M.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-mainline # the itb from mainline uboot .. _bsp: https://archive.spacemit.com/image/k1/version/bianbu/v2.0/ .. _uboot: https://bianbu-linux.spacemit.com/en/device/boot#21-firmware-layout Booting ~~~~~~~ Sample boot log from Banana Pi BPI-F3 board ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: none try sd... bm:3 j... U-Boot SPL 2022.10spacemit-dirty (Oct 21 2024 - 09:01:13 +0000) [ 0.279] DDR type LPDDR4X [ 0.292] lpddr4_silicon_init consume 13ms [ 0.293] Change DDR data rate to 2400MT/s [ 0.430] ## Checking hash(es) for config conf-1 ... OK [ 0.432] ## Checking hash(es) for Image opensbi ... OK [ 0.437] ## Checking hash(es) for Image uboot ... OK [ 0.443] ## Checking hash(es) for Image fdt-1 ... OK [ 0.488] ## Checking hash(es) for config config_1 ... OK [ 0.490] ## Checking hash(es) for Image opensbi ... crc32+ OK U-Boot 2024.10-rc4-00462-g5b138cfcc587-dirty (Nov 28 2024 - 14:56:49 +0800) DRAM: 4 GiB Core: 19 devices, 8 uclasses, devicetree: separate Loading Environment from nowhere... OK In: serial@d4017000 Out: serial@d4017000 Err: serial@d4017000 Net: No ethernet found. => cpu list 0: cpu@0 spacemit,x60 1: cpu@1 spacemit,x60 2: cpu@2 spacemit,x60 3: cpu@3 spacemit,x60 4: cpu@4 spacemit,x60 5: cpu@5 spacemit,x60 6: cpu@6 spacemit,x60 7: cpu@7 spacemit,x60 => test =>