Disable SVB for hi3516av200 to fix DDR instability - #2
Closed
widgetii wants to merge 1 commit into
Closed
Conversation
widgetii
force-pushed
the
fix/hi3516av200-svb-rmii
branch
5 times, most recently
from
April 21, 2026 11:42
d96ade4 to
180d314
Compare
widgetii
force-pushed
the
fix/hi3516av200-svb-rmii
branch
5 times, most recently
from
April 21, 2026 13:05
847aa58 to
bcc0826
Compare
CONFIG_SVB_ENABLE adjusts CPU/DDR voltages after DDR initialization, destabilizing memory at higher addresses. The vendor firmware does not enable SVB. Confirmed by binary analysis and real hardware testing. Camera: Hi3516AV200 + 512MB DDR + SPI NAND MX35LF1GE4AB Fixes: OpenIPC/firmware#517 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
widgetii
force-pushed
the
fix/hi3516av200-svb-rmii
branch
from
April 21, 2026 13:30
bcc0826 to
ae2fe03
Compare
Member
Author
|
Closing — the root cause was not SVB but SPL size truncation. With SVB enabled, The proper fix is in defib (OpenIPC/defib#55): dynamically detect SPL code size from the LZMA boundary instead of using the hardcoded profile value. Verified on hardware — SVB-enabled U-Boot boots and pings successfully with the defib fix. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Disable
CONFIG_SVB_ENABLEfor hi3516av200 (SPI NOR and NAND configs).Root cause
start_svb()runs at the beginning ofstart_ddr_training()and adjusts CPU/DDR voltages via HPM readings after the.regtable has already initialized DDR. This causes DDR to work at low addresses (0x81000000) but fail at higher addresses (0x88300000, TEXT_BASE), crashing the mini-boot.The vendor firmware does not have SVB enabled — binary analysis shows zero references to the PMC register block (0x120A0000) in the vendor SPL.
Test plan
arm-hisiv500-linux-toolchain — boots with 512MB RAM detectedFixes: OpenIPC/firmware#517
🤖 Generated with Claude Code