Skip to content

Prepare 15.1#3986

Merged
sairon merged 29 commits into
mainfrom
prepare-15.1
Mar 31, 2025
Merged

Prepare 15.1#3986
sairon merged 29 commits into
mainfrom
prepare-15.1

Conversation

@sairon
Copy link
Copy Markdown
Member

@sairon sairon commented Mar 31, 2025

Summary by CodeRabbit

  • New Features

    • Upgraded the system kernel to version 6.12.20 across supported platforms for enhanced performance, security, and stability.
    • Expanded hardware support through improved configurations for modern GPUs and network interfaces.
  • Bug Fixes

    • Resolved boot configuration issues on Raspberry Pi 3 by ensuring proper handling of performance settings.
  • Documentation

    • Updated board version numbers in the documentation for consistency with the new kernel release.
  • Tests

    • Added a new smoke test to verify the landing page is accessible and properly rendered.

dependabot Bot and others added 29 commits March 3, 2025 15:12
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.14.0 to 6.15.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](docker/build-push-action@v6.14.0...v6.15.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.9.0 to 3.10.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](docker/setup-buildx-action@v3.9.0...v3.10.0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
As discussed in #3885, now that fixed Supervisor is in stable, we can test that
no AppArmor denied events are logged during CI tests.
* buildroot 7d5c3b5e70...b079a02a9a (1):
  > package/rpi-firmware: bump to 1.20250305 with updated firmware binaries

Fixes #3911
Update to latest version that fixes start order in haos-agent.service. Without
that, OS Agent reports incorrect swappiness after boot.
Use simple shell script to perform device wipe instead of calling OS Agent to
do that through the UDisks2 API. While it might have been a good idea to use
high level interface for that back then, it turns out it causes more issues
than the benefits it could bring.

Main problem currently is that the OS Agent needs to read sysctl variables, but
those are only set after mounting the overlay partition. But at the same time,
the overlay partition can't be mounted if we want to wipe it - this creates a
dependency cycle through the haos-agent.service.

To get rid of the cycle and simplify things, use a shell script doing basically
the same what the OS Agent does. Since the wipe functionality only makes sense
to be implemented on HAOS targets (not on Supervised), there's little point of
having it in higher layer of abstraction that OS Agent provides.

It should be also checked if changes from #1291 are needed anymore, as the
driving factor for those have been probably the wipe feature in OS Agent too,
but at this point they seem to be harmless.
…3917)

* Add test checking journal logs for dependency cycles
* Run some test cases to get their output also when full init fails
* Remove high timeouts from the times when GHA couldn't use KVM
* Enable logging durations for future optimizations
Update to latest version of the driver and matching firmware. The most common
application for it - Frigate - currently has 4.19.0 in stable but 4.20.0 is
staged in dev. As it's easier to select OS version than a version of the
add-on, it makes sense to stay ahead in HAOS. This also means Frigate needs to
be updated to the matching version (as staying on an arbitrary older patch
revision doesn't make much sense either).
Add missing patch and update for latest runc version to fix losing device
permissions when new devices are added in runtime.

* buildroot b079a02a9a...3914f8cad5 (2):
  > package/runc: add patch for extended default allowed devices in v1.2.4
  > package/runc: add missing patch to fix device permissions update

Fixes #3915
In some cases, the wipe service may be called due to a race condition for the
second time during the boot, very likely failing because the filesystems are
already mounted. This can not be reproduced on OVA but can be fairly easy
triggered e.g. on RPi. As we want the service to be executed exactly only once,
we can do what's suggested in [1] and set the RemainAfterExit=yes. That should
ensure the unit is not ever started for the second time.

[1] https://www.github.com/systemd/systemd/issues/29367
We check that landing page is working when the network is down but we don't
check it in the happy path. Add its test to make it more obvious when the
just landing page is broken.
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](docker/login-action@v3.3.0...v3.4.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#3946)

As pointed out by @ginkage, in #3878 the eMMC patch was moved to a wrong path.
Move it to uboot subfolder so it's correctly applied.

Fixes #3942
)

U-Boot update in #3878 changed the layout of patch folders for Hardkernel
targets with the goal to make it less confusing. However, it missed adding the
top-level hardkernel patches directory to all hardkernel targets and only
remove it from some of them in [1].

Revert to state before #3878 by adding the hardkernel folder to c2/c4/n2. In
the future, the patches from this folder should be split per target and if any
patches remain in it, they should be applied for all hardkernel boards.

[1] 2716b56

Fixes #3936
It seems that kernel 6.12 handles device probing less gracefully when these
options are not enabled and causes crash on some AMD SoCs, e.g.:

*ERROR* Invalid callback to read register 0x58184

Link: https://gitlab.freedesktop.org/drm/amd/-/issues/4050

Refs #3944
)

When Intel GPUs are used in passthrough, the i915 is probed too early and fails
to load firmware which is in the rootfs mounted later. The CONFIG_DRM_I915=y
comes from x86_64_defconfig, by changing it to module (like we do for
generic-x86-64), the driver becomes only available after the rootfs is mounted
and firmware is loaded correctly.

Fixes #3949
Update generic_raw_uart package to the latest sources available coming with
direct kernel 6.12.x compatibility dropping the intermediate patches
accordingly. In addition, the eq3_char_loop patchset was updated to reflect the
same changes performed.
Submodule hash for buildroot was changed by accident in #3964, revert to
version from the previous commit.
PR #3775 was mistakenly left out of the jump to the 6.12 kernel
One of the reason for failures after update to OS 15.0 was missing support for
the kernel PIO driver in EEPROM firmware. Backport upstream patches from
raspberrypi/linux#6645 and raspberrypi/linux#6642 that handle this situation
more gracefully. These patches could be dropped after the next RPi kernel
release.

Refs #3943
Firmware change that set initial_turbo to 60 from the previous 0 has broken
initialization of some SD cards in U-Boot. Adjust the value in config.txt on OS
update if the value is not already set by the user, and put it to the default
config.txt.

The config.txt also contains a short comment explaining the purpose. The
purpose of it is also to make it easier to revert this change in the future if
the problem is fixed in the firmware or U-Boot.

Fixes #3965
Update Docker and its dependencies to versions packaged in last bugfix release.

* buildroot 3914f8cad5...4cd211162d (4):
  > package/runc: bump version to v1.2.6
  > package/docker-cli: bump version to v28.0.4
  > package/docker-engine: bump version to v28.0.4
  > package/containerd: bump version to v1.7.26
@sairon sairon requested a review from agners March 31, 2025 09:32
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Mar 31, 2025

📝 Walkthrough

Walkthrough

This update encompasses numerous configuration and patch revisions. The changes include an update to the GitHub Actions workflow (docker/login-action version bump), documentation adjustments (board version numbers), and a subproject commit update in buildroot. Multiple defconfig files have been modified to bump the Linux kernel version from 6.12.18 to 6.12.20, with additional patch directory adjustments in some cases. Several patches refine error handling in RP1 firmware and driver code, add specific GPU/PCI support options, and update driver logic for generic_raw_uart and eq3_char_loop. Additionally, a new smoke test for the landing page has been introduced, and a boot configuration update for Raspberry Pi 3 has been incorporated.

Changes

File(s) Change Summary
.github/workflows/build.yaml Updated docker/login-action from v3.3.0 to v3.4.0.
Documentation/kernel.md Board version numbers updated from 6.12.18 to 6.12.20 for multiple boards (except Raspberry Pi).
buildroot Subproject commit updated from 3914f8cad5a87...b87fe to 4cd211162de8...ecb61.
buildroot-external/board/pc/.../kernel.config Generic-x86-64: Added CONFIG_DRM_AMDGPU_SI=y and CONFIG_DRM_AMDGPU_CIK=y; OVA: Added CONFIG_DRM_I915=m.
buildroot-external/board/raspberrypi/{config.txt, ota/rauc-hook} Added a new [pi3] section with initial_turbo=0 and introduced conditional boot logic in the rauc-hook to ensure this setting.
buildroot-external/board/raspberrypi/patches/linux/000[5-8]* Enhanced RP1 firmware and driver error handling, modified mailbox channel logic, and demoted probe errors to warnings.
buildroot-external/configs/*defconfig Updated BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE from "6.12.18" to "6.12.20" across multiple defconfig files; some (e.g., odroid_c2, odroid_c4, odroid_n2) also had BR2_GLOBAL_PATCH_DIR updated.
buildroot-external/kernel/v6.12.y/device-support-pci.config Added support for Mellanox ConnectX-3 NIC with options: CONFIG_MLX4_EN=m, # CONFIG_MLX4_DEBUG is not set, and CONFIG_MLX4_CORE_GEN2=y.
buildroot-external/meta Incremented VERSION_MINOR from "0" to "1".
buildroot-external/package/eq3_char_loop/0004* Adjusted conditional compilation for llseek using noop_llseek for kernel versions ≥6.12; updated signed-off details.
buildroot-external/package/generic_raw_uart/* Removed conditional llseek assignment, replaced gpiochip_add with gpiochip_add_data, updated the module removal macro, and bumped the package version/hash.
tests/smoke_test/test_basic.py Added new test function test_landing_page to verify the landing page’s accessibility and proper HTML output.

Sequence Diagram(s)

sequenceDiagram
    participant Hook as RAUC Hook
    participant Env as Boot Environment
    participant Config as config.txt

    Hook->>Env: Check RAUC_SYSTEM_COMPATIBLE value
    Env-->>Hook: Returns "haos-rpi3" or "haos-rpi3-64"
    Hook->>Config: Check for "initial_turbo" in [pi3] section
    alt "initial_turbo" exists
        Config-->>Hook: Found setting
        Hook->>Hook: Proceed without changes
    else "initial_turbo" not set
        Hook->>Config: Check if [pi3] section exists
        alt Section exists
            Config-->>Hook: Section found
            Hook->>Config: Append "initial_turbo=0"
        else Section missing
            Hook->>Config: Create [pi3] section with comment
            Hook->>Config: Add "initial_turbo=0"
        end
    end
Loading
✨ Finishing Touches
  • 📝 Generate Docstrings

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.

❤️ 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.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai plan to trigger planning for file edits and PR creation.
  • @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
Copy Markdown

@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

🧹 Nitpick comments (1)
tests/smoke_test/test_basic.py (1)

68-71: Good addition of the landing page test

The test correctly ensures that the landing page is accessible and returns HTML content. It properly depends on the init test to ensure system readiness.

Consider these improvements for more robust testing:

  1. Add a timeout decorator similar to the test_init function
  2. Add a docstring explaining the test purpose and expectations
  3. Include more detailed verification of expected content beyond just ""
  4. Handle potential network failures more gracefully
@pytest.mark.dependency(depends=["test_init"])
+@pytest.mark.timeout(30)
def test_landing_page(shell):
+    """
+    Verify that the Home Assistant landing page is accessible and properly loaded.
+    
+    Test ensures that the web server is running on the expected port (8123)
+    and returns valid HTML content.
+    """
    web_index = shell.run_check("curl http://localhost:8123")
-    assert "</html>" in " ".join(web_index)
+    web_index_content = " ".join(web_index)
+    assert "</html>" in web_index_content, "HTML content not properly returned"
+    # Consider additional checks for expected content
+    # assert "Home Assistant" in web_index_content, "Landing page missing expected content"
📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 248af90 and 3e2f891.

📒 Files selected for processing (32)
  • .github/workflows/build.yaml (1 hunks)
  • Documentation/kernel.md (1 hunks)
  • buildroot (1 hunks)
  • buildroot-external/board/pc/generic-x86-64/kernel.config (1 hunks)
  • buildroot-external/board/pc/ova/kernel.config (1 hunks)
  • buildroot-external/board/raspberrypi/config.txt (1 hunks)
  • buildroot-external/board/raspberrypi/patches/linux/0005-misc-rp1-pio-Error-out-on-incompatible-firmware.patch (1 hunks)
  • buildroot-external/board/raspberrypi/patches/linux/0006-firmware-rp1-Linger-on-firmware-failure.patch (1 hunks)
  • buildroot-external/board/raspberrypi/patches/linux/0007-mailbox-rp1-Don-t-claim-channels-in-of_xlate.patch (1 hunks)
  • buildroot-external/board/raspberrypi/patches/linux/0008-misc-rp1-pio-Demote-fw-probe-error-to-warning.patch (1 hunks)
  • buildroot-external/configs/generic_aarch64_defconfig (1 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 (2 hunks)
  • buildroot-external/configs/odroid_c4_defconfig (2 hunks)
  • buildroot-external/configs/odroid_m1_defconfig (1 hunks)
  • buildroot-external/configs/odroid_m1s_defconfig (1 hunks)
  • buildroot-external/configs/odroid_n2_defconfig (2 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/device-support-pci.config (1 hunks)
  • buildroot-external/meta (1 hunks)
  • buildroot-external/ota/rauc-hook (1 hunks)
  • buildroot-external/package/eq3_char_loop/0004-Fix-eq3_char_loop-driver-build-on-Linux-6.12.patch (1 hunks)
  • buildroot-external/package/generic_raw_uart/0002-Linux-6.12-llseek.patch (0 hunks)
  • buildroot-external/package/generic_raw_uart/0003-Linux-6.11-gpio-data.patch (0 hunks)
  • buildroot-external/package/generic_raw_uart/0004-Linux-6.11-uart_remove.patch (0 hunks)
  • buildroot-external/package/generic_raw_uart/generic_raw_uart.hash (1 hunks)
  • buildroot-external/package/generic_raw_uart/generic_raw_uart.mk (1 hunks)
  • tests/smoke_test/test_basic.py (1 hunks)
💤 Files with no reviewable changes (3)
  • buildroot-external/package/generic_raw_uart/0003-Linux-6.11-gpio-data.patch
  • buildroot-external/package/generic_raw_uart/0002-Linux-6.12-llseek.patch
  • buildroot-external/package/generic_raw_uart/0004-Linux-6.11-uart_remove.patch
🧰 Additional context used
📓 Path-based instructions (6)
`*/**(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 t...

*/**(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'
  • buildroot-external/meta
  • Documentation/kernel.md
`*/**(html|markdown|md)`: - Use bold to mark UI strings. - If "" are used to mark UI strings, replace them by bold.

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

  • If "" are used to mark UI strings, replace them by bold.
  • buildroot-external/meta
  • Documentation/kernel.md
`*/**(html|markdown|md)`: - Be brief in your replies and don't add fluff like "thank you for..." and "Please let me know if"

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

  • buildroot-external/meta
  • Documentation/kernel.md
`*/**(html|markdown|md)`: - Use sentence-style capitalization also in headings.

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

  • buildroot-external/meta
  • Documentation/kernel.md
`*/**(html|markdown|md)`: do not comment on HTML used for icons

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

  • buildroot-external/meta
  • Documentation/kernel.md
`*/**(html|markdown|md)`: Avoid flagging inline HTML for embedding videos in future reviews for this repository.

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

  • buildroot-external/meta
  • Documentation/kernel.md
🔇 Additional comments (37)
buildroot-external/meta (1)

2-2: Version minor update applied.
The update of VERSION_MINOR from "0" to "1" properly reflects the OS version bump in line with the 15.1 release objectives and ensures consistent versioning across the project.

.github/workflows/build.yaml (1)

141-141: Bump docker/login-action to v3.4.0.
This change to docker/login-action@v3.4.0 aligns with the PR objective for updating Docker actions. Verify that the new version is compatible with the current workflow steps.

buildroot-external/kernel/v6.12.y/device-support-pci.config (1)

29-32: Integrate Mellanox ConnectX-3 NIC support.
The addition of the Mellanox ConnectX-3 configuration options (CONFIG_MLX4_EN=m and CONFIG_MLX4_CORE_GEN2=y) and the explicit disabling of CONFIG_MLX4_DEBUG enable support for these NICs. Confirm that these options are tested against the updated kernel version (6.12.20) and align with your hardware requirements.

buildroot (1)

1-1: Verify the Updated Subproject Commit Hash

The subproject commit hash has been updated to 4cd211162de8b74461c2684bd89b89047f0ecb61 as intended. Please ensure that this new hash corresponds to the correct commit in the subproject, aligning with the overall upgrade for version 15.1 and the related kernel/defconfig updates.

buildroot-external/package/generic_raw_uart/generic_raw_uart.mk (1)

16-16:

Details

✅ Verification successful

Version update for generic_raw_uart package

The commit hash has been updated to a newer version, which aligns with the PR objective to update the generic_raw_uart to its latest version.


🏁 Script executed:

#!/bin/bash
# Verify if this is the latest version available in the upstream repository
echo "Checking latest commit for generic_raw_uart in the upstream repository..."
git ls-remote https://github.com/alexreinert/piVCCU.git HEAD | awk '{print $1}'

Length of output: 279


Update Confirmation: Generic Raw UART Package is Up-to-date

The commit hash update (b80aacfb75e9689d14d4e2c94380728816c6313e) has been confirmed against the upstream repository as the latest commit. No further modifications are required.

buildroot-external/board/pc/ova/kernel.config (1)

93-94: Appropriate modularization of i915 driver

The Intel i915 graphics driver has been configured as a module rather than built into the kernel. This is the correct approach for VM passthrough scenarios as mentioned in the PR objectives, allowing for proper initialization when the driver is loaded dynamically.

buildroot-external/configs/generic_x86_64_defconfig (1)

19-19:

Details

✅ Verification successful

Kernel version update to 6.12.20

The Linux kernel version has been updated from 6.12.18 to 6.12.20, which matches the PR objectives. This incremental update likely includes security patches and bug fixes.


🏁 Script executed:

#!/bin/bash
# Check if there are any significant security fixes or notable changes in these kernel versions
echo "Checking for CVEs or significant changes in kernel 6.12.19 and 6.12.20..."
curl -s https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.19
echo "---"
curl -s https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.20

Length of output: 78053


Kernel Version Update Verified: 6.12.20

The updated defconfig now correctly specifies kernel version 6.12.20. Based on the retrieved changelog output for kernel 6.12.19 and 6.12.20, the update encompasses several bug fixes and security-related patches that align with the PR objectives. Please review the full changelog manually if you’d like to double-check specific security fixes.

  • File: buildroot-external/configs/generic_x86_64_defconfig, line 19
    Diff:
    BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.12.20"
    
buildroot-external/configs/odroid_m1_defconfig (1)

19-19: Consistent kernel version update to 6.12.20

The Linux kernel version has been updated from 6.12.18 to 6.12.20 for the ODROID M1 board, maintaining consistency with other board configurations in this PR. This is important for ensuring all supported hardware receives the same kernel updates and security patches.

buildroot-external/configs/odroid_xu4_defconfig (1)

20-20: Kernel version update looks good.

The update from Linux kernel 6.12.18 to 6.12.20 aligns with the PR objectives of updating to newer kernel versions. This minor version bump typically includes bug fixes and security patches.

buildroot-external/board/raspberrypi/config.txt (1)

74-76: Good fix for Raspberry Pi 3 issue.

Adding the initial_turbo=0 parameter for Pi3 addresses issue #3965 as mentioned in the PR objectives. This disables the initial CPU clock speed boost during boot, which should help with stability issues on the Raspberry Pi 3.

buildroot-external/configs/khadas_vim3_defconfig (1)

19-19: Kernel version update looks good.

The update from Linux kernel 6.12.18 to 6.12.20 aligns with the PR objectives of updating to newer kernel versions. This minor version bump typically includes bug fixes and security patches.

buildroot-external/configs/ova_defconfig (1)

19-19: Kernel version update looks good.

The update from Linux kernel 6.12.18 to 6.12.20 aligns with the PR objectives of updating to newer kernel versions. This minor version bump typically includes bug fixes and security patches.

buildroot-external/configs/green_defconfig (1)

19-19: Kernel version updated from 6.12.18 to 6.12.20

This update aligns with the PR objective to update the Linux kernel. Version 6.12.20 includes the latest security patches and bug fixes.

buildroot-external/package/generic_raw_uart/generic_raw_uart.hash (1)

3-3:

Details

✅ Verification successful

Package hash updated for new generic_raw_uart version

The SHA256 hash has been updated to match the new version of generic_raw_uart (b80aacfb75e9689d14d4e2c94380728816c6313e), as specified in the PR objectives.


🏁 Script executed:

#!/bin/bash
# Verify if package Makefile was also updated with the new version
grep -A 2 "GENERIC_RAW_UART_VERSION" buildroot-external/package/generic_raw_uart/generic_raw_uart.mk

Length of output: 327


Verified Package Update: Consistent Version Across Files

The SHA256 hash in buildroot-external/package/generic_raw_uart/generic_raw_uart.hash has been updated to match the new package version. Additionally, the Makefile (buildroot-external/package/generic_raw_uart/generic_raw_uart.mk) correctly sets GENERIC_RAW_UART_VERSION to b80aacfb75e9689d14d4e2c94380728816c6313e, confirming the update is consistent.

buildroot-external/board/raspberrypi/patches/linux/0007-mailbox-rp1-Don-t-claim-channels-in-of_xlate.patch (1)

1-33: Fix for RP1 mailbox channel reuse issue

This patch correctly removes the check that prevented reusing mailbox channels, which aligns with the PR objective to backport patches for Raspberry Pi related to PIO/RP1 firmware probing errors. The of_xlate method should not act as a resource acquisition point, as noted in the commit message.

buildroot-external/configs/odroid_m1s_defconfig (1)

19-19: Kernel version updated from 6.12.18 to 6.12.20

This update aligns with the PR objective to update the Linux kernel across all board configurations. Version 6.12.20 includes the latest security patches and bug fixes.

buildroot-external/configs/tinker_defconfig (1)

21-21: Linux kernel version updated appropriately to 6.12.20

This update aligns with the PR objectives to bump the kernel from 6.12.18 to 6.12.20, which should include the latest bug fixes and security improvements for the Tinker Board.

buildroot-external/configs/generic_aarch64_defconfig (1)

19-19: Linux kernel version updated appropriately to 6.12.20

This kernel version bump from 6.12.18 to 6.12.20 is consistent with the PR objectives and matches the updates applied to other board configurations.

buildroot-external/board/raspberrypi/patches/linux/0008-misc-rp1-pio-Demote-fw-probe-error-to-warning.patch (1)

22-34: Good usability improvement for RP1 firmware handling

This change properly demotes an error to a warning when the RP1 firmware isn't available, which is appropriate since this isn't a critical failure for most users. By switching from dev_err_probe to dev_warn, the message won't appear when using the "quiet" boot option, improving the user experience during system startup.

buildroot-external/board/pc/generic-x86-64/kernel.config (1)

31-32: Appropriate enabling of AMD GPU support for older architectures

Enabling support for AMD Southern Islands (SI) and Graphics Core Next (CIK) GPU architectures is a good addition that expands hardware compatibility. This configuration matches the PR objectives to enable amdgpu SI and CIK support for x86 architecture.

buildroot-external/package/eq3_char_loop/0004-Fix-eq3_char_loop-driver-build-on-Linux-6.12.patch (2)

1-3: Authorship and upstream details updated correctly

The patch correctly updates the author information and clarifies that this is not from an upstream source.


11-15: Compatibility fix for Linux 6.12 kernel

This change correctly adapts the eq3_char_loop driver to use noop_llseek for Linux kernel 6.12+ while maintaining backward compatibility with older kernel versions. This aligns with the kernel upgrade to 6.12.20 mentioned in the PR objectives.

buildroot-external/board/raspberrypi/patches/linux/0005-misc-rp1-pio-Error-out-on-incompatible-firmware.patch (2)

20-30: Improved error handling for RP1 firmware

The patch enhances the error handling in the rp1_pio_probe function by distinguishing between different failure scenarios:

  1. When firmware is not found: returning -EPROBE_DEFER to allow retrying later
  2. When firmware returns an error: returning the actual error code for better diagnostics

This change improves system reliability and is part of the backported Raspberry Pi patches mentioned in the PR objectives.


37-41: Added proper resource cleanup in remove function

The patch adds necessary resource cleanup operations to the rp1_pio_remove function that were previously missing:

  • Destroying the device
  • Deleting the character device
  • Destroying the device class
  • Unregistering the character device region

This prevents resource leaks when the device is removed.

buildroot-external/ota/rauc-hook (1)

56-69: Fix for Raspberry Pi 3 boot issues with initial_turbo setting

This code adds a critical fix for Raspberry Pi 3 boot issues by setting initial_turbo=0 in the config.txt file during OTA updates. The implementation:

  1. Only targets Raspberry Pi 3 models
  2. Checks if the setting already exists before making changes
  3. Adds the setting either to an existing [pi3] section or creates a new section
  4. Includes a comment referencing the issue (#3965)

This directly addresses the PR objective of "setting initial_turbo=0 in the config.txt for Raspberry Pi 3."

buildroot-external/configs/odroid_c2_defconfig (2)

7-7: Added additional patch directory for Hardkernel boards

The global patch directory configuration has been expanded to include $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/patches. This relates to the PR objective of "moving the U-Boot patch for ODROID-N2/C2/C4 to the correct folder."


19-19: Updated Linux kernel version to 6.12.20

The kernel version has been bumped from 6.12.18 to 6.12.20, which aligns with the PR objective of "updating the Linux kernel to versions 6.12.19 and 6.12.20."

Documentation/kernel.md (2)

6-6: Kernel version reference looks good
No issues found with updating the kernel version reference for Open Virtual Appliance.


14-24: Consistent kernel version updates
All updated references align with version 6.12.20 consistently across the supported boards.

buildroot-external/configs/odroid_n2_defconfig (2)

7-7: Expanded patch directory
Including the additional patch directory helps ensure all board-specific fixes are applied.


19-19: Kernel version bump
Transitioning from 6.12.18 to 6.12.20 is consistent with the broader updates.

buildroot-external/configs/odroid_c4_defconfig (2)

7-7: Expanded patch directory
No concerns with adding the extra patches folder.


19-19: Kernel version bump
Moving to kernel version 6.12.20 is in line with other platform updates in this PR.

buildroot-external/board/raspberrypi/patches/linux/0006-firmware-rp1-Linger-on-firmware-failure.patch (4)

21-28: Conditional reference decrement
Wrapping kref_put in if (!IS_ERR_OR_NULL(fw)) is a robust safeguard against invalid pointers.


31-67: Use of ERR_PTR for incompatible firmware
Returning ERR_PTR(-ENXIO) rather than NULL is a standard kernel practice that improves error propagation.

Verify all call sites handle IS_ERR checks properly to avoid potential misinterpretations of the returned pointer.


70-77: devm_rp1_firmware_get logic
Allowing an error pointer return here preserves consistent handling of invalid firmware across the driver.

Ensure the callers of this function are updated to anticipate IS_ERR results.


85-103: Probe returning success on firmware failure
Keeping the driver active even if firmware is incompatible may be intentional per the commit message.

Confirm this behavior aligns with run-time operational requirements, as the device will remain loaded without functional firmware.

@sairon sairon merged commit 3e2f891 into main Mar 31, 2025
@sairon sairon deleted the prepare-15.1 branch March 31, 2025 13:41
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 8, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants