From 825d6a47b4fbfdc7afc8eabc13b2c4463e0c4fcc Mon Sep 17 00:00:00 2001 From: Max Krummenacher Date: Sat, 28 Sep 2024 16:14:26 +0200 Subject: imx-system-manager: import recipe from meta-imx imx-system-manager at 6.6.36-2.1.0 NXP BSP release. This provides among others the DDR configuration which may require machine dependent configurations. Thus additionally add a virtual provider. Signed-off-by: Max Krummenacher --- .../imx-system-manager/imx-system-manager.inc | 42 ++++++++++++++++++++++ .../imx-system-manager/imx-system-manager_1.0.0.bb | 23 ++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager.inc create mode 100644 dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager_1.0.0.bb (limited to 'dynamic-layers') diff --git a/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager.inc b/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager.inc new file mode 100644 index 000000000..23d5bfc27 --- /dev/null +++ b/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager.inc @@ -0,0 +1,42 @@ +# Set generic compiler for system manager core +INHIBIT_DEFAULT_DEPS = "1" +DEPENDS = "${SM_COMPILER}" +SM_COMPILER ?= "gcc-arm-none-eabi-native" +PROVIDES += "virtual/imx-system-manager" + +inherit deploy + +# Set monitor mode for none, one, or two +PACKAGECONFIG[m0] = "M=0,,,,,m1 m2" +PACKAGECONFIG[m1] = ",,,,,m0 m2" +PACKAGECONFIG[m2] = "M=2,,,,,m0 m1" + +SYSTEM_MANAGER_CONFIG ?= "INVALID" + +LDFLAGS[unexport] = "1" + +EXTRA_OEMAKE = " \ + V=y \ + SM_CROSS_COMPILE=arm-none-eabi- \ + ${PACKAGECONFIG_CONFARGS} \ +" + +do_configure() { + oe_runmake config=${SYSTEM_MANAGER_CONFIG} clean + oe_runmake config=${SYSTEM_MANAGER_CONFIG} cfg +} + +do_compile() { + oe_runmake config=${SYSTEM_MANAGER_CONFIG} +} + +do_install[noexec] = "1" + +addtask deploy after do_compile +do_deploy() { + install -D -p -m 0644 \ + ${B}/build/${SYSTEM_MANAGER_CONFIG}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}.bin \ + ${DEPLOYDIR}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}-${SYSTEM_MANAGER_CONFIG}.bin +} + +COMPATIBLE_MACHINE = "(mx95-generic-bsp)" diff --git a/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager_1.0.0.bb b/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager_1.0.0.bb new file mode 100644 index 000000000..eceaaa674 --- /dev/null +++ b/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager_1.0.0.bb @@ -0,0 +1,23 @@ +SUMMARY = "i.MX System Manager Firmware" +DESCRIPTION = "\ +The System Manager (SM) is a firmware that runs on a Cortex-M processor on \ +many NXP i.MX processors. The Cortex-M is the boot core, runs the boot ROM \ +which loads the SM (and other boot code), and then branches to the SM. The \ +SM then configures some aspects of the hardware such as isolation mechanisms \ +and then starts other cores in the system. After starting these cores, it \ +enters a service mode where it provides access to clocking, power, sensor, \ +and pin control via a client RPC API based on ARM's System Control and \ +Management Interface (SCMI)." +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b66f32a90f9577a5a3255c21d79bc619" + +SRC_URI = "${IMX_SYSTEM_MANAGER_SRC};branch=${SRCBRANCH}" +IMX_SYSTEM_MANAGER_SRC ?= "git://github.com/nxp-imx/imx-sm.git;protocol=https" +SRCBRANCH = "master" +SRCREV = "709deccd9338399eb39b5cf99a60eab4fa60d539" + +S = "${WORKDIR}/git" + +require imx-system-manager.inc + +PACKAGECONFIG ??= "m2" -- cgit v1.2.3-54-g00ecf