Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update all platforms to latest stable Linux 6.12 #3850

Merged
merged 13 commits into from
Feb 3, 2025
Merged

Conversation

sairon
Copy link
Member

@sairon sairon commented Jan 31, 2025

Update all platforms to 6.12, update kernel configs and patches. Update platforms already migrated in the previous PRs to latest 6.12.11 as well, so extra patch directories can be removed. I suggest going through individual commits rather thank looking at the whole diff when reviewing, as some of the commits introduce too much noise.

Summary by CodeRabbit

  • Kernel & Build Updates

    • Upgraded Linux kernel versions to 6.12.11 and updated build configurations across supported boards for improved performance, security, and compatibility.
  • Hardware Interface Enhancements

    • Enabled new interfaces such as Bluetooth, SPI, and additional UART/I2C support while improving USB onboard device support and power management features.
  • Bug Fixes & Reverts

    • Reverted earlier modifications that adversely affected USB handling to restore reliable device initialization and peripheral functionality.
  • Device Tree & Peripheral Configurations

    • Streamlined hardware definitions, updated LED representations, and integrated enhanced cooling and power support for various devices, including the addition of RNG support for the RK356x SoC.

@sairon sairon added os linux Linux kernel related issue labels Jan 31, 2025
@sairon sairon requested a review from agners January 31, 2025 14:39
@sairon
Copy link
Member Author

sairon commented Jan 31, 2025

Status/TODO:

  • AArch64 (QEMU) looks fine
  • ODROID-N2 looks fine
  • ODROID-M1S doesn't boot - stuck on restoring RNG seed - maybe it's related the TRNG isn't enabled on RK3566 anymore? wasn't stuck, just took very long - explained in a fixing commit, looks good after enabling RNG
  • ODROID-M1 patch for comphy is not applied (missing in defconfig) patches-rockchip are now applied again, everything looks good

Upgrade all Rockchip boards to latest 6.12. Patches for M1S can be dropped, its
DTS has been merged. Same goes for the Rockchip TRNG, it only had to be enabled
in the Green DTS. Patch for broken combphy has been updated for 6.12.y.
Many symbols have been removed between 6.6 and 6.12. Most of them have no use
in Rockchip defconfig, or should be set by other kernel fragments anyway.
Remove all of them, with the exception of USB_ONBOARD_HUB (which was renamed to
USB_ONBOARD_DEV) and FSCACHE (which was changed from tristate to bool).
Removed couple of deprecated/unrelated kernel options.
Cleaned up symbols unrelated/deprecated in 6.12 from defconfig.
The usual defconfigs suspects had to been removed and the regulator patch for
ethernet needed a minor update after refactoring in upstream.
Needed defconfig cleanup for 6.12, otherwise no changes.
This way the extra patches directory can be removed too.
@sairon sairon force-pushed the linux-6.12-everything branch from 2aa5423 to c84c01e Compare February 3, 2025 10:09
The TRNG on RK3566 supposedly [1] has low quality, that's why it's disabled in
upstream for this SoC. We had it enabled in the past and without it, the boot
is delayed by quite a lot. Enable it again for now and investigate the RNG
issues later.

[1] https://patchew.org/linux/[email protected]/
@sairon sairon marked this pull request as ready for review February 3, 2025 10:11
@sairon
Copy link
Member Author

sairon commented Feb 3, 2025

Build finished without errors for all platforms (just the missing comphy patch and the RNG patch for M1S are missíng there, resulting in partial breakage on M1/M1S), artifacts are available here: https://github.com/home-assistant/operating-system/actions/runs/13074944941

Copy link

coderabbitai bot commented Feb 3, 2025

📝 Walkthrough

Walkthrough

The commit updates multiple board configurations and device tree sources across the kernel and Buildroot environments. Kernel version numbers are upgraded primarily to 6.12.11, and several configuration options have been added, removed, or modified. Notable changes include enabling/disabling hardware features (e.g., USB onboard devices, Bluetooth, TRNG, LED representation, power button, UART/I2C nodes), adjustments to voltage thresholds and reset handlers, and reversion of prior modifications that impacted DMA for UARTs and USB core functions. Additionally, numerous defconfigs and DTS files have been updated to align with mainline requirements.

Changes

File(s) Change Summary
Documentation/kernel.md Updated kernel version numbers for various boards (e.g., Open Virtual Appliance, Home Assistant Green, Tinker Board, ODROID variants) to 6.12.11.
buildroot-external/board/arm-uefi/generic-aarch64/kernel.config Enabled USB onboard support by activating CONFIG_USB_ONBOARD_DEV and CONFIG_USB_ONBOARD_DEV_USB5744.
buildroot-external/board/asus/tinker/kernel.config,
…/0001-Revert-ARM-dts-rockchip-use-DMA-channels-for-UARTs-f.patch,
…/0002-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch,
…/0003-ARM-dts-rockchip-enable-I2C1-4-on-rk3288-tinker.patch,
…/0004-RK3288-DTSI-rk3288.dtsi-Add-missing-SPI2-pinctrl.patch,
…/0005-ARM-DTSI-rk3288-tinker-Improving-the-CPU-max-voltage.patch,
…/0006-drivers-mmc-dw-mci-rockchip-Handle-ASUS-Tinkerboard-.patch,
…/0007-ARM-dts-rockchip-Add-Bluetooth-to-rk3288-tinker.patch,
…/0008-usb-audio-add-ASUS-TinkerBoard-s-ALC4040.patch
Removed deprecated kernel options (AppleTalk, IPDDP, etc.), reverted UART DMA configurations, and added new SPI, I2C, Bluetooth, CPU voltage, reboot handler, and audio shortname logic for the Asus Tinker board.
buildroot-external/board/hardkernel/kernel-amlogic.config Removed Broadcom STB, DesignWare I2C, and related configuration options.
buildroot-external/board/hardkernel/odroid-m1s/patches/linux/{0001,0003,0005}-*.patch Enabled TRNG in DTS, fixed vdd_cpu regulator configuration, and removed deprecated SNPS reset properties; some older patches were removed.
buildroot-external/board/hardkernel/odroid-xu4/patches/linux/0001-ODROID-XU4-regulator-s2mps11-add-ethernet-power-rese.patch Added a reboot handler to toggle Ethernet power during shutdown.
buildroot-external/board/hardkernel/patches/linux/{0006,0007,0008,0009}-*.patch For ODROID-C4, ODROID-C2, and Meson GX boards: added new UART/I2C nodes, updated aliases, and fixed pinctrl settings.
buildroot-external/board/khadas/kernel-vim.config Removed support for DesignWare I2C, Broadcom STB, and LED trigger audio options.
buildroot-external/board/nabucasa/green/patches/linux/{0001,0002,0003,0004,0005,0006}-*.patch Added a new DTS for the NabuCasa Green board, updated PMIC init settings, removed spiflash partitions, reversed pwrkey polarity, enabled HS200 mode, and improved LED representation.
buildroot-external/board/pc/patches/linux/0001-iwlwifi-Make-missed-beacon-timeout-configurable.patch Introduced a module parameter for configurable missed beacon timeout in the iwlwifi driver.
Multiple Buildroot config files (generic_aarch64_defconfig, generic_x86_64_defconfig, green_defconfig, khadas_vim3_defconfig, odroid_*_defconfig, ova_defconfig, tinker_defconfig) Updated kernel version to 6.12.11 and adjusted kernel config fragment paths accordingly.
buildroot-external/kernel/v6.12.y/kernel-arm64-rockchip.config Removed several options and updated FSCACHE and USB onboard device configurations.
buildroot-external/patches-rockchip/linux/{0001-Revert-phy-rockchip-naneng-combphy-fix-phy-reset.patch,0001-hwrng-add-Rockchip-SoC-hwrng-driver.patch,0002-arm64-dts-rockchip-add-DT-entry-for-RNG-to-RK356x.patch,0003-dt-bindings-RNG-Add-Rockchip-RNG-bindings.patch} Updated PHY reset calls; added Rockchip TRNG driver support, DT entry, and device tree bindings for RNG.
buildroot-external/patches/linux/6.12.11/{0001-ipv6-add-option-to-explicitly-enable-reachability-te.patch,0002-Revert-USB-core-changes-causing-issues-with-Z-Wave.m.patch},
buildroot-external/patches/linux/6.6.73/{0001-ipv6-add-option-to-explicitly-enable-reachability-te.patch,0002-Revert-USB-core-changes-causing-issues-with-Z-Wave.m.patch}
Added the IPV6_REACHABILITY_PROBE option and reverted USB core changes that affected Z-Wave functionality (with older patches removed).

Sequence Diagram(s)

sequenceDiagram
    participant RouteLookup as Route Lookup
    participant IPv6Config as IPv6 Config
    participant RouteEngine as Route Engine
    RouteLookup->>IPv6Config: Check forwarding status\nand IPV6_REACHABILITY_PROBE flag
    alt Either forwarding disabled or flag enabled
        IPv6Config-->>RouteLookup: Approved for probing
        RouteLookup->>RouteEngine: Set RT6_LOOKUP_F_REACHABLE flag
    else
        IPv6Config-->>RouteLookup: Probing not enabled
    end
Loading
sequenceDiagram
    participant Probe as Probe Function
    participant RebootHandler as Reboot Handler
    participant PMIC as PMIC Ethernet Reset Function
    Probe->>RebootHandler: Register reboot handler during probe
    RebootHandler->>PMIC: Issue command to turn off Ethernet power
    PMIC-->>PMIC: Wait 10ms delay
    PMIC->>RebootHandler: Command to turn on Ethernet power
    RebootHandler->>Probe: Ethernet power reset complete
Loading

📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c84c01e and 5b4c03b.

📒 Files selected for processing (2)
  • buildroot-external/kernel/v6.12.y/kernel-arm64-rockchip.config (2 hunks)
  • buildroot-external/kernel/v6.6.y/device-support-wireless-pci.config (0 hunks)
💤 Files with no reviewable changes (1)
  • buildroot-external/kernel/v6.6.y/device-support-wireless-pci.config
🔇 Additional comments (2)
buildroot-external/kernel/v6.12.y/kernel-arm64-rockchip.config (2)

3147-3147: USB Onboard Device Configuration Update

The kernel configuration has been updated by replacing the onboard USB hub option with the onboard device option (CONFIG_USB_ONBOARD_DEV=m). This change aligns with the broader update across configurations to standardize USB support on ARM64 Rockchip platforms. Please verify that any references in documentation or related configuration files are updated accordingly.


3868-3868: FSCACHE Built-In Configuration Change

The configuration for FSCACHE has been modified to be built into the kernel (CONFIG_FSCACHE=y) rather than built as a module. This update follows the upstream trend for enabling FSCACHE directly in the kernel for improved performance or reliability. Please confirm that this change is compatible with the rest of the system’s caching and file system requirements.


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai or @coderabbitai title anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🔭 Outside diff range comments (1)
buildroot-external/board/asus/tinker/patches/linux/0002-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch (1)

33-37: Use standard SPI device compatible string.

The custom compatible string "rockchip,spi_tinker" is non-standard. Consider using the standard "spidev" compatible string if this is for userspace SPI access.

-		compatible = "rockchip,spi_tinker";
+		compatible = "spidev";
🧹 Nitpick comments (9)
buildroot-external/board/hardkernel/odroid-xu4/patches/linux/0001-ODROID-XU4-regulator-s2mps11-add-ethernet-power-rese.patch (2)

31-80: Define constants for magic numbers and optimize register operations.

The function implementation is solid with proper error handling, but could be improved:

  1. Define constants for magic numbers:
+#define S2MPS11_LDO_ENABLE_MASK 0xFF
+#define S2MPS11_LDO_DISABLE_MASK 0x3F
+#define S2MPS11_LDO_ON_VALUE 0x72
  1. The initial register reads (L15CTRL, L17CTRL) store values in reg_val but don't use them. Consider removing these reads if they're not necessary for validation.

89-93: Use msleep instead of mdelay for better system responsiveness.

While the power cycle sequence is correct, using mdelay for a 10ms delay in a probe function can impact system responsiveness. Consider using msleep instead:

 	dev_info(&pdev->dev, "Resetting Ethernet\n");
 	s2mps11_pmic_ethonoff(pdev, false);
-	mdelay(10);
+	msleep(10);
 	s2mps11_pmic_ethonoff(pdev, true);

mdelay busy-waits and blocks the CPU, while msleep allows other tasks to run during the delay.

buildroot-external/board/asus/tinker/patches/linux/0008-usb-audio-add-ASUS-TinkerBoard-s-ALC4040.patch (1)

23-29: Improve code style while maintaining functionality.

The identification of the onboard ALC4040 CODEC is good, but the code style could be improved.

Consider these style improvements:

-	/* Tinker Board ALC4040 CODEC	*/
-
-	if(USB_ID_VENDOR(chip->usb_id) == 0x0bda &&
-		USB_ID_PRODUCT(chip->usb_id) == 0x481a) {
-			strlcat(card->shortname, " OnBoard", sizeof(card->shortname));
-	}
-	
+	/* Tinker Board ALC4040 CODEC */
+	if (USB_ID_VENDOR(chip->usb_id) == 0x0bda &&
+	    USB_ID_PRODUCT(chip->usb_id) == 0x481a) {
+		strlcat(card->shortname, " OnBoard", sizeof(card->shortname));
+	}
buildroot-external/board/hardkernel/patches/linux/0008-arm64-dts-amlogic-add-uartA-uartC-to-ODROID-C2.patch (1)

19-20: LGTM! Consider adding pin documentation.

The UART nodes are well-structured with proper aliases and pin configurations. Consider adding a comment documenting the physical pin assignments for easier hardware integration.

Also applies to: 28-38

buildroot-external/board/hardkernel/patches/linux/0002-arm64-dts-meson-g12b-add-GPIO-fan-support.patch (1)

23-32: Consider making the fan status configurable.

While the implementation is correct, having the fan enabled by default (status = "okay") might not be suitable for all configurations. Consider:

  1. Making the status configurable through board-specific overlays
  2. Adding documentation about the binary nature of the control (on/off only)
buildroot-external/board/asus/tinker/patches/linux/0002-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch (1)

34-34: Fix inconsistent register format.

The register format is inconsistent between the two SPI device nodes:

  • spidev@0 uses reg = <0x0 0>
  • spidev@1 uses reg = <0x1>

Use consistent format:

-		reg = <0x0 0>;
+		reg = <0x0>;

Also applies to: 41-41

buildroot-external/board/hardkernel/patches/linux/0003-arm64-dts-meson-g12b-odroid-n2-add-fan-as-cooling-de.patch (1)

27-63: LGTM! Well-structured thermal management implementation.

The thermal management configuration is well-designed with:

  • Proper temperature threshold (65°C) and hysteresis (5°C)
  • Progressive cooling strategy using multiple trip points
  • Comprehensive cooling maps covering both CPU cores and fan

Consider monitoring thermal throttling events in production to validate these thresholds. You might want to collect metrics on:

  • Frequency of fan activation
  • Time spent in each thermal zone
  • Impact on CPU performance
    This data could help fine-tune the thermal policy if needed.
buildroot-external/board/asus/tinker/patches/linux/0006-drivers-mmc-dw-mci-rockchip-Handle-ASUS-Tinkerboard-.patch (2)

65-65: Replace debug messages with meaningful logs.

The current debug messages ("Meow" and "woeM") should be replaced with descriptive logs that indicate the actual operation being performed.

-	printk(KERN_ERR "Meow.\n");
+	printk(KERN_INFO "dw_mci_rockchip: Powering off MMC before reboot\n");

-	printk(KERN_ERR "woeM.\n");
+	printk(KERN_INFO "dw_mci_rockchip: MMC power sequence completed\n");

Also applies to: 77-77


43-101: LGTM! Well-implemented reboot handler for SDMMC hardware.

The implementation correctly handles the SDMMC power state during reboot:

  • Proper machine compatibility check
  • Correct power sequencing with delay
  • Appropriate voltage settings

Consider adding error handling for regulator operations to make the implementation more robust.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f56130a and c84c01e.

📒 Files selected for processing (56)
  • Documentation/kernel.md (1 hunks)
  • buildroot-external/board/arm-uefi/generic-aarch64/kernel.config (1 hunks)
  • buildroot-external/board/asus/tinker/kernel.config (0 hunks)
  • buildroot-external/board/asus/tinker/patches/linux/0001-Revert-ARM-dts-rockchip-use-DMA-channels-for-UARTs-f.patch (5 hunks)
  • buildroot-external/board/asus/tinker/patches/linux/0002-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch (2 hunks)
  • buildroot-external/board/asus/tinker/patches/linux/0003-ARM-dts-rockchip-enable-I2C1-4-on-rk3288-tinker.patch (2 hunks)
  • buildroot-external/board/asus/tinker/patches/linux/0004-RK3288-DTSI-rk3288.dtsi-Add-missing-SPI2-pinctrl.patch (2 hunks)
  • buildroot-external/board/asus/tinker/patches/linux/0005-ARM-DTSI-rk3288-tinker-Improving-the-CPU-max-voltage.patch (2 hunks)
  • buildroot-external/board/asus/tinker/patches/linux/0006-drivers-mmc-dw-mci-rockchip-Handle-ASUS-Tinkerboard-.patch (4 hunks)
  • buildroot-external/board/asus/tinker/patches/linux/0007-ARM-dts-rockchip-Add-Bluetooth-to-rk3288-tinker.patch (2 hunks)
  • buildroot-external/board/asus/tinker/patches/linux/0008-usb-audio-add-ASUS-TinkerBoard-s-ALC4040.patch (2 hunks)
  • buildroot-external/board/hardkernel/kernel-amlogic.config (0 hunks)
  • buildroot-external/board/hardkernel/odroid-m1s/patches/linux/0001-arm64-dts-rockchip-Enable-Rockchip-TRNG-on-ODROID-M1.patch (1 hunks)
  • buildroot-external/board/hardkernel/odroid-m1s/patches/linux/0001-arm64-dts-rockchip-Import-Hardkernel-ODROID-M1S-boar.patch (0 hunks)
  • buildroot-external/board/hardkernel/odroid-m1s/patches/linux/0002-arm64-dts-clean-up-as-required-for-mainline-linux.patch (0 hunks)
  • buildroot-external/board/hardkernel/odroid-m1s/patches/linux/0003-arm64-dts-fix-vdd_cpu-regulator-for-mainline.patch (0 hunks)
  • buildroot-external/board/hardkernel/odroid-m1s/patches/linux/0005-Remove-deprecated-snps-reset-properties.patch (0 hunks)
  • buildroot-external/board/hardkernel/odroid-xu4/patches/linux/0001-ODROID-XU4-regulator-s2mps11-add-ethernet-power-rese.patch (3 hunks)
  • buildroot-external/board/hardkernel/patches/linux/0001-arm64-dts-meson-g12b-add-power-button-support.patch (2 hunks)
  • buildroot-external/board/hardkernel/patches/linux/0002-arm64-dts-meson-g12b-add-GPIO-fan-support.patch (2 hunks)
  • buildroot-external/board/hardkernel/patches/linux/0003-arm64-dts-meson-g12b-odroid-n2-add-fan-as-cooling-de.patch (2 hunks)
  • buildroot-external/board/hardkernel/patches/linux/0004-arm64-dts-meson-add-uart_A-node.patch (2 hunks)
  • buildroot-external/board/hardkernel/patches/linux/0005-arm64-dts-meson-add-i2c2-node-to-ODROID-N2-N2.patch (2 hunks)
  • buildroot-external/board/hardkernel/patches/linux/0006-ODROID-C4-arm64-dts-add-uart_A-node.patch (3 hunks)
  • buildroot-external/board/hardkernel/patches/linux/0007-ODROID-C4-arm64-dts-add-i2c2-i2c3-node.patch (3 hunks)
  • buildroot-external/board/hardkernel/patches/linux/0008-arm64-dts-amlogic-add-uartA-uartC-to-ODROID-C2.patch (3 hunks)
  • buildroot-external/board/hardkernel/patches/linux/0009-arm64-dts-amlogic-meson-gx-add-missing-pins-for-I2C-.patch (3 hunks)
  • buildroot-external/board/khadas/kernel-vim.config (0 hunks)
  • buildroot-external/board/nabucasa/green/patches/linux/0001-arm64-dts-rockchip-Add-NabuCasa-Green-board.patch (3 hunks)
  • buildroot-external/board/nabucasa/green/patches/linux/0002-drivers-mfd-rk808-set-PWRON_LP_OFF_TIME-12s.patch (3 hunks)
  • buildroot-external/board/nabucasa/green/patches/linux/0003-arch-arm64-dts-green-Remove-spiflash-partitions.patch (2 hunks)
  • buildroot-external/board/nabucasa/green/patches/linux/0004-Input-rk805-pwrkey-reverse-polarity-of-pwrkey.patch (2 hunks)
  • buildroot-external/board/nabucasa/green/patches/linux/0005-green-emmc-use-HS200-mode.patch (2 hunks)
  • buildroot-external/board/nabucasa/green/patches/linux/0006-arch-arm64-dts-green-Improve-LED-representation.patch (2 hunks)
  • buildroot-external/board/pc/patches/linux/0001-iwlwifi-Make-missed-beacon-timeout-configurable.patch (0 hunks)
  • buildroot-external/configs/generic_aarch64_defconfig (2 hunks)
  • buildroot-external/configs/generic_x86_64_defconfig (1 hunks)
  • buildroot-external/configs/green_defconfig (1 hunks)
  • buildroot-external/configs/khadas_vim3_defconfig (1 hunks)
  • buildroot-external/configs/odroid_c2_defconfig (1 hunks)
  • buildroot-external/configs/odroid_c4_defconfig (1 hunks)
  • buildroot-external/configs/odroid_m1_defconfig (1 hunks)
  • buildroot-external/configs/odroid_m1s_defconfig (1 hunks)
  • buildroot-external/configs/odroid_n2_defconfig (1 hunks)
  • buildroot-external/configs/odroid_xu4_defconfig (1 hunks)
  • buildroot-external/configs/ova_defconfig (1 hunks)
  • buildroot-external/configs/tinker_defconfig (1 hunks)
  • buildroot-external/kernel/v6.12.y/kernel-arm64-rockchip.config (2 hunks)
  • buildroot-external/patches-rockchip/linux/0001-Revert-phy-rockchip-naneng-combphy-fix-phy-reset.patch (2 hunks)
  • buildroot-external/patches-rockchip/linux/0001-hwrng-add-Rockchip-SoC-hwrng-driver.patch (0 hunks)
  • buildroot-external/patches-rockchip/linux/0002-arm64-dts-rockchip-add-DT-entry-for-RNG-to-RK356x.patch (0 hunks)
  • buildroot-external/patches-rockchip/linux/0003-dt-bindings-RNG-Add-Rockchip-RNG-bindings.patch (0 hunks)
  • buildroot-external/patches/linux/6.12.11/0001-ipv6-add-option-to-explicitly-enable-reachability-te.patch (3 hunks)
  • buildroot-external/patches/linux/6.12.11/0002-Revert-USB-core-changes-causing-issues-with-Z-Wave.m.patch (22 hunks)
  • buildroot-external/patches/linux/6.6.73/0001-ipv6-add-option-to-explicitly-enable-reachability-te.patch (0 hunks)
  • buildroot-external/patches/linux/6.6.73/0002-Revert-USB-core-changes-causing-issues-with-Z-Wave.m.patch (0 hunks)
💤 Files with no reviewable changes (13)
  • buildroot-external/patches/linux/6.6.73/0001-ipv6-add-option-to-explicitly-enable-reachability-te.patch
  • buildroot-external/patches-rockchip/linux/0002-arm64-dts-rockchip-add-DT-entry-for-RNG-to-RK356x.patch
  • buildroot-external/patches/linux/6.6.73/0002-Revert-USB-core-changes-causing-issues-with-Z-Wave.m.patch
  • buildroot-external/board/hardkernel/odroid-m1s/patches/linux/0001-arm64-dts-rockchip-Import-Hardkernel-ODROID-M1S-boar.patch
  • buildroot-external/board/khadas/kernel-vim.config
  • buildroot-external/board/pc/patches/linux/0001-iwlwifi-Make-missed-beacon-timeout-configurable.patch
  • buildroot-external/patches-rockchip/linux/0003-dt-bindings-RNG-Add-Rockchip-RNG-bindings.patch
  • buildroot-external/board/hardkernel/odroid-m1s/patches/linux/0003-arm64-dts-fix-vdd_cpu-regulator-for-mainline.patch
  • buildroot-external/patches-rockchip/linux/0001-hwrng-add-Rockchip-SoC-hwrng-driver.patch
  • buildroot-external/board/hardkernel/kernel-amlogic.config
  • buildroot-external/board/hardkernel/odroid-m1s/patches/linux/0002-arm64-dts-clean-up-as-required-for-mainline-linux.patch
  • buildroot-external/board/asus/tinker/kernel.config
  • buildroot-external/board/hardkernel/odroid-m1s/patches/linux/0005-Remove-deprecated-snps-reset-properties.patch
🧰 Additional context used
📓 Path-based instructions (1)
Documentation/kernel.md (6)

Pattern */**(html|markdown|md): - For instructional content in documentation, use a direct and authoritative tone. Avoid expressions of politeness such as 'may' or 'please', and ensure the goal of the instruction is fronted.

  • Apply the Microsoft Style Guide to ensure documentation maintains clarity and conciseness.
  • In step-by-step instructions, front the location phrase in the instructional sentence.
  • In step-by-step instructions, front the 'goal' in the instructional sentence.
  • In step-by-step instructions, if in doubt what to front, front the 'goal' before the location phrase in the instructional sentence.
  • do not hyphenate terms like 'top-right' or 'bottom-left' with 'corner'

Pattern */**(html|markdown|md): - Use bold to mark UI strings.

  • If "" are used to mark UI strings, replace them by bold.

Pattern */**(html|markdown|md): - Be brief in your replies and don't add fluff like "thank you for..." and "Please let me know if"


Pattern */**(html|markdown|md): - Use sentence-style capitalization also in headings.


Pattern */**(html|markdown|md): do not comment on HTML used for icons


Pattern */**(html|markdown|md): Avoid flagging inline HTML for embedding videos in future reviews for this repository.

🔇 Additional comments (54)
buildroot-external/board/hardkernel/odroid-xu4/patches/linux/0001-ODROID-XU4-regulator-s2mps11-add-ethernet-power-rese.patch (1)

1-19: LGTM! Well-structured commit message.

The commit message clearly explains the problem (Ethernet detection issues on warm boot), the solution (power reset routines), and includes proper attribution with signed-off lines. The update note for Linux 6.11+ compatibility is helpful.

buildroot-external/board/nabucasa/green/patches/linux/0004-Input-rk805-pwrkey-reverse-polarity-of-pwrkey.patch (4)

1-13: Well-structured patch with clear commit message.

The commit message effectively communicates:

  • The problem: power key is low active
  • The impact: involuntary long presses in user space
  • The solution: reversing the logic

18-27: Correct implementation of low-active power key behavior in fall handler.

The change in pwrkey_fall_irq properly reflects the low-active nature of the power key by reporting KEY_POWER as not pressed (0) when a falling edge is detected.


27-36: Correct implementation of low-active power key behavior in rise handler.

The change in pwrkey_rise_irq maintains symmetry with the fall handler by reporting KEY_POWER as pressed (1) when a rising edge is detected, completing the logical reversal for low-active behavior.


1-36: Verify the power key behavior in the target environment.

While the changes are logically correct, it would be beneficial to verify:

  1. The power key functions as expected on actual hardware
  2. No unintended side effects on power management features
buildroot-external/patches/linux/6.12.11/0002-Revert-USB-core-changes-causing-issues-with-Z-Wave.m.patch (4)

36-64: Double-check root hub descriptor logic after reversion.

These lines revert the previous changes related to fetching and storing device descriptors in register_root_hub(). Although this patch aims to fix known Z-Wave issues, reverting these commits could potentially restore older handling quirks or race conditions. Please verify that root hub initialization remains stable with different USB speeds and device classes.

As a follow-up, you might run a stress test script that repeatedly binds/unbinds a variety of USB devices (including Z-Wave sticks and standard flash drives) to confirm no regressions were reintroduced.


637-648: Consistent function signature for usb_get_device_descriptor.

Reverting the signature in usb.h ensures consistency with the reverted message.c logic. However, confirm that any external modules or out-of-tree drivers that might have started depending on the changed signature do not break, as userland documentation or external kernel modules are sometimes behind these changes.

If you maintain out-of-tree drivers, compile them in a staging environment against this revert to confirm no build or runtime errors occur.


580-633: Ensure reverted usb_get_device_descriptor changes don’t break descriptor reads elsewhere.

Rolling back to the older version of usb_get_device_descriptor reintroduces a synchronous call that returns the number of bytes received (or an error). This could fix the conflicts with the Z-Wave stick but might cause subtle issues if any other subsystem depended on the updated API’s behavior. Please verify that no other in-tree changes rely on the newer descriptor retrieval approach.

A quick codebase check can confirm that no references to the removed return type or signature remain:

✅ Verification successful

USB Descriptor API Reversion Verified

  • The search confirms that all updates to the usb_get_device_descriptor API have been localized to the revert patch files.
  • No other in-tree references expect the newer signature; all call sites now use the reverted, synchronous signature.
  • Descriptor reads elsewhere should remain unaffected by this revert.
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for references to the new signature to ensure they don’t exist
rg -A 3 -B 3 "usb_get_device_descriptor"

Length of output: 20867


68-333: Watch for reintroduced concurrency issues or earlier initialization pitfalls in hub.c.

This extensive reversion brings back an older approach to reading device descriptors, especially around bMaxPacketSize0 and race handling in hub_port_init(). While it fixes conflicts with specific hardware (Z-Wave sticks), it may also restore concurrency issues that the previous commits aimed to resolve (e.g., a race in overwriting udev->descriptor). To avoid surprises, consider thoroughly testing hot-plug scenarios, especially with multi-port hubs, high-speed, and SuperSpeed devices.

Run a specialized hot-plug script:

Expect to see no kernel panics, no USB enumeration failures, and consistent device descriptor data.

buildroot-external/board/nabucasa/green/patches/linux/0005-green-emmc-use-HS200-mode.patch (1)

17-19: Verify HS200 support and signal integrity.

By adding mmc-hs200-1_8v;, the eMMC interface now operates in HS200 mode. This can significantly boost throughput but also demands that signaling and board-level constraints (voltage rails, line termination, etc.) are properly configured. Verify that the board's design supports HS200 and run stress tests to confirm reliable operation under load.

Ensure data integrity in HS200 mode by reading/writing large files repeatedly. Look for potential CRC errors or throughput inconsistencies in dmesg logs.

buildroot-external/board/asus/tinker/patches/linux/0003-ARM-dts-rockchip-enable-I2C1-4-on-rk3288-tinker.patch (2)

21-23: Confirm pin configuration for newly enabled I2C1.

Enabling I2C1 is straightforward, but validate that the associated pins are configured in the pinmux to match this “okay” status. If mismatched or missing pinmux settings exist, the bus might remain nonfunctional.

Use an I2C probe tool or attach a known I2C device and confirm it enumerates on bus 1.


29-31: Validate usage of I2C4 from the 40-pin header.

Similarly, enabling I2C4 from the expansion header is helpful for add-on boards. Please verify the node definitions and any default pin assignments. Some expansions might require further pull-up resistor configurations.

buildroot-external/board/hardkernel/patches/linux/0009-arm64-dts-amlogic-meson-gx-add-missing-pins-for-I2C-.patch (1)

17-21: LGTM! Good addition of missing I2C pin configurations.

The patch properly adds the required pinctrl settings for both I2C A and B interfaces, which is essential for their functionality. The changes are consistent and follow device tree conventions.

Also applies to: 26-30

buildroot-external/board/hardkernel/patches/linux/0006-ODROID-C4-arm64-dts-add-uart_A-node.patch (1)

17-22: LGTM! Well-structured UART enhancement.

The patch properly adds support for a second serial interface (UART_A) with appropriate pin configurations while maintaining the existing UART_AO setup. The alias ordering change preserves backward compatibility.

Also applies to: 29-33

buildroot-external/board/asus/tinker/patches/linux/0005-ARM-DTSI-rk3288-tinker-Improving-the-CPU-max-voltage.patch (1)

17-25: Verify implications of increased CPU voltage.

While the change is straightforward, increasing the maximum CPU voltage from 1.4V to 1.45V could impact power consumption and thermal characteristics.

Please ensure:

  1. The voltage increase is necessary and safe for the hardware
  2. Thermal management can handle the potential increased heat output
  3. Power supply specifications support the higher voltage requirement
buildroot-external/board/hardkernel/patches/linux/0004-arm64-dts-meson-add-uart_A-node.patch (3)

6-7: LGTM! Well-documented hardware configuration.

The commit message clearly documents that UART_A is available through J3 pin 8/10 and is configured as UART by default.


21-23: LGTM! Proper alias configuration.

The serial1 alias is correctly added to reference the uart_A node, maintaining consistency with the existing serial0 alias.


30-34: LGTM! Standard UART node configuration.

The uart_A node is properly configured with:

  • Status set to "okay"
  • Pinctrl settings using uart_a_pins
  • Default pinctrl-names
buildroot-external/board/asus/tinker/patches/linux/0004-RK3288-DTSI-rk3288.dtsi-Add-missing-SPI2-pinctrl.patch (2)

6-7: LGTM! Clear documentation of the missing pin.

The commit message clearly identifies the missing spi2_cs1 pin reference in the SPI2 pinctrl configuration.


24-25: LGTM! Complete SPI2 pinctrl configuration.

The patch correctly adds the missing spi2_cs1 pin to the existing pinctrl-0 property, completing the SPI2 pin configuration.

buildroot-external/board/hardkernel/patches/linux/0005-arm64-dts-meson-add-i2c2-node-to-ODROID-N2-N2.patch (2)

6-8: LGTM! Detailed hardware documentation.

The commit message provides clear documentation of:

  • Pin locations (J2 connector pins 3 and 5)
  • GPIO connections (GPIOX_17/18)
  • I2C instance selection

23-27: LGTM! Standard I2C node configuration.

The i2c2 node is properly configured with:

  • Status set to "okay"
  • Pinctrl settings using i2c2_sda_x_pins and i2c2_sck_x_pins
  • Default pinctrl-names
buildroot-external/board/hardkernel/odroid-m1s/patches/linux/0001-arm64-dts-rockchip-Enable-Rockchip-TRNG-on-ODROID-M1.patch (2)

9-11: LGTM! Clear context for the change.

The commit message explains:

  • Previous state (RNG disabled in 6.6 kernel)
  • Current state (enabled only in rk3568.dtsi)
  • Need for enabling on RK3566 ODROID-M1S

26-28: LGTM! Simple RNG node enablement.

The rng node is correctly enabled with status set to "okay".

buildroot-external/board/hardkernel/patches/linux/0001-arm64-dts-meson-g12b-add-power-button-support.patch (1)

23-32: LGTM! Well-structured power button implementation.

The GPIO configuration and polling setup look correct. The 100ms polling interval provides a good balance between responsiveness and system load.

buildroot-external/patches-rockchip/linux/0001-Revert-phy-rockchip-naneng-combphy-fix-phy-reset.patch (1)

28-29: LGTM! Monitor for upstream fix.

The revert is necessary to fix USB3 and PCIe regression. However, we should:

  1. Track the upstream discussion for a proper fix
  2. Consider adding a comment in the code about this being a temporary revert

Let's check if there are any related changes in the upstream kernel:

buildroot-external/board/nabucasa/green/patches/linux/0003-arch-arm64-dts-green-Remove-spiflash-partitions.patch (2)

18-21: Verify SPI flash timing changes.

The SPI flash frequency is reduced from 100MHz to 25MHz and rx bus width from 4 to 1. While this may improve stability, it could impact performance.

Please confirm:

  1. The flash chip's specifications support these parameters
  2. These changes don't significantly impact boot time
  3. The changes resolve any stability issues
✅ Verification successful

SPI flash timing changes verified.

  • The DTS and U-Boot patches consistently reduce the SPI flash frequency to 25MHz and rx bus width to 1, which aligns with a conservative, stable setting for generic JEDEC SPI NOR devices.
  • Given that the flash chip’s maximum frequency is typically higher than 25MHz, these parameters are well within its operating range and should not adversely affect boot time.
  • The coordinated changes in both Linux and U-Boot support the intention to address stability issues without compromising system boot performance.
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for SPI flash chip model/specs in DTS and documentation
rg -A 5 "jedec,spi-nor" 

Length of output: 4634


24-49: Verify partition removal impact.

Removing the SPI flash partitions suggests the layout is now managed elsewhere (e.g., U-Boot).

Please confirm:

  1. The bootloader is properly configured to handle partitioning
  2. This change doesn't break the boot process
  3. The filesystem partition is properly handled
✅ Verification successful

Partition Removal Verification: U-Boot Handles the Layout

  • The Linux DTS patch removes the SPI flash partition definitions (SPL, U-Boot Env, U-Boot, splash, Filesystem), and corresponding U-Boot patches (e.g. in the nabucasa/green board’s u-boot DTS additions) now reintroduce these definitions.
  • U-Boot configuration and meta files (such as the image-spl-spl.cfg and associated patch files) show that the bootloader is correctly configured with the needed partitioning for SPL, U-Boot environment, and filesystem.
  • There is no indication from the repository references that the boot process is broken; the partition removal in Linux is intentional as the layout is now solely managed by U-Boot.
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for related partition definitions
rg -A 5 "SPL|U-Boot|Filesystem" 

Length of output: 77793

buildroot-external/board/nabucasa/green/patches/linux/0002-drivers-mfd-rk808-set-PWRON_LP_OFF_TIME-12s.patch (1)

31-34: LGTM! Power-off timing configuration looks good.

Setting PWRON_LP_OFF_TIME to 12s (maximum available) is a good choice as it provides ample time for clean system shutdown.

buildroot-external/board/nabucasa/green/patches/linux/0006-arch-arm64-dts-green-Improve-LED-representation.patch (1)

19-46: LGTM! LED representation improvements are well-structured.

The changes improve clarity through:

  • Descriptive node names that match functionality
  • Consistent labeling
  • Appropriate LED colors for their functions (white for power, green for activity, yellow for user)
buildroot-external/board/asus/tinker/patches/linux/0007-ARM-dts-rockchip-Add-Bluetooth-to-rk3288-tinker.patch (2)

22-34: LGTM! Well-structured GPIO configuration for Bluetooth.

The GPIO pin configurations are well-defined with clear naming and proper use of RK_FUNC_GPIO and pcfg_pull_none macros.


41-54: Verify UART0 availability for Bluetooth.

The UART and Bluetooth configuration looks correct, following the standard rtl8723bs-bt binding. However, ensure that UART0 isn't being used for other critical functions (e.g., console, debug).

✅ Verification successful

UART0 appears to be available for Bluetooth use.

Based on our repository-wide search in the DTS files:

  • There were no additional references indicating that UART0 is used as the console or for debugging.
  • The configuration added by the patch follows the standard rtl8723bs-bt binding, with no conflicting usage detected.
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for other UART0 uses in device tree files
rg -A 5 "uart0|serial0" arch/arm/boot/dts/

Length of output: 103


Script:

#!/bin/bash
# Re-run the search across the entire repository for any device tree source files (DTS)
# that mention "uart0". This will help verify that UART0 isn’t used for critical functions
# (e.g., console, debug) beyond the Bluetooth configuration.
fd -e dts | xargs grep -H "uart0"

Length of output: 33

buildroot-external/patches/linux/6.12.11/0001-ipv6-add-option-to-explicitly-enable-reachability-te.patch (2)

27-34: LGTM! Well-documented Kconfig option.

The new option is clearly described with proper help text explaining its purpose and implications.


47-50: Verify impact on IPv6 routing performance.

The condition change looks correct, but we should verify the performance impact of enabling reachability probing on router devices.

✅ Verification successful

IPv6 routing performance impact appears negligible.

  • The additional conditional check using IS_ENABLED(CONFIG_IPV6_REACHABILITY_PROBE) is compiled away when the configuration option is disabled, ensuring no runtime overhead.
  • Similar implementations exist across multiple board configurations (e.g., Raspberry Pi, Hardkernel) without noted performance issues.
  • The extra check is a simple boolean evaluation, which is unlikely to affect routing performance significantly on router devices.
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for other IPv6 reachability probe references
rg "RT6_LOOKUP_F_REACHABLE" net/ipv6/

Length of output: 87


Script:

#!/bin/bash
# Search the entire repository for IPv6 reachability-related references,
# including the flag RT6_LOOKUP_F_REACHABLE and the configuration option.
rg "RT6_LOOKUP_F_REACHABLE"
rg "CONFIG_IPV6_REACHABILITY_PROBE"

Length of output: 1013

buildroot-external/board/asus/tinker/patches/linux/0001-Revert-ARM-dts-rockchip-use-DMA-channels-for-UARTs-f.patch (1)

16-51: Verify UART performance impact without DMA.

Removing DMA support from all UARTs could impact performance, especially for high-speed serial communication. Please ensure this doesn't affect critical use cases.

buildroot-external/board/hardkernel/patches/linux/0007-ODROID-C4-arm64-dts-add-i2c2-i2c3-node.patch (2)

27-54: LGTM! Well-configured I2C nodes with clear documentation.

The I2C nodes are properly configured with appropriate clock frequencies and clear documentation of pin mappings to the 40-pin header.


56-76: LGTM! Proper pin control configuration.

The pin control settings are well-defined with appropriate bias-pull-up and drive strength values for I2C operation.

buildroot-external/configs/khadas_vim3_defconfig (1)

19-19: LGTM! Kernel version update aligns with PR objective.

The changes correctly update:

  • Kernel version to 6.12.11
  • Configuration fragment paths to v6.12.y

Let's verify the kernel version update is consistent across all platform configs:

Also applies to: 22-22

✅ Verification successful

Kernel version update verified consistently across all platform configs.
The script output confirms that every relevant defconfig file in the repository, including buildroot-external/configs/khadas_vim3_defconfig, uses BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.11".

  • Verified platforms: tinker, ova, odroid_xu4, odroid_n2, odroid_c4, odroid_c2, khadas_vim3, green, odroid_m1s, generic_x86_64, odroid_m1, generic_aarch64.
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify kernel version consistency across all platform configs

echo "Checking kernel version in all platform configs..."
rg -l 'BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE' buildroot-external/configs/ | \
  xargs rg 'BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="[^"]*"'

Length of output: 1385

buildroot-external/configs/odroid_c4_defconfig (1)

19-19: Duplicate comment: See review of khadas_vim3_defconfig.

Also applies to: 22-22

buildroot-external/configs/odroid_c2_defconfig (1)

19-19: Verify hardware support in Linux 6.12 for Amlogic GXBB.

The kernel update from 6.6 to 6.12 is significant. While the changes look correct, ensure that all hardware features of the Odroid C2 (Amlogic GXBB SoC) are fully supported in Linux 6.12.

Run this script to check for potential hardware support regressions:

Also applies to: 22-22

buildroot-external/configs/tinker_defconfig (1)

21-21: Verify Rockchip RK3288 support in Linux 6.12.

The kernel update looks correct. The Tinker Board uses the mature RK3288 SoC, but it's important to verify that all hardware features remain supported in Linux 6.12.

Run this script to check for potential hardware support regressions:

Also applies to: 24-24

✅ Verification successful

RK3288 support in Linux 6.12 confirmed.
The search results show extensive references to "RK3288"—from DTS files (e.g., "rk3288-tinker", "rk3288-tinker-s" in tinker_defconfig) to kernel configuration options and multiple board patches. These indicate that the Linux 6.12 branch continues to include and support the necessary hardware features for the RK3288 SoC on the ASUS Tinker Board.

  • buildroot-external/configs/tinker_defconfig sets the in-tree DTS names to "rockchip/rk3288-tinker rockchip/rk3288-tinker-s".
  • Several DTS and config patches explicitly target RK3288 support.
  • Kernel config file buildroot-external/kernel/v6.12.y/kernel-arm64-rockchip.config confirms that relevant RK3288 options (e.g., CONFIG_SND_SOC_RK3288_HDMI_ANALOG) are in place.
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for RK3288 support in Linux 6.12

# Search for RK3288-related changes in kernel config
rg -A 5 "ROCKCHIP.*RK3288|ARCH_RK3288" kernel/v6.12.y/

# Check DTS changes for the platform
ast-grep --pattern $'rk3288-tinker {
  $$$
}'

Length of output: 159


Script:

#!/bin/bash
# Combined search for RK3288 support references in the entire repository

echo "Searching for RK3288 references (case-insensitive):"
rg -i "RK3288" .

echo -e "\nSearching for ROCKCHIP references (case-insensitive):"
rg -i "rockchip" .

echo -e "\nSearching for DTS files mentioning rk3288:"
rg -i "rk3288" --glob="*.dts" .

Length of output: 63637

buildroot-external/configs/odroid_xu4_defconfig (1)

20-20: Verify Exynos5422 support and platform-specific features in Linux 6.12.

The kernel update looks correct. The Odroid XU4 uses the Exynos5422 SoC and has additional platform-specific kernel configurations. Ensure all hardware features and platform-specific configurations remain compatible with Linux 6.12.

Run this script to check for potential hardware support regressions:

Also applies to: 22-22

buildroot-external/configs/odroid_n2_defconfig (1)

19-19: Verify Amlogic G12B support and platform-specific features in Linux 6.12.

The kernel update looks correct. The Odroid N2/N2+ uses the Amlogic G12B SoC and has additional platform-specific kernel configurations. Ensure all hardware features and platform-specific configurations remain compatible with Linux 6.12.

Run this script to check for potential hardware support regressions:

Also applies to: 22-22

✅ Verification successful

Kernel Version and Amlogic G12B Support Verified

  • The odroid_n2_defconfig file correctly sets the kernel version to 6.12.11 and includes the DTS names ("amlogic/meson-g12b-odroid-n2 amlogic/meson-g12b-odroid-n2-plus") relevant for the Amlogic G12B SoC.
  • Recursive searches confirm that Amlogic references and board-specific DTS patches are in place, and documentation reflects consistent Linux 6.12.11 usage across ODROID boards.
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for Amlogic G12B support and N2-specific features in Linux 6.12

# Search for G12B-related changes in kernel config
rg -A 5 "MESON_G12B|AMLOGIC.*G12B" kernel/v6.12.y/

# Check platform-specific kernel config
cat board/hardkernel/odroid-n2/kernel.config

# Check DTS changes for both N2 and N2+ variants
ast-grep --pattern $'meson-g12b-odroid-n2 {
  $$$
}'
ast-grep --pattern $'meson-g12b-odroid-n2-plus {
  $$$
}'

Length of output: 341


Script:

#!/bin/bash
# New verification script to gather more context on Amlogic G12B support and kernel version usage.

# 1. Display the first 30 lines of the odroid_n2_defconfig to verify the kernel version update.
echo "=== buildroot-external/configs/odroid_n2_defconfig (first 30 lines) ==="
if [ -f buildroot-external/configs/odroid_n2_defconfig ]; then
  sed -n '1,30p' buildroot-external/configs/odroid_n2_defconfig
else
  echo "File buildroot-external/configs/odroid_n2_defconfig not found."
fi

# 2. Search recursively for any references to Amlogic in the repository.
echo -e "\n=== Searching for 'Amlogic' references ==="
rg -i "Amlogic" .

# 3. Search recursively for MESON_G12B references.
echo -e "\n=== Searching for 'MESON_G12B' references ==="
rg -i "MESON_G12B" .

# 4. Search for any references indicating Linux kernel version 6.12.11 usage.
echo -e "\n=== Searching for '6.12.11' references ==="
rg -n "6\.12\.11" .

# 5. Additionally, search for odroid related DTS or board configuration files that might mention "odroid"
echo -e "\n=== Searching for 'odroid' related DTS or board config files ==="
rg -i "odroid" .

Length of output: 62021

buildroot-external/configs/odroid_m1_defconfig (1)

19-22: Verify kernel version compatibility with RK3568.

The kernel update to 6.12.11 looks good, but let's verify Rockchip RK3568 support in this version.

buildroot-external/configs/odroid_m1s_defconfig (1)

19-22: Verify kernel version compatibility with RK3566.

The kernel update to 6.12.11 looks good, but let's verify Rockchip RK3566 support in this version.

✅ Verification successful

RK3566 Support Verified in Kernel 6.12.11

  • The odroid_m1s_defconfig file explicitly references BR2_LINUX_KERNEL_INTREE_DTS_NAME="rockchip/rk3566-odroid-m1s", confirming the board’s device tree configuration.
  • Multiple patches and configuration files throughout the repository reference and update RK3566-specific device trees (e.g., rk3566-odroid-m1s.dts and U-Boot defconfigs), indicating maintained support.
  • A comprehensive global search for RK3566 references did not reveal any critical issues or regressions.
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check kernel 6.12.11 support for RK3566
# Test: Search for RK3566 support in device tree. Expect: Device tree file present
fd "rk3566-odroid-m1s.dts" --exec grep -l "RK3566"

# Test: Check for any known regressions. Expect: No critical issues
rg -i "rk3566.*\b(bug|regression|break|issue)\b"

Length of output: 99


Script:

#!/bin/bash
# This script performs a comprehensive search for RK3566 references across the repository.
# It will help verify whether kernel 6.12.11 includes the necessary support for RK3566.
#
# 1. Search for RK3566 in all .dts files (device trees).
echo "Searching for RK3566 in .dts files:"
fd "\.dts$" --exec grep -i "rk3566" {} \;

# 2. Search for RK3566 in configuration files (.config and .defconfig).
echo "Searching for RK3566 in configuration files (.config, .defconfig):"
fd "\.(config|defconfig)$" --exec grep -i "rk3566" {} \;

# 3. Perform a global repository search for any RK3566 reference.
echo "Performing a global search for RK3566 references:"
rg -i "rk3566" -n .

Length of output: 26396

buildroot-external/configs/green_defconfig (1)

19-22: Verify kernel version compatibility with Home Assistant Green.

The kernel update to 6.12.11 looks good, but let's verify support for the Green's RK3566-based platform.

buildroot-external/configs/generic_aarch64_defconfig (2)

7-7: Verify impact of removing board-specific patches.

The removal of $(BR2_EXTERNAL_HASSOS_PATH)/board/pc/patches from BR2_GLOBAL_PATCH_DIR might affect platform-specific patches.

✅ Verification successful

I'll generate a new shell script to search for any directory named “board/pc/patches” in the repository and to scan for textual references to it. This will help verify if there are any critical board-specific patch files that might have been inadvertently removed.

Please run the above script to gather further details on whether any board-specific patches are still being referenced or stored, which will help in assessing the impact of their removal.


Board-specific patches removal verified as safe.

  • The search did not locate any "board/pc/patches" directory.
  • No textual references to "board/pc/patches" were found in the repository.

These findings confirm that the removal does not inadvertently exclude any necessary board-specific patches.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for any critical patches that might be excluded
# Test: Look for patches in the removed directory. Expect: No critical patches
fd . "board/pc/patches" -t f --exec echo "Removed patch: {}"

Length of output: 164


Script:

#!/bin/bash
# Script: Verify the existence of a board-specific patches directory and references to it

echo "Checking if a board-specific patches directory exists (e.g., .../board/pc/patches):"
find . -type d -path "*/board/pc/patches" -print || echo "No 'board/pc/patches' directory found."

echo -e "\nSearching for textual references to 'board/pc/patches' in the repository:"
rg "board/pc/patches" --color=never || echo "No references to 'board/pc/patches' found."

Length of output: 533


19-21: Verify kernel configuration for generic ARM64.

The kernel update to 6.12.11 with arch default config looks good, but let's verify ARM64 support.

✅ Verification successful

ARM64 Kernel Configuration Verified

The defconfig in buildroot-external/configs/generic_aarch64_defconfig correctly enables the arch default configuration for ARM64 (via BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y), ensuring that the necessary ARM64 settings will be inherited from the kernel’s default configuration. The board-specific fragment reference is resolved externally (using $(BR2_EXTERNAL_HASSOS_PATH)), so its absence in the repository root is expected.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check kernel 6.12.11 ARM64 support
# Test: Search for ARM64 config options. Expect: Essential ARM64 configs present
rg "CONFIG_ARM64=y" "kernel/v6.12.y/"

# Test: Check for any known ARM64 regressions. Expect: No critical issues
rg -i "arm64.*\b(bug|regression|break|issue)\b"

Length of output: 141


Script:

#!/bin/bash
echo "Verifying ARM64 kernel configuration support..."

# Check the board-specific kernel configuration referenced in the defconfig
FILE="board/arm-uefi/generic-aarch64/kernel.config"
echo "Checking if $FILE exists..."
if [ -f "$FILE" ]; then
    echo "Found $FILE. Searching for CONFIG_ARM64 setting:"
    grep -n "CONFIG_ARM64=y" "$FILE" || echo "CONFIG_ARM64=y not found in $FILE."
else
    echo "$FILE not found."
fi

# Perform a global search for any occurrences of CONFIG_ARM64=y in the repository
echo "Performing a global search for CONFIG_ARM64=y:"
rg -n "CONFIG_ARM64=y"

Length of output: 604


Script:

#!/bin/bash
echo "Searching for BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG in buildroot configs..."
rg -n "BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG" buildroot-external/configs/

Length of output: 342

buildroot-external/configs/generic_x86_64_defconfig (1)

19-19: LGTM: Kernel version update is consistent.

The kernel version update to 6.12.11 and corresponding config fragment paths are correctly aligned.

Also applies to: 21-21

buildroot-external/configs/ova_defconfig (1)

19-19: LGTM: Kernel version update is consistent.

The kernel version update to 6.12.11 and corresponding config fragment paths are correctly aligned.

Also applies to: 21-21

buildroot-external/board/nabucasa/green/patches/linux/0001-arm64-dts-rockchip-Add-NabuCasa-Green-board.patch (1)

564-566: LGTM: RNG enablement addresses reported issues.

Enabling the Rockchip RNG hardware improves system security and addresses the previously reported RNG seed issues mentioned in the PR comments.

Documentation/kernel.md (1)

6-6: LGTM: Documentation accurately reflects kernel version updates.

The kernel version updates are consistently documented across all affected boards, maintaining clear version tracking.

Also applies to: 14-24

buildroot-external/board/arm-uefi/generic-aarch64/kernel.config (1)

69-70: Enable USB Onboard Device Support Options

The diff now enables both CONFIG_USB_ONBOARD_DEV=y and CONFIG_USB_ONBOARD_DEV_USB5744=y. This update activates onboard USB support for the generic AArch64 board, aligning with the broader kernel update objectives. Please verify that these options are supported by the Linux 6.12.x kernel on your target hardware and that they do not conflict with other USB configuration settings.

buildroot-external/kernel/v6.12.y/kernel-arm64-rockchip.config (1)

3868-3869: Activate FSCACHE to Improve File Caching

The new configuration line CONFIG_FSCACHE=y (added at line 3868) enables filesystem caching support on the Rockchip platform. This change can help enhance file I/O performance by caching remote data and other filesystem artifacts. Please ensure that this feature has been thoroughly validated on the target hardware, especially regarding any potential memory overhead on resource-constrained systems.

Copy link
Member

@agners agners left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Besides the location mentioned, buildroot-external/board/raspberrypi/bcmrpi3.config also seems to have CONFIG_CACHEFILES enabled, maybe we get rid of that too? 🤔

It seems there is a unused file in tree at buildroot-external/kernel/v6.6.y/kernel-arm64-rockchip.config (I think all others are used by the Raspberry Pi kernel, but not 100% sure).

Other than that, looks quite good to me.

@@ -3908,7 +3865,7 @@ CONFIG_CUSE=m
CONFIG_VIRTIO_FS=m
CONFIG_OVERLAY_FS=y
CONFIG_OVERLAY_FS_XINO_AUTO=y
CONFIG_FSCACHE=m
CONFIG_FSCACHE=y
CONFIG_FSCACHE_STATS=y
CONFIG_CACHEFILES=m
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess for consistency this should be deleted here too.

Suggested change
CONFIG_CACHEFILES=m

@home-assistant home-assistant bot marked this pull request as draft February 3, 2025 11:00
@home-assistant
Copy link

home-assistant bot commented Feb 3, 2025

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

It was only enabled for Rockchip and Tinker, and to my knowledge there is no
cachefiles daemon or anything other in the userspace that's using it.
Sice we only have 6.6.y for Raspberry Pi now, it doesn't need the Rockchip and
wireless PCI fragments.
@sairon
Copy link
Member Author

sairon commented Feb 3, 2025

Besides the location mentioned, buildroot-external/board/raspberrypi/bcmrpi3.config also seems to have CONFIG_CACHEFILES enabled, maybe we get rid of that too? 🤔

No such file is tracked in Git, it's maybe something only in your working directory?

It seems there is a unused file in tree at buildroot-external/kernel/v6.6.y/kernel-arm64-rockchip.config (I think all others are used by the Raspberry Pi kernel, but not 100% sure).

Right, I removed it, along with one other unused fragment 👍

@sairon sairon requested a review from agners February 3, 2025 11:15
@sairon sairon marked this pull request as ready for review February 3, 2025 11:15
@agners
Copy link
Member

agners commented Feb 3, 2025

No such file is tracked in Git, it's maybe something only in your working directory?

Whoops, right, something local.

@sairon sairon merged commit 9a760a2 into dev Feb 3, 2025
3 checks passed
@sairon sairon deleted the linux-6.12-everything branch February 3, 2025 13:35
@sairon sairon mentioned this pull request Mar 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla-signed linux Linux kernel related issue os
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants