Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Giulio Benetti <giulio.benetti@benettiengineering.com>
To: Jamie.Gibbons@microchip.com
Cc: Ludovic.Desroches@microchip.com, Nicolas.Ferre@microchip.com,
	Conor.Dooley@microchip.com, thomas.petazzoni@bootlin.com,
	buildroot@buildroot.org, Valentina.FernandezAlanis@microchip.com
Subject: Re: [Buildroot] [PATCH v2 2/2] configs/microchip_mpfs_icicle: add support for Microchip's Icicle Kit
Date: Wed, 12 Jul 2023 14:35:09 +0200	[thread overview]
Message-ID: <acaea49f-df76-ac2f-51ed-cc855cf23f28@benettiengineering.com> (raw)
In-Reply-To: <67c6e46540dc806e0755ac377ba868da01ad3116.camel@microchip.com>

Hi Jamie,

> Il giorno 12 lug 2023, alle ore 13:27, Jamie.Gibbons@microchip.com ha scritto:
> 
> On Wed, 2023-07-12 at 11:41 +0200, Giulio Benetti wrote:
>> EXTERNAL EMAIL: Do not click links or open attachments unless you
>> know the content is safe
>> 
>> Hi Jamie, All,
> 
> Hi Giulio,
>> 
>>> On 12/07/23 10:34, Jamie Gibbons via buildroot wrote:
>>> Add support for the icicle kit, the main development board for
>>> Microchip's PolarFire SoC.
>>> 
>>> The configuration file is microchip_mpfs_icicle_defconfig. It
>>> builds a
>>> bootable kernel image with an embedded root file system. The image
>>> built can be flashed to the board using the eMMC or an SD card.
>>> 
>>> The yaml configuration file is used by the hss payload generator.
>>> It
>>> maps the ELF binaries or binary blobs to the individual application
>>> harts (U54s).
>>> 
>>> The image generator script sets the partitions of the image.
>>> 
>>> The kernel fragment file ses additional configurations for the
>>> icicle
>>> kit in buildroot that are not in the default configuration.
>>> 
>>> The image tree souce file creates a FIT image.
>>> 
>>> The post image script creates the payload using the payload
>>> generator
>>> host package and finally, creates the FIT image using the ITS after
>>> the
>>> kernel build.
>>> 
>>> The U-Boot script and additional U-Boot configurations ensure that
>>> U-Boot behaves as expected for the icicle kit and boots the FIT
>>> image.
>>> 
>>> The readme.txt file documents how to build and boot the icicle kit
>>> with
>>> this configuration.
>>> 
>>> Signed-off-by: Jamie Gibbons <jamie.gibbons@microchip.com>
>>> ---
>>>   DEVELOPERS                                    |  2 +
>>>   board/microchip/mpfs_icicle/README.txt        | 62
>>> +++++++++++++++++++
>>>   board/microchip/mpfs_icicle/config.yaml       | 28 +++++++++
>>>   board/microchip/mpfs_icicle/genimage.cfg      | 36 +++++++++++
>>>   board/microchip/mpfs_icicle/linux.fragment    |  1 +
>>>   board/microchip/mpfs_icicle/mpfs_icicle.its   | 53
>>> ++++++++++++++++
>>>   board/microchip/mpfs_icicle/post-image.sh     | 13 ++++
>>>   board/microchip/mpfs_icicle/uboot-env.txt     | 16 +++++
>>>   .../mpfs_icicle/uboot-fragment-rootfs.config  |  3 +
>>>   configs/microchip_mpfs_icicle_defconfig       | 33 ++++++++++
>>>   10 files changed, 247 insertions(+)
>>>   create mode 100644 board/microchip/mpfs_icicle/README.txt
>>>   create mode 100644 board/microchip/mpfs_icicle/config.yaml
>>>   create mode 100644 board/microchip/mpfs_icicle/genimage.cfg
>>>   create mode 100644 board/microchip/mpfs_icicle/linux.fragment
>>>   create mode 100644 board/microchip/mpfs_icicle/mpfs_icicle.its
>>>   create mode 100755 board/microchip/mpfs_icicle/post-image.sh
>>>   create mode 100644 board/microchip/mpfs_icicle/uboot-env.txt
>>>   create mode 100644 board/microchip/mpfs_icicle/uboot-fragment-
>>> rootfs.config
>>>   create mode 100644 configs/microchip_mpfs_icicle_defconfig
>>> 
>>> diff --git a/DEVELOPERS b/DEVELOPERS
>>> index 2f039a2405..8df10aca21 100644
>>> --- a/DEVELOPERS
>>> +++ b/DEVELOPERS
>>> @@ -1460,6 +1460,8 @@ F:      package/rpm/
>>>   F:  package/yad/
>>> 
>>>   N:  Jamie Gibbons <jamie.gibbons@microchip.com>
>>> +F:   board/microchip/mpfs_icicle
>>> +F:   configs/microchip_mpfs_icicle_defconfig
>>>   F:  package/microchip-hss-payload-generator
>>> 
>>>   N:  Jan Heylen <jan.heylen@nokia.com>
>>> diff --git a/board/microchip/mpfs_icicle/README.txt
>>> b/board/microchip/mpfs_icicle/README.txt
>>> new file mode 100644
>>> index 0000000000..de20ecc410
>>> --- /dev/null
>>> +++ b/board/microchip/mpfs_icicle/README.txt
>>> @@ -0,0 +1,62 @@
>>> +Microchip PolarFire SoC Icicle Kit
>>> +==================================
>>> +
>>> +This file describes how to use the pre-defined Buildroot
>>> +configuration for Microchip's PolarFire SoC Icicle Kit.
>>> +
>>> +Further information about the PolarFire SoC Icicle Kit can be
>>> found
>>> +at https://github.com/polarfire-soc/polarfire-soc-documentation
>>> +
>>> +Building
>>> +========
>>> +
>>> +Configure Buildroot using the default board configuration:
>>> +
>>> +  '$ make microchip_mpfs_icicle_defconfig'
>>> +
>>> +Customise the build as necessary:
>>> +
>>> +  '$ make menuconfig'
>>> +
>>> +Start the build:
>>> +
>>> +  '$ make'
>>> +
>>> +Result of the build
>>> +===================
>>> +
>>> +Once the build has finished you will have the following files:
>>> +
>>> +    output/images/
>>> +    +-- boot.scr
>>> +    +-- boot.vfat
>>> +    +-- Image
>>> +    +-- mpfs_icicle.itb
>>> +    +-- mpfs_icicle.its
>>> +    +-- mpfs-icicle-kit.dtb
>>> +    +-- payload.bin
>>> +    +-- rootfs.ext2
>>> +    +-- rootfs.ext4
>>> +    +-- rootfs.tar
>>> +    +-- sdcard.img
>>> +    +-- u-boot.bin
>>> +
>>> +
>>> +Creating a bootable SD card with genimage
>>> +=========================================
>>> +
>>> +By default Buildroot builds a SD card image for you. The first
>>> partition
>>> +of this image contains a U-Boot binary, embedded in a Hart
>>> Software
>>> +Services (HSS) payload. The second partition contains a FAT
>>> filesystem
>>> +with a U-Boot env and an ITB file containing the kernel and the
>>> device
>>> +tree. The third partition contains the file system. This image can
>>> be
>>> +written directly to the eMMC or an SD card. All you need to do is
>>> dd the
>>> +image to the eMMC or your SD card, which can be done with the
>>> following
>>> +command on your development host:
>>> +
>>> +  '$ sudo dd if=output/images/sdcard.img of=/dev/sdb bs=1M'
>>> +
>>> +For instructions on how to transfer the image to the eMMC/SD,
>>> please refer to
>>> +the "Programming the Linux image" section of our guide on updating
>>> +PolarFire SoC dev kits:
>>> +
>>> https://github.com/polarfire-soc/polarfire-soc-documentation/blob/ma
>>> ster/reference-designs-fpga-and-development-kits/updating-mpfs-
>>> kit.md.
>>> diff --git a/board/microchip/mpfs_icicle/config.yaml
>>> b/board/microchip/mpfs_icicle/config.yaml
>>> new file mode 100644
>>> index 0000000000..5fccdfd34f
>>> --- /dev/null
>>> +++ b/board/microchip/mpfs_icicle/config.yaml
>>> @@ -0,0 +1,28 @@
>>> +#
>>> +# HSS Payload Generator - buildroot configuration file
>>> +#
>>> +
>>> +# First, we can optionally set a name for our image, otherwise one
>>> will be created dynamically
>>> +set-name: 'PolarFire-SoC-HSS::U-Boot'
>>> +
>>> +#
>>> +# Next, we'll define the entry point addresses for each hart, as
>>> follows:
>>> +#
>>> +hart-entry-points: {u54_1: '0x80200000', u54_2: '0x80200000',
>>> u54_3: '0x80200000', u54_4: '0x80200000'}
>>> +#
>>> +# Finally, we'll define a payloads (source binary file) that will
>>> be placed at certain regions in memory
>>> +# The payload section is defined with the keyword payloads, and
>>> then a number of individual
>>> +# payload descriptors.
>>> +#
>>> +# Each payload has a name (path to its ELF/bin file), an owner-
>>> hart, and optionally 1-3 secondary-harts.
>>> +#
>>> +# Additionally, it has a privilege mode in which it will start
>>> execution.
>>> +#  * Valid privilege modes are PRV_M, PRV_S and PRV_U.
>>> +#
>>> +#
>>> +# In this case, the only payload is the u-boot s-mode binary.
>>> +#
>>> +# Case only matters for the ELF path names, not the keywords.
>>> +#
>>> +payloads:
>>> +  u-boot.bin: {exec-addr: '0x80200000', owner-hart: u54_1,
>>> secondary-hart: u54_2, secondary-hart: u54_3, secondary-hart:
>>> u54_4, priv-mode: prv_s}
>>> diff --git a/board/microchip/mpfs_icicle/genimage.cfg
>>> b/board/microchip/mpfs_icicle/genimage.cfg
>>> new file mode 100644
>>> index 0000000000..3780a0254b
>>> --- /dev/null
>>> +++ b/board/microchip/mpfs_icicle/genimage.cfg
>>> @@ -0,0 +1,36 @@
>>> +# Image for eMMC or SDCard boot on the Microchip PolarFire SOC
>>> Icicle Board
>>> +#
>>> +image boot.vfat {
>>> +     vfat {
>>> +             files = {
>>> +                      "mpfs_icicle.itb",
>>> +             }
>>> +
>>> +             file boot.scr {
>>> +                     image = "boot.scr"
>>> +             }
>>> +     }
>>> +     size = 60M
>>> +}
>>> +
>>> +image sdcard.img {
>>> +     hdimage {
>>> +             gpt = true
>>> +     }
>>> +
>>> +     partition uboot {
>>> +             partition-type-uuid = 21686148-6449-6E6F-744E-
>>> 656564454649
>>> +             image = "payload.bin"
>>> +     }
>>> +
>>> +     partition kernel {
>>> +             partition-type-uuid = 0FC63DAF-8483-4772-8E79-
>>> 3D69D8477DE4
>>> +             bootable = "true"
>>> +             image = "boot.vfat"
>>> +     }
>>> +
>>> +     partition root {
>>> +             partition-type-uuid = 0FC63DAF-8483-4772-8E79-
>>> 3D69D8477DE4
>> 
>> please use partition-type-uuid letters instead of extended uuid if
>> possible, in this case 'L'.
>> Try to check other genimage.cfg files and genimage documentation:
>> https://github.com/pengutronix/genimage
>> 
> Thank you for the link to the docs. I will remove partition-type-uuid
> for both boot.vfat and rootfs.ext4 partitions as, as per the docs this
> defaults to 'L'.

please keep ‘L’ like the other boards. This way it’s explicit.

> I have checked the docs and the payload.bin however,
> does not have a shortcut so I will keep that one as is.

exactly,

> 
>>> +             image = "rootfs.ext4"
>>> +     }
>>> +}
>>> diff --git a/board/microchip/mpfs_icicle/linux.fragment
>>> b/board/microchip/mpfs_icicle/linux.fragment
>>> new file mode 100644
>>> index 0000000000..0cecddb61b
>>> --- /dev/null
>>> +++ b/board/microchip/mpfs_icicle/linux.fragment
>>> @@ -0,0 +1 @@
>>> +CONFIG_POLARFIRE_SOC_DMA_NONCOHERENT=y
>>> diff --git a/board/microchip/mpfs_icicle/mpfs_icicle.its
>>> b/board/microchip/mpfs_icicle/mpfs_icicle.its
>>> new file mode 100644
>>> index 0000000000..a62b079fa1
>>> --- /dev/null
>>> +++ b/board/microchip/mpfs_icicle/mpfs_icicle.its
>>> @@ -0,0 +1,53 @@
>>> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>>> +/*
>>> + * Flattened Image Tree file for Icicle Kit
>>> + *
>>> + */
>>> +
>>> +/dts-v1/;
>>> +
>>> +/ {
>>> +     description = "U-Boot fitImage for the MPFS";
>>> +     address-cells = <1>;
>>> +
>>> +             images {
>>> +                     kernel {
>>> +                             description = "Linux kernel";
>>> +                             data = /incbin/("./Image");
>>> +                             type = "kernel";
>>> +                             arch = "riscv";
>>> +                             os = "linux";
>>> +                             compression = "none";
>>> +                             load = <0x80200000>;
>>> +                             entry = <0x80200000>;
>>> +                             hash-1 {
>>> +                                     algo = "sha256";
>>> +                             };
>>> +                     };
>>> +                     base_fdt {
>>> +                             description = "Flattened Device Tree
>>> blob";
>>> +                             data = /incbin/("./mpfs-icicle-
>>> kit.dtb");
>>> +                             type = "flat_dt";
>>> +                             arch = "riscv";
>>> +                             compression = "none";
>>> +                             load = <0x8a000000>;
>>> +                             hash-1 {
>>> +                                     algo = "sha256";
>>> +                             };
>>> +                     };
>>> +             };
>>> +
>>> +             configurations {
>>> +                     default = "kernel_dtb";
>>> +                     kernel_dtb {
>>> +                             description = "1 Linux kernel, FDT
>>> blob";
>>> +                             kernel = "kernel";
>>> +                             fdt = "base_fdt";
>>> +                     };
>>> +
>>> +                     base_dtb {
>>> +                             description = "Base FDT blob for MPFS
>>> Icicle board";
>>> +                             fdt = "base_fdt";
>>> +                     };
>>> +             };
>>> +};
>>> diff --git a/board/microchip/mpfs_icicle/post-image.sh
>>> b/board/microchip/mpfs_icicle/post-image.sh
>>> new file mode 100755
>>> index 0000000000..444a80cb45
>>> --- /dev/null
>>> +++ b/board/microchip/mpfs_icicle/post-image.sh
>>> @@ -0,0 +1,13 @@
>>> +#!/usr/bin/env bash
>>> +
>>> +BASE_DIR=$(pwd)
>>> +HSS_PAYLOAD_GENERATOR=$HOST_DIR/bin/hss-payload-generator
>>> +MKIMAGE=$HOST_DIR/bin/mkimage
>>> +GENIMAGE=${BASE_DIR}/support/scripts/genimage.sh
>>> +GENIMAGE_CFG=${BASE_DIR}/$2
>>> +
>>> +cd ${BINARIES_DIR}
>>> +${HSS_PAYLOAD_GENERATOR} -c
>>> ${BASE_DIR}/board/microchip/mpfs_icicle/config.yaml payload.bin
>>> +cp ${BASE_DIR}/board/microchip/mpfs_icicle/mpfs_icicle.its ./
>>> +${MKIMAGE} -f mpfs_icicle.its mpfs_icicle.itb
>>> +${GENIMAGE} -c ${GENIMAGE_CFG}
>>> diff --git a/board/microchip/mpfs_icicle/uboot-env.txt
>>> b/board/microchip/mpfs_icicle/uboot-env.txt
>>> new file mode 100644
>>> index 0000000000..8a655085ed
>>> --- /dev/null
>>> +++ b/board/microchip/mpfs_icicle/uboot-env.txt
>>> @@ -0,0 +1,16 @@
>>> +# this assumes ${scriptaddr} is already set!!
>>> +
>>> +# Try to boot a fitImage from eMMC/SD
>>> +
>>> +setenv fdt_high 0xffffffffffffffff
>>> +setenv initrd_high 0xffffffffffffffff
>>> +
>>> +load mmc 0:${distro_bootpart} ${scriptaddr} mpfs_icicle.itb;
>>> +bootm start ${scriptaddr}#kernel_dtb;
>>> +bootm loados ${scriptaddr};
>>> +# Try to load a ramdisk if available inside fitImage
>>> +bootm ramdisk;
>>> +bootm prep;
>>> +fdt set /soc/ethernet@20112000 mac-address ${icicle_mac_addr0};
>>> +fdt set /soc/ethernet@20110000 mac-address ${icicle_mac_addr1};
>>> +bootm go;
>>> diff --git a/board/microchip/mpfs_icicle/uboot-fragment-
>>> rootfs.config b/board/microchip/mpfs_icicle/uboot-fragment-
>>> rootfs.config
>>> new file mode 100644
>>> index 0000000000..e2a5eb9438
>>> --- /dev/null
>>> +++ b/board/microchip/mpfs_icicle/uboot-fragment-rootfs.config
>>> @@ -0,0 +1,3 @@
>>> +CONFIG_USE_BOOTARGS=y
>>> +CONFIG_BOOTARGS="root=/dev/mmcblk0p3 rootwait
>>> uio_pdrv_genirq.of_id=generic-uio"
>>> +CONFIG_MPFS_PRIORITISE_QSPI_BOOT=n
>>> diff --git a/configs/microchip_mpfs_icicle_defconfig
>>> b/configs/microchip_mpfs_icicle_defconfig
>>> new file mode 100644
>>> index 0000000000..f3a8c5d4bf
>>> --- /dev/null
>>> +++ b/configs/microchip_mpfs_icicle_defconfig
>>> @@ -0,0 +1,33 @@
>>> +BR2_riscv=y
>>> +BR2_riscv_custom=y
>>> +BR2_RISCV_ISA_CUSTOM_RVM=y
>>> +BR2_RISCV_ISA_CUSTOM_RVF=y
>>> +BR2_RISCV_ISA_CUSTOM_RVD=y
>>> +BR2_RISCV_ISA_CUSTOM_RVC=y
>>> +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_1=y
>>> +BR2_TARGET_GENERIC_HOSTNAME="mpfs_icicle"
>>> +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/microchip/mpfs_icicle/post-
>>> image.sh"
>>> +BR2_ROOTFS_POST_SCRIPT_ARGS="board/microchip/mpfs_icicle/genimage.
>>> cfg"
>>> +BR2_LINUX_KERNEL=y
>>> +BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
>>> +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call
>>> github,linux4microchip,linux,linux-6.1-
>>> mchp+fpga)/linux4microchip+fpga-2023.06.tar.gz"
>>> +BR2_LINUX_KERNEL_DEFCONFIG="mpfs"
>>> +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/microchip/mpfs_icicl
>>> e/linux.fragment"
>>> +BR2_LINUX_KERNEL_DTS_SUPPORT=y
>>> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="microchip/mpfs-icicle-kit"
>>> +BR2_PACKAGE_HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR=y
>>> +BR2_TARGET_ROOTFS_EXT2=y
>>> +BR2_TARGET_ROOTFS_EXT2_4=y
>>> +BR2_TARGET_UBOOT=y
>>> +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
>>> +BR2_TARGET_UBOOT_CUSTOM_TARBALL=y
>>> +BR2_TARGET_UBOOT_CUSTOM_TARBALL_LOCATION="$(call github,polarfire-
>>> soc,u-boot)linux4microchip+fpga-2023.06.tar.gz"
>>> +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="microchip_mpfs_icicle"
>>> +BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/microchip/mpfs_icicl
>>> e/uboot-fragment-rootfs.config"
>>> +BR2_TARGET_UBOOT_NEEDS_DTC=y
>>> +BR2_PACKAGE_HOST_GENIMAGE=y
>>> +BR2_PACKAGE_HOST_MTOOLS=y
>>> +BR2_PACKAGE_HOST_UBOOT_TOOLS=y
>>> +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y
>>> +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y
>>> +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/microchip/m
>>> pfs_icicle/uboot-env.txt"
>> 
>> You also need:
>> BR2_PACKAGE_HOST_DOSFSTOOLS=y
>> to generate the final image.
>> I've catched this failure by using buildroot/utils/docker-run as
>> pointed
>> in previous patch.
>> 
>> Thank you!
>> Best regards
>> --
>> Giulio Benetti
>> CEO&CTO@Benetti Engineering sas
> 
> I have ran a test build, check-package and shellchecker (and fixed all
> errors that cropped up) with utils/docker-run but have not found this
> error mentioned above without adding 'BR2_PACKAGE_HOST_DOSFSTOOLS=y'.
> Could you expand on where you are seeing this?

That package adds host mkdosfs utility that is used by genimage while
creating boot.vfat partition in the final image.

So this is the build fail log using utils/docker-run:
```
INFO: hdimage(sdcard.img): The option 'gpt' is deprecated. Use 
'partition-table-type' instead
INFO: cmd: "mkdir -p 
"/home/giuliobenetti/git/upstream/buildroot/output/images"" (stderr):
INFO: vfat(boot.vfat): cmd: "mkdosfs 
'/home/giuliobenetti/git/upstream/buildroot/output/images/boot.vfat'" 
(stderr):
/bin/sh: 1: mkdosfs: not found
INFO: vfat(boot.vfat): cmd: "rm -f 
"/home/giuliobenetti/git/upstream/buildroot/output/images/boot.vfat"" 
(stderr):
ERROR: vfat(boot.vfat): failed to generate boot.vfat
make: *** [Makefile:815: target-post-image] Error 1
```

It should be the same for you. By the way, are you using latest commit
on master branch? This is because docker changes from time to time and
maybe the one you're using could have mkdosfs already installed, but
it's unlikely.

Let me know the results.
Thank you!
Best regards
-- 
Giulio Benetti
CEO&CTO@Benetti Engineering sas
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  reply	other threads:[~2023-07-12 12:35 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-12  8:34 [Buildroot] [PATCH v2 0/2] Add Microchip PolarFire SoC Icicle Kit Jamie Gibbons via buildroot
2023-07-12  8:34 ` [Buildroot] [PATCH v2 1/2] package/microchip-hss-payload-generator: add host package Jamie Gibbons via buildroot
2023-07-12  9:35   ` Giulio Benetti
2023-07-12 10:27     ` Jamie.Gibbons--- via buildroot
2023-07-12 11:49   ` Thomas Petazzoni via buildroot
2023-07-12 12:43     ` Jamie.Gibbons--- via buildroot
2023-07-12  8:34 ` [Buildroot] [PATCH v2 2/2] configs/microchip_mpfs_icicle: add support for Microchip's Icicle Kit Jamie Gibbons via buildroot
2023-07-12  9:41   ` Giulio Benetti
2023-07-12 11:26     ` Jamie.Gibbons--- via buildroot
2023-07-12 12:35       ` Giulio Benetti [this message]
2023-07-12 12:48         ` Jamie.Gibbons--- via buildroot
2023-07-12 13:32           ` Giulio Benetti

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=acaea49f-df76-ac2f-51ed-cc855cf23f28@benettiengineering.com \
    --to=giulio.benetti@benettiengineering.com \
    --cc=Conor.Dooley@microchip.com \
    --cc=Jamie.Gibbons@microchip.com \
    --cc=Ludovic.Desroches@microchip.com \
    --cc=Nicolas.Ferre@microchip.com \
    --cc=Valentina.FernandezAlanis@microchip.com \
    --cc=buildroot@buildroot.org \
    --cc=thomas.petazzoni@bootlin.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox