Update jethome j200 kernel patchset, uboot to 2025.04#9231
Update jethome j200 kernel patchset, uboot to 2025.04#9231adeepn merged 2 commits intoarmbian:mainfrom
Conversation
📝 WalkthroughWalkthroughUpdates JetHub J200 support: bumps bootbranch/bootpatchdir to v2025.04, adds GPIO line names in two kernel DTS variants, and applies multiple u-boot patches adding board files, OLED/joystick support, Meson chip_id v1/v2 unified API with secure-monitor/efuse fallback, and a new SM getmax command. Changes
Sequence Diagram(s)sequenceDiagram
participant App as U-Boot (caller)
participant SM as Secure Monitor
participant Efuse as Efuse/SoC storage
App->>SM: meson_sm_get_chip_id() (request v2)
alt SM returns v2
SM-->>App: chip_id v2 (cpu_id + serial)
else v2 unsupported/fails
SM-->>App: error
App->>Efuse: read efuse raw chip/serial (v1 layout)
Efuse-->>App: raw serial + fields
App->>SM: meson_get_socinfo()
SM-->>App: socinfo (cpu_id fields)
App->>App: synthesize unified chip_id (compose cpu_id, reverse serial as needed)
App-->>App: return meson_sm_chip_id to caller
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
patch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patch (1)
86-106: Error handling issue: function returns success after failure.In
meson_sm_get_serial2, ifsm_call_readfails (line 100-101), the function logs an error but still proceeds withmemcpyon potentially uninitialized data and returns 0 (success). This masks the error from callers.🐛 Proposed fix
err = sm_call_read(dev, id_buffer, SM_CHIP_ID_LENGTH, MESON_SMC_CMD_CHIP_ID_GET, ®s); - if (err < 0) + if (err < 0) { pr_err("Failed to read serial number (%d)\n", err); + return err; + } memcpy(buffer, id_buffer + SM_CHIP_ID_OFFSET, size); return 0; }patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch (2)
1089-1096: Remove debug printf from core regulator driver.This debug
printfinregulator-uclass.cappears to be leftover debugging code. It will produce verbose output for every regulator enable/disable operation across all boards, not just JetHub D2. This should not be part of a board-specific patch.Proposed fix - revert this hunk
} - printf("%s: %s, enable=%d, r=%d\n", __func__, dev->name, enable, ret); + return ret; }
1114-1122: Duplicatebootcmd_mmc1in rescue boot sequence.The rescue boot command sequence runs
bootcmd_mmc1twice (lines 1118 and 1120):run bootcmd_mmc1; run bootcmd_mmc0; run bootcmd_mmc1; run bootcmd_usb0;This appears to be a copy-paste error. Please verify the intended boot order.
Suggested fix (assuming mmc1 → mmc0 → usb0 is intended)
#elif defined(CONFIG_MESON_G12A) #define BOOTENV_DEV_RESCUE(devtypeu, devtypel, instance) \ "bootcmd_rescue=" \ "if gpio input aobus-banks10; then " \ "run bootcmd_mmc1; " \ "run bootcmd_mmc0; " \ - "run bootcmd_mmc1; " \ "run bootcmd_usb0;" \ "fi;\0"
🧹 Nitpick comments (1)
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch (1)
809-809: Remove commented-out include.Dead code should be removed rather than commented out.
Suggested fix
-//#include <common.h>
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Jira integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (7)
config/sources/families/jethub.confpatch/kernel/archive/meson64-6.18/dt/meson-sm1-jethome-jethub-j200.dtspatch/kernel/archive/meson64-6.19/dt/meson-sm1-jethome-jethub-j200.dtspatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patchpatch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patch
🧰 Additional context used
🧠 Learnings (36)
📓 Common learnings
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub API (https://api.github.com/repos/armbian/build/pulls/{pr_number}/files) to get the complete picture of what files are being added or modified, especially for U-Boot patches that will be applied during the build process.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-19T13:56:45.124Z
Learning: When reviewing kernel or u-boot version bump PRs in the Armbian build system, check if patches existed in previous kernel version directories (e.g., sunxi-6.12, sunxi-6.13) before describing them as new features. If a patch and the majority of its contents existed previously with no major functionality changes, focus the review on the actual changes: the version bump itself and patch compatibility adjustments. Don't describe existing patches being ported/maintained across versions as new features or drivers—this is misleading. The patches are existing code being re-aligned to work with the new upstream version.
Learnt from: rpardini
Repo: armbian/build PR: 9159
File: patch/u-boot/u-boot-genio/0026-dts-configs-add-Grinn-GenioSBC-510.patch:161-161
Timestamp: 2026-01-03T20:46:29.189Z
Learning: For the Armbian genio family (config/sources/families/genio.conf and patch/u-boot/u-boot-genio/), when reviewing PRs that include vendor U-Boot patches from Collabora, avoid flagging potential issues in board configurations that are out of scope for the PR's primary focus (e.g., don't flag Genio 510/700 board issues when the PR is focused on radxa-nio-12l/Genio 1200). The maintainer prioritizes keeping vendor patches close to upstream for easier re-copying and maintenance, even if secondary board configs have potential mismatches.
<!-- </add_learning>
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:76-86
Timestamp: 2025-03-31T22:20:48.475Z
Learning: For the Armbian build project, maintaining consistency with existing patches across U-Boot versions (such as between 2025.01 and 2025.04) is prioritized over refactoring individual patches for code improvements.
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:73-75
Timestamp: 2025-03-31T22:20:41.849Z
Learning: When porting patches between U-Boot versions (like from 2025.01 to 2025.04), rpardini prefers to maintain patches as-is rather than introducing refactoring changes, even when potential improvements are identified. This approach prioritizes consistency and reduces the risk of introducing new issues.
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:28-67
Timestamp: 2025-12-13T11:39:08.046Z
Learning: In the Armbian build system for SpacemiT U-Boot patches (patch/u-boot/legacy/u-boot-spacemit-k1/), alignment with mainline U-Boot behavior is prioritized. For example, in boot mode handling, leaving devnum unchanged in the default case (when devtype is cleared) follows mainline conventions rather than explicitly clearing it to handle edge cases.
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:17-25
Timestamp: 2025-12-13T11:45:02.422Z
Learning: In the SpacemiT U-Boot patches for Armbian (patch/u-boot/legacy/u-boot-spacemit-k1/), the environment variable `devnum` is set to the device name string (e.g., "mmc", "nvme") rather than a numeric index, and `distro_bootpart` holds the partition number. This implementation aligns with mainline U-Boot conventions for the SpacemiT platform and has been verified to work correctly by the maintainer.
Learnt from: tabrisnet
Repo: armbian/build PR: 8925
File: lib/functions/host/docker.sh:141-141
Timestamp: 2025-11-13T14:50:44.662Z
Learning: In the Armbian build system, certain boards have U-Boot that doesn't build correctly on ubuntu:noble but works on ubuntu:jammy. For these boards, DOCKER_ARMBIAN_BASE_IMAGE can be set to "ubuntu:jammy" via an extension file loaded before docker_cli_prepare() runs, allowing legacy toolchains to work while the community works on proper fixes with limited resources.
Learnt from: Grippy98
Repo: armbian/build PR: 8624
File: config/boards/sk-am62p.conf:8-8
Timestamp: 2025-09-12T21:44:09.061Z
Learning: For TI K3 family boards in Armbian, BOOT_FDT_FILE uses .dts extension (not .dtb) as the standard convention. The build system handles this correctly by automatically compiling .dts to .dtb during kernel build and using the BOOT_FDT_FILE value directly in bootloader configurations.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8417
File: config/boards/orangepi5pro.csc:57-58
Timestamp: 2025-07-23T07:30:52.265Z
Learning: In the Armbian build system, BOOTPATCHDIR can contain board-specific subdirectories (e.g., board_orangepi5pro) for applying patches to specific boards only. The framework automatically checks if such board-specific subdirectories exist for the board being built and applies those patches accordingly.
Learnt from: rpardini
Repo: armbian/build PR: 8879
File: config/sources/families/uefi-x86.conf:0-0
Timestamp: 2025-11-06T15:36:04.682Z
Learning: As of PR #8879, the uefi-x86 family in the Armbian build system now includes kernel patches for the first time. The current and edge branches for uefi-x86 are specifically configured for Apple T2-based x86 machines, including T2-specific patches from the linux-t2 project and custom kernel configuration options for Apple hardware drivers.
📚 Learning: 2025-03-31T22:20:41.849Z
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:73-75
Timestamp: 2025-03-31T22:20:41.849Z
Learning: When porting patches between U-Boot versions (like from 2025.01 to 2025.04), rpardini prefers to maintain patches as-is rather than introducing refactoring changes, even when potential improvements are identified. This approach prioritizes consistency and reduces the risk of introducing new issues.
Applied to files:
config/sources/families/jethub.confpatch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-03-31T22:20:48.475Z
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:76-86
Timestamp: 2025-03-31T22:20:48.475Z
Learning: For the Armbian build project, maintaining consistency with existing patches across U-Boot versions (such as between 2025.01 and 2025.04) is prioritized over refactoring individual patches for code improvements.
Applied to files:
config/sources/families/jethub.confpatch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2026-01-03T20:46:29.189Z
Learnt from: rpardini
Repo: armbian/build PR: 9159
File: patch/u-boot/u-boot-genio/0026-dts-configs-add-Grinn-GenioSBC-510.patch:161-161
Timestamp: 2026-01-03T20:46:29.189Z
Learning: For the Armbian genio family (config/sources/families/genio.conf and patch/u-boot/u-boot-genio/), when reviewing PRs that include vendor U-Boot patches from Collabora, avoid flagging potential issues in board configurations that are out of scope for the PR's primary focus (e.g., don't flag Genio 510/700 board issues when the PR is focused on radxa-nio-12l/Genio 1200). The maintainer prioritizes keeping vendor patches close to upstream for easier re-copying and maintenance, even if secondary board configs have potential mismatches.
<!-- </add_learning>
Applied to files:
config/sources/families/jethub.confpatch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-12-13T11:39:08.046Z
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:28-67
Timestamp: 2025-12-13T11:39:08.046Z
Learning: In the Armbian build system for SpacemiT U-Boot patches (patch/u-boot/legacy/u-boot-spacemit-k1/), alignment with mainline U-Boot behavior is prioritized. For example, in boot mode handling, leaving devnum unchanged in the default case (when devtype is cleared) follows mainline conventions rather than explicitly clearing it to handle edge cases.
Applied to files:
config/sources/families/jethub.confpatch/kernel/archive/meson64-6.18/dt/meson-sm1-jethome-jethub-j200.dtspatch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-12-19T13:56:45.124Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-19T13:56:45.124Z
Learning: When reviewing kernel or u-boot version bump PRs in the Armbian build system, check if patches existed in previous kernel version directories (e.g., sunxi-6.12, sunxi-6.13) before describing them as new features. If a patch and the majority of its contents existed previously with no major functionality changes, focus the review on the actual changes: the version bump itself and patch compatibility adjustments. Don't describe existing patches being ported/maintained across versions as new features or drivers—this is misleading. The patches are existing code being re-aligned to work with the new upstream version.
Applied to files:
config/sources/families/jethub.confpatch/kernel/archive/meson64-6.18/dt/meson-sm1-jethome-jethub-j200.dtspatch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-11-02T20:49:56.719Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8849
File: config/boards/radxa-e54c.csc:14-28
Timestamp: 2025-11-02T20:49:56.719Z
Learning: In Armbian board configuration files (config/boards/*.conf, *.csc, etc.), do not use kernel_config_set, kernel_config_set_m, kernel_config_set_y, or custom_kernel_config__* functions to modify kernel configuration. Kernel configuration is associated with LINUXFAMILY/BOARDFAMILY, not individual BOARD. Board-specific kernel modifications cause inconsistency in kernel packages published to the apt repository because boards within a family share the same kernel packages. Kernel configuration changes must be made in the appropriate kernel config file (e.g., config/kernel/linux-*-*.config) or in family configuration files (config/sources/families/*.conf, *.inc) instead.
Applied to files:
config/sources/families/jethub.confpatch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patch
📚 Learning: 2025-11-20T18:20:11.985Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8968
File: patch/u-boot/u-boot-sunxi/arm64-dts-sun50i-h6-orangepi.dtsi-Rollback-r_rsb-to-r_i2c.patch:36-36
Timestamp: 2025-11-20T18:20:11.985Z
Learning: The rewrite-patches tool (REWRITE_PATCHES=yes) in the Armbian build system can inadvertently introduce semantic changes when the u-boot/kernel git base revision differs from expected state. The tool applies patches, commits them, and re-exports them using git format-patch, which can cause the re-exported patch to reflect the base revision's state rather than preserving the original patch intent. This is particularly problematic for device tree changes like interrupt specifications. The tool currently lacks validation mechanisms to detect such semantic drift, and affected patches must be manually corrected after rewriting.
Applied to files:
config/sources/families/jethub.confpatch/kernel/archive/meson64-6.18/dt/meson-sm1-jethome-jethub-j200.dtspatch/kernel/archive/meson64-6.19/dt/meson-sm1-jethome-jethub-j200.dtspatch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-09-12T19:28:38.491Z
Learnt from: Grippy98
Repo: armbian/build PR: 8622
File: config/sources/families/k3.conf:66-66
Timestamp: 2025-09-12T19:28:38.491Z
Learning: In the Armbian k3 family build system (config/sources/families/k3.conf), builds do not fail when TIBOOT3_BOOTCONFIG is unset, even though tiboot3.bin is still listed in UBOOT_TARGET_MAP. The gating mechanism in pre_config_uboot_target__build_first_stage function works as intended to conditionally build/copy tiboot3.bin only when TIBOOT3_BOOTCONFIG is defined.
Applied to files:
config/sources/families/jethub.conf
📚 Learning: 2025-10-14T05:08:11.785Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8754
File: config/boards/bestv-r3300-l.csc:14-16
Timestamp: 2025-10-14T05:08:11.785Z
Learning: In the Armbian build system, BOOTBRANCH_BOARD is a valid framework variable used as a fallback when BOOTBRANCH is unset. The framework checks BOOTBRANCH_BOARD before applying the default bootloader branch value (see config/sources/common.conf). Board configuration files can use BOOTBRANCH_BOARD to specify the bootloader branch.
Applied to files:
config/sources/families/jethub.conf
📚 Learning: 2025-07-23T07:30:52.265Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8417
File: config/boards/orangepi5pro.csc:57-58
Timestamp: 2025-07-23T07:30:52.265Z
Learning: In the Armbian build system, BOOTPATCHDIR can contain board-specific subdirectories (e.g., board_orangepi5pro) for applying patches to specific boards only. The framework automatically checks if such board-specific subdirectories exist for the board being built and applies those patches accordingly.
Applied to files:
config/sources/families/jethub.conf
📚 Learning: 2025-11-13T14:50:44.662Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8925
File: lib/functions/host/docker.sh:141-141
Timestamp: 2025-11-13T14:50:44.662Z
Learning: In the Armbian build system, certain boards have U-Boot that doesn't build correctly on ubuntu:noble but works on ubuntu:jammy. For these boards, DOCKER_ARMBIAN_BASE_IMAGE can be set to "ubuntu:jammy" via an extension file loaded before docker_cli_prepare() runs, allowing legacy toolchains to work while the community works on proper fixes with limited resources.
Applied to files:
config/sources/families/jethub.conf
📚 Learning: 2025-11-10T22:05:40.490Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8913
File: config/sources/families/k3-beagle.conf:16-16
Timestamp: 2025-11-10T22:05:40.490Z
Learning: In the Armbian build system, kernel branches using non-mainline/vendor forks (like BeagleBoard's linux repository) should be named "vendor" or "vendor-rt" rather than "current" or "edge". The "current" and "edge" naming is reserved for mainline kernel branches. This affects both the case statement in family config files (e.g., `vendor | vendor-rt)` instead of `current | current-rt)`) and the corresponding KERNEL_TARGET declarations in board config files.
Applied to files:
config/sources/families/jethub.conf
📚 Learning: 2025-06-12T21:03:39.686Z
Learnt from: djurny
Repo: armbian/build PR: 8287
File: config/bootscripts/boot-sunxi.cmd:148-161
Timestamp: 2025-06-12T21:03:39.686Z
Learning: In Armbian U-Boot bootscripts, the `${cpu}` environment variable is always pre-set by U-Boot (or defaults to a valid value), so additional guards against it being unset are unnecessary.
Applied to files:
config/sources/families/jethub.conf
📚 Learning: 2025-09-14T11:37:35.089Z
Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:65-72
Timestamp: 2025-09-14T11:37:35.089Z
Learning: In the Armbian build system, patch directories referenced in BOOTPATCHDIR and KERNELPATCHDIR configurations can be non-existent without causing build failures. Empty patch directories are also ignored by git, so missing patch directories should not be flagged as errors during code review.
Applied to files:
config/sources/families/jethub.conf
📚 Learning: 2025-12-12T23:09:56.813Z
Learnt from: tabrisnet
Repo: armbian/build PR: 9058
File: config/sources/families/spacemit.conf:39-45
Timestamp: 2025-12-12T23:09:56.813Z
Learning: In Armbian build configs for vendor kernel sources, prefer the following branch naming conventions: use 'vendor' or 'vendor-rt' for stable vendor releases, and 'vendor-edge' for bleeding-edge/pre-release vendor versions. The 'edge' naming without the 'vendor-' prefix is reserved for mainline kernel branches. Apply this pattern to family config files under config/sources/families (e.g., spacemit.conf) to ensure consistent vendor kernel sourcing naming across the repository.
Applied to files:
config/sources/families/jethub.conf
📚 Learning: 2025-12-13T11:45:02.422Z
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:17-25
Timestamp: 2025-12-13T11:45:02.422Z
Learning: In the SpacemiT U-Boot patches for Armbian (patch/u-boot/legacy/u-boot-spacemit-k1/), the environment variable `devnum` is set to the device name string (e.g., "mmc", "nvme") rather than a numeric index, and `distro_bootpart` holds the partition number. This implementation aligns with mainline U-Boot conventions for the SpacemiT platform and has been verified to work correctly by the maintainer.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/kernel/archive/meson64-6.18/dt/meson-sm1-jethome-jethub-j200.dtspatch/kernel/archive/meson64-6.19/dt/meson-sm1-jethome-jethub-j200.dtspatch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-12-17T05:09:02.306Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-17T05:09:02.306Z
Learning: In the Armbian build system, kernel patches (e.g., in patch/kernel/archive/sunxi-6.18/patches.armbian/) contain device tree overlays and other code that have existed for years and are maintained/ported across kernel versions. When reviewing PRs that modify these patch files, focus on the actual changes being made (e.g., Makefile fixes, new additions) rather than reviewing the entire existing content within the patch as if it were new code. The patch file contents are existing, stable code unless explicitly modified in the PR diff.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-11-08T06:39:24.527Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8886
File: patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-rev01.dts:9-9
Timestamp: 2025-11-08T06:39:24.527Z
Learning: In Armbian's Rockchip vendor kernel branches (rk35xx-vendor), device tree files may not require the same headers as mainline Linux. For example, input key definitions like KEY_BACK and KEY_VOLUMEUP may be handled differently in BSP kernels and don't necessarily need explicit includes like <dt-bindings/input/input.h> that would be required in mainline kernel device trees.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patch
📚 Learning: 2026-01-10T04:28:58.758Z
Learnt from: kasimling
Repo: armbian/build PR: 9177
File: patch/kernel/archive/rockchip64-6.18/rk3588-1212-arm64-dts-Automatic-fan-speed-and-USB-3.0-Type-A-por.patch:37-41
Timestamp: 2026-01-10T04:28:58.758Z
Learning: When reviewing Linux kernel device-tree bindings involving thermal cooling devices, THERMAL_NO_LIMIT can be used for both min_state (lower) and max_state (upper). If used as lower/min_state, the framework converts it to 0; if used as upper/max_state, it converts to the cooling device's max_state. Verify patch entries like: cooling-device = <&fan THERMAL_NO_LIMIT 1> are valid and correctly reflect the intended bounds. Ensure consistent interpretation of NO_LIMIT in both min and max contexts and that the resulting values align with the device's actual limits.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-12-17T15:46:22.709Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 9096
File: patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-add-overlays.patch:4-5
Timestamp: 2025-12-17T15:46:22.709Z
Learning: In Armbian kernel patches, when patches are renamed or reorganized, the old Subject line may be intentionally preserved in the patch header (as a second Subject line) for archival/historical purposes to document the previous patch name. This is an Armbian-specific practice for tracking patch evolution and should not be flagged as an error when the maintainer has intentionally included it for documentation.
Applied to files:
patch/kernel/archive/meson64-6.18/dt/meson-sm1-jethome-jethub-j200.dtspatch/kernel/archive/meson64-6.19/dt/meson-sm1-jethome-jethub-j200.dtspatch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2026-01-07T18:21:41.085Z
Learnt from: rpardini
Repo: armbian/build PR: 9180
File: patch/kernel/archive/sm8250-6.18/0000.patching_config.yaml:4-8
Timestamp: 2026-01-07T18:21:41.085Z
Learning: In Armbian patch/kernel/archive/**/0000.patching_config.yaml files, the version metadata fields (name, branch, last-known-good-tag, kind, type) under the "info stuff" comment are not used by the patching scripts. When reviewing these files, do not suggest updating or fixing these metadata fields. Instead, suggest removing them entirely as they serve no functional purpose.
Applied to files:
patch/kernel/archive/meson64-6.18/dt/meson-sm1-jethome-jethub-j200.dts
📚 Learning: 2025-12-23T04:44:25.212Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 9067
File: patch/kernel/archive/rockchip64-6.19/dt/rk3399-orangepi-4-lts.dts:869-875
Timestamp: 2025-12-23T04:44:25.212Z
Learning: During code reviews of device tree changes (any .dts file), verify node properties against the official kernel device tree binding documentation (*.yaml) rather than relying solely on patterns observed in existing DTS files. This helps catch copy-paste or drift errors and ensures properties align with authoritative bindings for each device node type.
Applied to files:
patch/kernel/archive/meson64-6.18/dt/meson-sm1-jethome-jethub-j200.dtspatch/kernel/archive/meson64-6.19/dt/meson-sm1-jethome-jethub-j200.dts
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub API (https://api.github.com/repos/armbian/build/pulls/{pr_number}/files) to get the complete picture of what files are being added or modified, especially for U-Boot patches that will be applied during the build process.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patch
📚 Learning: 2025-10-26T12:56:29.185Z
Learnt from: rpardini
Repo: armbian/build PR: 8820
File: config/sources/families/include/meson64_common.inc:51-53
Timestamp: 2025-10-26T12:56:29.185Z
Learning: In the Armbian build framework, scripts/config correctly handles kernel configuration option names both with and without the CONFIG_ prefix, so opts_m+=("CONFIG_RTL8822CS") and opts_m+=("RTL8822CS") are both valid and will work correctly.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patch
📚 Learning: 2025-12-28T01:49:34.661Z
Learnt from: tabrisnet
Repo: armbian/build PR: 9136
File: lib/functions/compilation/armbian-kernel.sh:529-537
Timestamp: 2025-12-28T01:49:34.661Z
Learning: In lib/functions/compilation/armbian-kernel.sh's opts_m handling, checking .config (kernel defconfig) is problematic because savedefconfig elides options matching defconfig, making it impossible to distinguish overlay silence from defconfig agreement. The correct approach is to check only kernel_config_source_filename (the overlay) for explicit =y, otherwise default to =m, letting savedefconfig handle deduplication with defconfig automatically.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patch
📚 Learning: 2025-09-22T21:52:01.225Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8661
File: lib/functions/compilation/armbian-kernel.sh:194-201
Timestamp: 2025-09-22T21:52:01.225Z
Learning: In lib/functions/compilation/armbian-kernel.sh, the kernel_config_modifying_hashes array is not universally required for all kernel configuration functions - some functions like armbian_kernel_config__netkit() operate without it, and adding entries with '=m' would be incorrect when the actual result might be '=y' for options already built-in.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patch
📚 Learning: 2025-08-30T04:13:16.457Z
Learnt from: tabrisnet
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-08-30T04:13:16.457Z
Learning: Armbian kernel configuration files like linux-filogic-current.config are autogenerated overlays on top of arch defconfig. Comments added manually will be lost during future updates by maintainers, and explicit "CONFIG_OPTION is not set" statements aren't needed for mutually exclusive options since these are overlay configs that only specify changes from the base configuration.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-09-22T21:52:01.225Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8661
File: lib/functions/compilation/armbian-kernel.sh:194-201
Timestamp: 2025-09-22T21:52:01.225Z
Learning: The kernel_config_set_m function in lib/functions/compilation/armbian-kernel.sh preserves existing 'y' (built-in) settings and only sets options to 'm' (module) when they are not already built-in, achieving "prefer modules but allow built-ins" behavior.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patch
📚 Learning: 2025-12-08T04:43:44.601Z
Learnt from: Lemon1151
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-08T04:43:44.601Z
Learning: On the rk3399-fine3399 board, the PWM fan requires cooling-levels to extend to 255 (full duty cycle) in the device tree. With cooling-levels ending at 160, the fan fails to spin up even when temperature exceeds the thermal threshold. This is a hardware characteristic specific to this board's fan configuration.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-10-22T07:56:19.424Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8789
File: config/kernel/linux-sunxi64-edge.config:839-839
Timestamp: 2025-10-22T07:56:19.424Z
Learning: In Linux kernel configuration, some `=y` (builtin) options are infrastructure or feature flags that enable subsystems or features for modular drivers, rather than directly compiling code into the kernel. For example, in Armbian wireless configs, options like CONFIG_SPARD_WLAN_SUPPORT=y, CONFIG_SC23XX=y, CONFIG_WCN_BSP_DRIVER_BUILDIN=y, CONFIG_UNISOC_WIFI_PS=y are module infrastructure/feature enablers, while the actual drivers (CONFIG_WLAN_UWE5621=m, CONFIG_WLAN_UWE5622=m) remain as loadable modules. These infrastructure options don't cause kernel bloat.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-06-04T23:45:38.860Z
Learnt from: djurny
Repo: armbian/build PR: 8272
File: config/bootscripts/boot-mvebu.cmd:182-186
Timestamp: 2025-06-04T23:45:38.860Z
Learning: In config/bootscripts/boot-mvebu.cmd, the `fdtfile` variable is mandatory for booting and is pre-set by U-Boot, but can be overridden via armbianEnv.txt. If `fdtfile` is empty, the subsequent device tree file search logic will eventually fail and trigger the critical error "Cannot find DT!" with proper error handling.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-06-12T21:14:36.024Z
Learnt from: djurny
Repo: armbian/build PR: 8287
File: config/bootscripts/boot-sunxi.cmd:38-44
Timestamp: 2025-06-12T21:14:36.024Z
Learning: In config/bootscripts/boot-sunxi.cmd the unconditional "+1" increment in func_align_addr_next (when align_overlap_oboe_avoidance="on") is intentional. It compensates for a known off-by-one error in U-Boot where the end address is calculated as start+size instead of start+size-1, so the extra page prevents overlap. This behavior should not be “optimized away”.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-06-04T23:52:39.493Z
Learnt from: djurny
Repo: armbian/build PR: 8272
File: config/bootscripts/boot-mvebu.cmd:61-63
Timestamp: 2025-06-04T23:52:39.493Z
Learning: In U-Boot shell scripting, the `else ;` construct followed by commands on subsequent lines is valid syntax, as demonstrated by empirical testing. Both `else command` and `else ; command` forms are acceptable in U-Boot's shell implementation.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-06-04T23:52:39.493Z
Learnt from: djurny
Repo: armbian/build PR: 8272
File: config/bootscripts/boot-mvebu.cmd:61-63
Timestamp: 2025-06-04T23:52:39.493Z
Learning: U-Boot's Hush shell accepts the `else ;` construct followed by commands on subsequent lines as valid syntax, even though the standard documentation examples typically show else clauses without the trailing semicolon. This was confirmed through empirical testing on actual U-Boot.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
🔇 Additional comments (12)
config/sources/families/jethub.conf (1)
34-35: LGTM! U-Boot version upgrade for jethubj200.The board-specific override pattern correctly updates BOOTBRANCH and BOOTPATCHDIR from v2024.07 to v2025.04. This aligns with the PR's goal of updating the JetHub J200 U-Boot to the newer version.
patch/kernel/archive/meson64-6.18/dt/meson-sm1-jethome-jethub-j200.dts (1)
595-601: LGTM! GPIO line naming improvement.Adding descriptive names
"1W_5VOUT_EN"and"RS-485_RESET"to the PCA9535 GPIO expander provides better hardware documentation and enables userspace tools likegpioinfoto display meaningful signal names.patch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patch (1)
39-47: Patch hunk offset adjusted for U-Boot v2025.04.The line offset change from 811 to 830 reflects the upstream Kconfig growth in U-Boot 2025.04. The patch correctly enables
OF_LIBFDTandOF_LIBFDT_OVERLAYfor device tree overlay support on Meson platforms. This is existing functionality being maintained across U-Boot versions.patch/kernel/archive/meson64-6.19/dt/meson-sm1-jethome-jethub-j200.dts (1)
595-601: LGTM! Consistent with meson64-6.18 DTS update.The GPIO line naming change mirrors the identical update in the 6.18 kernel DTS, maintaining consistency across kernel versions as expected for Armbian board support.
patch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patch (2)
196-203: LGTM! SMC command registration for efuse max size query.The new
MESON_SMC_CMD_EFUSE_MAXcommand (0x82000033) is correctly added to themeson_sm_gxbb_datacommand table and the enum definition.
145-166: TODO comment on NULL buffer is valid and should be clarified or verified.Line 184 passes
NULLand0tomeson_sm_getmax, which differs from similar functions in the same file (e.g.,meson_sm_get_serial) that use actual local buffers. Sincemeson_sm_getmaxis designed to return a size value rather than read data into a buffer, passingNULLmay be intentional. However, this design decision should be verified against thesm_call_readimplementation to confirm it correctly handlesNULLbuffer forMESON_SMC_CMD_EFUSE_MAXand returns the max size value without requiring buffer storage.patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch (3)
714-752: LGTM - Thermal management configuration.The CPU thermal trip points are well-defined with appropriate thresholds: passive cooling at 70°C, hot at 85°C, and critical at 90°C. The use of
THERMAL_NO_LIMITfor cooling maps is correct - it allows the kernel to use the full range of available cooling states.
896-1016: Defconfig looks appropriate for the board.The configuration enables relevant features for the JetHub D2: SPI flash, I2C, MMC, USB, video output, RTC, and GPIO expander support. The Amlogic-specific options (
CONFIG_AML_DRIVER,CONFIG_UNIFY_KEY_MANAGE, etc.) are consistent with other Amlogic SM1 boards.
854-889: LGTM - Board initialization logic.The
misc_init_rfunction correctly handles eFuse reading for MAC address, serial number, and USID with proper length validation. The fallback tomeson_generate_serial_ethaddr()when the eFuse MAC is invalid is a sensible approach.patch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patch (3)
28-80: LGTM - Joystick GPIO keys configuration.The gpio-keys-polled configuration is well-structured with appropriate poll interval (100ms) and debounce settings (10ms). The GPIO references to
&exp24pins 8-14 correctly align with the gpio-line-names defined in the GPIO expander node.
88-97: Verify SSD1306 display dimensions.The SSD1306 OLED node is missing
widthandheightproperties. While the driver may default to common values (128x64), it's good practice to explicitly specify the display dimensions to avoid ambiguity.Consider adding display dimensions
ssd1306: oled@3c { compatible = "solomon,ssd1306"; reg = <0x3c>; + solomon,width = <128>; + solomon,height = <64>; solomon,com-invdir; solomon,page-offset = <0x00>; solomon,dclk-div = <1>; solomon,dclk-frq = <8>; solomon,prechargep1 = <2>; solomon,prechargep2 = <8>; };
99-109: LGTM - GPIO expander configuration.The second GPIO expander (
exp24) at address 0x24 is correctly configured. The gpio-line-names properly document the joystick signals on pins 8-14, matching the GPIO key references. Since the joystick uses polled input (gpio-keys-polled), the absence of interrupt configuration is appropriate.
118e37c to
2c5b371
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
patch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patch (2)
86-106:meson_sm_get_serial2ignores error and always returns 0.The function returns 0 on line 105 regardless of whether
sm_call_readfailed (line 100-101 prints error but continues). This silently ignores failures.Also, the function uses
SM_CHIP_ID_LENGTH(119) for the read size while definingSM_CHIP_ID_LENGTH2(128) on line 78. Verify this is intentional.🔧 Proposed fix
int meson_sm_get_serial2(void *buffer, size_t size) { struct udevice *dev; - struct pt_regs regs = { 0 }; - regs.regs[1] = 2; - u8 id_buffer[SM_CHIP_ID_LENGTH2]; + struct pt_regs regs = { 0 }; int err; + u8 id_buffer[SM_CHIP_ID_LENGTH2]; + + regs.regs[1] = 2; dev = meson_get_sm_device(); if (IS_ERR(dev)) return PTR_ERR(dev); - err = sm_call_read(dev, id_buffer, SM_CHIP_ID_LENGTH, + err = sm_call_read(dev, id_buffer, SM_CHIP_ID_LENGTH2, MESON_SMC_CMD_CHIP_ID_GET, ®s); - if (err < 0) + if (err < 0) { pr_err("Failed to read serial number (%d)\n", err); + return err; + } memcpy(buffer, id_buffer + SM_CHIP_ID_OFFSET, size); return 0; }
190-191: Typo in help text."accesible" should be "accessible".
📝 Proposed fix
- "sm getmax [name] - get max size of user accesible efuse and store to environment\n" + "sm getmax [name] - get max size of user accessible efuse and store to environment\n"patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch (1)
1089-1096: Remove debug printf from regulator driver.This debug
printfinregulator-uclass.cwill output a message every time any regulator is enabled or disabled across the entire system. This appears to be debug output accidentally left in the patch and should be removed before merging.🐛 Proposed fix - remove debug output
} - printf("%s: %s, enable=%d, r=%d\n", __func__, dev->name, enable, ret); + return ret; }
🧹 Nitpick comments (1)
patch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patch (1)
145-166: Address the TODO comment or clarify the implementation.Line 155 contains
// TODO: check if this is correctwhen callingmeson_sm_getmax(NULL, 0). If the implementation is confirmed correct, please remove the TODO to avoid confusion.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Jira integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (5)
config/sources/families/jethub.confpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patchpatch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patch
🚧 Files skipped from review as they are similar to previous changes (2)
- config/sources/families/jethub.conf
- patch/u-boot/v2025.04/board_jethubj200/0004-add-missing-u-boot-meson64-patch-for-overlays.patch
🧰 Additional context used
🧠 Learnings (17)
📓 Common learnings
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:76-86
Timestamp: 2025-03-31T22:20:48.475Z
Learning: For the Armbian build project, maintaining consistency with existing patches across U-Boot versions (such as between 2025.01 and 2025.04) is prioritized over refactoring individual patches for code improvements.
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-19T13:56:45.124Z
Learning: When reviewing kernel or u-boot version bump PRs in the Armbian build system, check if patches existed in previous kernel version directories (e.g., sunxi-6.12, sunxi-6.13) before describing them as new features. If a patch and the majority of its contents existed previously with no major functionality changes, focus the review on the actual changes: the version bump itself and patch compatibility adjustments. Don't describe existing patches being ported/maintained across versions as new features or drivers—this is misleading. The patches are existing code being re-aligned to work with the new upstream version.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub API (https://api.github.com/repos/armbian/build/pulls/{pr_number}/files) to get the complete picture of what files are being added or modified, especially for U-Boot patches that will be applied during the build process.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:73-75
Timestamp: 2025-03-31T22:20:41.849Z
Learning: When porting patches between U-Boot versions (like from 2025.01 to 2025.04), rpardini prefers to maintain patches as-is rather than introducing refactoring changes, even when potential improvements are identified. This approach prioritizes consistency and reduces the risk of introducing new issues.
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-17T05:09:02.306Z
Learning: In the Armbian build system, kernel patches (e.g., in patch/kernel/archive/sunxi-6.18/patches.armbian/) contain device tree overlays and other code that have existed for years and are maintained/ported across kernel versions. When reviewing PRs that modify these patch files, focus on the actual changes being made (e.g., Makefile fixes, new additions) rather than reviewing the entire existing content within the patch as if it were new code. The patch file contents are existing, stable code unless explicitly modified in the PR diff.
Learnt from: rpardini
Repo: armbian/build PR: 9159
File: patch/u-boot/u-boot-genio/0026-dts-configs-add-Grinn-GenioSBC-510.patch:161-161
Timestamp: 2026-01-03T20:46:29.189Z
Learning: For the Armbian genio family (config/sources/families/genio.conf and patch/u-boot/u-boot-genio/), when reviewing PRs that include vendor U-Boot patches from Collabora, avoid flagging potential issues in board configurations that are out of scope for the PR's primary focus (e.g., don't flag Genio 510/700 board issues when the PR is focused on radxa-nio-12l/Genio 1200). The maintainer prioritizes keeping vendor patches close to upstream for easier re-copying and maintenance, even if secondary board configs have potential mismatches.
<!-- </add_learning>
Learnt from: EvilOlaf
Repo: armbian/build PR: 8968
File: patch/u-boot/u-boot-sunxi/arm64-dts-sun50i-h6-orangepi.dtsi-Rollback-r_rsb-to-r_i2c.patch:36-36
Timestamp: 2025-11-20T18:20:11.985Z
Learning: The rewrite-patches tool (REWRITE_PATCHES=yes) in the Armbian build system can inadvertently introduce semantic changes when the u-boot/kernel git base revision differs from expected state. The tool applies patches, commits them, and re-exports them using git format-patch, which can cause the re-exported patch to reflect the base revision's state rather than preserving the original patch intent. This is particularly problematic for device tree changes like interrupt specifications. The tool currently lacks validation mechanisms to detect such semantic drift, and affected patches must be manually corrected after rewriting.
Learnt from: EvilOlaf
Repo: armbian/build PR: 9096
File: patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-add-overlays.patch:4-5
Timestamp: 2025-12-17T15:46:22.709Z
Learning: In Armbian kernel patches, when patches are renamed or reorganized, the old Subject line may be intentionally preserved in the patch header (as a second Subject line) for archival/historical purposes to document the previous patch name. This is an Armbian-specific practice for tracking patch evolution and should not be flagged as an error when the maintainer has intentionally included it for documentation.
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:28-67
Timestamp: 2025-12-13T11:39:08.046Z
Learning: In the Armbian build system for SpacemiT U-Boot patches (patch/u-boot/legacy/u-boot-spacemit-k1/), alignment with mainline U-Boot behavior is prioritized. For example, in boot mode handling, leaving devnum unchanged in the default case (when devtype is cleared) follows mainline conventions rather than explicitly clearing it to handle edge cases.
Learnt from: tabrisnet
Repo: armbian/build PR: 8925
File: lib/functions/host/docker.sh:141-141
Timestamp: 2025-11-13T14:50:44.662Z
Learning: In the Armbian build system, certain boards have U-Boot that doesn't build correctly on ubuntu:noble but works on ubuntu:jammy. For these boards, DOCKER_ARMBIAN_BASE_IMAGE can be set to "ubuntu:jammy" via an extension file loaded before docker_cli_prepare() runs, allowing legacy toolchains to work while the community works on proper fixes with limited resources.
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:17-25
Timestamp: 2025-12-13T11:45:02.422Z
Learning: In the SpacemiT U-Boot patches for Armbian (patch/u-boot/legacy/u-boot-spacemit-k1/), the environment variable `devnum` is set to the device name string (e.g., "mmc", "nvme") rather than a numeric index, and `distro_bootpart` holds the partition number. This implementation aligns with mainline U-Boot conventions for the SpacemiT platform and has been verified to work correctly by the maintainer.
📚 Learning: 2025-03-31T22:20:41.849Z
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:73-75
Timestamp: 2025-03-31T22:20:41.849Z
Learning: When porting patches between U-Boot versions (like from 2025.01 to 2025.04), rpardini prefers to maintain patches as-is rather than introducing refactoring changes, even when potential improvements are identified. This approach prioritizes consistency and reduces the risk of introducing new issues.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patch
📚 Learning: 2025-12-17T05:09:02.306Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-17T05:09:02.306Z
Learning: In the Armbian build system, kernel patches (e.g., in patch/kernel/archive/sunxi-6.18/patches.armbian/) contain device tree overlays and other code that have existed for years and are maintained/ported across kernel versions. When reviewing PRs that modify these patch files, focus on the actual changes being made (e.g., Makefile fixes, new additions) rather than reviewing the entire existing content within the patch as if it were new code. The patch file contents are existing, stable code unless explicitly modified in the PR diff.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patch
📚 Learning: 2025-11-20T18:20:11.985Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8968
File: patch/u-boot/u-boot-sunxi/arm64-dts-sun50i-h6-orangepi.dtsi-Rollback-r_rsb-to-r_i2c.patch:36-36
Timestamp: 2025-11-20T18:20:11.985Z
Learning: The rewrite-patches tool (REWRITE_PATCHES=yes) in the Armbian build system can inadvertently introduce semantic changes when the u-boot/kernel git base revision differs from expected state. The tool applies patches, commits them, and re-exports them using git format-patch, which can cause the re-exported patch to reflect the base revision's state rather than preserving the original patch intent. This is particularly problematic for device tree changes like interrupt specifications. The tool currently lacks validation mechanisms to detect such semantic drift, and affected patches must be manually corrected after rewriting.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patch
📚 Learning: 2025-12-13T11:39:08.046Z
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:28-67
Timestamp: 2025-12-13T11:39:08.046Z
Learning: In the Armbian build system for SpacemiT U-Boot patches (patch/u-boot/legacy/u-boot-spacemit-k1/), alignment with mainline U-Boot behavior is prioritized. For example, in boot mode handling, leaving devnum unchanged in the default case (when devtype is cleared) follows mainline conventions rather than explicitly clearing it to handle edge cases.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patch
📚 Learning: 2025-12-19T13:56:45.124Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-19T13:56:45.124Z
Learning: When reviewing kernel or u-boot version bump PRs in the Armbian build system, check if patches existed in previous kernel version directories (e.g., sunxi-6.12, sunxi-6.13) before describing them as new features. If a patch and the majority of its contents existed previously with no major functionality changes, focus the review on the actual changes: the version bump itself and patch compatibility adjustments. Don't describe existing patches being ported/maintained across versions as new features or drivers—this is misleading. The patches are existing code being re-aligned to work with the new upstream version.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patch
📚 Learning: 2026-01-03T20:46:29.189Z
Learnt from: rpardini
Repo: armbian/build PR: 9159
File: patch/u-boot/u-boot-genio/0026-dts-configs-add-Grinn-GenioSBC-510.patch:161-161
Timestamp: 2026-01-03T20:46:29.189Z
Learning: For the Armbian genio family (config/sources/families/genio.conf and patch/u-boot/u-boot-genio/), when reviewing PRs that include vendor U-Boot patches from Collabora, avoid flagging potential issues in board configurations that are out of scope for the PR's primary focus (e.g., don't flag Genio 510/700 board issues when the PR is focused on radxa-nio-12l/Genio 1200). The maintainer prioritizes keeping vendor patches close to upstream for easier re-copying and maintenance, even if secondary board configs have potential mismatches.
<!-- </add_learning>
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patch
📚 Learning: 2025-12-13T11:45:02.422Z
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:17-25
Timestamp: 2025-12-13T11:45:02.422Z
Learning: In the SpacemiT U-Boot patches for Armbian (patch/u-boot/legacy/u-boot-spacemit-k1/), the environment variable `devnum` is set to the device name string (e.g., "mmc", "nvme") rather than a numeric index, and `distro_bootpart` holds the partition number. This implementation aligns with mainline U-Boot conventions for the SpacemiT platform and has been verified to work correctly by the maintainer.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patch
📚 Learning: 2025-03-31T22:20:48.475Z
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:76-86
Timestamp: 2025-03-31T22:20:48.475Z
Learning: For the Armbian build project, maintaining consistency with existing patches across U-Boot versions (such as between 2025.01 and 2025.04) is prioritized over refactoring individual patches for code improvements.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patch
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patch
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub API (https://api.github.com/repos/armbian/build/pulls/{pr_number}/files) to get the complete picture of what files are being added or modified, especially for U-Boot patches that will be applied during the build process.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-12-08T04:43:44.601Z
Learnt from: Lemon1151
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-08T04:43:44.601Z
Learning: On the rk3399-fine3399 board, the PWM fan requires cooling-levels to extend to 255 (full duty cycle) in the device tree. With cooling-levels ending at 160, the fan fails to spin up even when temperature exceeds the thermal threshold. This is a hardware characteristic specific to this board's fan configuration.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-08-30T04:13:16.457Z
Learnt from: tabrisnet
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-08-30T04:13:16.457Z
Learning: Armbian kernel configuration files like linux-filogic-current.config are autogenerated overlays on top of arch defconfig. Comments added manually will be lost during future updates by maintainers, and explicit "CONFIG_OPTION is not set" statements aren't needed for mutually exclusive options since these are overlay configs that only specify changes from the base configuration.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-10-22T07:56:19.424Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8789
File: config/kernel/linux-sunxi64-edge.config:839-839
Timestamp: 2025-10-22T07:56:19.424Z
Learning: In Linux kernel configuration, some `=y` (builtin) options are infrastructure or feature flags that enable subsystems or features for modular drivers, rather than directly compiling code into the kernel. For example, in Armbian wireless configs, options like CONFIG_SPARD_WLAN_SUPPORT=y, CONFIG_SC23XX=y, CONFIG_WCN_BSP_DRIVER_BUILDIN=y, CONFIG_UNISOC_WIFI_PS=y are module infrastructure/feature enablers, while the actual drivers (CONFIG_WLAN_UWE5621=m, CONFIG_WLAN_UWE5622=m) remain as loadable modules. These infrastructure options don't cause kernel bloat.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2026-01-10T04:28:58.758Z
Learnt from: kasimling
Repo: armbian/build PR: 9177
File: patch/kernel/archive/rockchip64-6.18/rk3588-1212-arm64-dts-Automatic-fan-speed-and-USB-3.0-Type-A-por.patch:37-41
Timestamp: 2026-01-10T04:28:58.758Z
Learning: When reviewing Linux kernel device-tree bindings involving thermal cooling devices, THERMAL_NO_LIMIT can be used for both min_state (lower) and max_state (upper). If used as lower/min_state, the framework converts it to 0; if used as upper/max_state, it converts to the cooling device's max_state. Verify patch entries like: cooling-device = <&fan THERMAL_NO_LIMIT 1> are valid and correctly reflect the intended bounds. Ensure consistent interpretation of NO_LIMIT in both min and max contexts and that the resulting values align with the device's actual limits.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patch
📚 Learning: 2025-12-17T15:46:22.709Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 9096
File: patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-add-overlays.patch:4-5
Timestamp: 2025-12-17T15:46:22.709Z
Learning: In Armbian kernel patches, when patches are renamed or reorganized, the old Subject line may be intentionally preserved in the patch header (as a second Subject line) for archival/historical purposes to document the previous patch name. This is an Armbian-specific practice for tracking patch evolution and should not be flagged as an error when the maintainer has intentionally included it for documentation.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0002-Add-some-amlogic-sm-functions.patch
📚 Learning: 2025-11-08T06:39:24.527Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8886
File: patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-rev01.dts:9-9
Timestamp: 2025-11-08T06:39:24.527Z
Learning: In Armbian's Rockchip vendor kernel branches (rk35xx-vendor), device tree files may not require the same headers as mainline Linux. For example, input key definitions like KEY_BACK and KEY_VOLUMEUP may be handled differently in BSP kernels and don't necessarily need explicit includes like <dt-bindings/input/input.h> that would be required in mainline kernel device trees.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patch
🔇 Additional comments (5)
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch (3)
809-809: Verify the commented-out include is intentional.The
#include <common.h>is commented out. In modern U-Boot, this header is often no longer needed as individual headers are preferred. Confirm this is intentional and not an accidental comment.
713-752: CPU thermal configuration looks reasonable.The thermal trip points (passive at 70°C, hot at 85°C, critical at 90°C) and cooling maps using
THERMAL_NO_LIMITfor all CPUs are appropriate for this SoC. The use ofTHERMAL_NO_LIMITfor both min and max states allows the thermal framework to utilize the full range of available cooling states.
896-1016: Board defconfig is comprehensive.The defconfig includes appropriate drivers for the hardware (MMC, SPI flash, USB, Ethernet, I2C, RTC, video) and enables GPIO hogging for the USB hub reset. The vendor-specific AML configs (lines 1008-1013) appear to be standard for JetHome Amlogic boards.
patch/u-boot/v2025.04/board_jethubj200/0003-add-ssd1306-joystick-and-gpio-expander-support.patch (2)
28-80: GPIO keys configuration is appropriate.Using
gpio-keys-polledwith a 100ms poll interval is correct for I2C-based GPIO expanders. The debounce interval of 10ms and key code mappings are appropriate for joystick input.
84-110: OLED and GPIO expander nodes look correct.The SSD1306 at 0x3c and PCA9535 GPIO expander at 0x24 are properly configured. The GPIO line names correctly correspond to the joystick button definitions above.
Verify these I2C devices are connected to the same bus as the other I2C3 devices (RTC, EEPROM, temp sensors) defined in patch 0001. The context suggests they're added to
&i2c3, but please confirm the hardware connection.
2c5b371 to
325c2db
Compare
325c2db to
5af9e0d
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch (2)
1085-1097: Remove debug printf before merging.This adds a debug
printftoregulator_set_enable()in the upstream regulator driver that will print on every regulator enable/disable operation during boot. This will produce excessive console output and should not be included in the production patch.🐛 Proposed fix: remove the debug printf
-@@ -191,7 +191,7 @@ int regulator_set_enable(struct udevice *dev, bool enable) +@@ -191,6 +191,6 @@ int regulator_set_enable(struct udevice *dev, bool enable) } } } - - printf("%s: %s, enable=%d, r=%d\n", __func__, dev->name, enable, ret); + return ret; }
1110-1127: Verify: duplicatebootcmd_mmc1appears intentional?The G12A rescue boot sequence runs
bootcmd_mmc1twice (lines 1117 and 1120), while the GXL version (lines 1111-1113) only runs each boot command once. This looks like a copy-paste error.G12A: mmc1 → mmc0 → mmc1 → usb0 (mmc1 appears twice) GXL: mmc1 → mmc0 → usb0 (no duplicates)🐛 Proposed fix if unintentional
#elif defined(CONFIG_MESON_G12A) #define BOOTENV_DEV_RESCUE(devtypeu, devtypel, instance) \ "bootcmd_rescue=" \ "if gpio input aobus-banks10; then " \ "run bootcmd_mmc1; " \ "run bootcmd_mmc0; " \ - "run bootcmd_mmc1; " \ "run bootcmd_usb0;" \ "fi;\0"
🤖 Fix all issues with AI agents
In
@patch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patch:
- Line 113: Fix the typo in the command description string for "sm getmax
[name]" by changing "accesible" to "accessible" so the help text reads "sm
getmax [name] - get max size of user accessible efuse and store to environment";
locate the string literal in the patch where the command description is added
and update it accordingly.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Jira integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (10)
config/sources/families/jethub.confpatch/kernel/archive/meson64-6.18/dt/meson-sm1-jethome-jethub-j200.dtspatch/kernel/archive/meson64-6.19/dt/meson-sm1-jethome-jethub-j200.dtspatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0003-arm-meson-unify-type-being-used-for-socinfo.patchpatch/u-boot/v2025.04/board_jethubj200/0004-arm-meson-sm-get-rid-of-SM_CHIP_ID_SIZE.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patchpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0007-add-missing-u-boot-meson64-patch-for-overlays.patch
✅ Files skipped from review due to trivial changes (2)
- patch/u-boot/v2025.04/board_jethubj200/0007-add-missing-u-boot-meson64-patch-for-overlays.patch
- patch/u-boot/v2025.04/board_jethubj200/0004-arm-meson-sm-get-rid-of-SM_CHIP_ID_SIZE.patch
🚧 Files skipped from review as they are similar to previous changes (2)
- config/sources/families/jethub.conf
- patch/kernel/archive/meson64-6.18/dt/meson-sm1-jethome-jethub-j200.dts
🧰 Additional context used
🧠 Learnings (24)
📓 Common learnings
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:76-86
Timestamp: 2025-03-31T22:20:48.475Z
Learning: For the Armbian build project, maintaining consistency with existing patches across U-Boot versions (such as between 2025.01 and 2025.04) is prioritized over refactoring individual patches for code improvements.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub API (https://api.github.com/repos/armbian/build/pulls/{pr_number}/files) to get the complete picture of what files are being added or modified, especially for U-Boot patches that will be applied during the build process.
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:73-75
Timestamp: 2025-03-31T22:20:41.849Z
Learning: When porting patches between U-Boot versions (like from 2025.01 to 2025.04), rpardini prefers to maintain patches as-is rather than introducing refactoring changes, even when potential improvements are identified. This approach prioritizes consistency and reduces the risk of introducing new issues.
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-19T13:56:45.124Z
Learning: When reviewing kernel or u-boot version bump PRs in the Armbian build system, check if patches existed in previous kernel version directories (e.g., sunxi-6.12, sunxi-6.13) before describing them as new features. If a patch and the majority of its contents existed previously with no major functionality changes, focus the review on the actual changes: the version bump itself and patch compatibility adjustments. Don't describe existing patches being ported/maintained across versions as new features or drivers—this is misleading. The patches are existing code being re-aligned to work with the new upstream version.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-17T05:09:02.306Z
Learning: In the Armbian build system, kernel patches (e.g., in patch/kernel/archive/sunxi-6.18/patches.armbian/) contain device tree overlays and other code that have existed for years and are maintained/ported across kernel versions. When reviewing PRs that modify these patch files, focus on the actual changes being made (e.g., Makefile fixes, new additions) rather than reviewing the entire existing content within the patch as if it were new code. The patch file contents are existing, stable code unless explicitly modified in the PR diff.
Learnt from: rpardini
Repo: armbian/build PR: 9159
File: patch/u-boot/u-boot-genio/0026-dts-configs-add-Grinn-GenioSBC-510.patch:161-161
Timestamp: 2026-01-03T20:46:29.189Z
Learning: For the Armbian genio family (config/sources/families/genio.conf and patch/u-boot/u-boot-genio/), when reviewing PRs that include vendor U-Boot patches from Collabora, avoid flagging potential issues in board configurations that are out of scope for the PR's primary focus (e.g., don't flag Genio 510/700 board issues when the PR is focused on radxa-nio-12l/Genio 1200). The maintainer prioritizes keeping vendor patches close to upstream for easier re-copying and maintenance, even if secondary board configs have potential mismatches.
<!-- </add_learning>
Learnt from: EvilOlaf
Repo: armbian/build PR: 8968
File: patch/u-boot/u-boot-sunxi/arm64-dts-sun50i-h6-orangepi.dtsi-Rollback-r_rsb-to-r_i2c.patch:36-36
Timestamp: 2025-11-20T18:20:11.985Z
Learning: The rewrite-patches tool (REWRITE_PATCHES=yes) in the Armbian build system can inadvertently introduce semantic changes when the u-boot/kernel git base revision differs from expected state. The tool applies patches, commits them, and re-exports them using git format-patch, which can cause the re-exported patch to reflect the base revision's state rather than preserving the original patch intent. This is particularly problematic for device tree changes like interrupt specifications. The tool currently lacks validation mechanisms to detect such semantic drift, and affected patches must be manually corrected after rewriting.
Learnt from: rpardini
Repo: armbian/build PR: 8879
File: config/sources/families/uefi-x86.conf:0-0
Timestamp: 2025-11-06T15:36:04.682Z
Learning: As of PR #8879, the uefi-x86 family in the Armbian build system now includes kernel patches for the first time. The current and edge branches for uefi-x86 are specifically configured for Apple T2-based x86 machines, including T2-specific patches from the linux-t2 project and custom kernel configuration options for Apple hardware drivers.
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:28-67
Timestamp: 2025-12-13T11:39:08.046Z
Learning: In the Armbian build system for SpacemiT U-Boot patches (patch/u-boot/legacy/u-boot-spacemit-k1/), alignment with mainline U-Boot behavior is prioritized. For example, in boot mode handling, leaving devnum unchanged in the default case (when devtype is cleared) follows mainline conventions rather than explicitly clearing it to handle edge cases.
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:17-25
Timestamp: 2025-12-13T11:45:02.422Z
Learning: In the SpacemiT U-Boot patches for Armbian (patch/u-boot/legacy/u-boot-spacemit-k1/), the environment variable `devnum` is set to the device name string (e.g., "mmc", "nvme") rather than a numeric index, and `distro_bootpart` holds the partition number. This implementation aligns with mainline U-Boot conventions for the SpacemiT platform and has been verified to work correctly by the maintainer.
📚 Learning: 2025-03-31T22:20:41.849Z
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:73-75
Timestamp: 2025-03-31T22:20:41.849Z
Learning: When porting patches between U-Boot versions (like from 2025.01 to 2025.04), rpardini prefers to maintain patches as-is rather than introducing refactoring changes, even when potential improvements are identified. This approach prioritizes consistency and reduces the risk of introducing new issues.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-arm-meson-unify-type-being-used-for-socinfo.patchpatch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patchpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-12-13T11:39:08.046Z
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:28-67
Timestamp: 2025-12-13T11:39:08.046Z
Learning: In the Armbian build system for SpacemiT U-Boot patches (patch/u-boot/legacy/u-boot-spacemit-k1/), alignment with mainline U-Boot behavior is prioritized. For example, in boot mode handling, leaving devnum unchanged in the default case (when devtype is cleared) follows mainline conventions rather than explicitly clearing it to handle edge cases.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-arm-meson-unify-type-being-used-for-socinfo.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patchpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-03-31T22:20:48.475Z
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:76-86
Timestamp: 2025-03-31T22:20:48.475Z
Learning: For the Armbian build project, maintaining consistency with existing patches across U-Boot versions (such as between 2025.01 and 2025.04) is prioritized over refactoring individual patches for code improvements.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-arm-meson-unify-type-being-used-for-socinfo.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patchpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-12-13T11:45:02.422Z
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:17-25
Timestamp: 2025-12-13T11:45:02.422Z
Learning: In the SpacemiT U-Boot patches for Armbian (patch/u-boot/legacy/u-boot-spacemit-k1/), the environment variable `devnum` is set to the device name string (e.g., "mmc", "nvme") rather than a numeric index, and `distro_bootpart` holds the partition number. This implementation aligns with mainline U-Boot conventions for the SpacemiT platform and has been verified to work correctly by the maintainer.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-arm-meson-unify-type-being-used-for-socinfo.patchpatch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/kernel/archive/meson64-6.19/dt/meson-sm1-jethome-jethub-j200.dtspatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patchpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-11-20T18:20:11.985Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8968
File: patch/u-boot/u-boot-sunxi/arm64-dts-sun50i-h6-orangepi.dtsi-Rollback-r_rsb-to-r_i2c.patch:36-36
Timestamp: 2025-11-20T18:20:11.985Z
Learning: The rewrite-patches tool (REWRITE_PATCHES=yes) in the Armbian build system can inadvertently introduce semantic changes when the u-boot/kernel git base revision differs from expected state. The tool applies patches, commits them, and re-exports them using git format-patch, which can cause the re-exported patch to reflect the base revision's state rather than preserving the original patch intent. This is particularly problematic for device tree changes like interrupt specifications. The tool currently lacks validation mechanisms to detect such semantic drift, and affected patches must be manually corrected after rewriting.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-arm-meson-unify-type-being-used-for-socinfo.patchpatch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/kernel/archive/meson64-6.19/dt/meson-sm1-jethome-jethub-j200.dtspatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patchpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-12-19T13:56:45.124Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-19T13:56:45.124Z
Learning: When reviewing kernel or u-boot version bump PRs in the Armbian build system, check if patches existed in previous kernel version directories (e.g., sunxi-6.12, sunxi-6.13) before describing them as new features. If a patch and the majority of its contents existed previously with no major functionality changes, focus the review on the actual changes: the version bump itself and patch compatibility adjustments. Don't describe existing patches being ported/maintained across versions as new features or drivers—this is misleading. The patches are existing code being re-aligned to work with the new upstream version.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-arm-meson-unify-type-being-used-for-socinfo.patchpatch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/kernel/archive/meson64-6.19/dt/meson-sm1-jethome-jethub-j200.dtspatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patchpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2026-01-03T20:46:29.189Z
Learnt from: rpardini
Repo: armbian/build PR: 9159
File: patch/u-boot/u-boot-genio/0026-dts-configs-add-Grinn-GenioSBC-510.patch:161-161
Timestamp: 2026-01-03T20:46:29.189Z
Learning: For the Armbian genio family (config/sources/families/genio.conf and patch/u-boot/u-boot-genio/), when reviewing PRs that include vendor U-Boot patches from Collabora, avoid flagging potential issues in board configurations that are out of scope for the PR's primary focus (e.g., don't flag Genio 510/700 board issues when the PR is focused on radxa-nio-12l/Genio 1200). The maintainer prioritizes keeping vendor patches close to upstream for easier re-copying and maintenance, even if secondary board configs have potential mismatches.
<!-- </add_learning>
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-arm-meson-unify-type-being-used-for-socinfo.patchpatch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/kernel/archive/meson64-6.19/dt/meson-sm1-jethome-jethub-j200.dtspatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patchpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2026-01-07T18:21:41.085Z
Learnt from: rpardini
Repo: armbian/build PR: 9180
File: patch/kernel/archive/sm8250-6.18/0000.patching_config.yaml:4-8
Timestamp: 2026-01-07T18:21:41.085Z
Learning: In Armbian patch/kernel/archive/**/0000.patching_config.yaml files, the version metadata fields (name, branch, last-known-good-tag, kind, type) under the "info stuff" comment are not used by the patching scripts. When reviewing these files, do not suggest updating or fixing these metadata fields. Instead, suggest removing them entirely as they serve no functional purpose.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-arm-meson-unify-type-being-used-for-socinfo.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patch
📚 Learning: 2025-12-17T15:46:22.709Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 9096
File: patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-add-overlays.patch:4-5
Timestamp: 2025-12-17T15:46:22.709Z
Learning: In Armbian kernel patches, when patches are renamed or reorganized, the old Subject line may be intentionally preserved in the patch header (as a second Subject line) for archival/historical purposes to document the previous patch name. This is an Armbian-specific practice for tracking patch evolution and should not be flagged as an error when the maintainer has intentionally included it for documentation.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-arm-meson-unify-type-being-used-for-socinfo.patchpatch/kernel/archive/meson64-6.19/dt/meson-sm1-jethome-jethub-j200.dtspatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patchpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patch
📚 Learning: 2025-09-14T06:32:29.806Z
Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:222-230
Timestamp: 2025-09-14T06:32:29.806Z
Learning: In the Armbian build system, the write_uboot_platform() function implementations follow different patterns across Rockchip family files. The newer standard (used in rockchip64_common.inc and rk3506) includes 'status=none' parameter in dd commands, while older implementations (rk3288, rk322x) use an older pattern without this parameter. The rk3506 implementation correctly follows the current Rockchip family standard.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-arm-meson-unify-type-being-used-for-socinfo.patch
📚 Learning: 2026-01-10T04:28:58.758Z
Learnt from: kasimling
Repo: armbian/build PR: 9177
File: patch/kernel/archive/rockchip64-6.18/rk3588-1212-arm64-dts-Automatic-fan-speed-and-USB-3.0-Type-A-por.patch:37-41
Timestamp: 2026-01-10T04:28:58.758Z
Learning: When reviewing Linux kernel device-tree bindings involving thermal cooling devices, THERMAL_NO_LIMIT can be used for both min_state (lower) and max_state (upper). If used as lower/min_state, the framework converts it to 0; if used as upper/max_state, it converts to the cooling device's max_state. Verify patch entries like: cooling-device = <&fan THERMAL_NO_LIMIT 1> are valid and correctly reflect the intended bounds. Ensure consistent interpretation of NO_LIMIT in both min and max contexts and that the resulting values align with the device's actual limits.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0003-arm-meson-unify-type-being-used-for-socinfo.patchpatch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patchpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-11-08T06:39:24.527Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8886
File: patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-rev01.dts:9-9
Timestamp: 2025-11-08T06:39:24.527Z
Learning: In Armbian's Rockchip vendor kernel branches (rk35xx-vendor), device tree files may not require the same headers as mainline Linux. For example, input key definitions like KEY_BACK and KEY_VOLUMEUP may be handled differently in BSP kernels and don't necessarily need explicit includes like <dt-bindings/input/input.h> that would be required in mainline kernel device trees.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patch
📚 Learning: 2025-12-17T05:09:02.306Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-17T05:09:02.306Z
Learning: In the Armbian build system, kernel patches (e.g., in patch/kernel/archive/sunxi-6.18/patches.armbian/) contain device tree overlays and other code that have existed for years and are maintained/ported across kernel versions. When reviewing PRs that modify these patch files, focus on the actual changes being made (e.g., Makefile fixes, new additions) rather than reviewing the entire existing content within the patch as if it were new code. The patch file contents are existing, stable code unless explicitly modified in the PR diff.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-12-23T04:44:25.212Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 9067
File: patch/kernel/archive/rockchip64-6.19/dt/rk3399-orangepi-4-lts.dts:869-875
Timestamp: 2025-12-23T04:44:25.212Z
Learning: During code reviews of device tree changes (any .dts file), verify node properties against the official kernel device tree binding documentation (*.yaml) rather than relying solely on patterns observed in existing DTS files. This helps catch copy-paste or drift errors and ensures properties align with authoritative bindings for each device node type.
Applied to files:
patch/kernel/archive/meson64-6.19/dt/meson-sm1-jethome-jethub-j200.dts
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub API (https://api.github.com/repos/armbian/build/pulls/{pr_number}/files) to get the complete picture of what files are being added or modified, especially for U-Boot patches that will be applied during the build process.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-12-08T04:43:44.601Z
Learnt from: Lemon1151
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-08T04:43:44.601Z
Learning: On the rk3399-fine3399 board, the PWM fan requires cooling-levels to extend to 255 (full duty cycle) in the device tree. With cooling-levels ending at 160, the fan fails to spin up even when temperature exceeds the thermal threshold. This is a hardware characteristic specific to this board's fan configuration.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-08-30T04:13:16.457Z
Learnt from: tabrisnet
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-08-30T04:13:16.457Z
Learning: Armbian kernel configuration files like linux-filogic-current.config are autogenerated overlays on top of arch defconfig. Comments added manually will be lost during future updates by maintainers, and explicit "CONFIG_OPTION is not set" statements aren't needed for mutually exclusive options since these are overlay configs that only specify changes from the base configuration.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-10-22T07:56:19.424Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8789
File: config/kernel/linux-sunxi64-edge.config:839-839
Timestamp: 2025-10-22T07:56:19.424Z
Learning: In Linux kernel configuration, some `=y` (builtin) options are infrastructure or feature flags that enable subsystems or features for modular drivers, rather than directly compiling code into the kernel. For example, in Armbian wireless configs, options like CONFIG_SPARD_WLAN_SUPPORT=y, CONFIG_SC23XX=y, CONFIG_WCN_BSP_DRIVER_BUILDIN=y, CONFIG_UNISOC_WIFI_PS=y are module infrastructure/feature enablers, while the actual drivers (CONFIG_WLAN_UWE5621=m, CONFIG_WLAN_UWE5622=m) remain as loadable modules. These infrastructure options don't cause kernel bloat.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-06-04T23:45:38.860Z
Learnt from: djurny
Repo: armbian/build PR: 8272
File: config/bootscripts/boot-mvebu.cmd:182-186
Timestamp: 2025-06-04T23:45:38.860Z
Learning: In config/bootscripts/boot-mvebu.cmd, the `fdtfile` variable is mandatory for booting and is pre-set by U-Boot, but can be overridden via armbianEnv.txt. If `fdtfile` is empty, the subsequent device tree file search logic will eventually fail and trigger the critical error "Cannot find DT!" with proper error handling.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-06-12T21:14:36.024Z
Learnt from: djurny
Repo: armbian/build PR: 8287
File: config/bootscripts/boot-sunxi.cmd:38-44
Timestamp: 2025-06-12T21:14:36.024Z
Learning: In config/bootscripts/boot-sunxi.cmd the unconditional "+1" increment in func_align_addr_next (when align_overlap_oboe_avoidance="on") is intentional. It compensates for a known off-by-one error in U-Boot where the end address is calculated as start+size instead of start+size-1, so the extra page prevents overlap. This behavior should not be “optimized away”.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-06-04T23:52:39.493Z
Learnt from: djurny
Repo: armbian/build PR: 8272
File: config/bootscripts/boot-mvebu.cmd:61-63
Timestamp: 2025-06-04T23:52:39.493Z
Learning: In U-Boot shell scripting, the `else ;` construct followed by commands on subsequent lines is valid syntax, as demonstrated by empirical testing. Both `else command` and `else ; command` forms are acceptable in U-Boot's shell implementation.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-06-04T23:52:39.493Z
Learnt from: djurny
Repo: armbian/build PR: 8272
File: config/bootscripts/boot-mvebu.cmd:61-63
Timestamp: 2025-06-04T23:52:39.493Z
Learning: U-Boot's Hush shell accepts the `else ;` construct followed by commands on subsequent lines as valid syntax, even though the standard documentation examples typically show else clauses without the trailing semicolon. This was confirmed through empirical testing on actual U-Boot.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
🔇 Additional comments (19)
patch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patch (4)
14-20: LGTM!The added includes for
input.handgpio.hare necessary for theKEY_*macros andGPIO_ACTIVE_HIGHused in the gpio-keys and GPIO expander nodes below.
28-80: LGTM!The gpio-keys-polled block is well-structured with consistent debounce intervals and proper GPIO references. The GPIO pin numbers (8-14) correctly correspond to the gpio-line-names defined in the
exp24GPIO expander node.
88-97: LGTM!The SSD1306 OLED display node uses the correct compatible string and standard I2C address (0x3c). The solomon-specific properties configure display timing and orientation appropriately.
99-109: LGTM!The PCA9535 GPIO expander node is correctly configured with proper
#gpio-cellsvalue and exactly 16 gpio-line-names entries matching the chip's 16 I/O pins. The joystick line names (pins 8-14) align with the GPIO references in the gpio-keys block.patch/u-boot/v2025.04/board_jethubj200/0003-arm-meson-unify-type-being-used-for-socinfo.patch (1)
16-61: LGTM - Clean type unification from upstream.This patch properly unifies the
socinfotype fromunsigned inttou32for consistency with the socinfo API. The upstream provenance (lore.kernel.org link, Neil Armstrong sign-off) indicates this is a well-reviewed change that prepares the codebase for the subsequentmeson_get_socinfo()API changes in patch 0005.patch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patch (2)
74-95: Address or remove the TODO comment.Line 84 contains
// TODO: check if this is correctwhich suggests uncertainty about the implementation. If the implementation has been verified to work correctly (passingNULL, 0tomeson_sm_getmax()when only the return value matters), the TODO should be removed. Otherwise, clarify what needs to be verified.
45-61: Implementation follows established patterns - LGTM.The
meson_sm_getmax()implementation correctly follows the existing Meson SM patterns: obtaining the device, callingsm_call_read(), and handling errors with appropriate logging.patch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patch (4)
33-127: Well-documented API additions - LGTM.The header additions provide clear documentation of the cpu_id format (both in-register and in-efuse views) and the chip_id structure. The size constants align correctly:
MESON_CHIP_ID_SZ (16) = MESON_CPU_ID_SZ (4) + SM_SERIAL_SIZE (12).
131-161: Function promotion to public API - LGTM.The change from static
get_socinfo()to publicmeson_get_socinfo()enables the SM code to access socinfo for chip_id v1 fallback handling.
238-293: Chip ID v1/v2 handling logic - LGTM.The implementation correctly handles both chip_id versions:
- v2: Direct copy from efuse data (16 bytes matching struct size)
- v1 fallback: Reverses serial for endianness, then synthesizes cpu_id from socinfo register values with appropriate byte position mapping
The enum-based byte position mapping (lines 205-218) clearly documents the difference between in-register and in-efuse layouts.
295-315: Serial retrieval refactored with proper backward compatibility - LGTM.The refactored
meson_sm_get_serial()correctly:
- Validates buffer size upfront
- Delegates to the unified chip_id API
- Reverses the serial to big-endian for backward compatibility (as documented in the header)
patch/kernel/archive/meson64-6.19/dt/meson-sm1-jethome-jethub-j200.dts (1)
595-601: LGTM!GPIO line names are now properly labeled with meaningful signal identifiers ("1W_5VOUT_EN", "RS-485_RESET") instead of empty strings, improving hardware documentation and debuggability.
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch (7)
20-33: LGTM!Standard DTB addition to the Makefile for the new JetHub J200 board.
34-52: LGTM!Appropriate U-Boot-specific override to enable SPI flash by switching eMMC to 4-bit mode due to pin muxing constraints.
801-891: LGTM!Board initialization code follows standard Amlogic patterns. The commented-out
#include <common.h>is correct for modern U-Boot wherecommon.his being deprecated in favor of specific headers.
713-769: LGTM!Thermal configuration with reasonable thresholds (passive@70°C, hot@85°C, critical@90°C) and proper use of
THERMAL_NO_LIMITfor CPU cooling maps.
284-301: Verify: LED GPIO polarity differs between U-Boot and kernel DTS.The green LED on GPIOAO_11 is defined with different polarity:
- U-Boot DTS (this patch, line 290):
GPIO_ACTIVE_LOW- Kernel DTS (meson64-6.19):
GPIO_ACTIVE_HIGHThe
GPIO_ACTIVE_*flag should match the hardware design. Please verify which is correct.
1029-1085: LGTM!Clear documentation with build and signing instructions for the JetHub J200 board.
891-1016: Defconfig looks appropriate for the JetHub J200 hardware.The configuration enables necessary subsystems (SPI flash, I2C, RTC, USB, video) and includes vendor-specific options for Amlogic storage and key management.
patch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patch
Outdated
Show resolved
Hide resolved
Signed-off-by: Viacheslav Bocharov <[email protected]>
5af9e0d to
3d16e23
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch (1)
1089-1096: Remove debug printf from core U-Boot code.This patch adds a debug
printf()toregulator_set_enable()indrivers/power/regulator/regulator-uclass.c. This will print on every regulator enable/disable operation across the entire system, which is inappropriate for production and will clutter boot output. This appears to be a leftover debug statement.🐛 Proposed fix
- printf("%s: %s, enable=%d, r=%d\n", __func__, dev->name, enable, ret); + return ret;
🧹 Nitpick comments (1)
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch (1)
808-809: Consider removing commented-out include.The commented-out
#include <common.h>appears to be a development artifact. While harmless, it's cleaner to remove it.♻️ Proposed cleanup
-//#include <common.h> #include <dm.h>
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Jira integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (8)
config/sources/families/jethub.confpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0003-arm-meson-unify-type-being-used-for-socinfo.patchpatch/u-boot/v2025.04/board_jethubj200/0004-arm-meson-sm-get-rid-of-SM_CHIP_ID_SIZE.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patchpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0007-add-missing-u-boot-meson64-patch-for-overlays.patch
✅ Files skipped from review due to trivial changes (1)
- patch/u-boot/v2025.04/board_jethubj200/0007-add-missing-u-boot-meson64-patch-for-overlays.patch
🚧 Files skipped from review as they are similar to previous changes (2)
- patch/u-boot/v2025.04/board_jethubj200/0004-arm-meson-sm-get-rid-of-SM_CHIP_ID_SIZE.patch
- patch/u-boot/v2025.04/board_jethubj200/0003-arm-meson-unify-type-being-used-for-socinfo.patch
🧰 Additional context used
🧠 Learnings (25)
📓 Common learnings
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:76-86
Timestamp: 2025-03-31T22:20:48.475Z
Learning: For the Armbian build project, maintaining consistency with existing patches across U-Boot versions (such as between 2025.01 and 2025.04) is prioritized over refactoring individual patches for code improvements.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub API (https://api.github.com/repos/armbian/build/pulls/{pr_number}/files) to get the complete picture of what files are being added or modified, especially for U-Boot patches that will be applied during the build process.
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-19T13:56:45.124Z
Learning: When reviewing kernel or u-boot version bump PRs in the Armbian build system, check if patches existed in previous kernel version directories (e.g., sunxi-6.12, sunxi-6.13) before describing them as new features. If a patch and the majority of its contents existed previously with no major functionality changes, focus the review on the actual changes: the version bump itself and patch compatibility adjustments. Don't describe existing patches being ported/maintained across versions as new features or drivers—this is misleading. The patches are existing code being re-aligned to work with the new upstream version.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:73-75
Timestamp: 2025-03-31T22:20:41.849Z
Learning: When porting patches between U-Boot versions (like from 2025.01 to 2025.04), rpardini prefers to maintain patches as-is rather than introducing refactoring changes, even when potential improvements are identified. This approach prioritizes consistency and reduces the risk of introducing new issues.
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-17T05:09:02.306Z
Learning: In the Armbian build system, kernel patches (e.g., in patch/kernel/archive/sunxi-6.18/patches.armbian/) contain device tree overlays and other code that have existed for years and are maintained/ported across kernel versions. When reviewing PRs that modify these patch files, focus on the actual changes being made (e.g., Makefile fixes, new additions) rather than reviewing the entire existing content within the patch as if it were new code. The patch file contents are existing, stable code unless explicitly modified in the PR diff.
Learnt from: rpardini
Repo: armbian/build PR: 9159
File: patch/u-boot/u-boot-genio/0026-dts-configs-add-Grinn-GenioSBC-510.patch:161-161
Timestamp: 2026-01-03T20:46:29.189Z
Learning: For the Armbian genio family (config/sources/families/genio.conf and patch/u-boot/u-boot-genio/), when reviewing PRs that include vendor U-Boot patches from Collabora, avoid flagging potential issues in board configurations that are out of scope for the PR's primary focus (e.g., don't flag Genio 510/700 board issues when the PR is focused on radxa-nio-12l/Genio 1200). The maintainer prioritizes keeping vendor patches close to upstream for easier re-copying and maintenance, even if secondary board configs have potential mismatches.
<!-- </add_learning>
Learnt from: EvilOlaf
Repo: armbian/build PR: 8968
File: patch/u-boot/u-boot-sunxi/arm64-dts-sun50i-h6-orangepi.dtsi-Rollback-r_rsb-to-r_i2c.patch:36-36
Timestamp: 2025-11-20T18:20:11.985Z
Learning: The rewrite-patches tool (REWRITE_PATCHES=yes) in the Armbian build system can inadvertently introduce semantic changes when the u-boot/kernel git base revision differs from expected state. The tool applies patches, commits them, and re-exports them using git format-patch, which can cause the re-exported patch to reflect the base revision's state rather than preserving the original patch intent. This is particularly problematic for device tree changes like interrupt specifications. The tool currently lacks validation mechanisms to detect such semantic drift, and affected patches must be manually corrected after rewriting.
Learnt from: rpardini
Repo: armbian/build PR: 8879
File: config/sources/families/uefi-x86.conf:0-0
Timestamp: 2025-11-06T15:36:04.682Z
Learning: As of PR #8879, the uefi-x86 family in the Armbian build system now includes kernel patches for the first time. The current and edge branches for uefi-x86 are specifically configured for Apple T2-based x86 machines, including T2-specific patches from the linux-t2 project and custom kernel configuration options for Apple hardware drivers.
Learnt from: EvilOlaf
Repo: armbian/build PR: 9096
File: patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-add-overlays.patch:4-5
Timestamp: 2025-12-17T15:46:22.709Z
Learning: In Armbian kernel patches, when patches are renamed or reorganized, the old Subject line may be intentionally preserved in the patch header (as a second Subject line) for archival/historical purposes to document the previous patch name. This is an Armbian-specific practice for tracking patch evolution and should not be flagged as an error when the maintainer has intentionally included it for documentation.
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:28-67
Timestamp: 2025-12-13T11:39:08.046Z
Learning: In the Armbian build system for SpacemiT U-Boot patches (patch/u-boot/legacy/u-boot-spacemit-k1/), alignment with mainline U-Boot behavior is prioritized. For example, in boot mode handling, leaving devnum unchanged in the default case (when devtype is cleared) follows mainline conventions rather than explicitly clearing it to handle edge cases.
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:17-25
Timestamp: 2025-12-13T11:45:02.422Z
Learning: In the SpacemiT U-Boot patches for Armbian (patch/u-boot/legacy/u-boot-spacemit-k1/), the environment variable `devnum` is set to the device name string (e.g., "mmc", "nvme") rather than a numeric index, and `distro_bootpart` holds the partition number. This implementation aligns with mainline U-Boot conventions for the SpacemiT platform and has been verified to work correctly by the maintainer.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8417
File: config/boards/orangepi5pro.csc:57-58
Timestamp: 2025-07-23T07:30:52.265Z
Learning: In the Armbian build system, BOOTPATCHDIR can contain board-specific subdirectories (e.g., board_orangepi5pro) for applying patches to specific boards only. The framework automatically checks if such board-specific subdirectories exist for the board being built and applies those patches accordingly.
📚 Learning: 2025-03-31T22:20:41.849Z
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:73-75
Timestamp: 2025-03-31T22:20:41.849Z
Learning: When porting patches between U-Boot versions (like from 2025.01 to 2025.04), rpardini prefers to maintain patches as-is rather than introducing refactoring changes, even when potential improvements are identified. This approach prioritizes consistency and reduces the risk of introducing new issues.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patchconfig/sources/families/jethub.confpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patch
📚 Learning: 2025-12-13T11:45:02.422Z
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:17-25
Timestamp: 2025-12-13T11:45:02.422Z
Learning: In the SpacemiT U-Boot patches for Armbian (patch/u-boot/legacy/u-boot-spacemit-k1/), the environment variable `devnum` is set to the device name string (e.g., "mmc", "nvme") rather than a numeric index, and `distro_bootpart` holds the partition number. This implementation aligns with mainline U-Boot conventions for the SpacemiT platform and has been verified to work correctly by the maintainer.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patchconfig/sources/families/jethub.confpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patch
📚 Learning: 2025-11-08T06:39:24.527Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8886
File: patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-rev01.dts:9-9
Timestamp: 2025-11-08T06:39:24.527Z
Learning: In Armbian's Rockchip vendor kernel branches (rk35xx-vendor), device tree files may not require the same headers as mainline Linux. For example, input key definitions like KEY_BACK and KEY_VOLUMEUP may be handled differently in BSP kernels and don't necessarily need explicit includes like <dt-bindings/input/input.h> that would be required in mainline kernel device trees.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patch
📚 Learning: 2025-12-17T05:09:02.306Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-17T05:09:02.306Z
Learning: In the Armbian build system, kernel patches (e.g., in patch/kernel/archive/sunxi-6.18/patches.armbian/) contain device tree overlays and other code that have existed for years and are maintained/ported across kernel versions. When reviewing PRs that modify these patch files, focus on the actual changes being made (e.g., Makefile fixes, new additions) rather than reviewing the entire existing content within the patch as if it were new code. The patch file contents are existing, stable code unless explicitly modified in the PR diff.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patch
📚 Learning: 2026-01-03T20:46:29.189Z
Learnt from: rpardini
Repo: armbian/build PR: 9159
File: patch/u-boot/u-boot-genio/0026-dts-configs-add-Grinn-GenioSBC-510.patch:161-161
Timestamp: 2026-01-03T20:46:29.189Z
Learning: For the Armbian genio family (config/sources/families/genio.conf and patch/u-boot/u-boot-genio/), when reviewing PRs that include vendor U-Boot patches from Collabora, avoid flagging potential issues in board configurations that are out of scope for the PR's primary focus (e.g., don't flag Genio 510/700 board issues when the PR is focused on radxa-nio-12l/Genio 1200). The maintainer prioritizes keeping vendor patches close to upstream for easier re-copying and maintenance, even if secondary board configs have potential mismatches.
<!-- </add_learning>
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patchconfig/sources/families/jethub.confpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patch
📚 Learning: 2026-01-10T04:28:58.758Z
Learnt from: kasimling
Repo: armbian/build PR: 9177
File: patch/kernel/archive/rockchip64-6.18/rk3588-1212-arm64-dts-Automatic-fan-speed-and-USB-3.0-Type-A-por.patch:37-41
Timestamp: 2026-01-10T04:28:58.758Z
Learning: When reviewing Linux kernel device-tree bindings involving thermal cooling devices, THERMAL_NO_LIMIT can be used for both min_state (lower) and max_state (upper). If used as lower/min_state, the framework converts it to 0; if used as upper/max_state, it converts to the cooling device's max_state. Verify patch entries like: cooling-device = <&fan THERMAL_NO_LIMIT 1> are valid and correctly reflect the intended bounds. Ensure consistent interpretation of NO_LIMIT in both min and max contexts and that the resulting values align with the device's actual limits.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patchpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patch
📚 Learning: 2025-03-31T22:20:48.475Z
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:76-86
Timestamp: 2025-03-31T22:20:48.475Z
Learning: For the Armbian build project, maintaining consistency with existing patches across U-Boot versions (such as between 2025.01 and 2025.04) is prioritized over refactoring individual patches for code improvements.
Applied to files:
config/sources/families/jethub.confpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patch
📚 Learning: 2025-12-13T11:39:08.046Z
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:28-67
Timestamp: 2025-12-13T11:39:08.046Z
Learning: In the Armbian build system for SpacemiT U-Boot patches (patch/u-boot/legacy/u-boot-spacemit-k1/), alignment with mainline U-Boot behavior is prioritized. For example, in boot mode handling, leaving devnum unchanged in the default case (when devtype is cleared) follows mainline conventions rather than explicitly clearing it to handle edge cases.
Applied to files:
config/sources/families/jethub.confpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patch
📚 Learning: 2025-11-20T18:20:11.985Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8968
File: patch/u-boot/u-boot-sunxi/arm64-dts-sun50i-h6-orangepi.dtsi-Rollback-r_rsb-to-r_i2c.patch:36-36
Timestamp: 2025-11-20T18:20:11.985Z
Learning: The rewrite-patches tool (REWRITE_PATCHES=yes) in the Armbian build system can inadvertently introduce semantic changes when the u-boot/kernel git base revision differs from expected state. The tool applies patches, commits them, and re-exports them using git format-patch, which can cause the re-exported patch to reflect the base revision's state rather than preserving the original patch intent. This is particularly problematic for device tree changes like interrupt specifications. The tool currently lacks validation mechanisms to detect such semantic drift, and affected patches must be manually corrected after rewriting.
Applied to files:
config/sources/families/jethub.confpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patch
📚 Learning: 2025-12-19T13:56:45.124Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-19T13:56:45.124Z
Learning: When reviewing kernel or u-boot version bump PRs in the Armbian build system, check if patches existed in previous kernel version directories (e.g., sunxi-6.12, sunxi-6.13) before describing them as new features. If a patch and the majority of its contents existed previously with no major functionality changes, focus the review on the actual changes: the version bump itself and patch compatibility adjustments. Don't describe existing patches being ported/maintained across versions as new features or drivers—this is misleading. The patches are existing code being re-aligned to work with the new upstream version.
Applied to files:
config/sources/families/jethub.confpatch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patchpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patch
📚 Learning: 2025-07-23T07:30:52.265Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8417
File: config/boards/orangepi5pro.csc:57-58
Timestamp: 2025-07-23T07:30:52.265Z
Learning: In the Armbian build system, BOOTPATCHDIR can contain board-specific subdirectories (e.g., board_orangepi5pro) for applying patches to specific boards only. The framework automatically checks if such board-specific subdirectories exist for the board being built and applies those patches accordingly.
Applied to files:
config/sources/families/jethub.conf
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.
Applied to files:
config/sources/families/jethub.confpatch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patch
📚 Learning: 2025-09-12T19:28:38.491Z
Learnt from: Grippy98
Repo: armbian/build PR: 8622
File: config/sources/families/k3.conf:66-66
Timestamp: 2025-09-12T19:28:38.491Z
Learning: In the Armbian k3 family build system (config/sources/families/k3.conf), builds do not fail when TIBOOT3_BOOTCONFIG is unset, even though tiboot3.bin is still listed in UBOOT_TARGET_MAP. The gating mechanism in pre_config_uboot_target__build_first_stage function works as intended to conditionally build/copy tiboot3.bin only when TIBOOT3_BOOTCONFIG is defined.
Applied to files:
config/sources/families/jethub.conf
📚 Learning: 2025-10-14T05:08:11.785Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8754
File: config/boards/bestv-r3300-l.csc:14-16
Timestamp: 2025-10-14T05:08:11.785Z
Learning: In the Armbian build system, BOOTBRANCH_BOARD is a valid framework variable used as a fallback when BOOTBRANCH is unset. The framework checks BOOTBRANCH_BOARD before applying the default bootloader branch value (see config/sources/common.conf). Board configuration files can use BOOTBRANCH_BOARD to specify the bootloader branch.
Applied to files:
config/sources/families/jethub.conf
📚 Learning: 2025-11-13T14:50:44.662Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8925
File: lib/functions/host/docker.sh:141-141
Timestamp: 2025-11-13T14:50:44.662Z
Learning: In the Armbian build system, certain boards have U-Boot that doesn't build correctly on ubuntu:noble but works on ubuntu:jammy. For these boards, DOCKER_ARMBIAN_BASE_IMAGE can be set to "ubuntu:jammy" via an extension file loaded before docker_cli_prepare() runs, allowing legacy toolchains to work while the community works on proper fixes with limited resources.
Applied to files:
config/sources/families/jethub.conf
📚 Learning: 2025-11-10T22:05:40.490Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8913
File: config/sources/families/k3-beagle.conf:16-16
Timestamp: 2025-11-10T22:05:40.490Z
Learning: In the Armbian build system, kernel branches using non-mainline/vendor forks (like BeagleBoard's linux repository) should be named "vendor" or "vendor-rt" rather than "current" or "edge". The "current" and "edge" naming is reserved for mainline kernel branches. This affects both the case statement in family config files (e.g., `vendor | vendor-rt)` instead of `current | current-rt)`) and the corresponding KERNEL_TARGET declarations in board config files.
Applied to files:
config/sources/families/jethub.conf
📚 Learning: 2025-06-12T21:03:39.686Z
Learnt from: djurny
Repo: armbian/build PR: 8287
File: config/bootscripts/boot-sunxi.cmd:148-161
Timestamp: 2025-06-12T21:03:39.686Z
Learning: In Armbian U-Boot bootscripts, the `${cpu}` environment variable is always pre-set by U-Boot (or defaults to a valid value), so additional guards against it being unset are unnecessary.
Applied to files:
config/sources/families/jethub.conf
📚 Learning: 2025-09-14T11:37:35.089Z
Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:65-72
Timestamp: 2025-09-14T11:37:35.089Z
Learning: In the Armbian build system, patch directories referenced in BOOTPATCHDIR and KERNELPATCHDIR configurations can be non-existent without causing build failures. Empty patch directories are also ignored by git, so missing patch directories should not be flagged as errors during code review.
Applied to files:
config/sources/families/jethub.conf
📚 Learning: 2025-12-12T23:09:56.813Z
Learnt from: tabrisnet
Repo: armbian/build PR: 9058
File: config/sources/families/spacemit.conf:39-45
Timestamp: 2025-12-12T23:09:56.813Z
Learning: In Armbian build configs for vendor kernel sources, prefer the following branch naming conventions: use 'vendor' or 'vendor-rt' for stable vendor releases, and 'vendor-edge' for bleeding-edge/pre-release vendor versions. The 'edge' naming without the 'vendor-' prefix is reserved for mainline kernel branches. Apply this pattern to family config files under config/sources/families (e.g., spacemit.conf) to ensure consistent vendor kernel sourcing naming across the repository.
Applied to files:
config/sources/families/jethub.conf
📚 Learning: 2025-06-12T21:08:11.318Z
Learnt from: djurny
Repo: armbian/build PR: 8287
File: config/bootscripts/boot-sunxi.cmd:13-23
Timestamp: 2025-06-12T21:08:11.318Z
Learning: In config/bootscripts/boot-sunxi.cmd the variable name `align_overlap_oboe_avoidance` intentionally uses the acronym “OBOE” (Off-By-One Error); it is not a typo and should not be renamed.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patch
📚 Learning: 2025-12-17T15:46:22.709Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 9096
File: patch/kernel/archive/sunxi-6.18/patches.armbian/arm64-dts-sun50i-h616-add-overlays.patch:4-5
Timestamp: 2025-12-17T15:46:22.709Z
Learning: In Armbian kernel patches, when patches are renamed or reorganized, the old Subject line may be intentionally preserved in the patch header (as a second Subject line) for archival/historical purposes to document the previous patch name. This is an Armbian-specific practice for tracking patch evolution and should not be flagged as an error when the maintainer has intentionally included it for documentation.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patchpatch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patch
📚 Learning: 2025-12-08T04:43:44.601Z
Learnt from: Lemon1151
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-08T04:43:44.601Z
Learning: On the rk3399-fine3399 board, the PWM fan requires cooling-levels to extend to 255 (full duty cycle) in the device tree. With cooling-levels ending at 160, the fan fails to spin up even when temperature exceeds the thermal threshold. This is a hardware characteristic specific to this board's fan configuration.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-08-30T04:13:16.457Z
Learnt from: tabrisnet
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-08-30T04:13:16.457Z
Learning: Armbian kernel configuration files like linux-filogic-current.config are autogenerated overlays on top of arch defconfig. Comments added manually will be lost during future updates by maintainers, and explicit "CONFIG_OPTION is not set" statements aren't needed for mutually exclusive options since these are overlay configs that only specify changes from the base configuration.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
📚 Learning: 2025-10-22T07:56:19.424Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8789
File: config/kernel/linux-sunxi64-edge.config:839-839
Timestamp: 2025-10-22T07:56:19.424Z
Learning: In Linux kernel configuration, some `=y` (builtin) options are infrastructure or feature flags that enable subsystems or features for modular drivers, rather than directly compiling code into the kernel. For example, in Armbian wireless configs, options like CONFIG_SPARD_WLAN_SUPPORT=y, CONFIG_SC23XX=y, CONFIG_WCN_BSP_DRIVER_BUILDIN=y, CONFIG_UNISOC_WIFI_PS=y are module infrastructure/feature enablers, while the actual drivers (CONFIG_WLAN_UWE5621=m, CONFIG_WLAN_UWE5622=m) remain as loadable modules. These infrastructure options don't cause kernel bloat.
Applied to files:
patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch
🔇 Additional comments (12)
config/sources/families/jethub.conf (1)
34-35: LGTM!The U-Boot version bump from v2024.07 to v2025.04 for jethubj200 aligns with the PR objectives. The corresponding patch directory
v2025.04/board_jethubj200/contains the board-specific patches being added in this PR.patch/u-boot/v2025.04/board_jethubj200/0002-add-ssd1306-joystick-and-gpio-expander-support.patch (2)
28-80: LGTM!The gpio-keys-polled node is well-structured with proper references to the GPIO expander
exp24. The button GPIO pin assignments (8-14) match the gpio-line-names defined in the expander node.
88-109: LGTM!The SSD1306 OLED and PCA9535 GPIO expander nodes are correctly configured with appropriate I2C addresses and properties. The
exp24label is properly defined for reference by the gpio-keys node.patch/u-boot/v2025.04/board_jethubj200/0006-arm-meson-add-securemonitor-getmax-function.patch (3)
74-95: TODO comment indicates uncertainty about API usage.Line 84 contains a
// TODO: check if this is correctcomment regarding passingNULL, 0tomeson_sm_getmax(). This suggests the implementation hasn't been fully verified. Since this is new functionality for the JetHub J200, consider verifying this works as expected during testing or documenting the expected behavior.
21-32: LGTM!The new
meson_sm_getmax()API is well-documented with proper function signature and return value semantics.
97-113: LGTM!The command table and help text are properly updated to include the new
getmaxsubcommand with consistent formatting.patch/u-boot/v2025.04/board_jethubj200/0001-Add-JetHub-D2.patch (2)
713-769: LGTM!The thermal zone configuration is well-structured with appropriate trip points (passive at 70°C, hot at 85°C, critical at 90°C) and proper cooling-maps binding CPUs to thermal management.
896-1016: LGTM!The defconfig is comprehensive with appropriate options for the JetHub J200 board including SPI flash, Ethernet, USB, I2C, RTC, and video support.
patch/u-boot/v2025.04/board_jethubj200/0005-arch-arm-meson-support-Amlogic-chip_id-v1-and-v2.patch (4)
1-25: LGTM!This patch has upstream provenance with proper sign-offs from multiple developers including the Amlogic maintainer (Neil Armstrong). The lore.kernel.org reference provides traceability.
183-218: LGTM!The documentation clearly explains the two cpu_id layout flavors (in-register vs in-efuse views) and the byte position mappings. This is essential context for understanding the transformation logic.
238-293: LGTM!The
meson_sm_get_chip_id()implementation properly handles both chip_id v1 and v2 formats:
- Requests v2 first (line 256)
- Falls back gracefully to v1 handling
- Correctly transforms v1 data including serial reversal and cpu_id byte reordering from socinfo
295-315: LGTM!The updated
meson_sm_get_serial()properly delegates tomeson_sm_get_chip_id()and maintains backward compatibility by returning the serial in big-endian order.
|
✅ This PR has been reviewed and approved — all set for merge! |
Description
Update JetHome jethubj200 kernel&uboot patchsets.
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.
Summary by CodeRabbit
New Features
Bug Fixes / Improvements
Chores
✏️ Tip: You can customize this high-level summary in your review settings.