On Thu, Jan 23, 2020 at 02:14:57PM -0600, Joshua Watt wrote:
> 
> On 1/23/20 2:06 PM, Khem Raj wrote:
> >On Thu, Jan 23, 2020 at 11:59 AM Joshua Watt <jpewhac...@gmail.com> wrote:
> >>
> >>On 1/23/20 1:49 PM, Khem Raj wrote:
> >>>On Thu, Jan 23, 2020 at 8:08 AM Joshua Watt <jpewhac...@gmail.com> wrote:
> >>>>Adds a recipe to pull down the prebuilt GCC for compiling on Cortex-R
> >>>>and Cortex-M processors from ARM. This toolchain is required to build
> >>>>Arm Trusted Firmware for the Rockchip rk3399 SoC, since it must compile
> >>>>some firmware for the M0 coprocessor.
> >>>>
> >>>can this use mutliconfig ?
> >>>This seems then can be avoided
> >>I'm not sure if multiconfig is applicable in this case; This is required
> >>because the same recipe (arm-trusted-firmware) requires 2 different
> >>compilers to be available; the target compiler (aarch64-poky-linux), and
> >>an arm-none-eabi-gcc compiler specifically to compile some M0 firmware
> >>that goes into ATF.
> >>
> >>Multiconfig would work (I think), if the recipe only needed one or the
> >>other, but not in this case where it needs both.
> >right, so question is if this recipe can be effectively two such recipes. If 
> >not
> >then perhaps this solution is ok or perhaps we can just use prebuilts for 
> >the M0
> 
> It *might* be possible to build it in two passes, but I'd rather not
> because its not the way the ATF is intended to be built. The code
> currently expects that it can build with the arm-none-eabi-gcc, so
> anything thing we do differently is more likely to break. Right now,
> the AFT recipe should be pretty easy to maintain; breaking it apart
> will make it quite a bit more complicated.
> 
> I'd rather have a prebuilt (for now) GCC building some firmware from
> source that download a prebuilt firmware image :)
> 
> Like I said, long term I'd like to build up the arm-none-eabi-gcc
> from gcc-cross in OE-core, I just haven't figured out the best way
> to do that yet.

Ha, this is quite familiar as well! We had these gcc-arm-none-eabi-native and 
other recipes in meta-ti for compiling different pieces for secondary cores in 
our SoCs - MCUs, DSPs, etc. That was way before multiconfig was available.

Recently I was looking into converting the old model into multiconfig - there 
was a discussion with fray last month regarding this and he posted a more 
generic proposal to oe-architecture list. I still need to get back to that 
activity - kind of got busy after the holidays...

-- 
Denys


> >>I also looked at building an additional gcc-cross recipe that explicitly
> >>targets arm-none-eabi, but the maintenance was going to be a pain unless
> >>A) the recipe lived in OE-core or B) this layer copied all of the GCC
> >>recipes. Neither of those was appealing at the moment, but I plan on
> >>revisiting it. Even when I did have it in OE-core, I had some trouble
> >>with some manifest warnings, so I'm not quite sure I was doing it correctly.
> >>
> >>>>Signed-off-by: Joshua Watt <jpewhac...@gmail.com>
> >>>>---
> >>>>   ...cc-arm-none-eabi-native_9-2019-q4-major.bb | 37 +++++++++++++++++++
> >>>>   1 file changed, 37 insertions(+)
> >>>>   create mode 100644 
> >>>> recipes-devtools/gcc-arm-none-eabi/gcc-arm-none-eabi-native_9-2019-q4-major.bb
> >>>>
> >>>>diff --git 
> >>>>a/recipes-devtools/gcc-arm-none-eabi/gcc-arm-none-eabi-native_9-2019-q4-major.bb
> >>>> 
> >>>>b/recipes-devtools/gcc-arm-none-eabi/gcc-arm-none-eabi-native_9-2019-q4-major.bb
> >>>>new file mode 100644
> >>>>index 0000000..a0c832d
> >>>>--- /dev/null
> >>>>+++ 
> >>>>b/recipes-devtools/gcc-arm-none-eabi/gcc-arm-none-eabi-native_9-2019-q4-major.bb
> >>>>@@ -0,0 +1,37 @@
> >>>>+# Copyright (C) 2019 Garmin Ltd. or its subsidaries
> >>>>+# Released under the MIT license (see COPYING.MIT for the terms)
> >>>>+
> >>>>+DESCRIPTION = "Baremetal GCC for ARM-R and ARM-M processors"
> >>>>+LICENSE = "GPL-3.0-with-GCC-exception & GPLv3"
> >>>>+
> >>>>+LIC_FILES_CHKSUM = 
> >>>>"file://share/doc/gcc-arm-none-eabi/license.txt;md5=c18349634b740b7b95f2c2159af888f5"
> >>>>+
> >>>>+PROVIDES = "virtual/arm-none-eabi-gcc"
> >>>>+
> >>>>+SRC_URI = 
> >>>>"https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2019q4/RC2.1/${BPN}-${PV}-x86_64-linux.tar.bz2";
> >>>>+
> >>>>+SRC_URI[md5sum] = "fe0029de4f4ec43cf7008944e34ff8cc"
> >>>>+SRC_URI[sha256sum] = 
> >>>>"bcd840f839d5bf49279638e9f67890b2ef3a7c9c7a9b25271e83ec4ff41d177a"
> >>>>+
> >>>>+S = "${WORKDIR}/${BPN}-${PV}"
> >>>>+
> >>>>+inherit native
> >>>>+
> >>>>+COMPATIBLE_HOST = "x86_64.*-linux"
> >>>>+
> >>>>+do_install() {
> >>>>+    install -d ${D}${datadir}/arm-none-eabi/
> >>>>+    cp -r ${S}/. ${D}${datadir}/arm-none-eabi/
> >>>>+
> >>>>+    install -d ${D}${bindir}
> >>>>+    # Symlink all executables into bindir
> >>>>+    for f in ${D}${datadir}/arm-none-eabi/bin/arm-none-eabi-*; do
> >>>>+        lnr $f ${D}${bindir}/$(basename $f)
> >>>>+    done
> >>>>+}
> >>>>+
> >>>>+INSANE_SKIP_${PN} = "already-stripped"
> >>>>+
> >>>>+INHIBIT_SYSROOT_STRIP = "1"
> >>>>+INHIBIT_PACKAGE_STRIP = "1"
> >>>>+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
> >>>>--
> >>>>2.24.1
> >>>>
> >>>>

> 

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#48125): https://lists.yoctoproject.org/g/yocto/message/48125
Mute This Topic: https://lists.yoctoproject.org/mt/70050326/21656
Group Owner: yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub  
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to