diff options
author | Johannes Zink <j.zink@pengutronix.de> | 2022-09-05 18:36:10 +0200 |
---|---|---|
committer | Robert Schwebel <r.schwebel@pengutronix.de> | 2022-09-06 16:11:20 +0200 |
commit | 842455ae5f86964eb5c76f48382bfb53f43aec06 (patch) | |
tree | bd37b66b667df154928c6cbcdd75ede561c98fd6 /configs/platform-v8a/rules | |
parent | 58b541596f730f9f4d2b9ca2f403d5462bc4caaf (diff) | |
download | DistroKit-842455ae5f86964eb5c76f48382bfb53f43aec06.tar.gz DistroKit-842455ae5f86964eb5c76f48382bfb53f43aec06.tar.xz |
v8a: rockchip: add new barebox-rockchip rule
Add a new barebox-rockchip rule that builds a binary capable of booting
on the Radxa ROCK 3A SBC.
Signed-off-by: Johannes Zink <j.zink@pengutronix.de>
Signed-off-by: Michael Tretter <m.tretter@pengutronix.de>
Link: https://lore.pengutronix.de/20220905163615.2807729-16-m.tretter@pengutronix.de
Signed-off-by: Robert Schwebel <r.schwebel@pengutronix.de>
Diffstat (limited to 'configs/platform-v8a/rules')
-rw-r--r-- | configs/platform-v8a/rules/barebox-rockchip.make | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/configs/platform-v8a/rules/barebox-rockchip.make b/configs/platform-v8a/rules/barebox-rockchip.make new file mode 100644 index 0000000..cca9866 --- /dev/null +++ b/configs/platform-v8a/rules/barebox-rockchip.make @@ -0,0 +1,163 @@ +# -*-makefile-*- +# +# Copyright (C) 2022 by Michael Riesch <michael.riesch@wolfvision.net> +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_BAREBOX_ROCKCHIP) += barebox-rockchip + +# +# Paths and names +# +BAREBOX_ROCKCHIP_VERSION := 2022.08.0 +BAREBOX_ROCKCHIP_MD5 := 129a9e66ddb90cad7856df827e1dc574 +BAREBOX_ROCKCHIP := barebox-rockchip-$(BAREBOX_ROCKCHIP_VERSION) +BAREBOX_ROCKCHIP_SUFFIX := tar.bz2 +BAREBOX_ROCKCHIP_URL := $(call barebox-url, BAREBOX_ROCKCHIP) +BAREBOX_ROCKCHIP_PATCHES := barebox-rockchip-$(BAREBOX_ROCKCHIP_VERSION) +BAREBOX_ROCKCHIP_SOURCE := $(SRCDIR)/$(BAREBOX_ROCKCHIP_PATCHES).$(BAREBOX_ROCKCHIP_SUFFIX) +BAREBOX_ROCKCHIP_DIR := $(BUILDDIR)/$(BAREBOX_ROCKCHIP) +BAREBOX_ROCKCHIP_BUILD_DIR := $(BAREBOX_ROCKCHIP_DIR)-build +BAREBOX_ROCKCHIP_LICENSE := GPL-2.0-only +BAREBOX_ROCKCHIP_DEVPKG := NO +BAREBOX_ROCKCHIP_BUILD_OOT := KEEP + +BAREBOX_ROCKCHIP_CONFIG := $(call ptx/in-platformconfigdir, \ + barebox-rockchip.config) + +# ---------------------------------------------------------------------------- +# Prepare +# ---------------------------------------------------------------------------- + +BAREBOX_ROCKCHIP_INJECT_PATH := ${PTXDIST_SYSROOT_TARGET}/usr/lib/firmware +BAREBOX_ROCKCHIP_INJECT_FILES += rk3568_bl31_v1.24.elf:firmware/rk3568-bl31.bin +BAREBOX_ROCKCHIP_INJECT_FILES += rk3568_bl32_v1.05.bin:firmware/rk3568-op-tee.bin +BAREBOX_ROCKCHIP_INJECT_FILES += rk3568_ddr_1560MHz_v1.08.bin:arch/arm/boards/rockchip-rk3568-evb/sdram-init.bin +BAREBOX_ROCKCHIP_INJECT_FILES += rk3568_ddr_1560MHz_v1.08.bin:arch/arm/boards/radxa-rock3/sdram-init.bin + +# use host pkg-config for host tools +BAREBOX_ROCKCHIP_PATH := PATH=$(HOST_PATH) + +BAREBOX_ROCKCHIP_WRAPPER_BLACKLIST := \ + $(PTXDIST_LOWLEVEL_WRAPPER_BLACKLIST) + +BAREBOX_ROCKCHIP_CONF_TOOL := kconfig +BAREBOX_ROCKCHIP_CONF_OPT := \ + -C $(BAREBOX_ROCKCHIP_DIR) \ + O=$(BAREBOX_ROCKCHIP_BUILD_DIR) \ + $(call barebox-opts, BAREBOX_ROCKCHIP) + +BAREBOX_ROCKCHIP_MAKE_OPT := $(BAREBOX_ROCKCHIP_CONF_OPT) + +BAREBOX_ROCKCHIP_IMAGES := images/barebox-rk3568-evb.img images/barebox-rock3a.img +BAREBOX_ROCKCHIP_IMAGES := $(addprefix $(BAREBOX_ROCKCHIP_BUILD_DIR)/,$(BAREBOX_ROCKCHIP_IMAGES)) + +ifdef PTXCONF_BAREBOX_ROCKCHIP +$(BAREBOX_ROCKCHIP_CONFIG): + @echo + @echo "****************************************************************************" + @echo " Please generate a bareboxconfig with 'ptxdist menuconfig barebox-rockchip'" + @echo "****************************************************************************" + @echo + @echo + @exit 1 +endif + +BAREBOX_ROCKCHIP_EXTRA_ENV_PATH := $(foreach path, \ + $(call remove_quotes,"barebox-common-defaultenv"), \ + $(call ptx/in-platformconfigdir,$(path))) +BAREBOX_ROCKCHIP_EXTRA_ENV_DEPS := \ + $(BAREBOX_ROCKCHIP_EXTRA_ENV_PATH) \ + $(call ptx/force-sh, find $(BAREBOX_ROCKCHIP_EXTRA_ENV_PATH) -print 2>/dev/null) + +$(STATEDIR)/barebox-rockchip.prepare: $(BAREBOX_ROCKCHIP_EXTRA_ENV_DEPS) + @$(call targetinfo) + @$(call world/prepare, BAREBOX_ROCKCHIP) + @$(call world/inject, BAREBOX_ROCKCHIP) + + @rm -rf $(BAREBOX_ROCKCHIP_BUILD_DIR)/.ptxdist-defaultenv + @ptxd_source_kconfig "${PTXDIST_PTXCONFIG}" && \ + ptxd_source_kconfig "${PTXDIST_PLATFORMCONFIG}" && \ + $(foreach path, $(BAREBOX_ROCKCHIP_EXTRA_ENV_PATH), \ + if [ -d "$(path)" ]; then \ + ptxd_filter_dir "$(path)" \ + $(BAREBOX_ROCKCHIP_BUILD_DIR)/.ptxdist-defaultenv; \ + else \ + cp "$(path)" $(BAREBOX_ROCKCHIP_BUILD_DIR)/.ptxdist-defaultenv/; \ + fi;) + @rm -rf $(BAREBOX_ROCKCHIP_BUILD_DIR)/defaultenv/barebox_default_env + + @$(call touch) + +# ---------------------------------------------------------------------------- +# Compile +# ---------------------------------------------------------------------------- + +$(STATEDIR)/barebox-rockchip.compile: + @$(call targetinfo) + + @if test $$(grep -c -e "^CONFIG_DEFAULT_ENVIRONMENT_PATH=.*\$(BAREBOX_ROCKCHIP_BUILD_DIR)/.ptxdist-defaultenv" $(BAREBOX_ROCKCHIP_BUILD_DIR)/.config) -eq 0; then \ + sed -i -e "s,^\(CONFIG_DEFAULT_ENVIRONMENT_PATH=.*\)\"$$,\1 $(BAREBOX_ROCKCHIP_BUILD_DIR)/.ptxdist-defaultenv\"," \ + $(BAREBOX_ROCKCHIP_BUILD_DIR)/.config; \ + fi + + @$(call world/compile, BAREBOX_ROCKCHIP) + @$(call touch) + +# ---------------------------------------------------------------------------- +# Install +# ---------------------------------------------------------------------------- + +BAREBOX_ROCKCHIP_PROGS_HOST := \ + rk-usb-loader + +$(STATEDIR)/barebox-rockchip.install: + @$(call targetinfo) + + @$(foreach prog, $(BAREBOX_ROCKCHIP_PROGS_HOST), \ + if [ -e $(BAREBOX_ROCKCHIP_BUILD_DIR)/scripts/$(prog) ]; then \ + install -v -D -m755 \ + $(BAREBOX_ROCKCHIP_BUILD_DIR)/scripts/$(prog) \ + $(PTXDIST_SYSROOT_HOST)/bin/$(notdir $(prog)) \ + || exit; \ + fi;) + + @$(call touch) + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/barebox-rockchip.targetinstall: + @$(call targetinfo) + @$(foreach image, $(BAREBOX_ROCKCHIP_IMAGES), \ + install -m 644 \ + $(image) $(IMAGEDIR)/$(notdir $(image))-rockchip$(ptx/nl)) + @$(call touch) + +# ---------------------------------------------------------------------------- +# Clean +# ---------------------------------------------------------------------------- + +$(STATEDIR)/barebox-rockchip.clean: + @$(call targetinfo) + @$(call clean_pkg, BAREBOX_ROCKCHIP) + @$(foreach image, $(BAREBOX_ROCKCHIP_IMAGES), \ + rm -fv $(IMAGEDIR)/$(notdir $(image))-rockchip$(ptx/nl)) + @$(foreach prog, $(BAREBOX_ROCKCHIP_PROGS_HOST), \ + rm -vf $(PTXDIST_SYSROOT_HOST)/bin/$(notdir $(prog))$(ptx/nl)) + + +# ---------------------------------------------------------------------------- +# oldconfig / menuconfig +# ---------------------------------------------------------------------------- + +$(call ptx/kconfig-targets, barebox-rockchip): $(STATEDIR)/barebox-rockchip.extract + @$(call world/kconfig, BAREBOX_ROCKCHIP, $(subst barebox-rockchip_,,$@)) + +# vim: syntax=make |