Skip to content

sunxi64: a64-olinuxino u-boot — build eMMC device tree (fix eMMC boot) - #10349

Merged
igorpecovnik merged 2 commits into
mainfrom
fix/a64-olinuxino-uboot-emmc-dt
Aug 6, 2026
Merged

sunxi64: a64-olinuxino u-boot — build eMMC device tree (fix eMMC boot)#10349
igorpecovnik merged 2 commits into
mainfrom
fix/a64-olinuxino-uboot-emmc-dt

Conversation

@igorpecovnik

@igorpecovnik igorpecovnik commented Aug 6, 2026

Copy link
Copy Markdown
Member

Problem

On the Olimex A64-OLinuXino (eMMC), eMMC installs don't boot after the sunxi64 u-boot bump v2024.01 → v2026.07 (aea0a3c24). Serial shows full u-boot loading fine, then failing to initialize the eMMC:

=> ls mmc 2:1
Card did not respond to voltage select! : -110
** Bad device specification mmc 2 **

u-boot can't read the eMMC → no boot.scr → falls through to USB/network. The eMMC hardware and the install are fine (Linux mounts mmcblk2 normally; BROM/SPL still load u-boot from it) — only full u-boot can't bring the eMMC up.

Root cause

The bump started a fresh v2026.07-sunxi64 patchdir and, per its commit message, only re-added a listed set of board patches. board_lime-a64 was dropped. Its add-a64-olinuxino-emmc-support.patch injected the &mmc2 eMMC node into the DT. Without it, a64-olinuxino_defconfig builds the base sun50i-a64-olinuxino DT, which has no eMMC node → u-boot has nothing to init.

Fix

Point the defconfig at upstream's ready-made sun50i-a64-olinuxino-emmc DT instead of re-carrying the old patch. It's more complete than the dropped patch — it adds vqmmc-supply = <&reg_eldo1> (the 1.8 V I/O rail the "voltage select" step needs) on top of vmmc, 8-bit bus, non-removable, cap-mmc-hw-reset. CONFIG_MMC_SUNXI_SLOT_EXTRA=2 is already set.

-CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-olinuxino"
+CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-olinuxino-emmc"

Validation

  • Patch applies clean to u-boot v2026.07; the -emmc DTS is present upstream and includes the base DT + the mmc2 node.
  • Hardware test pending: rebuild u-boot for lime-a64 and reflash — the eMMC should init and boot standalone.

Note

The same board dir's add-a64-olinuxino-spl-spi.patch (SPL SPI-flash boot) was also dropped in the bump — separate feature, not restored here.

Summary by CodeRabbit

  • Bug Fixes
    • Updated the default hardware configuration for A64 OLinuXino boards to use the eMMC-specific device tree.
    • Improved device detection and initialization for systems using onboard eMMC storage.
    • Preserved support for the additional MMC slot.

…oot)

The A64-OLinuXino eMMC stopped working in u-boot after the sunxi64 bump
v2024.01 -> v2026.07 (aea0a3c), which started a fresh v2026.07-sunxi64
patchdir and re-added only a listed set of board patches - board_lime-a64
was not among them. Its add-a64-olinuxino-emmc-support.patch injected the
mmc2 eMMC node into the device tree; without it full u-boot boots a DT with
no eMMC node and dies during MMC init:

    Card did not respond to voltage select! : -110

so it cannot read boot.scr from eMMC and falls through to USB/network -
eMMC installs do not boot (the BROM/SPL still load u-boot, and Linux uses
the eMMC fine, which is why only u-boot is affected).

Rather than re-carry the old DT patch, select upstream's ready-made
sun50i-a64-olinuxino-emmc device tree, which is more complete than the old
patch: it adds vqmmc-supply = <&reg_eldo1> (the 1.8V I/O rail the voltage
select needs) in addition to vmmc, 8-bit bus, non-removable and
cap-mmc-hw-reset. CONFIG_MMC_SUNXI_SLOT_EXTRA=2 is already set.

Note: the same board dir's add-a64-olinuxino-spl-spi.patch (SPL SPI-flash
boot) was also dropped in the bump; that is a separate feature and is not
restored here.

Signed-off-by: Igor Pecovnik <igor@armbian.com>
@github-actions github-actions Bot added 08 Milestone: Third quarter release size/small PR with less then 50 lines Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... Patches Patches related to kernel, U-Boot, ... labels Aug 6, 2026
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The patch documents the required eMMC device-tree configuration and changes the A64 Olinuxino U-Boot default device tree to sun50i-a64-olinux-emmc.

Changes

A64 Olinuxino eMMC configuration

Layer / File(s) Summary
Select the eMMC device tree
patch/u-boot/v2026.07-sunxi64/board_lime-a64/a64-olinuxino-build-emmc-devicetree.patch
The patch documents the missing eMMC node and changes CONFIG_DEFAULT_DEVICE_TREE to sun50i-a64-olinux-emmc. The existing extra MMC slot setting remains unchanged.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • armbian/build#9989: Both changes update U-Boot device-tree configuration for onboard eMMC on different boards.
  • armbian/build#10089: Extends the sunxi64 U-Boot migration with the Lime A64 eMMC device-tree selection.

Suggested reviewers: deece, johnthecoolingfan, pyavitz, schwar3kat

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the A64-OLinuXino U-Boot change and its purpose of fixing eMMC boot.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/a64-olinuxino-uboot-emmc-dt

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@patch/u-boot/v2026.07-sunxi64/board_lime-a64/a64-olinuxino-build-emmc-devicetree.patch`:
- Line 2: Correct the patch header date weekday from “Wed” to “Thu” while
leaving the date, time, and all other patch metadata unchanged.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 5fa3643e-079f-477c-aa63-88f79df61a2f

📥 Commits

Reviewing files that changed from the base of the PR and between e27ccd2 and 310e7ef.

📒 Files selected for processing (1)
  • patch/u-boot/v2026.07-sunxi64/board_lime-a64/a64-olinuxino-build-emmc-devicetree.patch

@igorpecovnik

Copy link
Copy Markdown
Member Author

Hardware-confirmed on the Olimex A64-OLinuXino (eMMC): with the patched u-boot built and a fresh armbian-install to eMMC, the board boots standalone from eMMC. Pointing the defconfig at upstream sun50i-a64-olinuxino-emmc (with vqmmc-supply = <&reg_eldo1>) resolves the Card did not respond to voltage select! : -110 eMMC init failure introduced when the v2024.01→v2026.07 bump dropped the board_lime-a64 eMMC DT patch.

2026-08-06 is a Thursday.

Signed-off-by: Igor Pecovnik <igor@armbian.com>
@igorpecovnik igorpecovnik added Ready to merge Reviewed, tested and ready for merge and removed Needs review Seeking for review labels Aug 6, 2026
@igorpecovnik
igorpecovnik merged commit 1a8e3f4 into main Aug 6, 2026
13 checks passed
@igorpecovnik
igorpecovnik deleted the fix/a64-olinuxino-uboot-emmc-dt branch August 6, 2026 09:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

08 Milestone: Third 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.

1 participant