All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jon Mason <jdmason@kudzu.us>
To: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: jon.mason@arm.com, ross.burton@arm.com, meta-arm@lists.yoctoproject.org
Subject: Re: [PATCH v3] arm/trusted-firmware-rmm: Add bitbake, include and patch file for RMM
Date: Tue, 23 Apr 2024 14:15:08 -0400	[thread overview]
Message-ID: <Zif6rHi5B3lB4W53@kudzu.us> (raw)
In-Reply-To: <CANLsYky=iWo_zcx0A4=gcbwH+iCWN=d0Mgvsd12c-ON8WhLByQ@mail.gmail.com>

On Tue, Apr 23, 2024 at 09:50:14AM -0600, Mathieu Poirier wrote:
> Hi Ross and Jon,
> 
> Is there anything else you'd like me to modify on this patch?

I'm still waiting on Ross to look at it...

I'm planning on pulling it in after the scarthgap release, which
should be in the next week.

Please do keep abreast of the upstream changes, as I'd like for there
to be a CI testcase once that part is sorted out (and I'm counting on
you to add the CI test).

Thanks,
Jon

> 
> Thanks,
> Mathieu
> 
> On Fri, 5 Apr 2024 at 09:48, Mathieu Poirier <mathieu.poirier@linaro.org> wrote:
> >
> > Initial checking providing support for RMM on QEMU's "virt" machine.
> >
> > Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
> > ---
> > Changes for V3:
> > 1) Setting RMM_CONFIG default to "" and restricting the compilation of
> > RMM to "qemuarm64" machines.
> > 2) Removed setting of variable "B"
> > 3) Setting CMAKE_INCLUDE_PATH to ${STAGING_INCDIR}
> > 4) Removed CMAKE_BUILD_PARALLEL_LEVEL
> > 5) Added comment to justify using CROSS_COMPILE
> > 6) Reworked the declaration of SRC_URI and SRCREV
> > ---
> >  ...tra-repositories-for-system-includes.patch | 56 +++++++++++++++++++
> >  .../trusted-firmware-rmm_0.4.bb               | 50 +++++++++++++++++
> >  2 files changed, 106 insertions(+)
> >  create mode 100644 meta-arm/recipes-bsp/trusted-firmware-rmm/files/0001-build-lib-Add-extra-repositories-for-system-includes.patch
> >  create mode 100644 meta-arm/recipes-bsp/trusted-firmware-rmm/trusted-firmware-rmm_0.4.bb
> >
> > diff --git a/meta-arm/recipes-bsp/trusted-firmware-rmm/files/0001-build-lib-Add-extra-repositories-for-system-includes.patch b/meta-arm/recipes-bsp/trusted-firmware-rmm/files/0001-build-lib-Add-extra-repositories-for-system-includes.patch
> > new file mode 100644
> > index 000000000000..7c3e637f0d63
> > --- /dev/null
> > +++ b/meta-arm/recipes-bsp/trusted-firmware-rmm/files/0001-build-lib-Add-extra-repositories-for-system-includes.patch
> > @@ -0,0 +1,56 @@
> > +From bc7dbac20a6674eb2834bd6176665f1a2ae42edc Mon Sep 17 00:00:00 2001
> > +From: Mathieu Poirier <mathieu.poirier@linaro.org>
> > +Date: Thu, 14 Mar 2024 14:59:30 -0600
> > +Subject: [PATCH] build(lib): Add extra repositories for system includes
> > +
> > +Toolchains such as aarch64-none-elf, aarch64-none-linux-gnu and
> > +aarch64-linux-gnu include assert.h and limits.h in a directory that is
> > +part of their search path.  This is not the case when compiling with
> > +Yocto where aarch64-poky-linux places those files in the sysroot
> > +directory of the component being compiled.
> > +
> > +Since the sysroot directory of the component is not part of the cmake
> > +search path, compiling the RMM in Yocto fails.  This patch fixes the
> > +problem by expanding the search path when needed, allowing the RMM to be
> > +compiled in Yocto.
> > +
> > +Upstream-Status: Backport [bc7dbac20a6674eb2834bd6176665f1a2ae42edc]
> > +Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
> > +---
> > + lib/arch/CMakeLists.txt | 3 +++
> > + lib/libc/CMakeLists.txt | 5 ++++-
> > + 2 files changed, 7 insertions(+), 1 deletion(-)
> > +
> > +diff --git a/lib/arch/CMakeLists.txt b/lib/arch/CMakeLists.txt
> > +index d3afc5f2bfc8..a52185f02695 100644
> > +--- a/lib/arch/CMakeLists.txt
> > ++++ b/lib/arch/CMakeLists.txt
> > +@@ -12,6 +12,9 @@ target_link_libraries(rmm-lib-arch
> > + target_include_directories(rmm-lib-arch
> > +     PUBLIC  "include"
> > +             "include/${RMM_ARCH}"
> > ++            # The CMAKE_INCLUDE_PATH is included here for Yocto builds.  the
> > ++            # Yocto recipe will define this variable as part of the build.
> > ++            ${CMAKE_INCLUDE_PATH}
> > +     PRIVATE "src/${RMM_ARCH}"
> > +             "src/include")
> > +
> > +diff --git a/lib/libc/CMakeLists.txt b/lib/libc/CMakeLists.txt
> > +index 1631332dbc72..a2adf37f7cb8 100644
> > +--- a/lib/libc/CMakeLists.txt
> > ++++ b/lib/libc/CMakeLists.txt
> > +@@ -12,7 +12,10 @@ if(NOT RMM_ARCH STREQUAL fake_host)
> > +            rmm-lib-debug)
> > +
> > +     target_include_directories(rmm-lib-libc SYSTEM
> > +-        PUBLIC "include")
> > ++        PUBLIC "include"
> > ++        # The CMAKE_INCLUDE_PATH is included here for Yocto builds.  the
> > ++        # Yocto recipe will define this variable as part of the build.
> > ++        ${CMAKE_INCLUDE_PATH})
> > +
> > +     target_sources(rmm-lib-libc
> > +         PRIVATE "src/abort.c"
> > +--
> > +2.34.1
> > +
> > diff --git a/meta-arm/recipes-bsp/trusted-firmware-rmm/trusted-firmware-rmm_0.4.bb b/meta-arm/recipes-bsp/trusted-firmware-rmm/trusted-firmware-rmm_0.4.bb
> > new file mode 100644
> > index 000000000000..0726cd3d2497
> > --- /dev/null
> > +++ b/meta-arm/recipes-bsp/trusted-firmware-rmm/trusted-firmware-rmm_0.4.bb
> > @@ -0,0 +1,50 @@
> > +SUMMARY = "RMM Firmware"
> > +DESCRIPTION = "RMM Firmware for Arm reference platforms"
> > +LICENSE = "BSD-3-Clause & MIT"
> > +
> > +SRC_URI = "gitsm://git.trustedfirmware.org/TF-RMM/tf-rmm.git;protocol=https;branch=main \
> > +           file://0001-build-lib-Add-extra-repositories-for-system-includes.patch \
> > +          "
> > +
> > +SRCREV = "0a02656945d69757b0779192cebb9b41dd9037d1"
> > +
> > +LIC_FILES_CHKSUM += "file://docs/about/license.rst;md5=1375c7c641558198ffe401c2a799d79b"
> > +
> > +inherit deploy cmake
> > +
> > +RMM_CONFIG ?= ""
> > +RMM_CONFIG:qemuarm64 = "qemu_virt_defcfg"
> > +
> > +PACKAGE_ARCH = "${MACHINE_ARCH}"
> > +COMPATIBLE_MACHINE = "qemuarm64"
> > +
> > +S = "${WORKDIR}/git"
> > +
> > +# Build for debug (set RMM_DEBUG to 1 to activate)
> > +RMM_DEBUG ?= "0"
> > +RMM_BUILD_MODE ?= "${@bb.utils.contains('RMM_DEBUG', '1', 'Debug', 'Release', d)}"
> > +
> > +# Handle RMM_DEBUG parameter
> > +EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=${RMM_BUILD_MODE}"
> > +EXTRA_OECMAKE += "-DRMM_CONFIG=${RMM_CONFIG}"
> > +
> > +# Supplement include path
> > +EXTRA_OECMAKE += "-DCMAKE_INCLUDE_PATH=${STAGING_INCDIR}"
> > +
> > +# When compiling for Aarch64 on non-native hosts, the RMM code base gets its
> > +# toolchain from CROSS_COMPILE rather than CMAKE_TOOLCHAIN_FILE
> > +export CROSS_COMPILE="${TARGET_PREFIX}"
> > +
> > +do_install() {
> > +    install -d -m 755 ${D}/firmware
> > +    install -m 0644 ${B}/${RMM_BUILD_MODE}/* ${D}/firmware/
> > +}
> > +
> > +FILES:${PN} = "/firmware"
> > +SYSROOT_DIRS += "/firmware"
> > +
> > +do_deploy() {
> > +    cp -rf ${D}/firmware/* ${DEPLOYDIR}/
> > +}
> > +
> > +addtask deploy after do_install
> > --
> > 2.34.1
> >
> 


  reply	other threads:[~2024-04-23 18:15 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-05 15:48 [PATCH v3] arm/trusted-firmware-rmm: Add bitbake, include and patch file for RMM Mathieu Poirier
2024-04-08 14:00 ` Jon Mason
2024-04-12 16:20   ` Mathieu Poirier
2024-04-23 15:50 ` Mathieu Poirier
2024-04-23 18:15   ` Jon Mason [this message]
2024-04-24 16:18     ` Mathieu Poirier
2024-04-25 14:34       ` Jon Mason
2024-04-26  7:41       ` [meta-arm] " Mikko Rapeli
2024-05-03 15:06 ` Jon Mason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Zif6rHi5B3lB4W53@kudzu.us \
    --to=jdmason@kudzu.us \
    --cc=jon.mason@arm.com \
    --cc=mathieu.poirier@linaro.org \
    --cc=meta-arm@lists.yoctoproject.org \
    --cc=ross.burton@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.