-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Starfive: bump kernel to v6.6 for starfive2 #8033
base: main
Are you sure you want to change the base?
Conversation
WalkthroughThe changes update the configuration for the StarFive2 and VisionFive2 platforms by modifying kernel branch and version settings. The previous "edge" branch configuration has been replaced with a "vendor" branch, and the kernel version has been updated to 6.6 with corresponding changes in the branch naming scheme. A new Linux kernel configuration file has been added, which defines an extensive set of kernel options covering system testing, inter-process communication, driver support, networking, file systems, and more. Additionally, the board configuration for VisionFive2 has been revised to update the kernel target from "edge" to "vendor" and to switch to a newer boot device tree file. All modifications are implemented to align the configuration with the updated kernel version and target branch specifications across the platforms. Tip ⚡💬 Agentic Chat (Pro Plan, General Availability)
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (3)
🚧 Files skipped from review as they are similar to previous changes (1)
🔇 Additional comments (5)
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
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)
Other keywords and placeholders
CodeRabbit Configuration File (
|
The problem with this pr is that the dtb pointed to by the startup file(dts) needs to be changed before the first startup (because this board has two revisions, the corresponding dtb is jh7110-starfive-visionfive-2-v1.3b.dtb and jh7110-starfive-visionfive-2-v1.2b.dtb) I don't know how to achieve automatic recognition (mine is version 1.3) |
AFAIK legacy for this board is anyway broken so I would propose removing it within this commit (kernel config, all bits related to this). Next, branch of this kernel should rather be named "vendor" instead of "current". And perhaps setting dtb right away to v1.3b and / or align this with upstream DT naming. Then add some info on the download pages. If you want to take care of this, drop some into here https://www.armbian.com/update-data/ and let me know to sent you login credentials. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
config/boards/visionfive2.eos
(2 hunks)config/kernel/linux-starfive2-vendor.config
(1 hunks)config/sources/families/starfive2.conf
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- config/boards/visionfive2.eos
🔇 Additional comments (6)
config/sources/families/starfive2.conf (2)
16-16
: Branch naming change aligns with project standards.This change from "edge" to "vendor" aligns with the project maintainer's comment: "Let's absolutely never ever call a vendor kernel 'current'". This is a good practice as it clearly identifies the kernel as vendor-specific.
16-19
:✅ Verification successful
Kernel branch updated to vendor for StarFive2.
The kernel branch has been successfully updated from "edge" to "vendor" with a new kernel version 6.6, which aligns with the PR objective to bump the kernel version for starfive2.
🏁 Script executed:
#!/bin/bash # Verify the kernel configuration file exists for the new vendor branch echo "Checking for the existence of the new kernel config file..." if [ -f "config/kernel/linux-starfive2-vendor.config" ]; then echo "✅ Kernel config file exists for vendor branch" else echo "❌ Kernel config file missing for vendor branch" fiLength of output: 286
Kernel branch update verified for StarFive2
The kernel branch update in
config/sources/families/starfive2.conf
has been confirmed. The snippet correctly shows the new vendor branch and bumped kernel version (6.6), and the kernel configuration file atconfig/kernel/linux-starfive2-vendor.config
exists as expected.config/kernel/linux-starfive2-vendor.config (4)
1-430
: Comprehensive kernel configuration for StarFive2 platform.This new configuration file provides a complete set of kernel options for the StarFive2 platform, supporting the kernel 6.6 update. The configuration includes essential features such as:
- System V IPC and POSIX message queues support
- BPF and control groups
- Networking capabilities including netfilter
- Hardware support for StarFive-specific components
- Various file systems (EXT4, BTRFS, NFS, etc.)
- Debugging and performance monitoring features
The configuration appears well-structured and appropriate for a RISC-V platform.
234-239
: GPU support properly enabled.The configuration includes support for the Vision DSI interface, HDMI, and IMG Rogue GPU drivers, which are important for display and graphics capabilities on the StarFive2 platform.
227-231
: Camera sensor support enabled.The configuration includes support for camera sensors (OV4689, IMX219, IMX708) which is important for applications requiring camera functionality. This aligns with the VisionFive2 board capabilities.
170-173
: Wireless support for AIC8800 configured as modules.AIC wireless support is properly configured as modules which allows for flexibility in loading drivers only when needed. This is a good practice for optimizing resource usage.
Wild guess: I vaguely remember that the VF2 shipped "some SBI + u-boot" in SPI flash? If so, it might be it has some detection code (usually via an ADC). Try stopping u-boot using UART (ctrl-c or something) and running |
printenv output, I will change uenv |
This is the difference between the dts compiled from
|
If i want to start armbian directly by default, I think i may need two configuration files, because printenv does not point to the name of the dts of the revision, but only the generic one 'jh7110-visionfive-v2.dtb'. I did not find how to start a certain dtb according to the version number in the existing configuration files.
If i want to start armbian directly by default, I think i may need two configuration files, because printenv does not point to the name of the dts of the revision, but only the generic one 'jh7110-visionfive-v2.dtb'. I did not find how to start a certain dtb according to the version number in the existing configuration files. |
There was a problem hiding this 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
♻️ Duplicate comments (1)
config/kernel/linux-starfive2-vendor.config (1)
43-43
: SECCOMP Configuration – Vendor Alignment Confirmed.
Line 43 shows that SECCOMP is disabled (# CONFIG_SECCOMP is not set
). As per the learning retrieved from libiunc, this is an intentional decision to maintain consistency with the vendor’s kernel configuration. No changes are required here.
🧹 Nitpick comments (1)
config/kernel/linux-starfive2-vendor.config (1)
1-1
: Suggestion: Add a file header for context and traceability.
Consider adding a header comment at the top of the file that specifies the intended platform (StarFive2), kernel version (6.6), and notes that the configuration adheres to the vendor-provided defaults. This will help future maintainers quickly understand the origin and purpose of the config file.Example diff for line 1:
-CONFIG_COMPILE_TEST=y + # StarFive2 Vendor Kernel Configuration + # Kernel Version: 6.6 + # This configuration is based on the vendor-provided defaults to ensure hardware compatibility. +CONFIG_COMPILE_TEST=y
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
config/boards/visionfive2.eos
(2 hunks)config/kernel/linux-starfive2-vendor.config
(1 hunks)config/sources/families/starfive2.conf
(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- config/sources/families/starfive2.conf
- config/boards/visionfive2.eos
🧰 Additional context used
🧠 Learnings (1)
config/kernel/linux-starfive2-vendor.config (1)
Learnt from: libiunc
PR: armbian/build#8033
File: config/kernel/linux-starfive2-vendor.config:43-43
Timestamp: 2025-04-09T10:59:19.120Z
Learning: For StarFive2 platform kernel configurations, maintain alignment with vendor-provided configurations rather than modifying security settings like SECCOMP. This ensures hardware compatibility as intended by the manufacturer.
🔇 Additional comments (2)
config/kernel/linux-starfive2-vendor.config (2)
1-42
: Comprehensive Kernel Configuration Set.
The configuration options from lines 1 to 42 cover various fundamental features such as compile testing, hostname defaults, IPC, POSIX message queues, and timer settings. These settings look thorough and well-aligned with a vendor configuration, ensuring both functionality and hardware compatibility.
44-430
: Extensive and Detailed Kernel Options.
The remaining configuration lines (44 to 430) encompass a wide range of kernel subsystems including modules, networking, device drivers, file systems, power management, and peripheral support. Overall, the options appear comprehensive and reflect the necessary features for the StarFive2 platform running kernel 6.6.
Please ensure that all of these settings have been validated against the vendor configuration for hardware compatibility and that no unintended modifications have been introduced. If any particular options are subject to change between kernel versions, consider documenting those differences for clarity.
Got a feasible solution, will update later |
Done In the subsequent updated uboot and opensbi, when the soc is detected as 'A' (i.e. 1.2a), the 1.3b dtb will be automatically patched to 1.2a. So we only need to modify the boot dtb to 1.3a. |
Description
Can recompile the image and start
How Has This Been Tested?
Use
./compile.sh build BOARD=visionfive2 BRANCH=vendor BUILD_DESKTOP=no BUILD_MINIMAL=no KERNEL_CONFIGURE=no RELEASE=trixie
to build the image
Complete boot log
Checklist: