Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
8e21982
rockchip: mkimage: Split size_and_off and size_and_nimage
Kwiboo Jan 29, 2025
30e266f
rockchip: mkimage: Print image information for all embedded images
Kwiboo Jan 29, 2025
5c0de9d
rockchip: mkimage: Print boot0 and boot1 parameters
Kwiboo Jan 29, 2025
310fa98
rockchip: mkimage: Add option to change image offset alignment
Kwiboo Jan 29, 2025
47b7540
rockchip: mkimage: Add support for up to 4 input files
Kwiboo Jan 29, 2025
3db3982
rockchip: mkimage: Add option for image load address and flag
Kwiboo Jan 29, 2025
ef88cc1
rockchip: mkimage: Add rk3576 align and sd-card workaround
Kwiboo Jan 28, 2025
94b4206
board: rockchip: Set SFC1 pin mode on FriendlyElec NanoPi M5
alchark Nov 25, 2025
3a0c35b
board: rockchip: Add RK3576 EVB1
alchark Oct 22, 2025
01d1b26
usb: gadget: f_fastboot: make EP buffer size configurable
ya-mouse Jan 20, 2026
813dd86
HACK: Add Ethernet nodes to Luckfox Omni3576 DTS
alchark Feb 2, 2026
a61629d
arm64: dts: rockchip: Drop incorrect eMMC regulators on Luckfox Core3576
alchark Feb 2, 2026
089bf0e
Enable Ethernet in Luckfox Omni3576 defconfig
alchark Feb 2, 2026
04dfba4
disk: part_efi: Size the partition entry array from the block size
alchark Jul 31, 2026
850f94f
disk: part_efi: Add missing endianness conversions
alchark Jul 31, 2026
b0387d8
disk: part_mac: Fix stack corruption on devices with large blocks
alchark Jul 31, 2026
ba07383
test: dm: part: Check the GPT layout for large sector sizes
alchark Jul 31, 2026
6a8d38d
test: py: gpt: Bind the disk image in test_gpt_write_part_type()
alchark Jul 31, 2026
81ae9b2
test: py: gpt: Test the GPT layout on a device with 4096-byte blocks
alchark Jul 31, 2026
8e7e71e
fastboot: Align protocol buffer sizes with Android fastboot client
ya-mouse Jan 20, 2026
1031036
vidconsole: add word-wrap fallback in vidconsole_measure() for bitmap…
alchark May 6, 2026
709c494
video: Add support for Flipper One display
alchark Apr 22, 2026
4a07000
input: Add support for Flipper One buttons via onboard MCU
alchark May 6, 2026
50a52bc
HACK: Import Flipper One DTS from our Linux branch
alchark Feb 11, 2026
7dc1abf
board: rockchip: Add Flipper One
alchark Feb 11, 2026
90bc4cc
usb: dwc3-generic: bring up clocks and resets before initializing the…
alchark May 8, 2026
1e8a665
usb: dwc3-generic: pulse the glue reset line on probe for all variants
alchark May 8, 2026
e64f59a
pxe_utils: fix W=1 kernel-doc warnings
alchark May 7, 2026
209d506
pxe_utils: accept "options" as synonym for "append"
alchark May 7, 2026
192a4ca
pxe_utils: extract per-entry key parsing into parse_label_keys()
alchark May 7, 2026
7c3f61e
pxe_utils: export per-entry label helpers
alchark May 7, 2026
c56c1b2
pxe_utils: optionally ignore unknown keys in parse_label_keys()
alchark May 7, 2026
4650d71
pxe_utils: accept "title" inside a label as a synonym for "menu label"
alchark May 7, 2026
73370ac
boot: add a minimal bootmeth for the Boot Loader Specification
alchark May 7, 2026
02476d6
bootstd: add seq parameter to bootmeth read_bootflow op
alchark May 25, 2026
0951347
bootstd: add cur_subseq axis to the bootflow iterator
alchark May 25, 2026
d4e87a7
bootmeth: bls: emit one bootflow per BLS entry
alchark May 25, 2026
821534f
expo: Make bootflow_menu_new() scale to display size
alchark Apr 22, 2026
5805a53
expo: fix menu pointer overdrawn by label text
alchark May 6, 2026
dcc373d
expo: compute menu column positions from actual item content widths
alchark May 6, 2026
ad4b49b
expo: size bootflow menu text bboxes from actual console font height
alchark May 6, 2026
ed0d31a
expo: make layout elastic to fit smaller displays
alchark Jun 22, 2026
91bbd8a
expo: Reset console when exiting a graphical Expo menu
alchark Jun 23, 2026
def8d01
expo: bootflow_menu: truncate long strings in label and description
alchark Jun 23, 2026
6d44d44
Enable graphical boot menu with button navigation on Flipper One
alchark May 6, 2026
1377b12
expo: bootflow_menu: drop misleading wording in prompt text
alchark Jun 24, 2026
a3d61e5
rockchip: Remove RK3576 pinctrl binding from U-Boot pre-relocation phase
alchark Jun 29, 2026
fe739d6
board_f: Make printing reset information optional
alchark Jun 29, 2026
4d5af40
lib: div64: fix off-by-one shift in div64_u64() and div64_u64_rem()
alchark Jul 30, 2026
a353ac1
lib: div64: use abs64() for the 64-bit operands of div64_s64()
alchark Jul 30, 2026
7bf7718
lib: div64: inline __iter_div_u64_rem() into its only user
alchark Jul 30, 2026
b64ea66
lib: div64: sync with Linux v7.1
alchark Jul 30, 2026
b6d12c3
lib: math64: sync <linux/math64.h> with Linux v7.1
alchark Jul 30, 2026
ee3ee32
clk: rockchip: pll: drop misleading fout in rockchip_rk3588_pll_k_get()
alchark Jul 13, 2026
4af1435
clk: rockchip: pll: fix rounding of negative k in RK3588 frac PLL
alchark Jul 13, 2026
3f12e37
clk: rockchip: pll: fix RK3588 frac PLL result for k=-32768
alchark Jul 13, 2026
933e40f
clk: rockchip: pll: let rockchip_rk3588_pll_k_get update m directly
alchark Jul 13, 2026
accc77e
clk: rockchip: pll: fractional PLL coefficient is two's complement
alchark Jul 13, 2026
d09b607
clk: rockchip: pll: fix overflow and drop manual two's complement in …
alchark Jul 13, 2026
49ac472
rockchip: rk3576: boost: enable I-cache in EL3
alchark Jul 27, 2026
6e401ab
spl: Fix link when LZMA is enabled without legacy image format support
alchark Jul 29, 2026
fb3a4af
spl: fit: Fill in the image descriptor when skipping a zero-size image
alchark Jul 30, 2026
118d398
binman: Do not dedent docstrings twice on Python 3.13+
alchark Jul 30, 2026
0d7ae63
spl: Decide about Falcon mode boot only once
alchark Jul 28, 2026
231de4c
spl: atf: support Linux as BL33 with TFA
alchark Jun 8, 2026
6527493
spl: ufs: add Falcon mode load path
alchark Jun 8, 2026
8e7a4f8
binman: Add support for externally provided Linux kernel blob
alchark Jul 28, 2026
55f91f9
binman: Add support for externally provided Linux initrd blob
alchark Jul 23, 2026
a9fdc12
binman: Add support for pre-patching FDTs in a FIT with a /chosen node
alchark Jul 23, 2026
d2bc061
binman: tests: Add test coverage for a FIT with embedded Linux+initrd…
alchark Jul 23, 2026
6b827c2
rockchip: spl: default to Falcon mode boot in SPL if enabled
alchark Jun 8, 2026
a9e5d8d
rockchip: binman: Add support for Falcon mode FIT images with TF-A+Linux
alchark Jun 9, 2026
2981bff
doc: falcon: Describe booting the OS through TF-A
alchark Jul 29, 2026
b5b70ee
fs: btrfs: fix zstd decompression of compressed inline extents
munzzyy Aug 1, 2026
91f6645
fs: btrfs: report file sizes from readdir
munzzyy Aug 2, 2026
03cc419
fs: btrfs: release the path when btrfs_search_slot() fails
munzzyy Aug 2, 2026
a4e4b13
fs: btrfs: deduplicate the inode size lookup
munzzyy Aug 2, 2026
b297244
lib: zstd: decompress every frame, not just the first
Lachytonner Aug 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1692,6 +1692,8 @@ cmd_binman = $(srctree)/tools/binman/binman $(if $(BINMAN_DEBUG),-D) \
$(if $(KEYDIR),-a keydir=$(KEYDIR)) \
-a atf-bl1-path=${BL1} \
-a atf-bl31-path=${BL31} \
-a linux-kernel-path=${LINUX_KERNEL} \
-a linux-initrd-path=${LINUX_INITRD} \
-a tee-os-path=${TEE} \
-a ti-dm-path=${TI_DM} \
-a opensbi-path=${OPENSBI} \
Expand Down
31 changes: 31 additions & 0 deletions arch/arm/dts/rk3576-flipper-one-rev-f0b0c1-u-boot.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2026 Flipper FZCO
*/

#include "rk3576-u-boot.dtsi"

/ {
bootstd {
compatible = "u-boot,boot-std";

theme {
menu-pos-x = <8>;
menu-inset = <0>;
font-size = <8>;
};
};
};

/*
* The video driver needs its framebuffer reserved before relocation.
* Mark spi0 and the display node so they are bound during the pre-relocation
* DM scan and video_reserve() can carve out the framebuffer memory.
*/
&spi0 {
bootph-all;

display@0 {
bootph-all;
};
};
3 changes: 3 additions & 0 deletions arch/arm/dts/rk3576-nanopi-m5-u-boot.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
};

&sfc1 {
pinctrl-0 = <&fspi1m1_csn0 &fspi1m1_pins>;
pinctrl-names = "default";

flash@0 {
bootph-pre-ram;
bootph-some-ram;
Expand Down
11 changes: 10 additions & 1 deletion arch/arm/dts/rk3576-u-boot.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,16 @@
};

&pinctrl {
bootph-all;
/*
* Keep pinctrl in SPL (bootph-pre-ram), but NOT in U-Boot proper's
* board_init_f: bootph-all would force a pre-relocation bind, and the
* driver's .bind = dm_scan_fdt_dev then walks every pin-group child
* against the flat DT with the D-cache off (~0.6s). With bootph-pre-ram
* the node binds in board_init_r instead (live tree + cache, ~13ms).
* Console/PMIC pins are already muxed by SPL, so pre-reloc pinctrl is
* not needed here.
*/
bootph-pre-ram;
};

&pmu1_grf {
Expand Down
204 changes: 173 additions & 31 deletions arch/arm/dts/rockchip-u-boot.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,16 @@
#define HAS_FIT
#endif

#ifdef CONFIG_ROCKCHIP_FALCON_IMAGE
/* Falcon-mode load addresses, relative to the SoC DRAM base. */
#define FALCON_KERNEL_LOAD \
(CFG_SYS_SDRAM_BASE + CONFIG_ROCKCHIP_FALCON_KERNEL_LOAD)
#define FALCON_FDT_LOAD \
(CFG_SYS_SDRAM_BASE + CONFIG_ROCKCHIP_FALCON_FDT_LOAD)
#define FALCON_INITRD_LOAD \
(CFG_SYS_SDRAM_BASE + CONFIG_ROCKCHIP_FALCON_INITRD_LOAD)
#endif

/ {
binman: binman {
multiple-images;
Expand All @@ -44,37 +54,13 @@
#ifdef CONFIG_SPL
&binman {
#ifdef HAS_FIT
fit_template: template-1 {
type = "fit";
#ifdef CONFIG_ARM64
description = "FIT image for U-Boot with bl31 (TF-A)";
#else
description = "FIT image with OP-TEE";
#endif
#address-cells = <1>;
fit,fdt-list = "of-list";
fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
fit,align = <512>;
/*
* Shared ARM Trusted Firmware (BL31) and optional OP-TEE split-elf
* images, reused by both the U-Boot and Falcon Linux FIT templates.
*/
fit_firmware_template: template-firmware {
images {
u-boot {
description = "U-Boot";
type = "standalone";
os = "u-boot";
arch = FIT_ARCH;
compression = FIT_UBOOT_COMP;
load = <CONFIG_TEXT_BASE>;
entry = <CONFIG_TEXT_BASE>;
u-boot-nodtb {
compress = FIT_UBOOT_COMP;
};
#ifdef FIT_HASH_ALGO
hash {
algo = FIT_HASH_ALGO;
};
#endif
};

#ifdef CONFIG_ARM64
@atf-SEQ {
fit,operation = "split-elf";
description = "ARM Trusted Firmware";
Expand Down Expand Up @@ -114,7 +100,42 @@
};
#endif
};
#else /* !CONFIG_ARM64 */
};
};
#endif /* CONFIG_ARM64 */

fit_template: template-1 {
type = "fit";
#ifdef CONFIG_ARM64
description = "FIT image for U-Boot with bl31 (TF-A)";
insert-template = <&fit_firmware_template>;
#else
description = "FIT image with OP-TEE";
#endif
#address-cells = <1>;
fit,fdt-list = "of-list";
fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
fit,align = <512>;
images {
u-boot {
description = "U-Boot";
type = "standalone";
os = "u-boot";
arch = FIT_ARCH;
compression = FIT_UBOOT_COMP;
load = <CONFIG_TEXT_BASE>;
entry = <CONFIG_TEXT_BASE>;
u-boot-nodtb {
compress = FIT_UBOOT_COMP;
};
#ifdef FIT_HASH_ALGO
hash {
algo = FIT_HASH_ALGO;
};
#endif
};

#ifndef CONFIG_ARM64
op-tee {
description = "OP-TEE";
type = "tee";
Expand All @@ -132,7 +153,7 @@
};
#endif
};
#endif /* CONFIG_ARM64 */
#endif /* !CONFIG_ARM64 */

@fdt-SEQ {
description = "fdt-NAME";
Expand Down Expand Up @@ -161,6 +182,97 @@
};
};
};

#ifdef CONFIG_ROCKCHIP_FALCON_IMAGE
fit_falcon_template: template-falcon {
type = "fit";
description = "FIT image for Falcon Linux with bl31 (TF-A)";
insert-template = <&fit_firmware_template>;
#address-cells = <1>;
fit,fdt-list = "of-list";
fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
fit,align = <512>;

images {
kernel {
description = "Linux kernel";
type = "kernel";
arch = FIT_ARCH;
os = "linux";
compression = FIT_UBOOT_COMP;
load = <FALCON_KERNEL_LOAD>;
entry = <FALCON_KERNEL_LOAD>;

linux-kernel {
compress = FIT_UBOOT_COMP;
};
#ifdef FIT_HASH_ALGO
hash {
algo = FIT_HASH_ALGO;
};
#endif
};

ramdisk {
description = "ramdisk";
type = "ramdisk";
arch = FIT_ARCH;
compression = "none";
load = <FALCON_INITRD_LOAD>;

linux-initrd {
optional;
};
#ifdef FIT_HASH_ALGO
hash {
algo = FIT_HASH_ALGO;
};
#endif
};

@fdt-SEQ {
description = "fdt-NAME";
type = "flat_dt";
arch = FIT_ARCH;
compression = "none";
load = <FALCON_FDT_LOAD>;
#ifdef CONFIG_USE_BOOTARGS
fit,bootargs = CONFIG_BOOTARGS;
#endif
fit,initrd = "ramdisk";
#ifdef FIT_HASH_ALGO
hash {
algo = FIT_HASH_ALGO;
};
#endif
};
};

configurations {
default = "@config-DEFAULT-SEQ";
@config-SEQ {
description = "NAME.dtb";
fit,firmware = "atf-1", "kernel", "ramdisk";
fit,loadables;
fit,compatible;
fdt = "fdt-SEQ";
#ifdef FIT_HASH_ALGO
hash {
algo = FIT_HASH_ALGO;
};
#endif
};
};
};

falcon-fit {
filename = "u-boot-rockchip-falcon.itb";

fit {
insert-template = <&fit_falcon_template>;
};
};
#endif
#endif /* HAS_FIT */

simple-bin {
Expand Down Expand Up @@ -260,6 +372,36 @@
};
};
};

#ifdef CONFIG_ROCKCHIP_FALCON_IMAGE
simple-bin-usb472-falcon {
filename = "u-boot-rockchip-usb472-falcon.bin";
pad-byte = <0x00>;

u-boot-spl {
};

payload {
type = "section";
align = <CONFIG_SYS_CACHELINE_SIZE>;
/*
* Must be named 'u-boot-any', unlike the non-Falcon
* image which can call this 'fit': SPL declares
* binman_sym(u_boot_any, image_pos) unconditionally, and
* binman resolves that symbol against an entry of that
* exact name or one called u-boot[-elf|-img|-nodtb].
* Those only exist here by way of a U-Boot image inside
* the FIT, which a Falcon FIT does not carry, so without
* this name the symbol cannot be resolved and binman
* fails. The type property is what selects the etype.
*/
u-boot-any {
type = "fit";
insert-template = <&fit_falcon_template>;
};
};
};
#endif
#endif /* CONFIG_ROCKCHIP_MASKROM_IMAGE */
};
#endif /* CONFIG_SPL */
2 changes: 1 addition & 1 deletion arch/arm/include/asm/arch-rockchip/clock.h
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ struct rockchip_pll_rate_table {
unsigned int m;
unsigned int p;
unsigned int s;
unsigned int k;
int k;
};

enum rockchip_pll_type {
Expand Down
49 changes: 49 additions & 0 deletions arch/arm/mach-rockchip/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -758,6 +758,55 @@ config ROCKCHIP_MASKROM_IMAGE
Rockchip SoCs support maskrom mode boot over USB. Enable this
option to produce maskrom mode boot images containing U-Boot.

config ROCKCHIP_FALCON_IMAGE
bool "Build a Falcon mode image for Rockchip"
depends on SPL_OS_BOOT && ARM64 && SPL_ATF && SPL_FIT
help
Enable this option to produce a FIT image which SPL can use to boot
Linux directly via TF-A, bypassing U-Boot proper (Falcon mode).

The image bundles TF-A (BL31), an optional OP-TEE, a Linux kernel
and an optional initramfs, and its device trees are pre-patched with
a /chosen node so that no further processing is needed before boot.
The kernel is mandatory and must be supplied at build time with
LINUX_KERNEL=/path/to/Image; pass LINUX_INITRD=/path/to/initramfs to
include an initramfs as well.

This only controls image generation. Say N to build a Falcon-capable
SPL without bundling a kernel into the U-Boot image, for example when
the OS payload is assembled and written to storage separately.

config ROCKCHIP_FALCON_KERNEL_LOAD
hex "Falcon mode kernel load offset"
depends on ROCKCHIP_FALCON_IMAGE
default 0x10000000
help
Offset from the start of DRAM at which the Falcon mode kernel is
loaded and entered.

All three Falcon mode load offsets have to be checked against the
memory layout of the SoC and of the firmware in use. None of the
three payloads may overlap each other, and none of them may overlap
the regions BL31 and OP-TEE are linked to run from - note that
binman splits their ELFs, so each of those occupies several regions
rather than one contiguous range.

config ROCKCHIP_FALCON_FDT_LOAD
hex "Falcon mode devicetree load offset"
depends on ROCKCHIP_FALCON_IMAGE
default 0x1c000000
help
Offset from the start of DRAM at which the Falcon mode devicetree is
loaded. The same constraints as for the kernel offset apply.

config ROCKCHIP_FALCON_INITRD_LOAD
hex "Falcon mode initramfs load offset"
depends on ROCKCHIP_FALCON_IMAGE
default 0x1e000000
help
Offset from the start of DRAM at which the Falcon mode initramfs is
loaded. The same constraints as for the kernel offset apply.

config LNX_KRNL_IMG_TEXT_OFFSET_BASE
default TEXT_BASE

Expand Down
Loading