All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2 0/2] Add Microchip PolarFire SoC Icicle Kit
@ 2023-07-12  8:34 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  8:34 ` [Buildroot] [PATCH v2 2/2] configs/microchip_mpfs_icicle: add support for Microchip's Icicle Kit Jamie Gibbons via buildroot
  0 siblings, 2 replies; 12+ messages in thread
From: Jamie Gibbons via buildroot @ 2023-07-12  8:34 UTC (permalink / raw)
  To: buildroot
  Cc: Conor Dooley, Nicolas Ferre, Ludovic Desroches, Thomas Petazzoni,
	Valentina Fernandez Alanis, Jamie Gibbons

Hi all,

The following patch series is to add support for Microchip's PolarFire SoC
development board, the icicle kit. We are adding all the necessary supporting
files, including a new defconfig and one required host package, the
hss-payload-generator. I look forward to recieving your feedback on the series.

Regards,
Jamie

Changes v1 -> v2:
- cleanup package makefile file
- update U-Boot and kernel versions
- add to Developers

Jamie Gibbons (2):
  package/microchip-hss-payload-generator: add host package
  configs/microchip_mpfs_icicle: add support for Microchip's Icicle Kit

 DEVELOPERS                                    |  5 ++
 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 ++++++++++
 package/Config.in.host                        |  1 +
 .../Config.in.host                            | 10 +++
 .../microchip-hss-payload-generator.mk        | 24 +++++++
 13 files changed, 285 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
 create mode 100644 package/microchip-hss-payload-generator/Config.in.host
 create mode 100644 package/microchip-hss-payload-generator/microchip-hss-payload-generator.mk

-- 
2.34.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH v2 1/2] package/microchip-hss-payload-generator: add host package
  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 ` Jamie Gibbons via buildroot
  2023-07-12  9:35   ` Giulio Benetti
  2023-07-12 11:49   ` Thomas Petazzoni 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
  1 sibling, 2 replies; 12+ messages in thread
From: Jamie Gibbons via buildroot @ 2023-07-12  8:34 UTC (permalink / raw)
  To: buildroot
  Cc: Conor Dooley, Nicolas Ferre, Ludovic Desroches, Thomas Petazzoni,
	Valentina Fernandez Alanis, Jamie Gibbons

The Buildroot icicle kit configuration uses the Hart Software Service's
(HSS) payload generator tool. This tool creates a formatted payload
image for the HSS zero-stage bootloader on PolarFire SoC, given a
configuration file and a set of ELF binaries. The configuration
file is used to map the ELF binaries or binary blobs to the
individual application harts (U54s). Add the HSS payload generator as a
host package to support this.

Signed-off-by: Jamie Gibbons <jamie.gibbons@microchip.com>
---
 DEVELOPERS                                    |  3 +++
 package/Config.in.host                        |  1 +
 .../Config.in.host                            | 10 ++++++++
 .../microchip-hss-payload-generator.mk        | 24 +++++++++++++++++++
 4 files changed, 38 insertions(+)
 create mode 100644 package/microchip-hss-payload-generator/Config.in.host
 create mode 100644 package/microchip-hss-payload-generator/microchip-hss-payload-generator.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 0918e9f721..2f039a2405 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1459,6 +1459,9 @@ F:	package/pangomm/
 F:	package/rpm/
 F:	package/yad/
 
+N:	Jamie Gibbons <jamie.gibbons@microchip.com>
+F:	package/microchip-hss-payload-generator
+
 N:	Jan Heylen <jan.heylen@nokia.com>
 F:	package/opentracing-cpp/
 
diff --git a/package/Config.in.host b/package/Config.in.host
index dcadbfdfc1..42856c09df 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -58,6 +58,7 @@ menu "Host utilities"
 	source "package/mender-artifact/Config.in.host"
 	source "package/meson-tools/Config.in.host"
 	source "package/mfgtools/Config.in.host"
+	source "package/microchip-hss-payload-generator/Config.in.host"
 	source "package/mkpasswd/Config.in.host"
 	source "package/moby-buildkit/Config.in.host"
 	source "package/mosquitto/Config.in.host"
diff --git a/package/microchip-hss-payload-generator/Config.in.host b/package/microchip-hss-payload-generator/Config.in.host
new file mode 100644
index 0000000000..1e21fbbb5d
--- /dev/null
+++ b/package/microchip-hss-payload-generator/Config.in.host
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR
+	bool "HSS Payload Generator"
+	help
+	  Microchip PolarFire SoC Payload Generator. This tool creates a formatted
+	  payload image for the HSS zero-stage bootloader on PolarFire SoC, given a
+	  configuration file and a set of ELF binaries. The configuration file is
+	  used to map the ELF binaries or binary blobs to the individual application
+	  harts (U54s).
+
+	  https://github.com/polarfire-soc/hart-software-services.git
diff --git a/package/microchip-hss-payload-generator/microchip-hss-payload-generator.mk b/package/microchip-hss-payload-generator/microchip-hss-payload-generator.mk
new file mode 100644
index 0000000000..7344d208c1
--- /dev/null
+++ b/package/microchip-hss-payload-generator/microchip-hss-payload-generator.mk
@@ -0,0 +1,24 @@
+################################################################################
+#
+# microchip-hss-payload-generator
+#
+################################################################################
+HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_VERSION = 2023.06
+HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_SITE = $(call github,polarfire-soc,hart-software-services,v$(HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_VERSION))
+HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_LICENSE = MIT
+HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_LICENSE_FILES = LICENSE.md
+HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_DEPENDENCIES = host-elfutils host-libyaml
+
+define HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_BUILD_CMDS
+    $(MAKE) -C $(@D)/tools/hss-payload-generator \
+		HOST_INCLUDES="$(HOST_CPPFLAGS)" \
+		LDFLAGS="$(HOST_LDFLAGS)"
+endef
+
+define HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_INSTALL_CMDS
+	$(INSTALL) -D -m 755 \
+		$(@D)/tools/hss-payload-generator/hss-payload-generator \
+		$(HOST_DIR)/bin/hss-payload-generator
+endef
+
+$(eval $(host-generic-package))
-- 
2.34.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [Buildroot] [PATCH v2 2/2] configs/microchip_mpfs_icicle: add support for Microchip's Icicle Kit
  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  8:34 ` Jamie Gibbons via buildroot
  2023-07-12  9:41   ` Giulio Benetti
  1 sibling, 1 reply; 12+ messages in thread
From: Jamie Gibbons via buildroot @ 2023-07-12  8:34 UTC (permalink / raw)
  To: buildroot
  Cc: Conor Dooley, Nicolas Ferre, Ludovic Desroches, Thomas Petazzoni,
	Valentina Fernandez Alanis, Jamie Gibbons

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/master/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
+		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_icicle/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_icicle/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/mpfs_icicle/uboot-env.txt"
-- 
2.34.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [Buildroot] [PATCH v2 1/2] package/microchip-hss-payload-generator: add host package
  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
  1 sibling, 1 reply; 12+ messages in thread
From: Giulio Benetti @ 2023-07-12  9:35 UTC (permalink / raw)
  To: Jamie Gibbons, buildroot
  Cc: Valentina Fernandez Alanis, Conor Dooley, Ludovic Desroches,
	Nicolas Ferre, Thomas Petazzoni

Hi Jamie, All,

On 12/07/23 10:34, Jamie Gibbons via buildroot wrote:
> The Buildroot icicle kit configuration uses the Hart Software Service's
> (HSS) payload generator tool. This tool creates a formatted payload
> image for the HSS zero-stage bootloader on PolarFire SoC, given a
> configuration file and a set of ELF binaries. The configuration
> file is used to map the ELF binaries or binary blobs to the
> individual application harts (U54s). Add the HSS payload generator as a
> host package to support this.
> 
> Signed-off-by: Jamie Gibbons <jamie.gibbons@microchip.com>
> ---
>   DEVELOPERS                                    |  3 +++
>   package/Config.in.host                        |  1 +
>   .../Config.in.host                            | 10 ++++++++
>   .../microchip-hss-payload-generator.mk        | 24 +++++++++++++++++++
>   4 files changed, 38 insertions(+)
>   create mode 100644 package/microchip-hss-payload-generator/Config.in.host
>   create mode 100644 package/microchip-hss-payload-generator/microchip-hss-payload-generator.mk
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 0918e9f721..2f039a2405 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -1459,6 +1459,9 @@ F:	package/pangomm/
>   F:	package/rpm/
>   F:	package/yad/
>   
> +N:	Jamie Gibbons <jamie.gibbons@microchip.com>
> +F:	package/microchip-hss-payload-generator
> +
>   N:	Jan Heylen <jan.heylen@nokia.com>
>   F:	package/opentracing-cpp/
>   
> diff --git a/package/Config.in.host b/package/Config.in.host
> index dcadbfdfc1..42856c09df 100644
> --- a/package/Config.in.host
> +++ b/package/Config.in.host
> @@ -58,6 +58,7 @@ menu "Host utilities"
>   	source "package/mender-artifact/Config.in.host"
>   	source "package/meson-tools/Config.in.host"
>   	source "package/mfgtools/Config.in.host"
> +	source "package/microchip-hss-payload-generator/Config.in.host"
>   	source "package/mkpasswd/Config.in.host"
>   	source "package/moby-buildkit/Config.in.host"
>   	source "package/mosquitto/Config.in.host"
> diff --git a/package/microchip-hss-payload-generator/Config.in.host b/package/microchip-hss-payload-generator/Config.in.host
> new file mode 100644
> index 0000000000..1e21fbbb5d
> --- /dev/null
> +++ b/package/microchip-hss-payload-generator/Config.in.host
> @@ -0,0 +1,10 @@
> +config BR2_PACKAGE_HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR
> +	bool "HSS Payload Generator"
> +	help
> +	  Microchip PolarFire SoC Payload Generator. This tool creates a formatted
> +	  payload image for the HSS zero-stage bootloader on PolarFire SoC, given a
> +	  configuration file and a set of ELF binaries. The configuration file is
> +	  used to map the ELF binaries or binary blobs to the individual application
> +	  harts (U54s).
> +
> +	  https://github.com/polarfire-soc/hart-software-services.git
> diff --git a/package/microchip-hss-payload-generator/microchip-hss-payload-generator.mk b/package/microchip-hss-payload-generator/microchip-hss-payload-generator.mk
> new file mode 100644
> index 0000000000..7344d208c1
> --- /dev/null
> +++ b/package/microchip-hss-payload-generator/microchip-hss-payload-generator.mk
> @@ -0,0 +1,24 @@
> +################################################################################
> +#
> +# microchip-hss-payload-generator
> +#
> +################################################################################
> +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_VERSION = 2023.06
> +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_SITE = $(call github,polarfire-soc,hart-software-services,v$(HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_VERSION))
> +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_LICENSE = MIT
> +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_LICENSE_FILES = LICENSE.md
> +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_DEPENDENCIES = host-elfutils host-libyaml

here you need to add host-openssl to avoid build failure.

When you test build please use buildroot/utils/docker-run so you won't
use your distro host libraries/utilities and you can catch this kind of
build failure due to host dependencies.

Thank you!
Best regards
-- 
Giulio Benetti
CEO&CTO@Benetti Engineering sas

> +
> +define HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_BUILD_CMDS
> +    $(MAKE) -C $(@D)/tools/hss-payload-generator \
> +		HOST_INCLUDES="$(HOST_CPPFLAGS)" \
> +		LDFLAGS="$(HOST_LDFLAGS)"
> +endef
> +
> +define HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_INSTALL_CMDS
> +	$(INSTALL) -D -m 755 \
> +		$(@D)/tools/hss-payload-generator/hss-payload-generator \
> +		$(HOST_DIR)/bin/hss-payload-generator
> +endef
> +
> +$(eval $(host-generic-package))

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Buildroot] [PATCH v2 2/2] configs/microchip_mpfs_icicle: add support for Microchip's Icicle Kit
  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
  0 siblings, 1 reply; 12+ messages in thread
From: Giulio Benetti @ 2023-07-12  9:41 UTC (permalink / raw)
  To: Jamie Gibbons, buildroot
  Cc: Valentina Fernandez Alanis, Conor Dooley, Ludovic Desroches,
	Nicolas Ferre, Thomas Petazzoni

Hi Jamie, All,

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/master/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

> +		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_icicle/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_icicle/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/mpfs_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
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Buildroot] [PATCH v2 1/2] package/microchip-hss-payload-generator: add host package
  2023-07-12  9:35   ` Giulio Benetti
@ 2023-07-12 10:27     ` Jamie.Gibbons--- via buildroot
  0 siblings, 0 replies; 12+ messages in thread
From: Jamie.Gibbons--- via buildroot @ 2023-07-12 10:27 UTC (permalink / raw)
  To: giulio.benetti, buildroot
  Cc: Valentina.FernandezAlanis, Conor.Dooley, Ludovic.Desroches,
	Nicolas.Ferre, thomas.petazzoni

On Wed, 2023-07-12 at 11:35 +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:
> > The Buildroot icicle kit configuration uses the Hart Software
> > Service's
> > (HSS) payload generator tool. This tool creates a formatted payload
> > image for the HSS zero-stage bootloader on PolarFire SoC, given a
> > configuration file and a set of ELF binaries. The configuration
> > file is used to map the ELF binaries or binary blobs to the
> > individual application harts (U54s). Add the HSS payload generator
> > as a
> > host package to support this.
> > 
> > Signed-off-by: Jamie Gibbons <jamie.gibbons@microchip.com>
> > ---
> >   DEVELOPERS                                    |  3 +++
> >   package/Config.in.host                        |  1 +
> >   .../Config.in.host                            | 10 ++++++++
> >   .../microchip-hss-payload-generator.mk        | 24
> > +++++++++++++++++++
> >   4 files changed, 38 insertions(+)
> >   create mode 100644 package/microchip-hss-payload-
> > generator/Config.in.host
> >   create mode 100644 package/microchip-hss-payload-
> > generator/microchip-hss-payload-generator.mk
> > 
> > diff --git a/DEVELOPERS b/DEVELOPERS
> > index 0918e9f721..2f039a2405 100644
> > --- a/DEVELOPERS
> > +++ b/DEVELOPERS
> > @@ -1459,6 +1459,9 @@ F:      package/pangomm/
> >   F:  package/rpm/
> >   F:  package/yad/
> > 
> > +N:   Jamie Gibbons <jamie.gibbons@microchip.com>
> > +F:   package/microchip-hss-payload-generator
> > +
> >   N:  Jan Heylen <jan.heylen@nokia.com>
> >   F:  package/opentracing-cpp/
> > 
> > diff --git a/package/Config.in.host b/package/Config.in.host
> > index dcadbfdfc1..42856c09df 100644
> > --- a/package/Config.in.host
> > +++ b/package/Config.in.host
> > @@ -58,6 +58,7 @@ menu "Host utilities"
> >       source "package/mender-artifact/Config.in.host"
> >       source "package/meson-tools/Config.in.host"
> >       source "package/mfgtools/Config.in.host"
> > +     source "package/microchip-hss-payload-
> > generator/Config.in.host"
> >       source "package/mkpasswd/Config.in.host"
> >       source "package/moby-buildkit/Config.in.host"
> >       source "package/mosquitto/Config.in.host"
> > diff --git a/package/microchip-hss-payload-generator/Config.in.host
> > b/package/microchip-hss-payload-generator/Config.in.host
> > new file mode 100644
> > index 0000000000..1e21fbbb5d
> > --- /dev/null
> > +++ b/package/microchip-hss-payload-generator/Config.in.host
> > @@ -0,0 +1,10 @@
> > +config BR2_PACKAGE_HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR
> > +     bool "HSS Payload Generator"
> > +     help
> > +       Microchip PolarFire SoC Payload Generator. This tool
> > creates a formatted
> > +       payload image for the HSS zero-stage bootloader on
> > PolarFire SoC, given a
> > +       configuration file and a set of ELF binaries. The
> > configuration file is
> > +       used to map the ELF binaries or binary blobs to the
> > individual application
> > +       harts (U54s).
> > +
> > +       https://github.com/polarfire-soc/hart-software-services.git
> > diff --git a/package/microchip-hss-payload-generator/microchip-hss-
> > payload-generator.mk b/package/microchip-hss-payload-
> > generator/microchip-hss-payload-generator.mk
> > new file mode 100644
> > index 0000000000..7344d208c1
> > --- /dev/null
> > +++ b/package/microchip-hss-payload-generator/microchip-hss-
> > payload-generator.mk
> > @@ -0,0 +1,24 @@
> > +##################################################################
> > ##############
> > +#
> > +# microchip-hss-payload-generator
> > +#
> > +##################################################################
> > ##############
> > +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_VERSION = 2023.06
> > +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_SITE = $(call
> > github,polarfire-soc,hart-software-
> > services,v$(HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_VERSION))
> > +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_LICENSE = MIT
> > +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_LICENSE_FILES = LICENSE.md
> > +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_DEPENDENCIES = host-elfutils
> > host-libyaml
> 
> here you need to add host-openssl to avoid build failure.
> 
> When you test build please use buildroot/utils/docker-run so you
> won't
> use your distro host libraries/utilities and you can catch this kind
> of
> build failure due to host dependencies.
> 
> Thank you!
> Best regards
> --
> Giulio Benetti
> CEO&CTO@Benetti Engineering sas

Thanks for your feedback and taking the time to explain. This makes
sense. I have ran utils/docker-run make now and seen this error crop up
there too. Will fix and update in a v3.

Thanks again,
Jamie.
> 
> > +
> > +define HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_BUILD_CMDS
> > +    $(MAKE) -C $(@D)/tools/hss-payload-generator \
> > +             HOST_INCLUDES="$(HOST_CPPFLAGS)" \
> > +             LDFLAGS="$(HOST_LDFLAGS)"
> > +endef
> > +
> > +define HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_INSTALL_CMDS
> > +     $(INSTALL) -D -m 755 \
> > +             $(@D)/tools/hss-payload-generator/hss-payload-
> > generator \
> > +             $(HOST_DIR)/bin/hss-payload-generator
> > +endef
> > +
> > +$(eval $(host-generic-package))
> 

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Buildroot] [PATCH v2 2/2] configs/microchip_mpfs_icicle: add support for Microchip's Icicle Kit
  2023-07-12  9:41   ` Giulio Benetti
@ 2023-07-12 11:26     ` Jamie.Gibbons--- via buildroot
  2023-07-12 12:35       ` Giulio Benetti
  0 siblings, 1 reply; 12+ messages in thread
From: Jamie.Gibbons--- via buildroot @ 2023-07-12 11:26 UTC (permalink / raw)
  To: giulio.benetti, buildroot
  Cc: Valentina.FernandezAlanis, Conor.Dooley, Ludovic.Desroches,
	Nicolas.Ferre, thomas.petazzoni

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'. I have checked the docs and the payload.bin however,
does not have a shortcut so I will keep that one as is.

> > +             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?

Thanks a million,
Jamie.

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Buildroot] [PATCH v2 1/2] package/microchip-hss-payload-generator: add host package
  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 11:49   ` Thomas Petazzoni via buildroot
  2023-07-12 12:43     ` Jamie.Gibbons--- via buildroot
  1 sibling, 1 reply; 12+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-07-12 11:49 UTC (permalink / raw)
  To: Jamie Gibbons via buildroot
  Cc: Valentina Fernandez Alanis, Jamie Gibbons, Ludovic Desroches,
	Conor Dooley, Nicolas Ferre

Hello Jamie,

So very minor nits below.

On Wed, 12 Jul 2023 09:34:54 +0100
Jamie Gibbons via buildroot <buildroot@buildroot.org> wrote:

> diff --git a/package/microchip-hss-payload-generator/Config.in.host b/package/microchip-hss-payload-generator/Config.in.host
> new file mode 100644
> index 0000000000..1e21fbbb5d
> --- /dev/null
> +++ b/package/microchip-hss-payload-generator/Config.in.host
> @@ -0,0 +1,10 @@
> +config BR2_PACKAGE_HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR
> +	bool "HSS Payload Generator"

Should be:

	bool "host microchip-hss-payload-generator"

> +	help
> +	  Microchip PolarFire SoC Payload Generator. This tool creates a formatted
> +	  payload image for the HSS zero-stage bootloader on PolarFire SoC, given a
> +	  configuration file and a set of ELF binaries. The configuration file is
> +	  used to map the ELF binaries or binary blobs to the individual application
> +	  harts (U54s).

Is "make check-package" running fine? These lines look a bit long to
me, but "make check-package" will tell for sure.

> diff --git a/package/microchip-hss-payload-generator/microchip-hss-payload-generator.mk b/package/microchip-hss-payload-generator/microchip-hss-payload-generator.mk
> new file mode 100644
> index 0000000000..7344d208c1
> --- /dev/null
> +++ b/package/microchip-hss-payload-generator/microchip-hss-payload-generator.mk
> @@ -0,0 +1,24 @@
> +################################################################################
> +#
> +# microchip-hss-payload-generator
> +#
> +################################################################################

Missing empty line between the silly comment header above and the first
variable definition.

> +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_VERSION = 2023.06
> +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_SITE = $(call github,polarfire-soc,hart-software-services,v$(HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_VERSION))
> +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_LICENSE = MIT
> +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_LICENSE_FILES = LICENSE.md
> +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_DEPENDENCIES = host-elfutils host-libyaml

No other comments, the rest looks fine to me, of course except the
host-openssl missing dependency pointed out by Giulio.

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Buildroot] [PATCH v2 2/2] configs/microchip_mpfs_icicle: add support for Microchip's Icicle Kit
  2023-07-12 11:26     ` Jamie.Gibbons--- via buildroot
@ 2023-07-12 12:35       ` Giulio Benetti
  2023-07-12 12:48         ` Jamie.Gibbons--- via buildroot
  0 siblings, 1 reply; 12+ messages in thread
From: Giulio Benetti @ 2023-07-12 12:35 UTC (permalink / raw)
  To: Jamie.Gibbons
  Cc: Ludovic.Desroches, Nicolas.Ferre, Conor.Dooley, thomas.petazzoni,
	buildroot, Valentina.FernandezAlanis

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

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Buildroot] [PATCH v2 1/2] package/microchip-hss-payload-generator: add host package
  2023-07-12 11:49   ` Thomas Petazzoni via buildroot
@ 2023-07-12 12:43     ` Jamie.Gibbons--- via buildroot
  0 siblings, 0 replies; 12+ messages in thread
From: Jamie.Gibbons--- via buildroot @ 2023-07-12 12:43 UTC (permalink / raw)
  To: buildroot, thomas.petazzoni
  Cc: Valentina.FernandezAlanis, Conor.Dooley, Ludovic.Desroches,
	Nicolas.Ferre

On Wed, 2023-07-12 at 13:49 +0200, Thomas Petazzoni wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you
> know the content is safe
> 
> Hello Jamie,
> 

Hi Thomas,
> So very minor nits below.
> 
> On Wed, 12 Jul 2023 09:34:54 +0100
> Jamie Gibbons via buildroot <buildroot@buildroot.org> wrote:
> 
> > diff --git a/package/microchip-hss-payload-generator/Config.in.host
> > b/package/microchip-hss-payload-generator/Config.in.host
> > new file mode 100644
> > index 0000000000..1e21fbbb5d
> > --- /dev/null
> > +++ b/package/microchip-hss-payload-generator/Config.in.host
> > @@ -0,0 +1,10 @@
> > +config BR2_PACKAGE_HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR
> > +     bool "HSS Payload Generator"
> 
> Should be:
> 
>         bool "host microchip-hss-payload-generator"
> 
> > +     help
> > +       Microchip PolarFire SoC Payload Generator. This tool
> > creates a formatted
> > +       payload image for the HSS zero-stage bootloader on
> > PolarFire SoC, given a
> > +       configuration file and a set of ELF binaries. The
> > configuration file is
> > +       used to map the ELF binaries or binary blobs to the
> > individual application
> > +       harts (U54s).
> 
> Is "make check-package" running fine? These lines look a bit long to
> me, but "make check-package" will tell for sure.
> 
> > diff --git a/package/microchip-hss-payload-generator/microchip-hss-
> > payload-generator.mk b/package/microchip-hss-payload-
> > generator/microchip-hss-payload-generator.mk
> > new file mode 100644
> > index 0000000000..7344d208c1
> > --- /dev/null
> > +++ b/package/microchip-hss-payload-generator/microchip-hss-
> > payload-generator.mk
> > @@ -0,0 +1,24 @@
> > +##################################################################
> > ##############
> > +#
> > +# microchip-hss-payload-generator
> > +#
> > +##################################################################
> > ##############
> 
> Missing empty line between the silly comment header above and the
> first
> variable definition.
> 
> > +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_VERSION = 2023.06
> > +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_SITE = $(call
> > github,polarfire-soc,hart-software-
> > services,v$(HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_VERSION))
> > +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_LICENSE = MIT
> > +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_LICENSE_FILES = LICENSE.md
> > +HOST_MICROCHIP_HSS_PAYLOAD_GENERATOR_DEPENDENCIES = host-elfutils
> > host-libyaml
> 
> No other comments, the rest looks fine to me, of course except the
> host-openssl missing dependency pointed out by Giulio.
> 
> Thomas
> --
> Thomas Petazzoni, co-owner and CEO, Bootlin
> Embedded Linux and Kernel engineering and training
> https://bootlin.com


Thanks for your feedback. I've updated/fixed all of the above for a v3.
"make check-package" running with no errors now.

Thanks,
Jamie. 

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Buildroot] [PATCH v2 2/2] configs/microchip_mpfs_icicle: add support for Microchip's Icicle Kit
  2023-07-12 12:35       ` Giulio Benetti
@ 2023-07-12 12:48         ` Jamie.Gibbons--- via buildroot
  2023-07-12 13:32           ` Giulio Benetti
  0 siblings, 1 reply; 12+ messages in thread
From: Jamie.Gibbons--- via buildroot @ 2023-07-12 12:48 UTC (permalink / raw)
  To: giulio.benetti
  Cc: Ludovic.Desroches, Nicolas.Ferre, Conor.Dooley, thomas.petazzoni,
	buildroot, Valentina.FernandezAlanis

On Wed, 2023-07-12 at 14:35 +0200, Giulio Benetti wrote:
> 
> > > > 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/genim
> > > > age.
> > > > 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_i
> > > > cicl
> > > > 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_i
> > > > cicl
> > > > 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/microch
> > > > ip/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.
> 

Hi Giulio,

I am not getting that error from genimage in my docker container. I am
using the latest commit on the master branch: commit
876ad67ac07be4b7900a4ea6464e7459e2b40604. I will add the package anyway
to avoid this error cropping up for anyone else.

Thanks a million,
Jamie.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [Buildroot] [PATCH v2 2/2] configs/microchip_mpfs_icicle: add support for Microchip's Icicle Kit
  2023-07-12 12:48         ` Jamie.Gibbons--- via buildroot
@ 2023-07-12 13:32           ` Giulio Benetti
  0 siblings, 0 replies; 12+ messages in thread
From: Giulio Benetti @ 2023-07-12 13:32 UTC (permalink / raw)
  To: Jamie.Gibbons
  Cc: Conor.Dooley, Nicolas.Ferre, Ludovic.Desroches, thomas.petazzoni,
	buildroot, Valentina.FernandezAlanis

On 12/07/23 14:48, Jamie.Gibbons--- via buildroot wrote:

[ SNIP ]

>>> 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.
>>
> 
> Hi Giulio,
> 
> I am not getting that error from genimage in my docker container. I am
> using the latest commit on the master branch: commit
> 876ad67ac07be4b7900a4ea6464e7459e2b40604. I will add the package anyway
> to avoid this error cropping up for anyone else.

Pretty strange, it should really give you the build failure above
because of docker. It is exactly its purpose..

Anyway yes, soon or late that error will show up, so better to add
BR2_PACKAGE_HOST_DOSFSTOOLS I've pointed you.

Best regards
-- 
CEO/CTO@Benetti Engineering sas
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2023-07-12 13:32 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
2023-07-12 12:48         ` Jamie.Gibbons--- via buildroot
2023-07-12 13:32           ` Giulio Benetti

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.