Skip to content

DDR memory init code is a blob #56

@alchark

Description

@alchark

DDR memory init code is a tiny program (<1MB) that runs at early boot stages and preconfigures the RAM by testing it (training) and writing the required memory operating frequencies into registers. It is distributed as a closed-source binary in the rkbin repository, together with utilities for assembling the final binary from its various parts.

Our goal

RK3576 can these days work with nearly all open-source code, except for the earliest part which initializes the DDR RAM. It is only available in binary form from Rockchip's rkbin repository, so it's unknown how it works and what exactly it does.
Ideally we would like the full software stack to be open, which would include the DDR init code.

License prohibits reverse-engineering

Rockchip's LICENSE file in their rkbin repository is explicitly against reverse-engineering:

Except as expressively authorized by Rockchip in writing, you may NOT:
(a) decompile, reverse-engineer, dissemble, or attempt to derive any source
code from the Software;

Although formal law may permit reverse-engineering in some jurisdictions, the Flipper Devices team does not want to go down that path for now, and will instead try to convince Rockchip to open the sources. Community members have more context on the reverse-engineering side: @Bee4Queer and @doyle31

UPD

To keep the discussion readable, some information has been consolidated into the first message. Flooding, off-topic discussions, and AI slop have been removed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed
    No fields configured for Feature.

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions