diff options
author | Oleksij Rempel <o.rempel@pengutronix.de> | 2020-02-16 09:38:21 +0100 |
---|---|---|
committer | Robert Schwebel <r.schwebel@pengutronix.de> | 2020-02-16 11:31:56 +0100 |
commit | 521707e129e9d9039b430a201a33d45af143a6d7 (patch) | |
tree | f0b1d7cb1aadff978b9775a53d2ce56f1d0aaa31 /configs/platform-mips/rules | |
parent | e6d07898c3595d7b4f2b9cad989231cd01f72b0e (diff) | |
download | DistroKit-521707e129e9d9039b430a201a33d45af143a6d7.tar.gz DistroKit-521707e129e9d9039b430a201a33d45af143a6d7.tar.xz |
platform-mips: add basic qemu malta support
Currently this platform can build rootfs and run only barebox. Other
parts need more work, but even on this stage we would be able to make
toolchain and barebox regression tests.
Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de>
Diffstat (limited to 'configs/platform-mips/rules')
-rw-r--r-- | configs/platform-mips/rules/barebox-common.make | 83 | ||||
-rw-r--r-- | configs/platform-mips/rules/barebox-malta.make | 111 | ||||
-rw-r--r-- | configs/platform-mips/rules/blspec-malta.make | 39 | ||||
-rw-r--r-- | configs/platform-mips/rules/image-malta.make | 34 | ||||
-rw-r--r-- | configs/platform-mips/rules/kernel-malta.make | 111 | ||||
-rw-r--r-- | configs/platform-mips/rules/kernel.make | 78 |
6 files changed, 456 insertions, 0 deletions
diff --git a/configs/platform-mips/rules/barebox-common.make b/configs/platform-mips/rules/barebox-common.make new file mode 100644 index 0000000..8f7c52f --- /dev/null +++ b/configs/platform-mips/rules/barebox-common.make @@ -0,0 +1,83 @@ +# -*-makefile-*- +# +# Copyright (C) 2019 Roland Hieber <rhi@pengutronix.de> +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_BAREBOX_COMMON) += barebox-common + +# +# Paths and names +# +BAREBOX_COMMON_VERSION := $(call remove_quotes,$(PTXCONF_BAREBOX_COMMON_VERSION)) +BAREBOX_COMMON_MD5 := $(call remove_quotes,$(PTXCONF_BAREBOX_COMMON_MD5)) +BAREBOX_COMMON := barebox-common-$(BAREBOX_COMMON_VERSION) +BAREBOX_COMMON_SUFFIX := tar.bz2 +BAREBOX_COMMON_URL := $(call barebox-url, BAREBOX_COMMON) +BAREBOX_COMMON_PATCHES := barebox-$(BAREBOX_COMMON_VERSION) +BAREBOX_COMMON_SOURCE := $(SRCDIR)/$(BAREBOX_COMMON_PATCHES).$(BAREBOX_COMMON_SUFFIX) +BAREBOX_COMMON_DIR := $(BUILDDIR)/$(BAREBOX_COMMON) +BAREBOX_COMMON_BUILD_DIR := $(BAREBOX_COMMON_DIR)-build +BAREBOX_COMMON_CONFIG := $(call ptx/in-platformconfigdir, barebox.config) +BAREBOX_COMMON_LICENSE := GPL-2.0-only +BAREBOX_COMMON_BUILD_OOT := KEEP + +# ---------------------------------------------------------------------------- +# Prepare +# ---------------------------------------------------------------------------- + +# use host pkg-config for host tools +BAREBOX_COMMON_PATH := PATH=$(HOST_PATH) + +BAREBOX_COMMON_CONF_OPT := \ + -C $(BAREBOX_COMMON_DIR) \ + O=$(BAREBOX_COMMON_BUILD_DIR) \ + $(call barebox-opts, BAREBOX_COMMON) + +BAREBOX_COMMON_MAKE_OPT := $(BAREBOX_COMMON_CONF_OPT) + +BAREBOX_COMMON_TAGS_OPT := TAGS tags cscope + +ifdef PTXCONF_BAREBOX_COMMON +$(BAREBOX_COMMON_CONFIG): + @echo + @echo "****************************************************************************" + @echo " Please generate a bareboxconfig with 'ptxdist menuconfig barebox-common'" + @echo "****************************************************************************" + @echo + @echo + @exit 1 +endif + +# ---------------------------------------------------------------------------- +# Compile +# ---------------------------------------------------------------------------- + +$(STATEDIR)/barebox-common.compile: + @$(call targetinfo) + @$(call touch) + +# ---------------------------------------------------------------------------- +# Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/barebox-common.install: + @$(call targetinfo) + @$(call touch) + +# ---------------------------------------------------------------------------- +# oldconfig / menuconfig +# ---------------------------------------------------------------------------- + +barebox-common_menuconfig barebox-common_nconfig: $(STATEDIR)/barebox-common.extract + @$(call world/kconfig, BAREBOX_COMMON, $(subst barebox-common_,,$@)) + +barebox-common_oldconfig_: $(STATEDIR)/barebox-common.extract + @$(call world/kconfig, BAREBOX_COMMON, oldconfig) + +# vim: syntax=make diff --git a/configs/platform-mips/rules/barebox-malta.make b/configs/platform-mips/rules/barebox-malta.make new file mode 100644 index 0000000..b60f163 --- /dev/null +++ b/configs/platform-mips/rules/barebox-malta.make @@ -0,0 +1,111 @@ +# -*-makefile-*- +# +# Copyright (C) 2017 by Robert Schwebel <r.schwebel@pengutronix.de> +# Copyright (C) 2020 by Oleksij Rempel <o.rempel@pengutronix.de> +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_BAREBOX_MALTA) += barebox-malta + +# +# Paths and names +# +BAREBOX_MALTA_VERSION := $(call remove_quotes,$(PTXCONF_BAREBOX_COMMON_VERSION)) +BAREBOX_MALTA_MD5 := $(call remove_quotes,$(PTXCONF_BAREBOX_COMMON_MD5)) +BAREBOX_MALTA := barebox-malta-$(BAREBOX_MALTA_VERSION) +BAREBOX_MALTA_SUFFIX := tar.bz2 +BAREBOX_MALTA_URL := $(call barebox-url, BAREBOX_MALTA) +BAREBOX_MALTA_PATCHES := barebox-$(BAREBOX_MALTA_VERSION) +BAREBOX_MALTA_SOURCE := $(SRCDIR)/$(BAREBOX_MALTA_PATCHES).$(BAREBOX_MALTA_SUFFIX) +BAREBOX_MALTA_DIR := $(BUILDDIR)/$(BAREBOX_MALTA) +BAREBOX_MALTA_BUILD_DIR := $(BAREBOX_MALTA_DIR)-build +BAREBOX_MALTA_CONFIG := $(call ptx/in-platformconfigdir, barebox-malta.config) +BAREBOX_MALTA_REF_CONFIG := $(call ptx/in-platformconfigdir, barebox.config) +BAREBOX_MALTA_LICENSE := GPL-2.0-only +BAREBOX_MALTA_BUILD_OOT := KEEP + +# ---------------------------------------------------------------------------- +# Prepare +# ---------------------------------------------------------------------------- + +# use host pkg-config for host tools +BAREBOX_MALTA_PATH := PATH=$(HOST_PATH) + +BAREBOX_MALTA_WRAPPER_BLACKLIST := \ + $(PTXDIST_LOWLEVEL_WRAPPER_BLACKLIST) + +BAREBOX_MALTA_CONF_OPT := \ + -C $(BAREBOX_MALTA_DIR) \ + O=$(BAREBOX_MALTA_BUILD_DIR) \ + $(call barebox-opts, BAREBOX_MALTA) + +BAREBOX_MALTA_MAKE_OPT := $(BAREBOX_MALTA_CONF_OPT) + +BAREBOX_MALTA_IMAGES := images/barebox-qemu-malta.img +BAREBOX_MALTA_IMAGES := $(addprefix $(BAREBOX_MALTA_BUILD_DIR)/,$(BAREBOX_MALTA_IMAGES)) + +ifdef PTXCONF_BAREBOX_MALTA +$(BAREBOX_MALTA_CONFIG): + @echo + @echo "****************************************************************************" + @echo " Please generate a bareboxconfig with 'ptxdist menuconfig barebox-malta'" + @echo "****************************************************************************" + @echo + @echo + @exit 1 +endif + +$(STATEDIR)/barebox-malta.prepare: $(BAREBOX_MALTA_CONFIG) + @$(call targetinfo) + @$(call world/prepare, BAREBOX_MALTA) + @rm -f "$(BAREBOX_MALTA_BUILD_DIR)/.ptxdist-defaultenv" + @ln -s "$(call ptx/in-platformconfigdir, barebox-malta-defaultenv)" \ + "$(BAREBOX_MALTA_BUILD_DIR)/.ptxdist-defaultenv" + @$(call touch) + +# ---------------------------------------------------------------------------- +# Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/barebox-malta.install: + @$(call targetinfo) + @$(call touch) + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/barebox-malta.targetinstall: + @$(call targetinfo) + @$(foreach image, $(BAREBOX_MALTA_IMAGES), \ + install -m 644 \ + $(image) $(IMAGEDIR)/$(notdir $(image))$(ptx/nl)) + @install -D -m644 $(BAREBOX_MALTA_BUILD_DIR)/defaultenv/barebox_zero_env $(IMAGEDIR)/barebox-zero-env-malta + @install -D -m644 $(BAREBOX_MALTA_BUILD_DIR)/arch/mips/dts/qemu-malta.dtb $(IMAGEDIR)/qemu-malta.dtb-bb + @$(call touch) + +# ---------------------------------------------------------------------------- +# Clean +# ---------------------------------------------------------------------------- + +$(STATEDIR)/barebox-malta.clean: + @$(call targetinfo) + @$(call clean_pkg, BAREBOX_MALTA) + @$(foreach image, $(BAREBOX_MALTA_IMAGES), \ + rm -fv $(IMAGEDIR)/$(notdir $(image))$(ptx/nl)) + @rm -vf $(IMAGEDIR)/barebox-zero-env-malta \ + $(IMAGEDIR)/qemu-malta.dtb-bb + +# ---------------------------------------------------------------------------- +# oldconfig / menuconfig +# ---------------------------------------------------------------------------- + +barebox-malta_oldconfig barebox-malta_menuconfig barebox-malta_nconfig: $(STATEDIR)/barebox-malta.extract + @$(call world/kconfig, BAREBOX_MALTA, $(subst barebox-malta_,,$@)) + +# vim: syntax=make diff --git a/configs/platform-mips/rules/blspec-malta.make b/configs/platform-mips/rules/blspec-malta.make new file mode 100644 index 0000000..6a2ffcc --- /dev/null +++ b/configs/platform-mips/rules/blspec-malta.make @@ -0,0 +1,39 @@ +# -*-makefile-*- +# +# Copyright (C) 2017 by Chris Fiege <c.fiege@pengutronix.de> +# Copyright (C) 2020 by Oleksij Rempel <o.rempel@pengutronix.de> +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_BLSPEC_MALTA) += blspec-malta + +BLSPEC_MALTA_VERSION := 4.11 + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/blspec-malta.targetinstall: + @$(call targetinfo) + + @$(call install_init, blspec-malta) + @$(call install_fixup,blspec-malta,PRIORITY,optional) + @$(call install_fixup,blspec-malta,SECTION,base) + @$(call install_fixup,blspec-malta,AUTHOR,"Oleksij Rempel <o.rempel@pengutronix.de>") + @$(call install_fixup,blspec-malta,DESCRIPTION,missing) + + @$(call install_alternative, blspec-malta, 0, 0, 0644, \ + /loader/entries/malta.conf) + + @$(call install_finish,blspec-malta) + + @$(call touch) + +# vim: syntax=make diff --git a/configs/platform-mips/rules/image-malta.make b/configs/platform-mips/rules/image-malta.make new file mode 100644 index 0000000..f309afc --- /dev/null +++ b/configs/platform-mips/rules/image-malta.make @@ -0,0 +1,34 @@ +# -*-makefile-*- +# +# Copyright (C) 2017 by Chris Fiege <c.fiege@pengutronix.de> +# Copyright (C) 2020 by Oleksij Rempel <o.rempel@pengutronix.de> +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +IMAGE_PACKAGES-$(PTXCONF_IMAGE_MALTA) += image-malta + +# +# Paths and names +# +IMAGE_MALTA := image-malta +IMAGE_MALTA_DIR := $(BUILDDIR)/$(IMAGE_MALTA) +IMAGE_MALTA_IMAGE := $(IMAGEDIR)/malta.hdimg +IMAGE_MALTA_CONFIG := malta.config + +# ---------------------------------------------------------------------------- +# Image +# ---------------------------------------------------------------------------- + +$(IMAGE_MALTA_IMAGE): + @$(call targetinfo) + @$(call image/genimage, IMAGE_MALTA) + @$(call finish) + +# vim: syntax=make diff --git a/configs/platform-mips/rules/kernel-malta.make b/configs/platform-mips/rules/kernel-malta.make new file mode 100644 index 0000000..e43311b --- /dev/null +++ b/configs/platform-mips/rules/kernel-malta.make @@ -0,0 +1,111 @@ +# -*-makefile-*- +# +# Copyright (C) 2020 by Oleksij Rempel <o.rempel@pengutronix.de> +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_KERNEL_MALTA) += kernel-malta + +# +# Paths and names +# +KERNEL_MALTA_VERSION := $(KERNEL_VERSION) +KERNEL_MALTA_MD5 := $(call remove_quotes,$(PTXCONF_KERNEL_MD5)) +KERNEL_MALTA := linux-malta-$(KERNEL_MALTA_VERSION) +KERNEL_MALTA_SUFFIX := tar.xz +KERNEL_MALTA_URL := $(call kernel-url, KERNEL_MALTA) +KERNEL_MALTA_PATCHES := linux-$(KERNEL_MALTA_VERSION) +KERNEL_MALTA_SOURCE := $(SRCDIR)/$(KERNEL_MALTA_PATCHES).$(KERNEL_MALTA_SUFFIX) +KERNEL_MALTA_DIR := $(BUILDDIR)/$(KERNEL_MALTA) +KERNEL_MALTA_BUILD_DIR := $(KERNEL_MALTA_DIR)-build +KERNEL_MALTA_CONFIG := $(call ptx/in-platformconfigdir, kernelconfig-malta) +KERNEL_MALTA_REF_CONFIG := $(call ptx/in-platformconfigdir, kernelconfig) +KERNEL_MALTA_LICENSE := GPL-2.0-only +KERNEL_MALTA_BUILD_OOT := KEEP + +# ---------------------------------------------------------------------------- +# Prepare +# ---------------------------------------------------------------------------- + +# use CONFIG_CC_STACKPROTECTOR if available. The rest makes no sense for the kernel +KERNEL_MALTA_WRAPPER_BLACKLIST := \ + $(PTXDIST_LOWLEVEL_WRAPPER_BLACKLIST) + +KERNEL_MALTA_CONF_OPT := \ + -C $(KERNEL_MALTA_DIR) \ + O=$(KERNEL_MALTA_BUILD_DIR) \ + $(call kernel-opts, KERNEL_MALTA) + +KERNEL_MALTA_IMAGES := vmlinuz +KERNEL_MALTA_IMAGES := $(addprefix $(KERNEL_MALTA_BUILD_DIR)/,$(KERNEL_MALTA_IMAGES)) + +ifdef PTXCONF_KERNEL_MALTA +$(KERNEL_MALTA_CONFIG): + @echo + @echo "*************************************************************************" + @echo " Please generate a kernelconfig with 'ptxdist menuconfig kernel-malta'" + @echo "*************************************************************************" + @echo + @echo + @exit 1 +endif + +# ---------------------------------------------------------------------------- +# Compile +# ---------------------------------------------------------------------------- + +KERNEL_MALTA_MAKE_OPT := \ + $(KERNEL_MALTA_CONF_OPT) \ + vmlinuz modules + +# ---------------------------------------------------------------------------- +# Install +# ---------------------------------------------------------------------------- + +KERNEL_MALTA_INSTALL_OPT := \ + $(call kernel-opts, KERNEL_MALTA) \ + modules_install + +$(STATEDIR)/kernel-malta.install: + @$(call targetinfo) + @$(call world/install, KERNEL_MALTA) + @$(foreach image, $(KERNEL_MALTA_IMAGES), \ + install -m 644 $(image) $(IMAGEDIR)/$(notdir $(image))-malta$(ptx/nl)) + @$(call touch) + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/kernel-malta.targetinstall: + @$(call targetinfo) + + @$(call install_init, kernel-malta) + @$(call install_fixup, kernel-malta, PRIORITY,optional) + @$(call install_fixup, kernel-malta, SECTION,base) + @$(call install_fixup, kernel-malta, AUTHOR,"Oleksij Rempel <o.rempel@pengutronix.de>") + @$(call install_fixup, kernel-malta, DESCRIPTION,missing) + + @$(call install_copy, kernel-malta, 0, 0, 0644, \ + $(IMAGEDIR)/vmlinuz-malta, /boot/vmlinuz-malta, n) + + @$(call install_glob, kernel-malta, 0, 0, -, /lib/modules, *.ko,, k) + @$(call install_glob, kernel-malta, 0, 0, -, /lib/modules,, *.ko */build */source, n) + + @$(call install_finish, kernel-malta) + + @$(call touch) + +# ---------------------------------------------------------------------------- +# oldconfig / menuconfig +# ---------------------------------------------------------------------------- + +kernel-malta_oldconfig kernel-malta_menuconfig kernel-malta_nconfig: $(STATEDIR)/kernel-malta.extract + @$(call world/kconfig, KERNEL_MALTA, $(subst kernel-malta_,,$@)) + +# vim: syntax=make diff --git a/configs/platform-mips/rules/kernel.make b/configs/platform-mips/rules/kernel.make new file mode 100644 index 0000000..26187a8 --- /dev/null +++ b/configs/platform-mips/rules/kernel.make @@ -0,0 +1,78 @@ +# -*-makefile-*- +# +# Copyright (C) 2002-2009 by Pengutronix e.K., Hildesheim, Germany +# 2010 by Marc Kleine-Budde <mkl@pengutronix.de> +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_KERNEL) += kernel + +# +# Paths and names +# +KERNEL := linux-$(KERNEL_VERSION) +KERNEL_MD5 := $(call remove_quotes,$(PTXCONF_KERNEL_MD5)) +ifneq ($(KERNEL_NEEDS_GIT_URL),y) +KERNEL_SUFFIX := tar.xz +KERNEL_URL := $(call kernel-url, KERNEL) +else +KERNEL_SUFFIX := tar.gz +KERNEL_URL := https://git.kernel.org/torvalds/t/$(KERNEL).$(KERNEL_SUFFIX) +endif +KERNEL_DIR := $(BUILDDIR)/$(KERNEL) +KERNEL_BUILD_DIR := $(KERNEL_DIR)-build +KERNEL_CONFIG := $(call ptx/in-platformconfigdir, kernelconfig) +KERNEL_LICENSE := GPL-2.0-only +KERNEL_SOURCE := $(SRCDIR)/$(KERNEL).$(KERNEL_SUFFIX) +KERNEL_DEVPKG := NO +KERNEL_BUILD_OOT := KEEP + +# ---------------------------------------------------------------------------- +# Prepare +# ---------------------------------------------------------------------------- + +KERNEL_CONF_OPT := \ + -C $(KERNEL_DIR) \ + O=$(KERNEL_BUILD_DIR) \ + $(call kernel-opts, KERNEL) + +ifdef PTXCONF_KERNEL +$(KERNEL_CONFIG): + @echo + @echo "*************************************************************************" + @echo "**** Please generate a kernelconfig with 'ptxdist menuconfig kernel' ****" + @echo "*************************************************************************" + @echo + @echo + @exit 1 +endif + +# ---------------------------------------------------------------------------- +# Compile +# ---------------------------------------------------------------------------- + +$(STATEDIR)/kernel.compile: + @$(call targetinfo) + @$(call touch) + +# ---------------------------------------------------------------------------- +# Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/kernel.install: + @$(call targetinfo) + @$(call touch) + +# ---------------------------------------------------------------------------- +# oldconfig / menuconfig +# ---------------------------------------------------------------------------- + +kernel_oldconfig kernel_menuconfig kernel_nconfig: $(STATEDIR)/kernel.extract + @$(call world/kconfig, KERNEL, $(subst kernel_,,$@)) + +# vim: syntax=make |