-
-
Notifications
You must be signed in to change notification settings - Fork 3k
helios64: u-boot: bump to v2026.04 + diagnostics + CMD_FILEENV; v2026.04: generic btrfs zstd fix #9675
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
iav
wants to merge
3
commits into
armbian:main
Choose a base branch
from
iav:feat/helios64-uboot-v2026.04
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
helios64: u-boot: bump to v2026.04 + diagnostics + CMD_FILEENV; v2026.04: generic btrfs zstd fix #9675
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 changes: 10 additions & 0 deletions
10
patch/u-boot/v2026.04/board_helios64/0000.patching_config.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| config: | ||
|
|
||
| # Board-specific overlays live inside this directory to keep Helios64 | ||
| # patches self contained. | ||
| overlay-directories: | ||
| - { source: "defconfig", target: "configs" } | ||
| - { source: "dt_upstream_rockchip", target: "dts/upstream/src/arm64/rockchip" } | ||
| - { source: "dt_uboot", target: "arch/arm/dts" } | ||
| - { source: "board", target: "board/kobol/helios64" } | ||
| - { source: "include_configs", target: "include/configs" } |
25 changes: 25 additions & 0 deletions
25
patch/u-boot/v2026.04/board_helios64/1000-exception-include-string.patch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||
| From: Igor Velkov <325961+iav@users.noreply.github.com> | ||
| Date: Thu, 25 Dec 2025 01:30:00 +0000 | ||
| Subject: [PATCH] exception: include string.h for strlen/strncmp | ||
|
|
||
| Fix implicit declarations in cmd/arm/exception64 by pulling in the | ||
| standard string helpers. | ||
|
|
||
| --- | ||
| include/exception.h | 1 + | ||
| 1 file changed, 1 insertion(+) | ||
|
|
||
| diff --git a/include/exception.h b/include/exception.h | ||
| index 0d27152ffa..e32eb833af 100644 | ||
| --- a/include/exception.h | ||
| +++ b/include/exception.h | ||
| @@ -7,6 +7,7 @@ | ||
| * Copyright (c) 2018, Heinrich Schuchardt <xypron.glpk@gmx.de> | ||
| */ | ||
|
|
||
| #include <command.h> | ||
| +#include <string.h> | ||
|
|
||
| static int do_exception(struct cmd_tbl *cmdtp, int flag, int argc, | ||
| char *const argv[]) |
189 changes: 189 additions & 0 deletions
189
patch/u-boot/v2026.04/board_helios64/1001-fdt_fixup_ethernet-add-logs.patch.disabled
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,189 @@ | ||
| From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||
| From: Ricardo Pardini <ricardo@pardini.net> | ||
| Date: Mon, 12 Jan 2026 18:26:25 +0100 | ||
| Subject: fdt_fixup_ethernet: add logs | ||
|
|
||
| --- | ||
| boot/fdt_support.c | 56 +++++++--- | ||
| boot/image-fdt.c | 18 +++ | ||
| 2 files changed, 59 insertions(+), 15 deletions(-) | ||
|
|
||
| diff --git a/boot/fdt_support.c b/boot/fdt_support.c | ||
| index 111111111111..222222222222 100644 | ||
| --- a/boot/fdt_support.c | ||
| +++ b/boot/fdt_support.c | ||
| @@ -632,27 +632,31 @@ int fdt_fixup_memory(void *blob, u64 start, u64 size) | ||
|
|
||
| void fdt_fixup_ethernet(void *fdt) | ||
| { | ||
| + log_info("[fdt_fixup_ethernet] called\n"); | ||
| int i = 0, j, prop; | ||
| char *tmp, *end; | ||
| char mac[16]; | ||
| const char *path; | ||
| unsigned char mac_addr[ARP_HLEN]; | ||
| int offset; | ||
| + int total_aliases = 0, total_attempted = 0, total_skipped = 0, total_patched = 0; | ||
| #ifdef FDT_SEQ_MACADDR_FROM_ENV | ||
| int nodeoff; | ||
| const struct fdt_property *fdt_prop; | ||
| #endif | ||
|
|
||
| - if (fdt_path_offset(fdt, "/aliases") < 0) | ||
| + int aliases_off = fdt_path_offset(fdt, "/aliases"); | ||
| + if (aliases_off < 0) { | ||
| + log_info("[fdt_fixup_ethernet] /aliases node not found\n"); | ||
| return; | ||
| + } | ||
|
|
||
| /* Cycle through all aliases */ | ||
| for (prop = 0; ; prop++) { | ||
| const char *name; | ||
|
|
||
| /* FDT might have been edited, recompute the offset */ | ||
| - offset = fdt_first_property_offset(fdt, | ||
| - fdt_path_offset(fdt, "/aliases")); | ||
| + offset = fdt_first_property_offset(fdt, aliases_off); | ||
| /* Select property number 'prop' */ | ||
| for (j = 0; j < prop; j++) | ||
| offset = fdt_next_property_offset(fdt, offset); | ||
| @@ -660,7 +664,10 @@ void fdt_fixup_ethernet(void *fdt) | ||
| if (offset < 0) | ||
| break; | ||
|
|
||
| + total_aliases++; | ||
| path = fdt_getprop_by_offset(fdt, offset, &name, NULL); | ||
| + log_info("[fdt_fixup_ethernet] alias #%d: name='%s', path='%s'\n", prop, name, path ? path : "<null>"); | ||
| + | ||
| if (!strncmp(name, "ethernet", 8)) { | ||
| /* Treat plain "ethernet" same as "ethernet0". */ | ||
| if (!strcmp(name, "ethernet") | ||
| @@ -679,33 +686,54 @@ void fdt_fixup_ethernet(void *fdt) | ||
| else | ||
| sprintf(mac, "eth%daddr", i); | ||
| } else { | ||
| + log_info("[fdt_fixup_ethernet] Skipping alias '%s' (invalid index)\n", name); | ||
| + total_skipped++; | ||
| continue; | ||
| } | ||
| #ifdef FDT_SEQ_MACADDR_FROM_ENV | ||
| nodeoff = fdt_path_offset(fdt, path); | ||
| - fdt_prop = fdt_get_property(fdt, nodeoff, "status", | ||
| - NULL); | ||
| - if (fdt_prop && !strcmp(fdt_prop->data, "disabled")) | ||
| + fdt_prop = fdt_get_property(fdt, nodeoff, "status", NULL); | ||
| + if (fdt_prop && !strcmp(fdt_prop->data, "disabled")) { | ||
| + log_info("[fdt_fixup_ethernet] Node '%s' is disabled, skipping\n", path); | ||
| + total_skipped++; | ||
| continue; | ||
| + } | ||
| i++; | ||
| #endif | ||
| + total_attempted++; | ||
| tmp = env_get(mac); | ||
| - if (!tmp) | ||
| + log_info("[fdt_fixup_ethernet] env var for alias '%s' is '%s', value='%s'\n", name, mac, tmp ? tmp : "<not set>"); | ||
| + if (!tmp) { | ||
| + log_info("[fdt_fixup_ethernet] env var '%s' not set, skipping\n", mac); | ||
| + total_skipped++; | ||
| continue; | ||
| - | ||
| + } | ||
| +#ifndef FDT_SEQ_MACADDR_FROM_ENV | ||
| + int nodeoff = fdt_path_offset(fdt, path); | ||
| +#endif | ||
| + if (nodeoff < 0) { | ||
| + log_info("[fdt_fixup_ethernet] Node path '%s' not found, skipping\n", path); | ||
| + total_skipped++; | ||
| + continue; | ||
| + } | ||
| + const struct fdt_property *status_prop = fdt_get_property(fdt, nodeoff, "status", NULL); | ||
| + if (status_prop && strcmp((const char *)status_prop->data, "okay")) { | ||
| + log_info("[fdt_fixup_ethernet] Node '%s' status is '%s', skipping\n", path, (const char *)status_prop->data); | ||
| + total_skipped++; | ||
| + continue; | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
| + } | ||
| for (j = 0; j < 6; j++) { | ||
| - mac_addr[j] = tmp ? | ||
| - hextoul(tmp, &end) : 0; | ||
| + mac_addr[j] = tmp ? hextoul(tmp, &end) : 0; | ||
| if (tmp) | ||
| tmp = (*end) ? end + 1 : end; | ||
| } | ||
| - | ||
| - do_fixup_by_path(fdt, path, "mac-address", | ||
| - &mac_addr, 6, 0); | ||
| - do_fixup_by_path(fdt, path, "local-mac-address", | ||
| - &mac_addr, 6, 1); | ||
| + log_info("[fdt_fixup_ethernet] Patching node '%s' (offset %d) with MAC %02x:%02x:%02x:%02x:%02x:%02x\n", path, nodeoff, mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]); | ||
| + do_fixup_by_path(fdt, path, "mac-address", &mac_addr, 6, 0); | ||
| + do_fixup_by_path(fdt, path, "local-mac-address", &mac_addr, 6, 1); | ||
| + total_patched++; | ||
| } | ||
| } | ||
| + log_info("[fdt_fixup_ethernet] SUMMARY: aliases found=%d, attempted=%d, skipped=%d, patched=%d\n", total_aliases, total_attempted, total_skipped, total_patched); | ||
| } | ||
|
|
||
| int fdt_record_loadable(void *blob, u32 index, const char *name, | ||
| diff --git a/boot/image-fdt.c b/boot/image-fdt.c | ||
| index 111111111111..222222222222 100644 | ||
| --- a/boot/image-fdt.c | ||
| +++ b/boot/image-fdt.c | ||
| @@ -1,3 +1,4 @@ | ||
| +#warning "Building image-fdt.c: fdt fixup call chain instrumented for MAC debugging." | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
| // SPDX-License-Identifier: GPL-2.0+ | ||
| /* | ||
| * Copyright (c) 2013, Google Inc. | ||
| @@ -586,11 +587,25 @@ __weak int ft_verify_fdt(void *fdt) | ||
|
|
||
| __weak int arch_fixup_fdt(void *blob) | ||
| { | ||
| + log_info("[arch_fixup_fdt] called (weak stub)\n"); | ||
| + return 0; | ||
| +} | ||
| + | ||
| +__weak int ft_board_setup(void *blob, struct bd_info *bd) | ||
| +{ | ||
| + log_info("[ft_board_setup] called (weak stub)\n"); | ||
| + return 0; | ||
| +} | ||
| + | ||
| +__weak int ft_system_setup(void *blob, struct bd_info *bd) | ||
| +{ | ||
| + log_info("[ft_system_setup] called (weak stub)\n"); | ||
| return 0; | ||
| } | ||
|
|
||
| int image_setup_libfdt(struct bootm_headers *images, void *blob, bool lmb) | ||
| { | ||
| + log_info("[image_setup_libfdt] called\n"); | ||
| ulong *initrd_start = &images->initrd_start; | ||
| ulong *initrd_end = &images->initrd_end; | ||
| bool skip_board_fixup = false; | ||
| @@ -638,6 +653,7 @@ int image_setup_libfdt(struct bootm_headers *images, void *blob, bool lmb) | ||
| strlen(images->fit_uname_cfg) + 1, 1); | ||
|
|
||
| /* Update ethernet nodes */ | ||
| + log_info("[image_setup_libfdt] calling fdt_fixup_ethernet\n"); | ||
| fdt_fixup_ethernet(blob); | ||
| #if IS_ENABLED(CONFIG_CMD_PSTORE) | ||
| /* Append PStore configuration */ | ||
| @@ -651,6 +667,7 @@ int image_setup_libfdt(struct bootm_headers *images, void *blob, bool lmb) | ||
| } | ||
|
|
||
| if (IS_ENABLED(CONFIG_OF_BOARD_SETUP) && !skip_board_fixup) { | ||
| + log_info("[image_setup_libfdt] calling ft_board_setup\n"); | ||
| fdt_ret = ft_board_setup(blob, gd->bd); | ||
| if (fdt_ret) { | ||
| printf("ERROR: board-specific fdt fixup failed: %s\n", | ||
| @@ -659,6 +676,7 @@ int image_setup_libfdt(struct bootm_headers *images, void *blob, bool lmb) | ||
| } | ||
| } | ||
| if (IS_ENABLED(CONFIG_OF_SYSTEM_SETUP)) { | ||
| + log_info("[image_setup_libfdt] calling ft_system_setup\n"); | ||
| fdt_ret = ft_system_setup(blob, gd->bd); | ||
| if (fdt_ret) { | ||
| printf("ERROR: system-specific fdt fixup failed: %s\n", | ||
| -- | ||
| Armbian | ||
|
|
||
39 changes: 39 additions & 0 deletions
39
patch/u-boot/v2026.04/board_helios64/1001-helios64-enable-target.patch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||
| From: Igor Velkov <325961+iav@users.noreply.github.com> | ||
| Date: Thu, 25 Dec 2025 01:30:00 +0000 | ||
| Subject: [PATCH] rk3399: add Helios64 target | ||
|
|
||
| Wire Helios64 into the rk3399 board menu and source tree so its defconfig | ||
| builds again on v2026.01-rc5. Based on work Aditya Prayoga <aditya@kobol.io> | ||
| Tue, 15 Sep 2020 18:41:54 +0700 | ||
|
|
||
| --- | ||
| arch/arm/mach-rockchip/rk3399/Kconfig | 14 ++++++++++++++ | ||
| 1 file changed, 14 insertions(+) | ||
|
|
||
| diff --git a/arch/arm/mach-rockchip/rk3399/Kconfig b/arch/arm/mach-rockchip/rk3399/Kconfig | ||
| index 39e5b0548d..2b5e169acd 100644 | ||
| --- a/arch/arm/mach-rockchip/rk3399/Kconfig | ||
| +++ b/arch/arm/mach-rockchip/rk3399/Kconfig | ||
| @@ -130,6 +130,13 @@ | ||
| * wide voltage input(5V-15V), dual cell battery | ||
| * Wifi/BT accessible via expansion board M.2 | ||
|
|
||
| +config TARGET_HELIOS64 | ||
| + bool "Kobol Helios64" | ||
| + help | ||
| + Helios64 is a RK3399-based NAS board with a JMB585 SATA HBA, | ||
| + USB-C (DP Alt), USB3 hub, dual Ethernet (1G + 2.5G), eMMC and | ||
| + LPDDR4 memory. | ||
| + | ||
| endchoice | ||
|
|
||
| config ROCKCHIP_BOOT_MODE_REG | ||
| @@ -163,6 +170,7 @@ endif # BOOTCOUNT_LIMIT | ||
|
|
||
| source "board/firefly/roc-pc-rk3399/Kconfig" | ||
| source "board/google/gru/Kconfig" | ||
| +source "board/kobol/helios64/Kconfig" | ||
| source "board/pine64/pinebook-pro-rk3399/Kconfig" | ||
| source "board/pine64/pinephone-pro-rk3399/Kconfig" | ||
| source "board/pine64/rockpro64_rk3399/Kconfig" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,24 @@ | ||
| if TARGET_HELIOS64 | ||
|
|
||
| config SYS_BOARD | ||
| default "helios64" | ||
|
|
||
| config SYS_VENDOR | ||
| default "kobol" | ||
|
|
||
| config SYS_CONFIG_NAME | ||
| default "helios64" | ||
|
|
||
| config BOARD_SPECIFIC_OPTIONS # dummy | ||
| def_bool y | ||
|
|
||
| config ENV_SECT_SIZE | ||
| default 0x1000 if ENV_IS_IN_SPI_FLASH | ||
|
|
||
| config ENV_SIZE | ||
| default 0x8000 | ||
|
|
||
| config ENV_OFFSET | ||
| default 0x3F8000 if ENV_IS_IN_SPI_FLASH | ||
|
|
||
| endif |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| HELIOS64 BOARD | ||
| M: Aditya Prayoga <aditya@kobol.io> | ||
| S: Maintained | ||
| F: board/kobol/helios64/ | ||
| F: include/configs/helios64.h | ||
| F: configs/helios64-rk3399_defconfig |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| # SPDX-License-Identifier: GPL-2.0+ | ||
| # | ||
| # Copyright (C) 2020 Aditya Prayoga <aditya@kobol.io> | ||
|
|
||
| obj-y := helios64.o sys_otp.o |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.