Skip to content

board: youyeetoo-r1-v3: fix boot order to prioritize SD card over eMMC#9006

Merged
SuperKali merged 1 commit intoarmbian:mainfrom
OpenSource-YYT:youyeetoo-r1-boot-order
Nov 28, 2025
Merged

board: youyeetoo-r1-v3: fix boot order to prioritize SD card over eMMC#9006
SuperKali merged 1 commit intoarmbian:mainfrom
OpenSource-YYT:youyeetoo-r1-boot-order

Conversation

@SuperKali
Copy link
Member

@SuperKali SuperKali commented Nov 28, 2025

Description

Device tree aliases configuration:

  • mmc0 = sdhci (eMMC, 8-bit, non-removable)
  • mmc1 = sdmmc (SD card, 4-bit, removable)

Changed boot order from (mmc0, nvme, mmc1) to (mmc1, nvme, mmc0) to prioritize:

  1. SD card
  2. NVMe
  3. eMMC

This ensures the system boots from SD card when present, instead of always defaulting to eMMC.

How Has This Been Tested?

  • Tested boot from SD card with eMMC present
  • Verified NVMe boot priority over eMMC
  • Confirmed eMMC boots when no other devices present

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • My changes generate no new warnings

Summary by CodeRabbit

  • Configuration
    • Updated boot device priority sequence: SD card storage now boots first, followed by NVMe, then eMMC for improved boot behavior.

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

The device tree aliases show:
- mmc0 = sdhci (eMMC, 8-bit, non-removable)
- mmc1 = sdmmc (SD card, 4-bit, removable)

Previous boot order (mmc0, nvme, mmc1) caused the system to always
boot from eMMC when multiple storage devices were present, ignoring
bootable SD cards.

New boot order (mmc1, nvme, mmc0) now correctly prioritizes:
1. SD card
2. NVMe
3. eMMC

This ensures consistent boot behavior when using SD card as primary
boot device.
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 28, 2025

Walkthrough

This PR updates the YouYeeToO R1 v3 board's boot order configuration, reprioritizing boot targets to SD (mmc1) first, followed by NVMe and eMMC (mmc0), with corresponding runtime initialization updates and minor whitespace adjustments.

Changes

Cohort / File(s) Change Summary
Board Boot Order Configuration
config/boards/youyeetoo-r1-v3.csc
Updated boot target sequence from mmc0/mmc1 priority to mmc1 (SD), nvme, then mmc0 (eMMC); adjusted BOOT_TARGETS header definitions and rockchip_uboot_targets array; updated comments to reflect new SD/eMMC mapping; minor whitespace adjustment in post_family_tweaks section

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Possibly related PRs

Suggested labels

Ready to merge, size/medium, BSP

Suggested reviewers

  • igorpecovnik
  • chainsx
  • catalinii

Poem

🐰 A rabbit's whisper, soft and spry,
"Boot from SD before you try—
NVMe next, then eMMC's call,
A reordered dance that's best of all!" ✨

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 accurately reflects the main change: updating boot order for youyeetoo-r1-v3 to prioritize SD card (mmc1) over eMMC (mmc0), which matches the core objective of the pull request.
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 7dbd7ca and 31e2c37.

📒 Files selected for processing (1)
  • config/boards/youyeetoo-r1-v3.csc (2 hunks)
🧰 Additional context used
🧠 Learnings (16)
📓 Common learnings
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub API (https://api.github.com/repos/armbian/build/pulls/{pr_number}/files) to get the complete picture of what files are being added or modified, especially for U-Boot patches that will be applied during the build process.
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: SuperKali
Repo: armbian/build PR: 8608
File: lib/functions/compilation/patch/drivers_network.sh:361-363
Timestamp: 2025-09-11T06:06:52.328Z
Learning: For the RTW88 SDIO RF path detection fix patch (004-rtw88-sdio-rf-path-detection-fix.patch), SuperKali prefers using exact version matching (eq 6.1 || eq 6.16) rather than range checks, as the patch has only been tested on those specific kernel versions and may be mainstreamed soon.
📚 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/youyeetoo-r1-v3.csc
📚 Learning: 2025-11-20T18:20:11.985Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8968
File: patch/u-boot/u-boot-sunxi/arm64-dts-sun50i-h6-orangepi.dtsi-Rollback-r_rsb-to-r_i2c.patch:36-36
Timestamp: 2025-11-20T18:20:11.985Z
Learning: The rewrite-patches tool (REWRITE_PATCHES=yes) in the Armbian build system can inadvertently introduce semantic changes when the u-boot/kernel git base revision differs from expected state. The tool applies patches, commits them, and re-exports them using git format-patch, which can cause the re-exported patch to reflect the base revision's state rather than preserving the original patch intent. This is particularly problematic for device tree changes like interrupt specifications. The tool currently lacks validation mechanisms to detect such semantic drift, and affected patches must be manually corrected after rewriting.

Applied to files:

  • config/boards/youyeetoo-r1-v3.csc
📚 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/youyeetoo-r1-v3.csc
📚 Learning: 2025-03-31T22:20:41.849Z
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:73-75
Timestamp: 2025-03-31T22:20:41.849Z
Learning: When porting patches between U-Boot versions (like from 2025.01 to 2025.04), rpardini prefers to maintain patches as-is rather than introducing refactoring changes, even when potential improvements are identified. This approach prioritizes consistency and reduces the risk of introducing new issues.

Applied to files:

  • config/boards/youyeetoo-r1-v3.csc
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.

Applied to files:

  • config/boards/youyeetoo-r1-v3.csc
📚 Learning: 2025-03-31T22:20:48.475Z
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:76-86
Timestamp: 2025-03-31T22:20:48.475Z
Learning: For the Armbian build project, maintaining consistency with existing patches across U-Boot versions (such as between 2025.01 and 2025.04) is prioritized over refactoring individual patches for code improvements.

Applied to files:

  • config/boards/youyeetoo-r1-v3.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/youyeetoo-r1-v3.csc
📚 Learning: 2025-09-12T19:28:38.491Z
Learnt from: Grippy98
Repo: armbian/build PR: 8622
File: config/sources/families/k3.conf:66-66
Timestamp: 2025-09-12T19:28:38.491Z
Learning: In the Armbian k3 family build system (config/sources/families/k3.conf), builds do not fail when TIBOOT3_BOOTCONFIG is unset, even though tiboot3.bin is still listed in UBOOT_TARGET_MAP. The gating mechanism in pre_config_uboot_target__build_first_stage function works as intended to conditionally build/copy tiboot3.bin only when TIBOOT3_BOOTCONFIG is defined.

Applied to files:

  • config/boards/youyeetoo-r1-v3.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/youyeetoo-r1-v3.csc
📚 Learning: 2025-06-12T21:14:36.024Z
Learnt from: djurny
Repo: armbian/build PR: 8287
File: config/bootscripts/boot-sunxi.cmd:38-44
Timestamp: 2025-06-12T21:14:36.024Z
Learning: In config/bootscripts/boot-sunxi.cmd the unconditional "+1" increment in func_align_addr_next (when align_overlap_oboe_avoidance="on") is intentional. It compensates for a known off-by-one error in U-Boot where the end address is calculated as start+size instead of start+size-1, so the extra page prevents overlap. This behavior should not be “optimized away”.

Applied to files:

  • config/boards/youyeetoo-r1-v3.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/youyeetoo-r1-v3.csc
📚 Learning: 2025-11-10T23:44:53.363Z
Learnt from: tabrisnet
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-11-10T23:44:53.363Z
Learning: For the RV1106 family in Armbian (config/sources/families/rockchip-rv1106.conf), udev.children-max=1 is set in the kernel boot parameters to prevent early-boot OOM errors. The RV1106 has a single-core CPU, so parallelism in udev child processes provides no practical benefit. Testing higher values is impractical due to the difficulty of monitoring at this early boot stage.

Applied to files:

  • config/boards/youyeetoo-r1-v3.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/youyeetoo-r1-v3.csc
📚 Learning: 2025-09-09T07:30:22.419Z
Learnt from: amazingfate
Repo: armbian/build PR: 8595
File: lib/functions/compilation/patch/drivers_network.sh:0-0
Timestamp: 2025-09-09T07:30:22.419Z
Learning: RTW_WARN_LMT sed workaround in driver_rtl8852bs() function in lib/functions/compilation/patch/drivers_network.sh is necessary for kernel 6.1 compatibility, even when the upstream wifi-rtl8852bs driver has the macro defined for newer kernels. The workaround ensures cross-kernel compatibility from 6.1 to 6.16+.

Applied to files:

  • config/boards/youyeetoo-r1-v3.csc
📚 Learning: 2025-09-07T17:39:32.272Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8586
File: config/boards/nanopi-r76s.conf:15-21
Timestamp: 2025-09-07T17:39:32.272Z
Learning: In the Armbian build system, the variables $BOARD and $SDCARD are always set by the build framework, so guard checks for these variables are unnecessary in board configuration files and hook functions.

Applied to files:

  • config/boards/youyeetoo-r1-v3.csc
🔇 Additional comments (2)
config/boards/youyeetoo-r1-v3.csc (2)

57-66: Boot-order change correctly implements SD → NVMe → eMMC priority

rockchip_uboot_targets now expands to mmc1 nvme mmc0 scsi usb pxe dhcp, which matches the documented intent (mmc1=SD, mmc0=eMMC) and the comment diff above, so the U-Boot BOOT_TARGETS macro will reflect the desired SD-first, then NVMe, then eMMC order. This stays within board-specific U-Boot customization and doesn’t touch kernel config, which aligns with Armbian board config guidelines. Based on learnings, this looks good as-is.


71-82: Whitespace-only tweak in post_family_tweaks__youyeetoo_r1

The added blank line around the display_alert/here-doc block is non-functional and consistent with the surrounding style; no issues here.


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.

@github-actions github-actions bot added 11 Milestone: Fourth quarter release size/small PR with less then 50 lines Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... labels Nov 28, 2025
@github-actions github-actions bot added the Ready to merge Reviewed, tested and ready for merge label Nov 28, 2025
@github-actions
Copy link
Contributor

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

@github-actions github-actions bot removed the Needs review Seeking for review label Nov 28, 2025
@SuperKali SuperKali merged commit ce584a7 into armbian:main Nov 28, 2025
1 check passed
@SuperKali SuperKali deleted the youyeetoo-r1-boot-order branch November 28, 2025 17:37
jonaswood01 added a commit to TexasInstruments/armbian-build that referenced this pull request Dec 6, 2025
* live_main_upstream/main: (24 commits)
  framework - enable NTSYNC as a module on most kernels
  Add compilation of `resolve_btfids` to the kernel headers postinst script
  Make pahole as hard dependency on kernel headers
  ZFS requires package pahole in order to compile zfs module with success
  Rock-4D: Enable Wi-Fi & Bluetooth (armbian#9029)
  rockchip64-6.18: Enable the NPU on Turing RK1
  config/kernel: (many) change CONFIG_DUMMY=y to =m
  ti: configs: Update K3 kernel configs (armbian#9019)
  `Automatic` board configs status synchronise
  fix missing bracket
  meson64: fix broken patch and overall rewrite patches
  Genio: Collabora Kernel config post rewrite
  Genio: Update Linux Kernel config
  build(deps): bump tj-actions/changed-files
  bump VERSION
  edge: bump to stable and rewrite patches
  add new board radxa-cm5-io
  ODroid-N2: enable btrfs support in u-boot
  ODroid-N2: switch uBoot v2022.10 to v2026.01 reapply patches
  Helios4: enable uboot-btrfs extension
  extensions: add uboot-btrfs extension to add btrfs support in u-boot
  `Automatic` board configs status synchronise
  board: youyeetoo-r1-v3: fix boot order to prioritize SD card over eMMC (armbian#9006)
  board: add Youyeetoo YY3588 support (armbian#9003)

Signed-off-by: Jonas Wood <jw@ti.com>
jonaswood01 added a commit to TexasInstruments/armbian-build that referenced this pull request Dec 6, 2025
* live_main_upstream/main: (24 commits)
  framework - enable NTSYNC as a module on most kernels
  Add compilation of `resolve_btfids` to the kernel headers postinst script
  Make pahole as hard dependency on kernel headers
  ZFS requires package pahole in order to compile zfs module with success
  Rock-4D: Enable Wi-Fi & Bluetooth (armbian#9029)
  rockchip64-6.18: Enable the NPU on Turing RK1
  config/kernel: (many) change CONFIG_DUMMY=y to =m
  ti: configs: Update K3 kernel configs (armbian#9019)
  `Automatic` board configs status synchronise
  fix missing bracket
  meson64: fix broken patch and overall rewrite patches
  Genio: Collabora Kernel config post rewrite
  Genio: Update Linux Kernel config
  build(deps): bump tj-actions/changed-files
  bump VERSION
  edge: bump to stable and rewrite patches
  add new board radxa-cm5-io
  ODroid-N2: enable btrfs support in u-boot
  ODroid-N2: switch uBoot v2022.10 to v2026.01 reapply patches
  Helios4: enable uboot-btrfs extension
  extensions: add uboot-btrfs extension to add btrfs support in u-boot
  `Automatic` board configs status synchronise
  board: youyeetoo-r1-v3: fix boot order to prioritize SD card over eMMC (armbian#9006)
  board: add Youyeetoo YY3588 support (armbian#9003)

Signed-off-by: Jonas Wood <jw@ti.com>
jonaswood01 added a commit to TexasInstruments/armbian-build that referenced this pull request Dec 6, 2025
* live_main_upstream/main: (24 commits)
  framework - enable NTSYNC as a module on most kernels
  Add compilation of `resolve_btfids` to the kernel headers postinst script
  Make pahole as hard dependency on kernel headers
  ZFS requires package pahole in order to compile zfs module with success
  Rock-4D: Enable Wi-Fi & Bluetooth (armbian#9029)
  rockchip64-6.18: Enable the NPU on Turing RK1
  config/kernel: (many) change CONFIG_DUMMY=y to =m
  ti: configs: Update K3 kernel configs (armbian#9019)
  `Automatic` board configs status synchronise
  fix missing bracket
  meson64: fix broken patch and overall rewrite patches
  Genio: Collabora Kernel config post rewrite
  Genio: Update Linux Kernel config
  build(deps): bump tj-actions/changed-files
  bump VERSION
  edge: bump to stable and rewrite patches
  add new board radxa-cm5-io
  ODroid-N2: enable btrfs support in u-boot
  ODroid-N2: switch uBoot v2022.10 to v2026.01 reapply patches
  Helios4: enable uboot-btrfs extension
  extensions: add uboot-btrfs extension to add btrfs support in u-boot
  `Automatic` board configs status synchronise
  board: youyeetoo-r1-v3: fix boot order to prioritize SD card over eMMC (armbian#9006)
  board: add Youyeetoo YY3588 support (armbian#9003)

Signed-off-by: Jonas Wood <jw@ti.com>
jonaswood01 added a commit to TexasInstruments/armbian-build that referenced this pull request Dec 6, 2025
* live_main_upstream/main: (24 commits)
  framework - enable NTSYNC as a module on most kernels
  Add compilation of `resolve_btfids` to the kernel headers postinst script
  Make pahole as hard dependency on kernel headers
  ZFS requires package pahole in order to compile zfs module with success
  Rock-4D: Enable Wi-Fi & Bluetooth (armbian#9029)
  rockchip64-6.18: Enable the NPU on Turing RK1
  config/kernel: (many) change CONFIG_DUMMY=y to =m
  ti: configs: Update K3 kernel configs (armbian#9019)
  `Automatic` board configs status synchronise
  fix missing bracket
  meson64: fix broken patch and overall rewrite patches
  Genio: Collabora Kernel config post rewrite
  Genio: Update Linux Kernel config
  build(deps): bump tj-actions/changed-files
  bump VERSION
  edge: bump to stable and rewrite patches
  add new board radxa-cm5-io
  ODroid-N2: enable btrfs support in u-boot
  ODroid-N2: switch uBoot v2022.10 to v2026.01 reapply patches
  Helios4: enable uboot-btrfs extension
  extensions: add uboot-btrfs extension to add btrfs support in u-boot
  `Automatic` board configs status synchronise
  board: youyeetoo-r1-v3: fix boot order to prioritize SD card over eMMC (armbian#9006)
  board: add Youyeetoo YY3588 support (armbian#9003)

Signed-off-by: Jonas Wood <jw@ti.com>
yury-deltsov pushed a commit to yury-deltsov/build that referenced this pull request Feb 8, 2026
armbian#9006)

The device tree aliases show:
- mmc0 = sdhci (eMMC, 8-bit, non-removable)
- mmc1 = sdmmc (SD card, 4-bit, removable)

Previous boot order (mmc0, nvme, mmc1) caused the system to always
boot from eMMC when multiple storage devices were present, ignoring
bootable SD cards.

New boot order (mmc1, nvme, mmc0) now correctly prioritizes:
1. SD card
2. NVMe
3. eMMC

This ensures consistent boot behavior when using SD card as primary
boot device.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

11 Milestone: Fourth quarter release Hardware Hardware related like 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.

2 participants