[Buildroot] [PATCH v4 2/3] package/milkv-duo-smallcore-freertos: new package
Giulio Benetti
giulio.benetti at benettiengineering.com
Wed Feb 7 11:39:09 UTC 2024
Hi Hanyuan,
On 07/02/24 08:49, Hanyuan Zhao wrote:
> This commit adds the freertos support for the
> RISC-V dev board milk-v duo.
>
> https://github.com/milkv-duo/milkv-duo-smallcore-freertos
>
> Co-authored-by: Emil S <emil.soltys at outlook.com>
> Signed-off-by: Hanyuan Zhao <hanyuan-z at qq.com>
>
> ---
> Changes v3 -> v4:
> - Move the make recipes to the repo
> - Bump the version to latest
>
> Changes v2 -> v3:
> - No Changes
>
> Changes v1 -> v2:
> - Set the depends and select logic
> - Add host tools
> ---
> package/Config.in | 1 +
> .../milkv-duo-smallcore-freertos/Config.in | 21 ++++++++++++++++++
> .../milkv-duo-smallcore-freertos.mk | 22 +++++++++++++++++++
> 3 files changed, 44 insertions(+)
> create mode 100644 package/milkv-duo-smallcore-freertos/Config.in
> create mode 100644 package/milkv-duo-smallcore-freertos/milkv-duo-smallcore-freertos.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 322aba90b8..7be3316f71 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -565,6 +565,7 @@ endmenu
> source "package/memtool/Config.in"
> source "package/mhz/Config.in"
> source "package/milkv-duo-libraries/Config.in"
> + source "package/milkv-duo-smallcore-freertos/Config.in"
> source "package/minicom/Config.in"
> source "package/msr-tools/Config.in"
> source "package/nanocom/Config.in"
> diff --git a/package/milkv-duo-smallcore-freertos/Config.in b/package/milkv-duo-smallcore-freertos/Config.in
> new file mode 100644
> index 0000000000..8503932461
> --- /dev/null
> +++ b/package/milkv-duo-smallcore-freertos/Config.in
> @@ -0,0 +1,21 @@
> +config BR2_PACKAGE_MILKV_DUO_SMALLCORE_FREERTOS
> + bool "milkv-duo-smallcore-freertos"
> + depends on BR2_PACKAGE_MILKV_DUO_FIRMWARE_FSBL
> + select BR2_PACKAGE_HOST_CMAKE
> + help
> + This package is obtained from
> + https://github.com/milkv-duo/duo-buildroot-sdk,
> + from which we download the FreeRTOS ported to Milk-V Duo
> + into the Buildroot. This FreeRTOS will run in the small core
> + and will not do anything because it is simply a template
> + with some basic UART demos. You can realize your own ideas
> + by adding code to
> +
> + output/build/milkv-duo-smallcore-freertos-hash/cvitek/task
> + /comm/src/riscv64/comm_main.c
> +
> + If you say Y, then every time you make Buildroot, it will
> + automatically compile and include the FreeRTOS into the
> + fip.bin, which will then be packed into sdcard.img
> +
> + https://github.com/milkv-duo/milkv-duo-smallcore-freertos
> diff --git a/package/milkv-duo-smallcore-freertos/milkv-duo-smallcore-freertos.mk b/package/milkv-duo-smallcore-freertos/milkv-duo-smallcore-freertos.mk
> new file mode 100644
> index 0000000000..1d8d4fcf12
> --- /dev/null
> +++ b/package/milkv-duo-smallcore-freertos/milkv-duo-smallcore-freertos.mk
> @@ -0,0 +1,22 @@
> +################################################################################
> +#
> +# milkv-duo-smallcore-freertos
> +#
> +################################################################################
> +
> +MILKV_DUO_SMALLCORE_FREERTOS_VERSION = 10b86e308ca2305a464ae2bb3eb868a72295f7ab
> +MILKV_DUO_SMALLCORE_FREERTOS_SITE = $(call github,milkv-duo,milkv-duo-smallcore-freertos,$(MILKV_DUO_SMALLCORE_FREERTOS_VERSION))
> +MILKV_DUO_SMALLCORE_FREERTOS_INSTALL_STAGING = YES
> +MILKV_DUO_SMALLCORE_FREERTOS_DEPENDENCIES = host-cmake host-ninja
> +MILKV_DUO_SMALLCORE_FREERTOS_CONF_ENV = CROSS_COMPILE=$(TARGET_CROSS) MK_ENV=$(TARGET_MAKE_ENV) TARGET_CMAKE=$(BR2_CMAKE) BUILD_PATH=$(@D)
> +
> +define MILKV_DUO_SMALLCORE_FREERTOS_BUILD_CMDS
> + $(MAKE) -C $(@D) all $(MILKV_DUO_SMALLCORE_FREERTOS_CONF_ENV)
> +endef
> +
> +define MILKV_DUO_SMALLCORE_FREERTOS_INSTALL_STAGING_CMDS
> + $(INSTALL) -D -m 0755 $(@D)/cvitek/install/bin/cvirtos.bin $(BINARIES_DIR)/cvirtos.bin
> + touch $(BINARIES_DIR)/empty.bin
> +endef
> +
> +$(eval $(generic-package))
It looks good to me, moving build system to repository made it really
easier, so:
Reviewed-by: Giulio Benetti <giulio.benetti at benettiengineering.com>
Just FYI, buildroot also deal with cmake package using:
$(eval $(cmake-package))
so in the future you can use that or other infrastructure that it
provides that you can find under buildroot/package/pkg-*.mk
Best regards
--
Giulio Benetti
CEO&CTO at Benetti Engineering sas
More information about the buildroot
mailing list