-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
add initial support of NanoPi M5 #8651
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
Conversation
Signed-off-by: SuperKali <[email protected]>
WalkthroughAdds a new board configuration file config/boards/nanopi-m5.conf for the NanoPi M5 (Rockchip RK3576). Declares board metadata and boot parameters (BOARD_NAME, BOARDFAMILY=rk35xx, BOOTCONFIG, KERNEL_TARGET=vendor, FULL_DESKTOP, BOOT_LOGO, BOOT_FDT_FILE, BOOT_SCENARIO, SERIALCON, BOOT_SUPPORT_SPI, BOOT_SPI_RKSPI_LOADER, IMAGE_PARTITION_TABLE=gpt, BOARD_MAINTAINER). Adds post_family_tweaks__nanopi-m5_naming_audios() which logs an info message, ensures SDCARD/etc/udev/rules.d exists, writes two udev rules to name HDMI and RT5616 audio devices, and returns success. Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Signed-off-by: SuperKali <[email protected]>
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
🧹 Nitpick comments (2)
config/boards/nanopi-m5.conf (2)
17-17
: Consider using more specific function naming.The function name uses "nanopi-m5" which works but could be more consistent with board naming patterns in Armbian. However, this is functional and readable.
5-5
: Confirm: 'current' and 'edge' are supported via rockchip64_common.inc.config/sources/families/rk35xx.conf sources config/sources/families/include/rockchip64_common.inc, which defines the "current" and "edge" branches (sets LINUXFAMILY / LINUXCONFIG / KERNEL_MAJOR_MINOR). KERNEL_TARGET="vendor" is correct; update or remove the "WIP: current, edge kernel" comment in config/boards/nanopi-m5.conf if it implies those branches are unavailable.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Jira integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
config/boards/nanopi-m5.conf
(1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: EvilOlaf
PR: armbian/build#8537
File: config/boards/qcom-robotics-rb5.conf:1-1
Timestamp: 2025-09-18T03:36:17.842Z
Learning: In Armbian board configuration files (regardless of file extension), the standard pattern is to have only one line as a comment describing the board hardware specifications. This single-line description typically includes the SoC model, core count, RAM options, and key features like connectivity options, storage interfaces, and special features. The file extensions indicate board support status: .conf (standard support), .csc (community supported), .eos (end of support), .tvb (tvbox), .wip (work in progress).
Learnt from: EvilOlaf
PR: armbian/build#8537
File: config/boards/qcom-robotics-rb5.conf:1-1
Timestamp: 2025-09-18T03:36:17.842Z
Learning: In Armbian board configuration files, .wip and .conf extensions require BOARD_MAINTAINER to be present and contain at least one maintainer. If no maintainer is present, the board support rules state it does not qualify for standard support and must be moved to community support (.csc extension). This is documented at https://docs.armbian.com/User-Guide_Board-Support-Rules/
📚 Learning: 2025-09-11T06:12:54.213Z
Learnt from: SuperKali
PR: armbian/build#8609
File: config/boards/nanopi-r76s.conf:5-5
Timestamp: 2025-09-11T06:12:54.213Z
Learning: In the Armbian build system, board family configuration files (like config/sources/families/rk35xx.conf) can inherit kernel branch definitions from common include files (like config/sources/families/include/rockchip64_common.inc). Even if a branch like "edge" is not defined directly in the family conf file, it may be available through the sourced include file.
Applied to files:
config/boards/nanopi-m5.conf
📚 Learning: 2025-09-18T03:36:17.842Z
Learnt from: EvilOlaf
PR: armbian/build#8537
File: config/boards/qcom-robotics-rb5.conf:1-1
Timestamp: 2025-09-18T03:36:17.842Z
Learning: In Armbian board configuration files (regardless of file extension), the standard pattern is to have only one line as a comment describing the board hardware specifications. This single-line description typically includes the SoC model, core count, RAM options, and key features like connectivity options, storage interfaces, and special features. The file extensions indicate board support status: .conf (standard support), .csc (community supported), .eos (end of support), .tvb (tvbox), .wip (work in progress).
Applied to files:
config/boards/nanopi-m5.conf
🔇 Additional comments (3)
config/boards/nanopi-m5.conf (3)
1-1
: LGTM! Header follows Armbian standards.The hardware description is comprehensive and follows the established pattern for Armbian board configuration files with SoC details, core count, RAM options, and key features.
2-14
: Board configuration looks well-structured.The board configuration follows Armbian conventions with appropriate values for the RK3576 SoC. The WIP comment on Line 5 correctly indicates that current/edge kernel support is planned but not yet implemented.
17-24
: Audio naming function implemented correctly.The function properly creates udev rules to provide descriptive names for HDMI and RT5616 audio devices. The implementation follows good practices with proper directory creation and file handling.
✅ This PR has been reviewed and approved — all set for merge! |
Description
This PR adds initial support for the NanoPi M5 board based on the Rockchip RK3576 SoC. The implementation includes U-Boot device tree support and Armbian board configuration for a complete working system.
Summary of changes:
rk3576-nanopi-m5.dts
with hardware initialization for all major componentsnanopi-m5-rk3576_defconfig
with optimized build configurationHardware features enabled:
Note: UFS support is compiled but disabled in device tree due to vendor U-Boot compilation issues. Will be enabled when resolved. look here #8647
How Has This Been Tested?
The implementation has been tested with the following configurations:
Test Configuration:
Checklist: