Skip to content

Add support for Friendlyelec NanoPi Zero2#8886

Merged
igorpecovnik merged 2 commits intoarmbian:mainfrom
sapphic-kitten:nanopi-zero2
Dec 16, 2025
Merged

Add support for Friendlyelec NanoPi Zero2#8886
igorpecovnik merged 2 commits intoarmbian:mainfrom
sapphic-kitten:nanopi-zero2

Conversation

@sapphic-kitten
Copy link
Copy Markdown
Contributor

@sapphic-kitten sapphic-kitten commented Nov 7, 2025

Description

Add support for Friendlyelec NanoPi Zero2.

How Has This Been Tested?

  • build
  • microSD
  • debug UART
  • USB
  • Ethernet
  • m.2 WIFI / Bluethooth

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules

Summary by CodeRabbit

  • New Features
    • Added NanoPi Zero2 board support — users can now generate optimized system images for this hardware with complete boot configuration options, kernel target selection, optional full desktop and video output, filesystem type choice, and partition sizing controls.

✏️ Tip: You can customize this high-level summary in your review settings.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Nov 7, 2025

Hey @sapphic-kitten! 👋

Thanks for submitting your first pull request to the Armbian project — we're excited to have you contributing! 🧡
Your effort doesn’t just improve Armbian — it benefits the entire community of users and developers.

If you'd like to stay informed about project updates or collaborate more closely with the team,
you can optionally share some personal contact preferences at armbian.com/update-data.
This helps us keep in touch without relying solely on GitHub notifications.

Also, don’t forget to ⭐ star the repo if you haven’t already — and welcome aboard! 🚀

@github-actions github-actions Bot added Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... Patches Patches related to kernel, U-Boot, ... labels Nov 7, 2025
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Nov 7, 2025

Walkthrough

Adds a new static board configuration file for NanoPi Zero2 defining board metadata and boot/build parameters (kernel target, boot scenario, FDT, partition table, boot filesystem, vendor, and sizes).

Changes

Cohort / File(s) Change Summary
NanoPi Zero2 Board Configuration
config/boards/nanopi-zero2.csc
New board configuration file adding variables: BOARD_NAME, BOARD_VENDOR, BOARDFAMILY, BOOTCONFIG, KERNEL_TARGET, FULL_DESKTOP, HAS_VIDEO_OUTPUT, BOOT_FDT_FILE, BOOT_SCENARIO, IMAGE_PARTITION_TABLE, BOOTFS_TYPE, and BOOTSIZE.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

  • Verify parameter values match NanoPi Zero2 hardware and bootloader expectations (FDT filename, partition layout, BOOTFS_TYPE).
  • Compare naming and structure to existing board configs for consistency.
  • Confirm BOOTSIZE and IMAGE_PARTITION_TABLE align with build/system defaults.

Possibly related PRs

Suggested reviewers

  • prahal
  • rpardini
  • ginkage
  • vidplace7
  • krachlatte
  • lanefu
  • amazingfate
  • catalinii
  • Tonymac32
  • HeyMeco
  • chainsx
  • efectn
  • schwar3kat
  • ColorfulRhino

Poem

🐰 I hopped a patch across the stream,
A Zero2 file tucked in a dream,
Tiny vars in tidy rows,
Ready to boot where warm wind blows,
Nibble the bytes — build-time gleam.

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add support for Friendlyelec NanoPi Zero2' clearly and accurately describes the main change in the pull request, which adds a new board configuration file for the NanoPi Zero2.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between f6dc3f1 and d4cc79b.

📒 Files selected for processing (1)
  • config/boards/nanopi-zero2.csc (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • config/boards/nanopi-zero2.csc

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

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@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: 2

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 1f315c7 and 5cba94e.

📒 Files selected for processing (3)
  • config/boards/nanopi-zero2.csc (1 hunks)
  • patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-common.dtsi (1 hunks)
  • patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-rev01.dts (1 hunks)
🧰 Additional context used
🧠 Learnings (11)
📓 Common learnings
Learnt from: EvilOlaf
Repo: armbian/build PR: 8537
File: config/boards/qcom-robotics-rb5.conf:1-1
Timestamp: 2025-09-18T03:36:17.862Z
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: HackingGate
Repo: armbian/build PR: 8665
File: config/boards/photonicat2.csc:4-4
Timestamp: 2025-10-26T10:41:35.118Z
Learning: In the Armbian build system, rk3576 boards consistently use BOARDFAMILY="rk35xx" for both vendor and edge kernel targets. The rk35xx family configuration sources rockchip64_common.inc, which provides edge and current kernel branch definitions, making these branches available even though they're not defined directly in rk35xx.conf.
Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:222-230
Timestamp: 2025-09-14T06:32:29.806Z
Learning: In the Armbian build system, the write_uboot_platform() function implementations follow different patterns across Rockchip family files. The newer standard (used in rockchip64_common.inc and rk3506) includes 'status=none' parameter in dd commands, while older implementations (rk3288, rk322x) use an older pattern without this parameter. The rk3506 implementation correctly follows the current Rockchip family standard.
Learnt from: igorpecovnik
Repo: armbian/build PR: 8789
File: config/kernel/linux-sunxi64-edge.config:839-839
Timestamp: 2025-10-22T07:51:53.015Z
Learning: In Armbian's wireless driver configuration, CONFIG_RK_WIFI_DEVICE_* options are Rockchip-specific device registration settings, while CONFIG_WLAN_UWE* are the actual cross-platform driver modules for UWE5622 wireless chips. The UWE5622 chip (manufactured by Unisoc/Spreadtrum) is used on multiple Allwinner boards including Orange Pi Zero 2/2W/3 and Orange Pi 3 LTS, so CONFIG_WLAN_UWE5621/5622 along with Unisoc infrastructure options (CONFIG_SPARD_WLAN_SUPPORT, CONFIG_SC23XX, CONFIG_UNISOC_WIFI_PS, CONFIG_WCN_BSP_DRIVER_BUILDIN) are correct in sunxi64 kernel configs.
📚 Learning: 2025-11-02T20:49:56.719Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8849
File: config/boards/radxa-e54c.csc:14-28
Timestamp: 2025-11-02T20:49:56.719Z
Learning: In Armbian board configuration files (config/boards/*.conf, *.csc, etc.), do not use kernel_config_set, kernel_config_set_m, kernel_config_set_y, or custom_kernel_config__* functions to modify kernel configuration. Kernel configuration is associated with LINUXFAMILY/BOARDFAMILY, not individual BOARD. Board-specific kernel modifications cause inconsistency in kernel packages published to the apt repository because boards within a family share the same kernel packages. Kernel configuration changes must be made in the appropriate kernel config file (e.g., config/kernel/linux-*-*.config) or in family configuration files (config/sources/families/*.conf, *.inc) instead.

Applied to files:

  • config/boards/nanopi-zero2.csc
📚 Learning: 2025-09-18T03:36:17.862Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8537
File: config/boards/qcom-robotics-rb5.conf:1-1
Timestamp: 2025-09-18T03:36:17.862Z
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-zero2.csc
📚 Learning: 2025-10-26T10:41:35.118Z
Learnt from: HackingGate
Repo: armbian/build PR: 8665
File: config/boards/photonicat2.csc:4-4
Timestamp: 2025-10-26T10:41:35.118Z
Learning: In the Armbian build system, rk3576 boards consistently use BOARDFAMILY="rk35xx" for both vendor and edge kernel targets. The rk35xx family configuration sources rockchip64_common.inc, which provides edge and current kernel branch definitions, making these branches available even though they're not defined directly in rk35xx.conf.

Applied to files:

  • config/boards/nanopi-zero2.csc
  • patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-common.dtsi
📚 Learning: 2025-09-14T06:32:29.806Z
Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:222-230
Timestamp: 2025-09-14T06:32:29.806Z
Learning: In the Armbian build system, the write_uboot_platform() function implementations follow different patterns across Rockchip family files. The newer standard (used in rockchip64_common.inc and rk3506) includes 'status=none' parameter in dd commands, while older implementations (rk3288, rk322x) use an older pattern without this parameter. The rk3506 implementation correctly follows the current Rockchip family standard.

Applied to files:

  • config/boards/nanopi-zero2.csc
  • patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-rev01.dts
  • patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-common.dtsi
📚 Learning: 2025-09-14T06:10:25.610Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:64-70
Timestamp: 2025-09-14T06:10:25.610Z
Learning: In the Armbian build system, rk32xx and rk33xx Rockchip SoCs no longer have BSP-based (vendor) kernel branches. The rk3506 is the first 32-bit Rockchip SoC to use the vendor branch in the current codebase.

Applied to files:

  • config/boards/nanopi-zero2.csc
  • patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-common.dtsi
📚 Learning: 2025-09-14T06:29:18.958Z
Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:64-70
Timestamp: 2025-09-14T06:29:18.958Z
Learning: In the Armbian build system, vendor branch configurations in family files are designed to be shared across multiple SoCs within the same family that use the same vendor kernel tree. For example, rk35xx and rockchip-rk3588 families both use identical vendor branch settings (same KERNELSOURCE, KERNELBRANCH, and KERNELPATCHDIR), demonstrating that vendor branches are intentionally generic rather than SoC-specific.

Applied to files:

  • config/boards/nanopi-zero2.csc
  • patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-common.dtsi
📚 Learning: 2025-10-22T07:51:53.015Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8789
File: config/kernel/linux-sunxi64-edge.config:839-839
Timestamp: 2025-10-22T07:51:53.015Z
Learning: In Armbian's wireless driver configuration, CONFIG_RK_WIFI_DEVICE_* options are Rockchip-specific device registration settings, while CONFIG_WLAN_UWE* are the actual cross-platform driver modules for UWE5622 wireless chips. The UWE5622 chip (manufactured by Unisoc/Spreadtrum) is used on multiple Allwinner boards including Orange Pi Zero 2/2W/3 and Orange Pi 3 LTS, so CONFIG_WLAN_UWE5621/5622 along with Unisoc infrastructure options (CONFIG_SPARD_WLAN_SUPPORT, CONFIG_SC23XX, CONFIG_UNISOC_WIFI_PS, CONFIG_WCN_BSP_DRIVER_BUILDIN) are correct in sunxi64 kernel configs.

Applied to files:

  • config/boards/nanopi-zero2.csc
📚 Learning: 2025-09-12T21:44:09.061Z
Learnt from: Grippy98
Repo: armbian/build PR: 8624
File: config/boards/sk-am62p.conf:8-8
Timestamp: 2025-09-12T21:44:09.061Z
Learning: For TI K3 family boards in Armbian, BOOT_FDT_FILE uses .dts extension (not .dtb) as the standard convention. The build system handles this correctly by automatically compiling .dts to .dtb during kernel build and using the BOOT_FDT_FILE value directly in bootloader configurations.

Applied to files:

  • config/boards/nanopi-zero2.csc
📚 Learning: 2025-10-14T05:08:11.785Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8754
File: config/boards/bestv-r3300-l.csc:14-16
Timestamp: 2025-10-14T05:08:11.785Z
Learning: In the Armbian build system, BOOTBRANCH_BOARD is a valid framework variable used as a fallback when BOOTBRANCH is unset. The framework checks BOOTBRANCH_BOARD before applying the default bootloader branch value (see config/sources/common.conf). Board configuration files can use BOOTBRANCH_BOARD to specify the bootloader branch.

Applied to files:

  • config/boards/nanopi-zero2.csc
📚 Learning: 2025-07-23T07:30:52.265Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8417
File: config/boards/orangepi5pro.csc:57-58
Timestamp: 2025-07-23T07:30:52.265Z
Learning: In the Armbian build system, BOOTPATCHDIR can contain board-specific subdirectories (e.g., board_orangepi5pro) for applying patches to specific boards only. The framework automatically checks if such board-specific subdirectories exist for the board being built and applies those patches accordingly.

Applied to files:

  • config/boards/nanopi-zero2.csc

Comment thread patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-rev01.dts Outdated
Comment thread patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-rev01.dts Outdated
Comment thread config/boards/nanopi-zero2.csc Outdated
Comment thread patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-common.dtsi Outdated
Copy link
Copy Markdown
Member

@EvilOlaf EvilOlaf left a comment

Choose a reason for hiding this comment

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

Just to prevent this accidentially being merged.
Please address points mentioned in the comments.

@igorpecovnik igorpecovnik added Work in progress Unfinished / work in progress and removed 11 Milestone: Fourth quarter release labels Nov 17, 2025
@igorpecovnik igorpecovnik added the 02 Milestone: First quarter release label Nov 22, 2025
@leggewie leggewie marked this pull request as draft December 5, 2025 22:10
@github-actions github-actions Bot added 11 Milestone: Fourth quarter release size/small PR with less then 50 lines and removed size/large PR with 250 lines or more labels Dec 14, 2025
@igorpecovnik igorpecovnik marked this pull request as ready for review December 16, 2025 13:52
@github-actions

This comment was marked as resolved.

igorpecovnik added a commit to armbian/armbian.github.io that referenced this pull request Dec 16, 2025
@github-actions github-actions Bot added the Ready to merge Reviewed, tested and ready for merge label Dec 16, 2025
@github-actions
Copy link
Copy Markdown
Contributor

✅ This PR has been reviewed and approved — all set for merge!

@github-actions github-actions Bot removed Needs review Seeking for review Work in progress Unfinished / work in progress labels Dec 16, 2025
@igorpecovnik igorpecovnik merged commit 7add411 into armbian:main Dec 16, 2025
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

02 Milestone: First quarter release 11 Milestone: Fourth quarter release Hardware Hardware related like kernel, U-Boot, ... Patches Patches related to kernel, U-Boot, ... Ready to merge Reviewed, tested and ready for merge size/small PR with less then 50 lines

Development

Successfully merging this pull request may close these issues.

3 participants