Skip to content

Add centralized board configuration#32

Open
EugeniyKozhanov wants to merge 1 commit intoflipperdevices:devfrom
EugeniyKozhanov:eak/proposal-for-centralized-board-configuration
Open

Add centralized board configuration#32
EugeniyKozhanov wants to merge 1 commit intoflipperdevices:devfrom
EugeniyKozhanov:eak/proposal-for-centralized-board-configuration

Conversation

@EugeniyKozhanov
Copy link
Contributor

  • created individual configuration files for 6 supported boards (config/boards)
  • created configs/combo.conf - centralized build settings
  • created configs/board-config.sh - configuration management utility
  • created build-combo.sh - unified build script with commands

- created individual configuration files for 6 supported boards (config/boards)
- created configs/combo.conf - centralized build settings
- created configs/board-config.sh - configuration management utility
- created build-combo.sh - unified build script with commands
@EugeniyKozhanov EugeniyKozhanov marked this pull request as ready for review March 15, 2026 19:36
@EugeniyKozhanov EugeniyKozhanov requested a review from a team March 15, 2026 19:36
@alchark
Copy link
Collaborator

alchark commented Mar 15, 2026

Hi Eugeniy, thanks for your PR!

Would you mind elaborating a bit on the rationale for this addition? From what I see, the config part of this change should really live in U-boot and upstream DTS, and we’d better update things there if anything is not quite suitable for common use cases.

The information on Maskrom activation per board sounds like it belongs in documentation (either a README in this repo, or dev portal, or even upstream U-boot for what it’s worth).

@alchark
Copy link
Collaborator

alchark commented Mar 15, 2026

Please also note that the build stages are deliberately split up to enable selective rebuilds only for those components which changed in respective Git trees. It’s what our Buildbot uses. So merging everything into a single script is not what we want.

I don’t particularly mind a helper script which calls all the sub-stages in sequence, altogether it won’t be much different from just pasting a sequence of commands from the README into a terminal.

@EugeniyKozhanov
Copy link
Contributor Author

The main goal is to try separating board-specific settings into individual configs. I don’t have any of the boards you listed, and as an experiment I wanted to try building your OS for my PineNote (rk3566). However, it wasn’t straightforward, because it seemed that information about sources, settings, and options is spread across different scripts.

In short, I’d love to have a simple way to add a new board: explicitly define it, override a few parameters (and maybe an overlay), and be confident that this won’t break already tested builds.

@EugeniyKozhanov
Copy link
Contributor Author

Some parameters there might currently be unnecessary. You could also treat these configs simply as an example for possible future changes. I tried to make something similar to the combo approach used for launch configurations in AOSP. If the project continues to support a range of devices, there will likely need to be a place to configure things like enabling/disabling Wi-Fi, Bluetooth, DisplayPort, as well as screen type, resolution, and similar device-specific parameters.

The combo script can actually run each stage separately - it’s essentially a copy-paste of the root scripts :)
Its main purpose is just to “hold” the environment settings and configs

@alchark
Copy link
Collaborator

alchark commented Mar 15, 2026

Frankly, extending the build system beyond RK3576 is probably out of scope for us, as it’s opening a Pandora’s box into trying to support everything at once without any chance of being good at it.

Pragmatically, for your use case, you can just manually build a U-boot binary for your board (using upstream U-boot if available) and put it into the prebuilt/u-boot/[boardname] directory (e.g. through a one-off modification of the build-uboot.sh script - you don’t have to update it often unless you know otherwise). The rest of the build scripts are board and SoC agnostic and should just pick it up transparently

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants