Files
buildroot/package/qoriq-mc-binary/Config.in
Vladimir Oltean b59d64c50d package/qoriq-mc-binary: new package
Add a package which deploys the NXP MC (Management Complex) firmware
to the target. This is necessary for NXP DPAA2 SoCs (LS1088A, LS2080A,
LS2088A, LX2160A).

The MC firmware is deployed by default to the $O/images/ folder, where
it can be used by post-build scripts. Additionally, if
BR2_PACKAGE_QORIQ_MC_BINARY_TARGET_INSTALL_PATH is specified and if the
board mcinitcmd is written as such as to pick it up, it is optionally
deployed to the filesystem.

The API exposed by the MC firmware respects backwards compatibility
principles, which means that the latest firmware version can always be
(and should always be) used on a platform, irrespective of the Linux,
U-Boot, RCW and restool versions, even though the latest features might
not be used by older API consumers.

In terms of forwards compatibility, old MC firmware versions can be
used as long as the qoriq-restool package is built with a
MC_VERSION_COMPATIBLE variable (located in its Makefile, signifying
"minimum compatible version") older than, or equal to it.

If the use of qoriq-restool is not desired (networking objects are
statically created by the DPL), old MC firmware versions are supported
by U-Boot and the Linux kernel with a limited feature set. Thus, it
is still possible to an extent to use firmware versions older than
MC_VERSION_COMPATIBLE.

According to the upstream maintainer, the latest MC firmware version
is identified by the fact that it is always located at the HEAD of the
"master" branch:
https://lore.kernel.org/buildroot/482493f17e63d2b4cb285b50049ed8e6@free.fr/T/#m62c3ec04ba546ac9b0a194d13bc35fedeaa9deb0
Currently, the latest MC firmware version is 10.39.0. This version
should be in sync with the qoriq-mc-utils package.

At this stage, the latest lf-6.12.3-1.0.0 NXP BSP has qoriq-restool with
an MC_VERSION_COMPATIBLE='10.32.0', which means that it supports this MC
firmware version.
https://github.com/nxp-qoriq/restool/blob/lf-6.12.3-1.0.0/Makefile#L23

Note that the MC firmware also used to be distributed through
linux-firmware:
https://web.git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/dpaa2/mc?h=20250311
I don't know what was the reason for doing that, but it stopped being
updated and the versions there are quite old.

Signed-off-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2025-04-22 23:15:11 +02:00

56 lines
1.7 KiB
Plaintext

config BR2_PACKAGE_QORIQ_MC_BINARY
bool "qoriq-mc-binary"
help
The Management Complex (MC) is a key component of the
networking subsystem named DPAA2 (Data Path Acceleration
Architecture, second version) in some NXP Layerscape SoCs.
The MC coprocessor runs a closed-source, NXP-supplied
firmware image that simplifies and abstracts the allocation
and configuration of the networking hardware primitives into
DPAA2 "objects".
https://github.com/nxp-qoriq/qoriq-mc-binary
if BR2_PACKAGE_QORIQ_MC_BINARY
choice
prompt "QorIQ MC firmware target"
help
Select the target SoC for the QorIQ MC firmware.
config BR2_PACKAGE_QORIQ_MC_BINARY_TARGET_LS1088A
bool "ls1088a"
config BR2_PACKAGE_QORIQ_MC_BINARY_TARGET_LS2080A
bool "ls2080a"
config BR2_PACKAGE_QORIQ_MC_BINARY_TARGET_LS2088A
bool "ls2088a"
config BR2_PACKAGE_QORIQ_MC_BINARY_TARGET_LX2160A
bool "lx2160a"
endchoice
config BR2_QORIQ_MC_BINARY_PLATFORM
string
default "ls1088a" if BR2_PACKAGE_QORIQ_MC_BINARY_TARGET_LS1088A
default "ls2080a" if BR2_PACKAGE_QORIQ_MC_BINARY_TARGET_LS2080A
default "ls2088a" if BR2_PACKAGE_QORIQ_MC_BINARY_TARGET_LS2088A
default "lx2160a" if BR2_PACKAGE_QORIQ_MC_BINARY_TARGET_LX2160A
config BR2_QORIQ_MC_BINARY_SUBDIR
string
default "lx216xa" if BR2_PACKAGE_QORIQ_MC_BINARY_TARGET_LX2160A
default BR2_QORIQ_MC_BINARY_PLATFORM
config BR2_PACKAGE_QORIQ_MC_BINARY_TARGET_INSTALL_PATH
string "Path on target to install MC firmware"
help
The MC firmware can optionally be deployed to the target
filesystem at the path specified here. This is useful if
the mcinitcmd U-Boot environment variable is configured
to load the MC firmware from the filesystem.
endif